Developers documentation

Get involved!

You can write to the list of developers of the project, writing to this address: morse-dev@laas.fr.

MORSE developement can be tracked online with GitHub: MORSE on GitHub

Fork it from your own GitHub account, or get the source directly from the LAAS master repository:

$ git clone git://git.openrobots.org/git/robots/morse

Coding guidelines

Coding conventions in MORSE follows Python’s PEP 008.

In particular, we use the standard Python logging framework. So please, no print()!

To use logging in your module:

import logging; logger = logging.getLogger("morse." + __name__)

#...
#...
# logger.info("...")
# logger.debug("...")
# ...etc

MORSE is set to use by default the INFO logging level. You can easily set the logging level to DEBUG in a specific module by adding to it:

logger.setLevel(logging.DEBUG)

Overview

An overview of code organization in MORSE

Overview for MORSE organization

Workflow

Principle of interaction with Blender and the game engine

Overview for MORSE workflow for developers

Adding validation tests

New features are expected to provide unit-tests to validate them.

Unit-testing in MORSE

Creating a new component (robot, sensor or actuator)

Create a sensor. Explain the logic

Tutorial: Adding a new component

Creating a modifier

EZ if in python, a bit more complex if we call an external library (cf impact on the dependencies)

Tutorial: Creating a modifier

Adding the support of a new middleware

Introduce how to add the support for a new middleware

Tutorial: Adding the support for a new middleware

Simulation supervision

Besides component-specific services and data stream (documented on each component’s own documentation page), MORSE provides a set of supervision services that may be used to remotely control the global behaviour of the simulator: