ARISE-Initiative / robosuite

robosuite: A Modular Simulation Framework and Benchmark for Robot Learning
https://robosuite.ai
Other
1.37k stars 427 forks source link

Is it able to use a suction-type gripper? #122

Closed Gaoee closed 4 years ago

Gaoee commented 4 years ago

Hi, I am really interesting in this project. I want use a suction-type gripper in my task. Are there any suggestions you can give? Thanks.

cremebrule commented 4 years ago

Hi @Gaoee ,

Yes, as another user mentioned in the thread you replied to (#104 ), using equality (weld) constraints would be a viable way to do this. The method he described should work, but unfortunately the sim object is already created by the time you can access self.model, so any further elements you try adding won't actually do anything.

There's unfortunately no clean and easy way to do this robustly for all objects, so you'll have to hard code stuff for now. As prasoongoyal mentioned, in any raw XML file that is used in your sim, you can directly add the correct <weld ...> tag in an <equality><equality/> section in that XML. See the MujocoXML reference for details. Set active=false by default, and then when a specific condition is met during runtime (e.g.: the suction gripper is contacting the object), you can set the weld to be active, thus simulating the "suctioning" effect

We also currently have some projects in the works that are also using weld constraints, so I'm thinking of porting some of this high-level functionality into robosuite for users such as yourself to use. So stay tuned!

Gaoee commented 4 years ago

Really thanks for your replay. I will try your suggestion on my task. But maybe it still not that easy to simulate pressure of a suction gripper.