Main Page

From OpenRAVE

Revision as of 13:59, 31 July 2010 by Rdiankov (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Introduction to OpenRAVE - the Open Robotics Automation Virtual Environment

The key advantage to an open planning environment is that it enables the robotics research community to easily share and compare algorithms. 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 Automation 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. Because OpenRAVE is focused on autonomous motion planning and high-level scripting rather than low-level control and message protocols, it can be used in conjunction with other popular robotics packages such as ROS.

OpenRAVE supports a powerful scripting environment based on Python which makes it simple to control and monitor the demo and environment state. There are also supported interfaces for Octave and Matlab.

Get the sources for OpenRAVE at sourceforge by checking out from the subversion repository. Although there's no official download with a version number yet, the subversion tree is pretty stable. If by any chance there are compilation problems with it, try updating again in an hour.

svn co https://openrave.svn.sourceforge.net/svnroot/openrave/trunk openrave

The core OpenRAVE is licenced under the Lesser GPL, which makes it possible for commercial use. Most of the example demos and scripts are licensed under Apache License, Version 2.0, which is much less restrictive (similar to BSD except has extra protection from patents). The licenses for each of the plugins is up to the plugin authors, please check the source code.

Please support OpenRAVE development by referencing it in your works/publications/projects with:

@techreport{openrave,
   author = "Rosen Diankov and James Kuffner",
   title = "OpenRAVE: A Planning Architecture for Autonomous Robotics",
   institution = "Robotics Institute",
   month = "July",
   year = "2008",
   number= "CMU-RI-TR-08-34",
   url={http://openrave.programmingvision.com},
}

Installation and Setup

Getting Started

Architecture

Documentation

Core Documentation - C++ usage and core concepts. Download as a pdf file here.

openravepy Python API Documentation

Development/Support

The openrave-users mailing list has many answers to frequently asked questions. Subscribe here.

OpenRAVE uses trac to manage all its milestones, features, and bugs. Please report any problems or feature requests here; please assign the ticket to 'rdiankov' if you are not sure who should look at the ticket.

Components/Features

  • Interface Descriptions
    • Send an email to the openrave-users list if you want your open-source plugin posted here.

Python Examples

All examples can be found in the ${INSTALL}/share/openrave/openravepy/examples directory. To run openravepy examples, use

openrave.py --example XXX [options]

http://openrave.programmingvision.com/ordocs/en/openravepy-html/openravepy.examples-module.html

  • Constraint Planning - Example of a robot planning while maintaining orientation constraints for an object.

  • Grasp Planning with Camera Visibility - Example showing how to split the manipulation grasp planning framework into two stages: one to achieve sensor visibility, and the other to plan for grasps while slowing getting closer to the goal.

  • Working with Sensors - How to implement and use simulated and real sensors like laser range finders and cameras.

  • Opening and Closing Doors - Example of how to create a grasp set for any hand that cages the handles of doors, and how to efficiently plan with these grasp sets to open and close doors for any robot. Manipulation with caging increases the configuration spaces of the robot and allows the robot to achieve tasks that would be infeasible without it.

  • Registering Callbacks - Examples of how to register callbacks in python like getting selected point on viewer or handling collisions for the physics engine.

Knowledge-base Generators

Click on any image to see usage and explanation.

Analytical Inverse Kinematics Solvers

Stable Grasp Computation

Convex Decomposition

Link Statistics

Kinematic Reachability

Inverse Reachability

Visibility Models

For Development

Authors and History

OpenRAVE was founded by Rosen Diankov at the Quality of Life Technology Center 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 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.

Developers

Rosen Diankov - core developer, author of many of the plugins, maintains the wiki documentation and example code.

A list of contributors can be found here.

Robot Systems/Libraries using OpenRAVE


  • OpenGRASP - OpenGRASP is an open source simulation toolkit for grasping and dexterous manipulation. It supports the creation and addition of new functionality and the integration of existing and widely used technologies and standards.

  • Modular Robots - OpenMR is an OpenRave Modular Robots plug-in for simulating the locomotion of modular robots.

  • Robotics Manipulation System - Focuses on a full robot system using OpenRAVE and the Robot Operating System (ROS) architecture. It deals with autonomous manipulation with vision feedback, sensor loops, and higher-level reasoning.

(If you have a project using OpenRAVE and want to post it here, email Rosen Diankov.)

Personal tools