From BlenderWiki

Jump to: navigation, search

[edit] OpenRobots Simulator

This page introduces the OpenRobot Simulator project, lead by the LAAS-CNRS.

[edit] Presentation

The OpenRobots simulator is intended to be a versatile, open-source simulator for mobile robotic applications. Its development takes place in the frame of the robotics activities at LAAS-CNRS laboratory. At short term, the development will be driven by several (European and French) research projects with various requirements: from large simulation of multi-robots cooperation in open outdoor environments to human-robot interaction scenarii in small indoor environment.

The OpenRobots simulator is a part of the OpenRobots robotics framework. However a complete interoperability with several other robotics platforms like ROS and Yarp is expected.

The OpenRobots simulator is primarly developed as a part of the ROSACE project.

This document should be used in conjunction with the OpenRobots Simulator Launchpad project page, where single features (blueprints) are listed and related to each others.

[edit] Objectives

The OpenRobots simulator would like to be:


  • A versatile simulator for generic mobile robots simulation (single or multi robots),
  • Enabling realistic and dynamic environments (with other interacting agents -humans- or objects),
  • Designed with ease of use in mind (deployment over clusters, GUIs...),
  • Don't reinvent the wheel: critical components reused from other opensource projects (Blender and Blender GameEngine for 3D rendering + physical simulation + UI, dedicated robotic middlewares for communications + robot hardware support),
  • Adaptable to various level of simulation realism (for instance, we may want to simulate exteroceptive sensors like cameras in certain cases and access directly to a higher level representation of the world -like labelled artifacts- in other cases),
  • At least compatible with LAAS OpenRobots, YARP and ROS robotics frameworks,
  • Scalable (both in term of simulation capacity and ease of deployment),
  • Fully open source, BSD-compatible.


The OpenRobots simulator don't mean to be:


  • A simulator with accurate cinematics or dynamics (it won't be useful to simulate the dynamics of a robotic arm, for instance. See things like Move3D or Orocos for this kind of features),
  • A simulator with accurate time management (ie it doesn't mean to compete with things like HLA).


[edit] Software architecture

In order to achieve compatibility with the biggest amount of middlewares, the OpenRobots Simulator will probably rely on code generation to wrap components (simulated sensors and actuators) into communication layers in a vesratile way.

More on that topic here: Robotics:SimulatorSoftwareArchitecture.

[edit] Simulation components

The simulator is expected to rely on a library of reusable components to build simulation scenarii.

These components (mainly sensors and actuators) are made of:

  • A geometrical and physical representation (3D meshes with physical properties),
  • A formal description of what information they need/they produce,
  • Some code that implement, within the simulator (ie the Blender GameEngine), the behaviour of the component,
  • A UI to configure the component.

More on that topic here: Robotics:ComponentsFileFormat.

[edit] Construction of a simulation scenario

The workflow for creating a simulation scene from the several components of a robot and environment is based on the Blender Link capability to make reference to objects in different .blend files. The complexity of the scenes demands keeping components well organized.

More on that topic here: Robotics:LinkComponents.