Commit 92f0c51d authored by Séverin Lemaignan's avatar Séverin Lemaignan
Browse files

Added initial README

parent 7b359e48
ROBOPILOT -- MORSE simulation prototype
=======================================
![Screenshot of the simulation](media/screenshot1.jpg)
This repository contains an early prototype of a [MORSE-based simulation](http://morse-simulator.github.io/) for the
ROBOPILOT project.
Structure
---------
The ROBOPILOT van is defined in
[van.blend](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/data/robopilotsim/robots/van.blend) (for the physical appearance + physics properties), in [builder/robots/van.py](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/src/robopilotsim/builder/robots/van.py) (for the configuration of sensors and actuators), and in [robots/van.py](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/src/robopilotsim/robots/van.py) (for the in-simulation behaviour -- mostly empty for now).
Depending on the MORSE's sensors (like the [semantic camera
sensor](http://www.openrobots.org/morse/doc/latest/user/sensors/semantic_camera.html)
used
[here](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/src/robopilotsim/builder/robots/van.py#L34))
and actuators (like the [`MotionVW` actuator] used
[here](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/src/robopilotsim/builder/robots/van.py#L21)
used on the van, MORSE makes it possible to control the van at different levels
of abstraction.
Other vehicles in the simulation (bikes, cars) are modelled as independent
robots (cf the [Vehicle type](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/src/robopilotsim/builder/robots/vehicle.py)). They can be controlled externally (cf below).
Running the simulation
----------------------
The simulation is entierly contained in this repository. To launch it, install
MORSE (on Ubuntu Linux/Debian, `sudo apt install morse-simulator`), clone this
repository, and run `morse run default.py` from within the repository.
Interfacing with MORSE
----------------------
External *clients* of the simulator can interact with each of the simulated
entities (the ROBOPILOT van, obviously, but also all the other vehicles in the
simulation).
In this early prototype, the default interface is using raw sockets. MORSE
provides a convenient python wrapper (`pymorse`) on top of the sockets to make
it easy to communicate with the simulation (note that, while MORSE is mostly a
Linux/macOS tool, `pymorse` runs happily on Windows: you can have the simulator
running on a Linux machine, and communicate with the simulator using `pymorse`
from a Windows machine).
Examples of `pymorse` usage are [available online](https://www.openrobots.org/morse/doc/stable/pymorse.html).
One example of a very simple client to control a bike is available in [scripts/](https://caidin.brl.ac.uk/s-lemaignan/morse-robopilot-sim/blob/master/robopilotsim/scripts/bikes_agent.py)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment