Main Page
From OpenRAVE
Contents |
Introduction to OpenRAVE
One of the challenges in developing real-world autonomous robots is the need for integrating and rigorously testing high-level scripting, motion planning, perception, and control algorithms. For this purpose, we introduce an open-source cross-platform software architecture called OpenRAVE, the Open Robotics and Animation Virtual Environment. OpenRAVE is targeted for real-world autonomous robot applications, and includes a seamless integration of 3-D simulation, visualization, planning, scripting and control. A plugin architecture allows users to easily write custom controllers or extend functionality. With OpenRAVE plugins, any planning algorithm, robot controller, or sensing subsystem can be distributed and dynamically loaded at run-time, which frees developers from struggling with monolithic code-bases. Users of OpenRAVE can concentrate on the development of planning and scripting aspects of a problem without having to explicitly manage the details of robot kinematics and dynamics, collision detection, world updates, and robot control. The OpenRAVE architecture provides a flexible interface that can be used in conjunction with other popular robotics packages such as Player and ROS because it is focused on autonomous motion planning and high-level scripting rather than low-level control and message protocols. OpenRAVE also supports a powerful network scripting environment which makes it simple to control and monitor robots and change execution flow during run-time using scripting languages like Octave and Matlab. One of the key advantages of open component architectures is that they enable the robotics research community to easily share and compare algorithms.
Download OpenRAVE at sourceforge.
Installation and Setup
Getting Started
- OpenRAVE Basics
- XML File Format and Object/Kinematic Structures
- Scripting
- Writing Plugins and Introduction to the OpenRAVE Architecture
Examples/Tutorials
- Working with Simulations - How OpenRAVE simulates the world and differences between running in the real world.
- Grasping - How to simulate grasping objects with OpenRAVE using force closure metrics.
- Hanoi Puzzle - How to solve the Hanoi Puzzle with OpenRAVE scripting.
- Playing Chess - Simple example of a scene and a person moving chess pieces on a chessboard.
Developer Notes
- API Documentation - Download as a pdf file here.
- Multithreading/Parallel Execution
Misc
- Spinning Laser - Connecting OpenRAVE to a spinning laser running on the Qwerk Motherboard through Player.
- OpenRAVE Player Controller - How to compile the player client for robots that provide the actarray interface.
Plugins in Distribution
This is a list of the plugins from the OpenRAVE SourceForge repository and the type of interfaces they offer.
Controllers
- ControllerPD (basecontrollers) - Simple PID controller for simulations.
- IdealController (basecontrollers) - Ideal controller used for planning and non-physics simulations.
- PlayerController (playerrave.so) - Player client wrapped in a controller. The controller can be used to synchronize multiple different actarray servers that for one robot. For example, in mobile robotics the arm, hand, and moving base are usually separate control threads running on potentially different computers. This player controller can be used to give OpenRAVE a unified control and view of the robot.
- SimplePlayerController (playerrave) - A player controller that does not support all the synchronization features. Should be used for actarray servers that don't support all the features of an actarray interface.
Planners
- BasicRRT (basicrrt) - Basic forward search RRTs with a goal bias.
- BiRRT (birrt) - Bi-directional RRTs
- J.J. Kuffner and S.M. LaValle. RRT-Connect: An efficient approach to single-query path planning. In Proc. IEEE Int'l Conf. on Robotics and Automation (ICRA'2000), pages 995-1001, San Francisco, CA, April 2000.
- BiSpace (bispace) - BiSpace algorithm
- Rosen Diankov, Nathan Ratliff, Dave Ferguson, Siddhartha Srinivasa, James Kuffner. BiSpace Planning: Concurrent Multi-Space Exploration. Robotics: Science and Systems Conference, June 2008.
- GraspExploration (grasper) - RRT meant to explore the space
- Grasper (grasper) - Simple planner that performs a follow and squeeze operation of a robotic hand.
- RA* - (rplanners) - Randomized A*
- Rosen Diankov, James Kuffner. Randomized Statistical Path Planning. Intl. Conf. on Intelligent Robots and Systems, October 2007.
- rBiRRT - (rplanners) - Another implementation of Bi-directional RRTs.
Problems
- BaseManipulation (basemanipulation) - Very useful routines for manipulation planning and planning in general!
- GrasperProblem (grasper) - Used to simulate a hand grasping an object by closing its fingers until collision with all links.
- Logging (logging) - Can save the entire scene to an XML file and can record/playback the motions of each object of entire OpenRAVE sessions.
- Player (playerrave) - Can create various player clients to communicate with player interfaces like the laser and position3d.
Robots
- GenericRobot (baserobots) - Generic default robot that supports simple trajectory execution.
- Humanoid (baserobots) - Humanoid robot with explicit definitions on a head, two hands, and two feet.
Inverse Kinematics Solvers
- PUMA (baserobots) - for 6 DOF PUMA arm.
- WAM4 (basemanipulation) - for the first 4 DOF (no wrist) of the Barrett Whole Arm Manipulator (WAM).
- WAM7 (basemanipulation) - for the entire 7 DOF Barrett Whole Arm Manipulator (WAM).
- manus_larm6 (baserobots) - for the 6 DOF left Manus arm from Exact Dynamics BV.
- manus_rarm6 (baserobots) - for the 6 DOF right Manus arm from Exact Dynamics BV.
Sensor Systems
None
Media and Projects
This is a list of some of the projects that have used OpenRAVE in the past:
- Humanoid Grasp Planning - Dmitry Berenson, Rosen Diankov, Koichi Nishiwaki, Satoshi Kagami and James Kuffner, Grasp Planning in Complex Scenes, IEEE-RAS Intl. Conf. on Humanoid Robots, December 2007.
- Manipulation Planning for a Bar Keeper - Siddhartha Srinivasa, Dave Ferguson, Mike Vande Weghe, Rosen Diankov, Dmitry Berenson, Casey Helfrich, Hauke Strasdat. The Robotic Busboy: Steps Towards Developing a Mobile Robotic Home Assistant. 10th International Conference on Intelligent Autonomous Systems, July 2008.
Authors and History
OpenRAVE was founded at the Planning And Autonomy Lab in the Carnegie Mellon University Robotics Institute. It was inspired from the RAVE simulator James Kuffner had started developing in 1995 and used for his experiments ever since. The OpenRAVE project was started in 2006 by Rosen Diankov and is a complete rewrite of RAVE. Our main goal with OpenRAVE is to create a planning architecture that would give robotics researchers an easy open-source interface to control their robots both in simulation and in the real-world without having to worry about the small details.
Founders and Maintainers
- Rosen Diankov - core developer and author of many of the opensource plugins
Plugin Authors and Contributors
- Dmitry Berenson - manipulation and planning plugins
Other Users
- Personal Robotics at Intel Research Pittsburgh

