/mrs_uav_system

The entry point to the MRS UAV system.

Primary LanguageShellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Multi-robot Systems Group UAV system

thumbnail

The Multi-robot Systems Group is a robotics lab at the Czech Technical University in Prague. We mostly work with multi-rotor helicopters, and for them specifically, we develop this control, estimation, and simulation platform. We think that real-world and replicable experiments should support excellent research and science in robotics. Thus our platform is built to allow safe verification of approaches in planning, control, estimation, computer vision, tracking, and more.

Meta-repositories

These meta-repositories aggregate related packages.

Component 20.04 Description
mrs_uav_system Build Status Integrates uav_core and simulation
uav_core Build Status The minimum needed to fly a drone
simulation Build Status Simulation resources
uav_modules Build Status Optional UAV modules, drivers and utils
octomap_mapping_planning Build Status Octomap Mapping & Planning for UAVs
linux-setup Build Status Tomas's Linux configuration

System properties

The platform is

  • built using Robot Operating System Noetic,
  • meant to be executed entirely onboard,
  • can be deployed on any multi-rotor vehicle, given it is equipped with a PX4-compatible flight controller,
  • for both indoor and outdoor,
  • supports multi-robot experiments using Nimbro network communication.
  • provides both: agile flying and robust control.

The primary source of documentation is here: https://ctu-mrs.github.io/. However, the website only scratches a surface of what it should contain (and we know it). Our system is a research-oriented platform, and it evolves rapidly. Most of our users are either researchers (who already know the platform) or freshmen students (who might not know ROS at all). Maintaining up-to-date documentation for such an audience is hard work, since we mostly spend our time developing the system while using it for our research. So instead, we aim at educating our students to look around the packages (each contains its own README), explore the launch files and be able to read the code, which we strive to keep readable.

The system follows a description presented in the article doi.org/10.1007/s10846-021-01383-5, pdf:

Baca, T., Petrlik, M., Vrba, M., Spurny, V., Penicka, R., Hert, D., and Saska, M.,
"The MRS UAV System: Pushing the Frontiers of Reproducible Research, Real-world Deployment, and
Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 (2021).

Unmanned Aerial Vehicles

The MRS UAV system is currently pre-configured for the following UAV platforms, operated by the MRS. The platforms are order by the size / payload capacity.

Model Simulation Real UAV
DJI f330
DJI f450
Holybro x500
DJI f550
Tarot t650
NAKI II

Related packages

The following packages are not necessarily part of our automated installation. Therefore, you might need to clone them by yorself and place in your ROS workspace. Some of those are forks of third party repositories.

Package Description 20.04
MRS Gazebo Extra Resources MRS System-depended optional plugins and resources Build Status
Example ROS packages MRS ROS examples Build Status
Nimbro network ROS communication layer for multiple independent machines Build Status
MRS optic flow GPU-accelerated optic flow alorithm for UAV odometry Build Status
Hector SLAM 2D Laser-based LIDAR SLAM, how to
Hector SLAM - MRS fork + Nodeleted, how to Build Status
MRS Serial serial line interface to ROS, communicates using the BACA protocol Build Status
UVDAR mutual localization of UAVs using Ultra-Violet LED blinkers Build Status
UVDAR gazebo plugin Gazebo plugin for UVDAR Build Status
trajectory loader Loading UAV trajectories from CSV files Build Status
Bluefox2 MV Bluefox2 driver, MRS fork Build Status
Object detection Object detection by color segmentation Build Status
MRS utils Development utils Build Status
OctomapTools Octomap visualization and manipulation
MBZIRC 2020 - Wall Building System for automatic wall-building for MBZIRC 2020 Build Status
Summer School 2019 Summer School 2019 task - MTSP planning Build Status
Summer School 2020 Summer School 2020 task - UVDAR leader-follower Build Status
Summer School 2022 Summer School 2022 task - Multirobotic inspection and monitoring Build Status

Backwards compatibility and updates

We do not guarantee backwards compatibility at any time. The platform is evolving according to the needs of the MRS group. Updates can be made that are not going to be compatible with users local configs, simulation worlds, tmux sessions, etc. However, when we change something which requires user action to maintain compatibility, we will create an issue in this repository labelled users-read-me. Subscribe to this repository updates and issues by clicking the Watch button in the top-right corner of this page. Recent changes requiring user action:

Installation

Singularity and Docker

Singularity images with our system are the preferred way how a normal user should interract with our sustem. Pleaase, follow this link to learn how to run our system using Singularity.

Our Singularity images are built almost completely from Docker images. The following link points to our Docker HUB organization.

Native installation (not recommended)

Native installation is supported via a set of automated install scripts. Beware the installation will take a lot of disk space, is difficult to remove from the computer, and is often difficult to upgrade. The native installation is intended mostly for real drones. Most people should use MRS Singularity for working with the MRS system!

In the you want a native installation case we provide installation scripts that set everything up for you. Our automated install script will:

  • install Robot Operating System (ROS),
  • install other dependencies such git, gitman,
  • clone uav_core, simulation, example_ros_packages into ~/git,
  • install more dependencies such as tmux and tmuxinator
  • create our ros workspace (guide) in ~/mrs_workspace for the uav_core and simulation,
  • create a ros workspace in ~/workspace for examples (guide),
  • link our packages to the workspaces (guide),
  • compile the workspaces,
  • add configuration lines into your ~/.bashrc.

To start the automatic installation, please paste the following code into your terminal and press enter. You might be prompted a few times to confirm something by pressing enter:

cd /tmp
echo '
GIT_PATH=~/git
mkdir -p $GIT_PATH
cd $GIT_PATH
sudo apt-get -y install git
git clone https://github.com/ctu-mrs/mrs_uav_system
cd mrs_uav_system
git checkout master
git pull
./install.sh -g $GIT_PATH
source ~/.bashrc' > clone.sh && source clone.sh

"I already have ROS and just want to peek in"

If you already have ROS installed and if you are fluent with workspaces, .bashrc, catkin tools, etc., feel free to clone our repositories individually. The uav_core repository integrates our UAV control system. Please follow its README for further instructions on how to install its particular dependencies.

The simulation repository provides resources for Gazebo/ROS simulation, including px4 Simulation-in-the-Loop (SITL), UAV models and useful sensor plugins. Please follow its README for further instructions on how to install prerequisities.

"I want the Linux environment people from MRS works with"

Great! In that case you want to install Tomas's Linux-setup. Beware! This might alter your existing configuration of some Linux tools (Vim, Tmux, i3wm, ranger, ...). Refer to its README, for more information. Installation is not obligatory and the MRS UAV system will work without it.

Paste following code into your terminal and press enter

cd /tmp
echo "mkdir -p ~/git
cd ~/git
sudo apt-get -y install git
git clone https://github.com/klaxalk/linux-setup
cd linux-setup
./install.sh" > run.sh && source run.sh

For help with using the system, you can also refer to the MRS Cheatsheet.

Running the simulation

If you have successfully installed the system, you can continue with starting the simulation.