I would like to create an application, in which user can choose multiple objects and Isaac sim will simulate filling a container with these objects. Basically, the same thing as described here. I looked at the source code (omni/isaac/examples/bin_filling) and I found, there is method of
self._world.get_task(name="bin_filling") object called
add_screws. But I cannot find definition of this method and have no idea how it works.
Interesting thing is, parameter of the method is:
screws_number=10, but if I click on Drop parts button in Isaac sim UR10 Preview window, only 3 objects are dropped.
Can anybody help me understand, how is the method add_screws implemented or provide better solution for my task?
Just to clarify we have two samples in the current release that does bin filling.
- Isaac Examples->Manipulation->Bin Filling.
- Isaac Examples->Demos->UR10 Palletizing->Fill Bins Scenario.
The second one will be deprecated in a future release. So we recommend looking at the first one for your use case. Take a look at exts/omni.isaac.universal_robots/omni/isaac/universal_robots/tasks/bin_filling.py and exts/omni.isaac.examples/omni/isaac/examples/bin_filling/bin_filling.py as a reference to implement a similar example while dropping other objects from the pipe in the USD stage.
You probably would need to replace the screws usd files added in exts/omni.isaac.universal_robots/omni/isaac/universal_robots/tasks/bin_filling.py with the objects usd files by adding them as references in the _add_screw function.
Let us know if you have further questions.
Thank you for your answer. I’ve already figured it out and found theese examples. I’m, just curious if there is a way to instantiate objects (screws in the examples) in case there are for example 400 copies.