= MORSE, the OpenRobot Simulator =


== Main features ==

 * A versatile simulator for generic mobile robots simulation (single or multi robots),
 * Enabling realistic and dynamic environments (with other interacting agents -humans- or objects),
 * Don't reinvent the wheel: critical components reused from other opensource projects (Blender for 3D rendering + physical simulation + UI, dedicated robotic middlewares for communications + robot hardware support),
 * Seamless workflow: since the simulator rely on Blender for both modelling and the realtime 3D engine, creating and modifying a simulated scene is straigthforward.
 * Entierely scriptable in Python,
 * 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),
 * Currently compatible with YARP and LAAS !OpenRobots robotics frameworks,
 * Fully open source, BSD-compatible.

== Documentation ==

 * [http://morse.openrobots.org/ Morse's web pages]
 * [http://homepages.laas.fr/slemaign/openrobots/doku.php?id=morse:user:summary User's guide]
 * [http://homepages.laas.fr/slemaign/openrobots/doku.php?id=morse:dev:summary Developer's guide]

== Videos ==

Videos are availables [http://vimeo.com/groups/blenderandrobotics online on vimeo]

== Road Map ==

The first release of MORSE contains only a subset of the final simulator specification.

Amongst the planned features:

 * Support for arms simulation, based on inverse kinematics. This has been separately developped by the Leuven's university and will be merge into MORSE over the next releases,
 * Raw sockets interface + full compatiblity with the ROS robotics framework (other robotics framework are planned as well. Let us know if you want to contribute in this area),
 * Developement of the user interface,
 * Scalablity (both in term of simulation capacity and ease of deployment),
 * Multi-node simulations (several Blender nodes can be started on several computer and automaticaly synchronise, which should allow simulations of tenth of robots in the same scene),
 * Dedicated supervision node that would allow to: observe the simulation, display logs and metrics, start/stop robots, dynamically alter the scene (like moving an obstacle in front of a robot, etc.).