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

action speed in move_arm tutorial

asked 2012-01-05 15:07:04 -0500

elsey gravatar image

updated 2012-01-06 04:14:14 -0500

I'm trying the tutorial for move_arm motion planning:

I would like to be able to change the speed of the arm motions. Instead of launching the move_arm node with:

<include file="$(find pr2_arm_navigation_actions)/launch/move_right_arm.launch"/>

I add the parameter "move_arm_frequency" as below:

  <node pkg="move_arm" type="move_arm_simple_action" output="screen" name="move_right_arm">    
    <remap from="arm_ik" to="pr2_right_arm_kinematics/get_constraint_aware_ik" />   
    <param name="group" type="string" value="right_arm" />
    <param name="controller_action_name" type="string" value="/r_arm_controller/follow_joint_trajectory" />
    <param name="move_arm_frequency" type="double" value="80" />    

I run the tutorial example, unchanged: rosrun pr2_arm_navigation_tutorials move_arm_simple_pose_goal

However, when I change the value of "move_arm_frequency" to different values (say 1 vs. 80), I see no noticeable change in the executed action time, either slower or faster. (The default value in move_arm_simple_action.cpp is 50.) I always reset to the same joint pose, relaunched the move_arm node, and verified with "rosparam get" that the parameter has new values.

I'm pretty sure the parameter is getting updated, since a value of 0 results in a runtime error. It seems that it should affect the action completion time in the CONTROL state:

move_arm_action_feedback_.time_to_completion = ros::Duration(1.0/move_arm_frequency_);

Is there a way to change the speed of the arm motion for the move_arm example, either through this parameter or another one?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-01-06 20:02:26 -0500

fergs gravatar image

I'm not sure how to speed up the execution, it may be that you are hitting the joint speed limits specified for planning. However, I can say that the move_arm_frequency is how fast move_arm runs its internal feedback loop during trajectory execution -- so it won't change how long a trajectory takes to execute (just how closely specified/monitored it is).

edit flag offensive delete link more


Thanks for the clarification about that parameter. Even knowing how to slow down the execution would be helpful so that we could test whether the speed limits are actually the issue.
elsey gravatar image elsey  ( 2012-01-07 09:01:18 -0500 )edit
You might try editing the joint_limits.yaml file to reduce the speed limits and see if that changes execution.
fergs gravatar image fergs  ( 2012-01-07 10:31:02 -0500 )edit

Question Tools


Asked: 2012-01-05 15:07:04 -0500

Seen: 328 times

Last updated: Jan 06 '12