Contents
What is the Baxter Interface (baxter_interface repository)
The baxter_interface repository holds our python API for interacting with the Baxter Research Robot. This comprises of a set of classes that provide wrappers around the ROS communications from Baxter, allowing for direct python control of the different interfaces of the robot.
Available Interfaces
The baxter_interface classes are available in the baxter_interface repository at baxter_interface/src/baxter_interface/
.
Documentation for these APIs is available here.
Limb
This is the main API for the robot's arms, and is instantiated by:
from baxter_interface import Limb
right_arm = Limb('right')
left_arm = Limb('left')
Its main uses are:
- Querying the joint states
- Switching between control modes
- And sending Joint Commands (position, velocity, or torque)
Gripper
This is the main API for interacting with Baxter's grippers, and is instantiated by:
from baxter_interface import Gripper
right_gripper = Gripper('right')
left_gripper = Gripper('left')
Its main uses are:
- Sending open/close commands to the gripper
- Querying the state/properties of the gripper
- Reacting to grippers being plugged/unplugged
- Calibrating the gripper
- And controlling aspects of how the gripper acts (velocity, moving force, holding force, dead band, vacuum threshold, etc.)
This is the main API for responding to interaction with Baxter's navigator interfaces, and is instantiated by:
from baxter_interface import Navigator
right_arm_navigator = Navigator('right')
left_arm_navigator = Navigator('left')
right_torso_navigator = Navigator('torso_right')
left_torso_navigator = Navigator('torso_left')
Its main uses are:
- Querying the state of the wheel
- Responding to wheel and button interactions
- And controlling the navigator lights
Robot Enable
This is the API responsible for enabling/disabling the robot, as well as running version verification, and instantiated by:
from baxter_interface import RobotEnable
baxter = RobotEnable()
Its main uses are:
- Performing Enable, Disable, Stop, Reset on the robot
- Getting the current robot state
- And verifying the version of the software
Camera
This is the main API for interacting with the cameras on the Baxter Research Robot, and is instantiated by:
from baxter_interface import CameraController
left_hand_camera = CameraController('left_hand_camera')
right_hand_camera = CameraController('right_hand_camera')
head_camera = CameraController('head_camera')
Its main uses are:
- Opening/closing cameras
- Updating camera resolution to another valid resolution mode
- Valid Modes:
- (1280, 800)
- (960, 600)
- (640, 400)
- (480, 300)
- (384, 240)
- (320, 200)
- Valid Modes:
- Getting/Setting camera settings (fps, exposure, gain, white balance, etc.)
Analog IO
This is the catchall API for interacting with analog Input/Output interfaces in the Baxter Research Robot, and is instantiated by:
from baxter_interface import AnalogIO
<component name> = AnalogIO(<component id>)
Available Analog Components:
- left_hand_range, right_hand_range
- left_itb_wheel, right_itb_wheel, torso_left_itb_wheel, torso_right_itb_wheel
- left_vacuum_sensor_analog, right_vacuum_sensor_analog
- torso_fan
Available options:
- _on_io_state: react to state changes
- state
- is_output: check to see if the component is capable of output
- set_output
For more information on the vacuum end-effector, see Vacuum Gripper Interface.
Digital IO
This is the catchall API for interacting with digital Input/Output interfaces in the Baxter Research Robot, and is instantiated by:
from baxter_interface import DigitalIO
<component name> = DigitalIO(<component id>)
A full list of available digital IO components is available here
Available options:
- _on_io_state: react to state changes
- state
- is_output: check to see if the component is capable of output
- set_output
Head
This is the API for dealing with head motion, and is instantiated by:
from baxter_interface import Head
<component name> = Head()
Available commands:
- _on_head_state: respond to state changes
- pan, nodding, panning: state values
- set_pan, command_nod
Settings
This is a storage location for a number of robot settings:
- Joint angle accuracy
- Head pan accuracy
- SDK Version
- Compatible Robot and Gripper versions with this version of the SDK