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)


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


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