From OpenRAVE
Jump to: navigation, search

Using OpenRAVE with ROS

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

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 packages can be found in jsk-ros-pkg:

  • openraveros - can send commands to OpenRAVE through the ROS network. There's tutorials in openraveros_tutorials.
  • 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 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