See also robot_mechanism_controllers/JointSplineTrajectoryController, which is used by this action.



You can find an example of using the single joint position action on the PR2 in the Moving the Torso tutorial.


The ROS API consists of three parts: private parameters, an action server that achieves position goals, and an interface to a trajectory controller.



~joint (string, default: Required)
  • The joint to command
~goal_threshold (double, default: 0.1)
  • The maximum distance from the goal at which to report success.

Action interface

The joint trajectory action provides an action server (see actionlib) that takes in goals of the type pr2_controllers_msgs/SingleJointPositionGoal.

Subscribed Topics

~position_joint_action/goal (pr2_controllers_msgs/SingleJointPositionActionGoal)
  • The goal describes the position for the robot to achieve
~position_joint_action/cancel (actionlib_msgs/GoalID)
  • A request to cancel a specific goal.

Published Topics

~position_joint_action/feedback (pr2_controllers_msgs/SingleJointPositionActionFeedback)
  • Feedback describing the progress the mechanism is making on reaching the goal position
~position_joint_action/status (actionlib_msgs/GoalStatusArray)
  • Provides status information on the goals that are sent to the action.
~position_joint_action/result (pr2_controllers_msgs/SingleJointPositionActionResult)
  • empty

Controller interface

Subscribed Topics

~state (pr2_controllers_msgs/JointTrajectoryControllerState)
  • Listens to the state of the controller.

Published Topics

~command (trajectory_msgs/JointTrajectory)
  • Sends joint trajectories to the controller.

Wiki: single_joint_position_action (last edited 2012-03-27 22:11:00 by hsu)