Skip to content

Coverage path planning for an underwater robot monitoring an algae farm

License

Notifications You must be signed in to change notification settings

CorentinChauvin/marine-farm-cpp

Repository files navigation

MFCPP

Corentin Chauvin-Hameau -- 2019-2020

farm

Contents

Overview

This projects tackles informative path planning for an underwater robot surveying an algae farm. It proposes a simulation of the algae farm, the robot and its sensors, along with a navigation pipeline collecting information about the farm, generating trajectories to collect as much information as possible and controlling the robot to follow it. The entire architecture of the software can be found in the following figure:

It is composed of several modules, split into a simulation and a navigation pipeline. The farm simulator generates algae lines and populates it with algae. Each algae has an interest heatmap which encodes zones of interest that need to be surveyed. The robot is simulated by integrating its dynamic equations at a regular pace, and its camera by casting rays and checking for collisions with a collision engine. A Gaussian Process updated by Kalman Filter gathers information about the farm. Using this, a path planner samples viewpoints along the algae wall and selects the ones that maximises information gain. Finally, a Model Predictive Controller generates control input to send to the robot so that it follows the desired reference trajectory while taking dynamic constraints into account. A high level planning module handles switching between algae lines or between wall sides for example.

Getting started

This software requires ROS. It has been tested on Ubuntu 16.04 with ROS Kinetic. To install and start using it, simply follow these steps:

mkdir -p ros_ws/src
cd ros_ws/src
git clone --recursive https://github.com/CorentinChauvin/marine-farm-cpp.git
catkin build
source ../devel/setup.bash

roslaunch mf_experiments one_wall.launch

Main launchfile

mf_experiments/launch/one_wall.launch is the main launchfile to start a simulated experiment where the robot surveys one algae wall. It has allows to select options in the introduction of the file. The different options are the following:

Parameter name Meaning
rviz Whether to run Rviz visualisation
display_img_gp Whether to visualise the map estimated by Gaussian Process
display_cov_gp Whether to visualise the Gaussian Process covariance
display_diff_gp Whether to visualise the difference between Gaussian Process map and ground truth
path_planning Whether to start the path planner
back_forth_traj Whether to publish a predefined back and forth path
planner_initially_disabled Whether the planner is disabled when surveying the first side of the wall. If so, the robot will follow the back and forth trajectory if back_forth_traj is set to true
mpc_control Whether to start the Model Predictive Controller
cart_control Whether to start a cartesian controller. If so, the robot will follow the reference trajectory without taking care of any dynamic constraint.
accelerate_time Whether to change the time factor of the simulation, to accelerate the process
experiment_stats Whether to start the process recording statistics about the experiment
save_gp_mean Whether to save the mean of the Gaussian Process in a file at the end of the experiment
load_gp_mean Whether to load the mean of the Gaussian Process from a file at the beginning of the experiment

Configuration files

The different modules of the pipeline can be configured through several configuration files:

File name Configuration
mf_farm_simulator/config/farm_simulator.yaml Farm generation
mf_robot_simulator/config/robot_simulator.yaml Robot model and simulation
mf_sensors_simulator/config/sensors_simulator.yaml Camera simulation
mf_mapping/config/mapping.yaml Gaussian Process mapping
mf_navigation/config/navigation.yaml Path planning and control
mf_experiments/config/one_wall.yaml Details about the algae wall surveying experiment, and overwrite some specific parameters defined previously

API documentation

More details on the software can be found on the API documentation here.

License

The main part of the software is released under the open source license GNU LGPL-3.0. It makes use of few dependencies released under different licenses:

Read more

More information about the method and the software can be found in the related Master's Thesis published here.

To cite:

@mastersthesis{chauvin2020informative,
  author = {Corentin Chauvin-Hameau},
  title  = {Informative path planning for algae farm surveying},
  school = {KTH, School of Electrical Engineering and Computer Science (EECS)},
  year   = 2020
}

About

Coverage path planning for an underwater robot monitoring an algae farm

Resources

License

Stars

Watchers

Forks

Packages