0
$\begingroup$

Rosanswers logo

I'm trying the tutorial for move_arm motion planning: http://www.ros.org/wiki/move_arm/Tutorials/MoveArmPoseGoal

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" />    
  </node>

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?


Originally posted by elsey on ROS Answers with karma: 76 on 2012-01-05

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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).


Originally posted by fergs with karma: 13902 on 2012-01-06

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by fergs on 2012-01-07:
You might try editing the joint_limits.yaml file to reduce the speed limits and see if that changes execution.

Comment by elsey on 2012-01-07:
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.

$\endgroup$

Your Answer

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