|Note: This tutorial assumes you already know about the PR2 power 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 run stopsDescription: This tutorial teaches you about the PR2 run stops
Tutorial Level: BEGINNER
Next Tutorial: Understanding the PR2 diagnostics system
Now that you understand the PR2 power system, let's take a look at the run stops. The PR2 comes with two run stops, a wireless one and a fixed one on the back of the robot. The dashboard has two icons, one for each of the run stops:
The run stops are designed to be very non-disruptive. We don't want you to hesitate to press the run stop, because it would be a pain to bring the robot back up. On the PR2 it is extremely easy to recover from pressing the run stop. So you should see the run stops as an easy-to-use 'pause button' for the robot.
Pausing the robot
- Let's just try is out. Disable the wireless run stop by pressing the red button.
- You'll see a number of things change: the dashboard icon of the run stop shows it is disabled, the three power breakers are in standby, and the MCBs are in safety lockout. So the robot motors are completely disabled, which is what you'd expect from a run stop.
- But all the software is still running! Even the encoders are still counting when you would move the robot joints. So if you'd be debugging your own software, your code keeps running after you press the run stop. Sensors still work, encoders are still running. Only the actuators are disabled.
- And now the nice part. When you enable the run stop again, watch the dashboard as everything automatically recovers: the power gets enabled, and the MCBs get reset.
Moving the arms
- Now you can start using the run stops to put the arms in a different configuration. Just disable the run stop to stop the arms from being controlled, move them to any configuration you'd like, and enable the run stop again. You'll see that the arms get 'stuck' in the new configuration you put them in.
- So how does that work? When the arms are being controlled, the controller tries to keep them in a fixed place. So, when you disable the run stop, the controller is still trying to keep the arms in place, but (because the power is in standby) it is unable to actually move the arms. So when you re-enable the power, you'd expect the controller to move the arms back to their original position, right? But, every time the MCBs get reset, a signal is sent to the controllers, and every running controller gets reset. For the arm controller, the reset means they will start controlling the arm to the current configuration the arms are in.