I’m making an application in Orbit where I want to fill a box with objects using a robotic arm. The problem is, I don’t understand how I can dynamically spawn new objects after picking and placing each item. Was thinking maybe to spawn all objects in the start of the application and then when an object has been placed in the box, teleport(don’t know if teleportation is possible) a new object that can be picked and placed. Then just keep doing this until all objects are placed. Any ideas that can help me move forward?
Thank you for the question.
Unfortunately, dynamic spawning doesn’t work in Isaac Sim with GPU simulation pipeline. This is because PhysX pre-allocates the buffers at the very first simulation play time and cannot dynamically create GPU buffers at runtime.
The solution you’re suggesting is the safest way to do it. Depending on your task definition, you can spawn all the objects once in each environment, or spawn a new object in each individual environment in the start. The first may consume a lot of memory since you will spawn N x M objects in total, while in the second case, you will spawn N objects.
Teleportation is possible. You can just set the root state of the object to where you want to teleport it to.
Hope this helps!