Baxter Research Robot

  • Rishabh Agarwal (
Overview: This is a humanoid robot designed for research in human-safe robotic manufacturing and human-assistive robotics. It has two 7-axis arms, integrated cameras, sonar, torque sensors, and direct programming access via a standard ROS (Robot Operating System) interface. Baxter comes with both electronically controlled and vacuum grippers and a mobile pedestal to easily move the robot.

Important use reminders:
  • While this is designed as a human-safe robot, it is still a big robot that can do a lot of damage. Make sure the red emergency stop button is accessible at all times!!
Location: Engineering Annex Building 093, Room 0307 (Robot Room of RRL)

Reservation: Baxter must be reserved before using. The reservation is done using the NanoCenter reservation system.

You will be able to reserve the equipment personally only after being trained on it.

Training Procedure:

For the training on Baxter it is extremely essential to be familiar with the following aspects:
  • Since the robot uses ROS as its framework, one should go through the beginners tutorials in ROS Indigo for basic understanding. Complete the tutorials on the following link: ROS Tutorials 
  • Rethink robotics provides a detailed instructions and tutorials for Baxter. It is essential that everyone working on Baxter takes a look at their learning section: Baxter wiki
  • Before working on hardware, we require every individual to show some sort of simulation of Baxter on Gazebo or MoveIt, tutorials for which are linked: MoveIt Tutorial

Workspace Setup:

Once you have complete the above steps and an account created on the computer, you need to create a workspace so ROS knows where your code is when you are working with Baxter.

Take a look at the Rethink Robotics SDK wiki on setting up the workstation: Everything has already been set up on the machine except for the catkin workspace in your home directory where your packages will reside. To do this, first create a new directory somewhere in your home directory, just as in step 3 of the SDK directions:

cd ~

mkdir -p ros_ws/src

cd ros_ws

(ros_ws is just the default tutorial name, you can choose any prefered name). Then do an initial build after sourcing the ros environment script.

source /opt/ros/baxter/install/setup.bash


Here, the setup.bash file in the baxter workspace is used instead of the one mentioned in the tutorial, /opt/ros/indigo/setup.bash. This is so the baxter SDK packages can reside in a separate workspace and be common to every user. By sourcing the baxter workspace setup.bash, your workspace becomes an overlay of the system workspace ( and will see all of its packages as if they were in your own workspace. Note that if you ever completely clean out the generated build files in your own workspace, you need to source the baxter setup.bash before rebuilding.

Finally, copy the script from the baxter workspace which you will use in your daily work to communicate with Baxter.

cp /opt/ros/baxter/ .           

chown your_username_here

chmod u+x

(Note the . as the second argument of the cp command, assuming your current directory is ros_ws) And that’s it for setup. Now whenever you want to run code that talks with baxter you only have to do:

cd ~/ros_ws


You can now verify everything is working by starting at step 2 of the SDK Hello Baxter page here:

When adding code to your workspace, it is strongly encouraged that you keep your packages inside version-controlled repositories, either with git or mercurial. Your packages as well as others from third-party sources can then be maintained by the wstool utility provided by the ROS community. An overview is here: There is a good tutorial using the former name ‘rosws’ here: