Trouble enabling robot

From sdk-wiki
Jump to: navigation, search

Cannot Enable Robot

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.

1 - The first thing to check is if the E-Stop is engaged:

$ rosrun baxter_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_core_msgs/AssemblyState][baxter_core_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 baxter_tools enable_robot -r
$ rosrun baxter_tools enable_robot -e

2 - Verify ROS Environment Variables are set

Make sure that you have properly set your ROS environment variables by running:

$ env | grep ROS

Verify that ROS_MASTER_URI contain's the robot's hostname and ROS_IP contains your workstation's IP address. If your workstation's IP or your robot's hostname have changed, the file must be updated.

It is also very important that if you have chosen to use the ROS_HOSTNAME rather than ROS_IP when setting up your ROS environment, the ROS_IP field should be commented out. Using both will result in a robot that cannot be enable.

This post from the forum shows one example of a researcher having a similar issue.

3 - Verify Network Setup

Reboot your robot with the network cable connected to reset communication to the Baxter.

Make sure you can ping Baxter from your workstation. If you can ping <robot ip> then the network is working correctly.

  • If you are unable to ping Baxter, see the Networking page to review your network setup and ensure proper communication between the SDK and Baxter.
  • See this post on the forum for additional information.