The Multi-robot Systems Group is a robotics lab at the Czech Technical University in Prague. We specialize in multi-rotor helicopters, and for them specifically, we develop this control, estimation, and simulation system. We think real-world and replicable experiments should support excellent research and science in robotics. Thus, our platform is built to allow safe real-world experimental validation of approaches in planning, control, estimation, computer vision, tracking, and more.
Do you want to monitor the state of transition to ROS2 in real time? Check the following diagram:
The system is
- built on the Robot Operating System Jazzy,
- meant to be executed entirely onboard on a companion computer,
- can control underactuated multirotor helicopters,
- contains control, state estimation, mapping, and planning pipelines.
The primary documentation source is here: https://ctu-mrs.github.io/. However, the website only scratches the 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). Maintaining up-to-date documentation for such an audience is hard work since we mostly develop 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 control and estimation system are described 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).
- Install the Robot Operating System (Jazzy):
curl https://ctu-mrs.github.io/ppa2-stable/add_ros_ppa.sh | bash
sudo apt install ros-jazzy-desktop-full ros-dev-tools-
Configure your ROS environment according to https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html#setup-environment
-
Add the stable PPA into your apt-get repository:
curl https://ctu-mrs.github.io/ppa2-stable/add_ppa.sh | bash-
>>> Special instructions for the MRS System developers <<<
- Instead of the stable PPA, you can add the unstable PPA, for which the packages are build immediatelly after being pushed to ros2.
- If you have both PPAs, the unstable has a priority.
- Beware! The unstable PPA might be internally inconsistent, buggy and dangerous!
- Install the MRS UAV System:
sudo apt install ros-jazzy-mrs-uav-system-full- Start the example MRS simulation session:
cd /opt/ros/jazzy/share/mrs_multirotor_simulator/tmux/mrs_one_drone
./start.sh| Main metapackages | Contents | Repository | Package |
|---|---|---|---|
| MRS UAV System | UAV Core & UAV Modules | mrs_uav_system | ros-jazzy-mrs-uav-system |
| MRS UAV System - Full | All of the bellow | mrs_uav_system | ros-jazzy-mrs-uav-system-full |
| Optional Modules & metapackages | Repository | Package |
|---|---|---|
| UAV Core | mrs_uav_core | ros-jazzy-mrs-uav-core |
| UAV Modules | mrs_uav_modules | ros-jazzy-mrs-uav-modules |
| Octomap Mapping+Planning | mrs_octomap_mapping_planning | ros-jazzy-mrs-octomap-mapping-planning |
| OpenVINS Core | mrs_open_vins_core | ros-jazzy-mrs-open-vins-core |
| PointLIO Core | mrs_point_lio_core | ros-jazzy-mrs-point-lio-core |
| Precise Landing | TODO | TODO |
| ALOAM Core | TODO (?, probably not) | TODO |
| LIO-SAM Core | TODO (?, probably not) | TODO |
| Hector Core | TODO (?, probably not) | TODO |
| Simulators | Repository | Package |
|---|---|---|
| MRS Multirotor Simulator | mrs_multirotor_simulator | ros-jazzy-mrs-multirotor-simulator |
| FlightForge Simulator | mrs_uav_flightforge_simulator | ros-jazzy-mrs-uav-flightforge-simulator |
| Gazebo Simulator | mrs_uav_gazebo_simulation | ros-jazzy-mrs-uav-gazebo-simulator |
| Coppelia Simulator | TODO | TODO |
| Hardware API plugins | Repository | Package |
|---|---|---|
| PX4 API | mrs_uav_px4_api | ros-jazzy-mrs-uav-px4-api |
| DJI Tello API | mrs_uav_dji_tello_api | ros-jazzy-mrs-uav-dji-tello-api |
| Examples | Repository |
|---|---|
| Core examples | mrs_core_examples |
| Computer Vision examples | mrs_computer_vision_examples |
| Gazebo Custom Drone example | TODO |
Build status (Buildfarm)
We utilize acceptance tests to determine the releasaiblity of the system and to release the system automatically. The stable version of our system should be installable and working allways regardless of the state of the tests and red flags below.
Download from Dockerhub: ctumrs/mrs_uav_system
The multiarch (AMD and ARM64) docker image contains the ros-jazzy-mrs-uav-system-full ROS package and, with that, all the MRS dependencies.
ROS2 Build status (in development)(Buildfarm2)
| Stable | Testing | Unstable |
|---|---|---|
Any package within the system have the option to generate a docker image.
These are typically thirdparty package with complex dependencies that can not be easily satisfied through the apt installation system.
Additionally, the mrs-uav-system package generates a docker image with the full system.
| Stable | Unstable | |
|---|---|---|
| MRS ROS Packages | ||
| Thirdparty ROS packages |
| Stable | Release candidate | Unstable | Test coverage |
|---|---|---|---|
| Stable | Release Candidate | Unstable | |
|---|---|---|---|
| MRS ROS Packages | |||
| Thirdparty ROS packages | |||
| Non-ROS packages |
| Stable | Unstable | |
|---|---|---|
| MRS ROS Packages | ||
| Thirdparty ROS packages | ||
| Non-ROS packages |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.




