|Robot Components : Robot, Arms, Grippers, Cameras, Head, I/O, Screen|
- 1 Summary
- 2 Joints
- 3 Control Systems
- 4 Sensors
- 5 Resources
This components page describes Baxter's Arms. Baxter's arms are an integral part of "Baxter being Baxter" from the basic actuation premise of Series Elastic Actuators (SEAs), to available control modes, to the overall safety of the system. This page is the gathering point for all of the knowledge that define Baxter's Arms.
Baxter's has two seven degree-of-freedom (DOF) arms. Seven DOF arms are desirable as they provide a kinematic redundancy greatly improving manipulability and safety.
The arm joints are named in the following manner:
S0 - Shoulder Roll
S1 - Shoulder Pitch
E0 - Elbow Roll
E1 - Elbow Pitch
W0 - Wrist Roll
W1 - Wrist Pitch
W2 - Wrist Roll
Series Elastic Actuators (SEAs)
Image Credit: MIT Technology Review
Series Elastic Actuators (SEAs) are the actuation technique, or mechanism responsible for moving the robot links. SEAs are an integral part of "what makes Baxter, Baxter".
Recommended Reading: Series Elastic Actuators (Rethink's own Matthew Williamson)
Series Elastic Actuators differ from traditional actuation techniques in that we introduce a spring between the motor/gearing elements and the output of the actuator. This results in "gains in stable, low noise force control, and protection against shock loads".
Inherent safety is a characteristic of SEAs. The springs in these actuators are deformable by human level inputs. This deflection is an inherent safety mechanism.
Lastly, and perhaps most importantly, by introducing the spring element we are now able to measure torque output from the actuator. This enables such things as torque control, impedance control, and more!
There are a number of control systems for controlling Baxter's arms and adding robustness or safety to Baxter. Joint Position, Joint Velocity, and Joint Torque control modes exist for commanding Baxter's arm for your specific application. The robustness and safety systems consist of Collision Avoidance (preventing self collision) and Collision Detection (detecting collision with the environment). Zero-G mode is one of the most prominent modes, allowing human-interaction with Baxter.
For detailed explanations and information on usage (including enabling/disabling) of these control systems, see:
- Arm Control Overview
- Arm Control Modes
- Collision Avoidance and Detection
- Gravity Compensation
- Zero-G Mode
Baxter's arms are also loaded with a number of useful sensors. These include an 'eye-in-hand' camera, IR range sensor, accelerometer, and user input buttons.
- Infrared (IR) Range Sensors
- Navigators/Cuff Buttons
See the Hardware Specifications page for detailed hardware specs.
See Arm Control Modes for detailed explanations on the position, velocity, and torque arm control modes.
See the API Reference Page for information on the ROS Interface to the Arms.
Python API (
Limb interface class
limb.py) - The python baxter_interface class for limb control. Allows for all of the above control methods, abstracting the ROS communication into clean Python method calls.
Joint trajectory action server class
Examples & Tools
This section lists example programs which use the arms, demonstrating baxter_interface's Limb class (limb.py).
- Joint Position Keyboard Example
- The joint position keyboard example demonstrates how to move the arms using joint angles input based on keyboard input.
- Wobbler Example
- Simple demo that uses velocity control to move the arms in a random magnitude sinusoidal pattern.
- Puppet Example
- Reads the measured joint velocities of the input arm and 'puppets' (mimics) those velocity commands on the opposing arm.
- IK Service Example
- Basic example using the Inverse Kinematics solver service.
- Simple Joint trajectory example
- Enable the robot joint trajectory interface and send a simple joint trajectory for Baxter to follow.
- Joint Trajectory Playback Example
- Enable the robot joint trajectory interface, parse a file created using the joint recorder example, and send the resulting joint trajectory to the joint trajectory action server.
- Enable Robot Tool
- You need to have the robot enabled to control the arm motors. (Or... if you ever need a way to stop the motors via software.)
- Tuck Arms Example
- The tuck arms program will allow you to tuck/untuck Baxter's arms to/from 'shipping pose'.
- rviz (ROS)
- You can use the Robot Model to visualize the joint positions and tf world axes coordinates. Check out the Joint States Display Types.
- Maintenance tools