Note: This tutorial assumes you already understand the PR2 diagnostics system. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
PR2 safety system
Description: This tutorial teaches you about the PR2 safety system.Tutorial Level: BEGINNER
Next Tutorial: Understanding the PR2 logger
Contents
Safety limits
Position limits
To get a good feel of the position limits, you want to turn off on of the controllers that are controlling the arms. The dashboard will give you a list of controllers in the "Realtime Controllers" tab:
You can also get access to the same list on the command line:
$ rosrun pr2_controller_manager pr2_controller_manager list
base_controller ( running ) base_odometry ( running ) head_camera_trigger ( running ) head_traj_controller ( running ) l_arm_controller ( running ) l_forearm_cam_trigger ( running ) l_gripper_controller ( running ) laser_tilt_controller ( running ) projector_controller ( running ) projector_trigger ( running ) prosilica_inhibit_projector_controller ( running ) r_arm_controller ( running ) r_forearm_cam_trigger ( running ) r_gripper_controller ( running ) torso_controller ( running )
To stop the right arm controller, type:
$ rosrun pr2_controller_manager pr2_controller_manager stop r_arm_controller
Now you'll see that the right arm is not controlled any more. Move it manually towards the end of its reach. You'll feel a "spring" close to its joint limits. That spring force is created by the software safety controllers, that prevent the arm from hitting the hardware joint limits.
To start the right arm controller up again, use:
$ rosrun pr2_controller_manager pr2_controller_manager start r_arm_controller