The robot_interface repository holds our python API for interacting with the robot. This comprises of a set of classes that provide wrappers around the ROS communications for your robot, allowing for direct python control of the different interfaces of the robot.
Contents
Available Interfaces
The intera_interface classes are available in the intera_sdk repository at intera_sdk/intera_interface/src/intera_interface/
. Documentation for these APIs is available here.
Limb
This is the main API for the robot's arms, and is instantiated by:
from intera_interface import Limb right_arm = Limb('right')
It's 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 Sawyer's gripper, and is instantiated by:
from intera_interface import Gripper right_gripper = Gripper('right')
Its main uses are:
- Sending open/close commands to the gripper
- Querying the state/properties of the gripper
- Reacting to gripper being plugged/unplugged
- Calibrating the gripper
- And controlling aspects of how the gripper acts (velocity, moving force, holding force, dead band, etc)
Navigator
This is the main API for responding to interaction with Sawyer's navigator interfaces, and is instantiated by:
from intera_interface import Navigator right_arm_navigator = Navigator('right') right_torso_navigator = Navigator('torso_right')
Its main uses are:
- Querying the state of the wheel
- Responding to wheel and button interactions
- And controlling the navigator lights
Camera
This is the main API for interacting with the cameras on the Sawyer Research Robot, and is instantiated by:
from intera_interface import Cameras
The cameras on Sawyer robot are: 'head_camera' and 'right_hand_camera'.
cameras = Cameras('head_camera')
Its main uses are:
- Starting/stopping camera streaming
- Switch between cameras: head_camera, right_hand_camera
- Get camera list
Head
This is the API for dealing with head motion, and is instantiated by:
from intera_interface import Head <component name> = Head()
Available commands:
- _on_head_state: respond to state changes.
- blocked: check if the head is currently blocked from movement.
- pan, pan_mode, panning: state values.
- set_pan
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