0
$\begingroup$

Rosanswers logo

Due to the hardware limitation, the robot did not follow the trajectory as we send via joint_trajectory_action, especially for a torso_controller/joint_trajectory_action of spine joint. We'd like to wait the program until the pr2 torso movement has finished. Currently, the robot send back failed status/result after the commanded time period, but the robot still continue to move. Is there a way to know if the robot still moving joint or finished interpolation.


Originally posted by Kei Okada on ROS Answers with karma: 1186 on 2011-06-23

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

have you tried your_action_client.wait_for_result() or your_action_client.send_goal_and_wait() (in python)?


Originally posted by liuhuanjim013 with karma: 152 on 2011-06-23

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by tfoote on 2011-07-06:
It sounds like this would work fine if you made your planner plan feasible plans with timeouts which would not be broken in normal operations.

Comment by liuhuanjim013 on 2011-06-24:
I see. So you used your_action_client.get_state()? I also do this to see if the trajectory has completed: print 'arm action state:',actionlib.get_name_of_constant(actionlib.GoalStatus,arm_joint_action_client.get_state()). But you are right, sometimes the robot doesn't complete the trajectory.

Comment by Kei Okada on 2011-06-24:
send_goal_and_wait returns with aborted after commanded period has passed, but if the period is too small, say 1 sec for 300mm up of spine joint, the robot continue moving towards the original goal. I'd like to know when the robot reached that point.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.