ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Turtlebot arm on Gazebo: lets fall all grasped objects

asked 2015-01-23 12:54:43 -0600

jorge gravatar image

updated 2015-01-30 08:51:37 -0600

Hi all, I have managed to fully simulate the turtlebot arm on Gazebo (ROS indigo + Gazebo 2.2.3), but when I try to run the block manipulation demo, the robot can grasp the blocks but then let them fall instead of raising them. So seems to me that there must be 0 friction between the gripper's fingers and the blocks (see a video) I have tried to modify fingers and blocks descriptions as described in this gazebo answer but all failed (particularly I tried different combinations of mu1, mu2, kp, kd and minDepth). I also set the blocks mass to almost 0 and same result. So I need something different...

I took a look to he pull req mentioned on this other answer but I have no idea what is this patch fixing. I found nothing like a gripper plugin in the Gazebo version I'm using (I tried to add one to my robot's URDF but Gazebo crashed!)

Other thing I can be doing wrong is that my gripper controller is a position controller, so I wonder if the gripper just closes until the side of the cubes (2.5 cm) + 2 x minDepth and then don't exert any additional force over the blocks and so they fall. But I was playing with torque controllers and they are really a pain in Gazebo, making the arm to self-disintegrate!!!

Any clues? Is there a Gazebo gripper plugin in later versions? Or should I try to use a torque controller instead of a position one?

Thank you a lot!


I have tried an effort controller as explained here, but this provokes a rather esoteric fault on kobuki base! No idea how both things can interfere each other.

[INFO] [WallTime: 1422289543.637095] [104.140000] Controller Spawner: Loaded controllers: joint_state_controller, gripper_joint, arm_controller
[INFO] [WallTime: 1422289543.646707] [104.150000] Started controllers: joint_state_controller, gripper_joint, arm_controller
process[move_group-20]: started with pid [3501]
[ WARN] [1422289543.848301993, 104.300000000]: Gazebo ROS Kobuki plugin: NaN in d1. Step time: 0.01, WD: 0.07, velocity: -nan
[ WARN] [1422289543.849198941, 104.300000000]: Gazebo ROS Kobuki plugin: NaN in d2. Step time: 0.01, WD: 0.07, velocity: -nan
Error:   TF_NAN_INPUT: Ignoring transform for child_frame_id "base_footprint" from authority "unknown_publisher" because of a nan value in the transform (218....


Works! Following Jim's answer I manage to grasp a cube. Downside is that success rate is very low (blocks must be in front of the robot and even like that sometimes fails, as blocks rode out of the gripper). Another problem is that, as Jim and as in this gazebo answer, you need to wait around 10 seconds until the the block get attached to / detached from the gripper. I wonder if this problem merits an issue on gazebo repo.... Any idea? Also, anyone has an idea of what attach_steps / detach_steps parameters mean?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-01-27 12:27:25 -0600

Jim Rothrock gravatar image

When using Gazebo 2.2.3, I have gotten grasping to work by adding the following to my robot's URDF file:

  <gripper name="gripper">

gripper_fixed_pad and gripper_movable pad are the links that form the grasping surfaces of a parallel gripper. Once both pads contact an object, Gazebo takes up to 15 seconds to attach the object to gripper, and up to 20 seconds to detach the object once the gripper is opened. I use the gazebo_ros_bumper plugin to detect when the gripper has grasped an object, then the code sleeps for 15 seconds, providing Gazebo with enough time to attach the object to the gripper.

edit flag offensive delete link more


This seems to go in the good direction; at least the gripper seems to interact more with the blocks now (see these videos: 1, 2), displacing them.

jorge gravatar image jorge  ( 2015-01-28 04:49:54 -0600 )edit

Where can I read more information about the gripper plugin? I only found this answer, but no further details, so I have no idea what to tweak to make my gripper work. Thanks!

jorge gravatar image jorge  ( 2015-01-28 04:53:36 -0600 )edit

I have found no information beyond the link you posted.

Jim Rothrock gravatar image Jim Rothrock  ( 2015-02-09 14:47:06 -0600 )edit

I have created a Gazebo answer; hope someone have any clue on this. Btw, are your simulated grasping reliable? In my case it fails way too often, specially if the object is not aligned with the paddles

jorge gravatar image jorge  ( 2015-02-12 13:01:41 -0600 )edit

Grasping works every time for me. In my case, the object is always aligned well with the gripper pads.

Jim Rothrock gravatar image Jim Rothrock  ( 2015-02-16 18:16:40 -0600 )edit

answered 2015-01-24 22:57:20 -0600

fergs gravatar image

Grasping in gazebo is actually quite tough. With most robots I know of that worked in gazebo at some point (PR2, UBR-1), the forces applied to the gripper fingers were absurd (read: nowhere near what they were in reality). If i recall correctly, the PR2 gripper uses like 500N, and the UBR-1 was set to 2x the real-world max. The mu values were also absurd, something like 30.0 for the UBR fingers. The git history on the ubr1_preview repo might be of help -- John Hsu and I spent an enormous amount of time making things actually work.

edit flag offensive delete link more


Thanks! I tried all combinations of values from UBR-1 without any result. I also tried an effort controller, but I creates an unexpected incompatibility with the kobuki base (see the UPDATE above)

jorge gravatar image jorge  ( 2015-01-26 11:09:18 -0600 )edit

Question Tools



Asked: 2015-01-23 12:54:43 -0600

Seen: 2,363 times

Last updated: Jan 30 '15