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

PR2 object manipulation hand posture fail: `Hand posture controller timed out`

asked 2011-07-25 03:44:09 -0600

seanarm gravatar image

updated 2011-07-25 13:37:36 -0600

I have been running the PR2 tabletop manipulation demo from the following link:

Since I'm not using the actual pr2, I've altered the demo slightly to allow it to work. Instead of 'roslaunch /etc/ros/robot.launch' (since I can't seem to find it in my ros install), I run these four commands in order:

  • roslaunch gazebo_worlds empty_world.launch
  • roslaunch pr2_gazebo pr2.launch
  • roslaunch gazebo_worlds table.launch
  • roslaunch gazebo_worlds cylinder_object.launch

Also, I adjusted the location of the cylinder object so it lies towards the edge of the table adjacent to the robot and in the left bisection of the table. This forces the demo to always choose the left arm to start.

Then, I "start" the autonomous demo-- "start" being the command I send to the python script menu asking what action the PR2 robot should take. The command starts the autonomous pick and place demo. Both arms retract to a starting position behind the table, the PR2 head scans the area for objects, the scan results in 1 object found, the PR2 positions its left arm over the object, and finally it spouts this error:

[ERROR] [1311602621.821849339, 143.811000000]: Hand posture controller timed out on goal (1)

[ERROR] [1311602621.889935325, 143.811000000]: Grasp error; exception: grasp execution:mechanism:Hand posture controller timed out

No matter where I position the cylinder object on the table, it always results in this error. I have not tried every table position for the cylindrical object, obviously. Do I need to spawn a different object? Put the object in just the right place? Why won't it pick up the cylindrical object?

Thanks for your input on this frustrating matter.

edit retag flag offensive close merge delete


"I have altered..." Are you saying that the tutorial doesn't work as written, and you've made a change so that it does?
Asomerville gravatar image Asomerville  ( 2011-07-25 04:25:29 -0600 )edit
How big is the cylinder?
tfoote gravatar image tfoote  ( 2011-07-25 05:22:55 -0600 )edit
Tutorial doesn't work for me as written because I don't have a /etc/ros/robot.launch, nor do I have a robot.launch that I can find in my ROS installation. The change I made opens gazebo and spawns a PR2, a table, and a cylinder object.
seanarm gravatar image seanarm  ( 2011-07-25 05:38:53 -0600 )edit
The cylinder is gazebo_worlds/objects/cylinder_object.urdf.xacro. It has a base to make it stand on end without falling. The size of the actual cylinder, as defined in that file, is: (see next comment)
seanarm gravatar image seanarm  ( 2011-07-25 05:40:15 -0600 )edit
<property name="object_1_height" value="0.12" /> <property name="object_1_radius" value="0.02" /> <property name="object_1_base_height" value="0.02" /> <property name="object_1_base_width" value="0.15" />
seanarm gravatar image seanarm  ( 2011-07-25 05:43:36 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2011-07-25 13:25:54 -0600

Matei Ciocarlie gravatar image

That error is caused by the simulated gripper not "settling" on the grasped object - essentially, in simulation, the gripper joint keeps making small movements to account for simulation error, and therefore the controller never considers that is has stalled.

You can change what the controller considers "stall" velocity by editing pr2_controller_configuration_gazebo/pr2_default_controllers.launch and putting in the following parameters:

<param name="r_gripper_controller/gripper_action_node/stall_velocity_threshold" value="0.01" type="double"/>

<param name="l_gripper_controller/gripper_action_node/stall_velocity_threshold" value="0.01" type="double"/>

edit flag offensive delete link more


This worked. The python demo script crashes near the end of the routine, but I suspect this has something to do with the position of the cylinder object on the table... maybe. Regardless, it picks up the cylinder object, then drops it a short while later.
seanarm gravatar image seanarm  ( 2011-07-26 08:02:05 -0600 )edit
Unfortunately, in simulation, holding grasped objects is not very stable. The simulator keeps taking small corrective improvements until eventually the object slips out, especially if it's cylinder... Maybe something like a cube with the faces parallel with the gripper pads will be held longer?
Matei Ciocarlie gravatar image Matei Ciocarlie  ( 2011-07-26 09:06:15 -0600 )edit
Python demo script crashes? What was the error?
hsiao gravatar image hsiao  ( 2011-07-26 09:15:25 -0600 )edit

answered 2012-02-02 07:44:11 -0600

zhenli gravatar image

So how to make this works fine in PR2 simulator?

edit flag offensive delete link more


Zhenli, this is the area for answers rather than questions.
Asomerville gravatar image Asomerville  ( 2012-02-03 03:02:24 -0600 )edit

Question Tools

1 follower


Asked: 2011-07-25 03:44:09 -0600

Seen: 663 times

Last updated: Feb 02 '12