Skip to content

Enable Robot Example

Rob Linsalata edited this page Sep 25, 2013 · 3 revisions

The enable robot example program will allow you to enable/disable/reset/stop the robot. You can also get the robot's current state. The robot must be enabled in order to control the motors.

Basic Usage

To Enable the robot:

$ rosrun tools enable_robot.py -e

To Disable the robot:

$ rosrun tools enable_robot.py -d

Overview

In order to control Baxter's arms, the robot must be put in the 'Enabled' state. Enabling the robot provides power to the joint motors, which are initially in the 'Disabled' state on start-up or after a serious error, such as an E-Stop (Emergency-Stop). The robot's 'State' can be checked with the enable_robot tool.

Note: If an error has occurred, the robot state may need to be reset (-r) before being enabled again.

Functions

To get help on enable_robot use the -h argument:

$ rosrun tools enable_robot.py -h

Help screen:

enable_robot.py [ARGUMENTS]

-h, --help      This screen
-s, --state     Print current robot state

-e, --enable    Enable the robot
-d, --disable   Disable the robot
-r, --reset     Reset the robot
-S, --stop      Stop the robot

Robot State

To get the current robot state use -s:

$ rosrun tools enable_robot.py -s

enabled: False
stopped: False
error: False
estop_button: 0
estop_source: 0

The state output above indicates a normal (all-clear) status, as you would see after power-up. Once you enable the robot to control the arms, you should see the same status but with enabled: True.

Enable Robot

Use -e to enable the robot.

$ rosrun tools enable_robot.py -e

The robot state enabled field should then switch to True.

Disable Robot

Use -d to disable the robot.

$ rosrun tools enable_robot.py -d

The robot state enabled field should then switch to False.

Reset

Use -r to reset the robot after an error (if the robot state gives error: True).

$ rosrun tools enable_robot.py -r

This should clear the error field, setting it back to error: False.

Stop

Use -S (capital S) to stop the robot. This is similar to a "software" E-Stop.

$ rosrun tools enable_robot.py -S

This will disable the robot and also cause the stopped field and the error field to go True. You will need to reset the robot before enabling it again.

EStop and Robot State

For more information about the E-Stop states and the robot state message, see: Robot State and EStop.

Troubleshooting

Robot fails to enable or reset

If your robot "fails to reset" when you run robot enable, the first thing to check is if the E-Stop is engaged:

$ rosrun tools enable_robot -s
enabled: False
stopped: True
error: True
estop_button: 1
estop_source: 1  

If the estop_button: field says '1', it means the E-Stop is engaged (from [baxter_msgs/AssemblyState][baxter_msgs-AssemblyState] message: uint8 ESTOP_BUTTON_PRESSED=1).
Disengage the E-Stop by twisting the red top until it 'pops'-up, then try resetting the robot.

$ rosrun tools enable_robot -r
$ rosrun tools enable_robot -e  

  [baxter_msgs-AssemblyState]: http://github.com/RethinkRobotics/sdk-examples/blob/master/baxter/baxter_msgs/msg/AssemblyState.msg

Clone this wiki locally