PhD: workflow
Exploration of a large underwater area with autonomous vehicles
Here are listed some worksteps of my PhD:
- Displaying position boxes inside MORSE (11/2014)
- Updating the compatibility between MOOS and MORSE (11/2014)
- Setting up the software architecture (10/2014)
November 2014Displaying position boxes inside MORSE
With interval analysis, robot's position will no longer be scalar but extended
as a 3D subpaving. A huge position box would means that the
robot is lost, a small one that it has a precise estimation of its own position.
It will be useful to display this position as a box in the 3D
simulator (with MORSE and Blender). This feature is not included in MORSE.
It could interest many people dealing with
intervals for robotics.
I forked again the MORSE repository on Github and tried to add this new functionality.
My goal is to control one object (let's call it PositionBox) by robot from the corresponding
MOOS Community. It took me a while to understand the organization of MORSE's code
but I finally reached my goal:
For now, this feature is only available in my MORSE's fork.
November 2014Updating the compatibility between MOOS and MORSE
When I started my PhD, I could only make a link between MORSE and MOOS through
one single MOOS community. It is not enough if I want to simulate several
robots: the use of several MOOS communities will be required.
I forked the Github repository of the MORSE project, updated the simulator and
made a pull-request to the developers.
A multi-node simulation using MORSE and MOOS is now possible:
October 2014Setting up the software architecture
My work is focused on autonomous robots and collaboration inside a swarm
of vehicles. In order to test my algorithms (during sea missions or
virtual simulations), I have to set up several software parts such as
middleware, mathematical libraries, 3D displays, etc.
This future architecture will be used in two cases: for simulations (3D, 2D)
in the lab and for sea trials. To save time, it is worth it to keep as much as
possible the same software organization, introducing hardware in the loop
for concrete demonstrations. This will be possible using a good middleware and
keeping identical development environments between robots and simulation's computer.
Middleware: introducing The MOOS
MOOS is a middleware borned in the MIT, initiated by Paul Newman from
Oxford University and used in several robotics fields as a communication base
between each part of a robot and between robots themselves. MOOS, a
Mission Oriented Operating Suite, is equivalent to ROS, a
Robot Operating System, widely used in robotics.
Nowadays MOOS is used in a strong community including MIT, Bluefin Robotics, US Navy,
Oxford University and CMRE (the NATO underwater research centre in Italy). Numerous MOOS
modules are available thanks to this community, specifically with the MIT for marine robotics
purposes.
MOOS enables to divide robot's software into a suite of processes. The applications (called
MOOSApps) communicate through a MOOSDB: a central database in which it is possible to see
the current state of each MOOS variable (called MOOSVar). Onboard of an AUV, we can for instance
communicate XYZ locations, heading values, camera images, simulated sea currents, etc.
MOOS will be placed at the heart of my software architecture and will be used both in
simulations and sea trials. The IvP part, developed by MIT, is a specific MOOS module
used for decision taking. I plan to use it to combine
different behaviors during a mission.
Interval analysis: two tools
I will have to compute intervals for localization and mapping purposes. This will
be done using the IBEX library as a based for interval arithmetic. I may add a software
overlay focused on robotics. This is being discussed in the laboratory.
VIBes is a Visualizer for Intervals and BoxES. It aims to keep it simple and fast.
3D simulation: integration of Blender into the architecture
Blender is powerful 3D computer graphics software and could be an interesting
tool for 3D simulations. It is a free and open-source software usable through its
Python API. The link between robotics research and Blender simulation can be made
with MORSE, a generic simulator for academic robotics.
I will have to contribute to MORSE in order to link it with the MOOS middleware.
For now, MORSE is working with MOOS but only with one MOOS community
(i.e. one single robot). On top of that, some actuators and sensors applicable on simulated robots
are still missing for this middleware.
My progress on this work will be described soon.