Robot Interface

Revision as of 05:02, 2 January 2017 by Swang (talk | contribs) (Head)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation , search

The robot_interface repository holds our python API for interacting with the 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.

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