Robotics Manipulation System

From OpenRAVE

Jump to: navigation, search

Shows how to setup a full robot system with OpenRAVE, Robot Operating System (ROS), and the CMU ROS packages. Any robot system should deal with autonomous manipulation with vision feedback, sensor loops, and higher-level reasoning.

Using OpenRAVE with ROS

OpenRAVE can be used in many different scenarios.

  • There is one openrave instance that does the planning and you would like all controllers/sensor feeding that to it. We'll call this the Master
  • There are openrave instances outside of the Master that wrap hardware/simulation controllers, generate simulated sensor data. These instances publish to the ROS network and usually feed into the Master openrave.

OpenRAVE plugins connecting to ROS

There are several openrave/ros plugins that create nodes internally and advertise/subscribe to messages. These plugins can be found in these ROS packages:

  • openrave_sensors - subscribe to ROS messages for getting sensor data into openrave (loaded by Master)
  • openrave_robot_control - simple session interface for controlling robots over the ROS network with openrave being the underlying client. You'll notice in the lib folder is a librobot_control.so openrave plugin which the Master loads)
  • schunk_motion_controllers - connects to the hardware Schunk interfaces and advertises services to control a robot.
  • orrosplanning - misc plugins for reading sensing data and displaying it into openrave. For example, if there is a node plublishing checkerboard_detector/ObjectDetection messages, it is possible to use the ObjectTransform openrave SensorSystem interface to display the objects inside the environment.

Component Tutorials

Personal tools