Teleoperation for Grasping

asked 2020-12-02 11:38:50 -0500

awck gravatar image

updated 2020-12-02 11:49:33 -0500


I am running Gazebo 11 with the DART physics engine. I am working on a project on autonomous robotic grasping and for debugging purposes I built a keyboard teleoperation node with which I can freely move my robot hand around in 3D space (the hand is not attached to a robot arm for now, for simplicity). However, I'm not sure if I am doing this in a clever way:

I read the keys (up/down, left/right, etc.) from the keyboard and simply publish on the topic gazebo/set_model_state with my updated model pose. I do this very frequently (around 1000 Hz) such that the robotic hand doesn't fall down (if z>0) and is always kept at the commanded position. Gravity is set to -9.81.

My problem is the following: if I manually move the hand towards an object (e.g. a cylinder I want to grasp) it simply intersects the object and doesn't stop at the collision (which makes sense, as I am forcing the model pose to be within the object). The behavior with the ODE physics engine was different, though. The hand didn't intersect the object.

If anyone could give me tips on how to implement this such that my hand actually interacts with the physics of the object when it touches it, that would be great. I'd like to do exactly this ( actually, just without the robot arm. I think I need something like a PID pose controller, but I couldn't find anything on this. Any help is much appreciated!

edit retag flag offensive close merge delete