PickAndPlace - multiple objects, script editor, three finger gripper

Hi, I’m having problems with adjusting pickandplace example to my problem.
I manually (no coding) adjusted my environment via GUI: mounted UR10 robot, chosen gripper and two tables for picking/placing the objects.
I’m pretty new to coding, so I’m probably lost to the basics. I have to make a code that picks an object from a grid like pallet and places it on the conveyor belt. So it’s basiclly palletization, but with conveyor belt on the other side.
My first question is, can I make such a program in script editor where I can quickly adjust parameters?
The second thing is that I can’t figure out how to add multiple picking positions, or for that matter, multiple objects in a grid position (n number of objects with equal distances). I tried to understand the pickandplace example (python), but I don’t really understand how most of it works. Other examples also don’t help much (I tried to apply any I found even remotely helpful), I guess I’m missing the programming knowledge.
Third, is there any centric gripper (three finger) class for the one I have to use?

The whole code should be somewhat universal (not just cubes).
I’d be grateful for any kind of answer, even a direction to move in.


Hi @user102346 ,

Have you read through our required tutorials?


Of course, I went through it all, the problem I have with tutorials is there are only premade examples in python. What I don’t know is: If I have made my USD environment without python, only by using importers, and physics extensions in GUI how can I manipulate that environment using python.

For example: Let’s say we place a cube with “Create > Mesh > Cube” and we position the cube as we like through “Property” extension, next we place a manipulator through “ImportRobots > UR10urdf” and so we also position it as we like. Next thing we make a ground plane and add rigid bodies and collision with physics scene. And finally we have our environment. Now I want to make a python code that could simulate the manipulator picking that cube. And that is where you lost me. I do not know if I missed something or misinterpreted the whole idea but only help I can get is asking you if you can direct me where to look for info.

Hi user102346,

You can save the stage as a usd file after creating your environment in GUI and then using python you can add that usd as a reference using add_reference_to_stage function. Take a look at exts/omni.isaac.universal_robots/omni/isaac/universal_robots/tasks/bin_filling.py for a similar example. Once you added your usd file in python as a reference. You can wrap the USD prims using the appropriate object and robot classes provided to manipulate them easier.

In the bin filling example, the usd file already has a ur10, a pipe, a ground plane and a box. So it should be similar use case to yours.

Let us know if you have further questions.