Purpose: Determine and describe the requirements for an extendable ROS layer to expose OpenRAVE functionality while coordinating with real arm motion

Intended Audience: Andrews Robotics Initiative team members with minimum background in ROS and OpenRAVE

Author History: 09/02/2011: Sam Pottinger -


Overall Description

Required Functionality:

User Classes and Characteristics:

Operating environment: ROS-supported Linux environment with OpenRAVE

User environment: Any ROS-capable environment

Design / Implementation Constraints:

Assumptions and Dependencies:

External Interface Requirements

User interfaces: OpenRAVE simulation

Hardware interfaces: Device descriptors for robot components

Software interfaces: OpenRAVE API, device specific interface

Communication protocols: USB / libusb, ROS, ROS over IP

System Requirements

CRUD Interface for OpenRAVE environment objects: External facing ROS interface for moving and updating positions of objects in simulation

Read/Update interface for arm and arm components:

Read location and orientation of sensors:

Axis conversion based on interest

Move environment object with arm

Work with multiple arms: different topics 


Non-functional requirements

Performance requirements: Fast visual servoing

Safety requirements: Handled by ROS

Software quality requirements: None specific currently imposed

Project documentation: Epydoc, Javadoc, etc. depending on choice for implementation language

User documentation: Summarized page