Skip to content

MSc thesis regarding the application of a teleoperated multi-UAV system for cooperative payload transport.

License

Notifications You must be signed in to change notification settings

slim71/SpartanLIFT

Repository files navigation

SpartanLIFT (Swarm dePloyment in Autonomous Robot TeleoperAtioNs for Load-Intensive Flight and Transport)

MSc thesis regarding the application of a teleoperated multi-UAV system for cooperative payload transport.

Github License

License details


Environment info

OS

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy

ROS

$ echo $ROS_DISTRO
humble

The general ROS2 underlay is automatically sourced during each terminal startup in my configuration. I've achieved so simply by adding source /opt/ros/humble/setup.bash to the ~/.bashrc file. If you don't want to do so, always remember to manually source it.

Additionally, at the time of this project's creation, to correctly use ROS2 and Gazebo Garden we need to configure ros_gz in the local machine from source: this contains all additional packages needed for the ROS2-Gazebo integration. We can simply clone the repository in a workspace as a ROS2 package. Precise instructions can be found in the GitHub repository. Once configured, be sure to also source that overlay before using this project.

Note: if you don't want to configure ros_gz, check if pre-compiled packages are available.

Gazebo Garden

$ gz sim --version
Gazebo Sim, version 7.7.0
Copyright (C) 2018 Open Source Robotics Foundation.
Released under the Apache 2.0 License.

Controller library

I initially started with Ardupilot, but I soon had to switch over to PX4 because the former was not yet ready to be used in ROS2 projects when I started out. Among many things, this meant migrating from Gazebo 6 (Ignition) to Gazebo (Garden).

Models

Drone models and world files downloaded from the Fuel models page:

Installation

To build this project you can easily follow the official guidelines to build and execute ROS2 nodes. Here's a short step-by-step:

  1. git clone this project in a local folder
  2. Install all dependencies, specified in the Requirements chapter
  3. Source your global ROS2 environment (aka the underlay)
  4. Build the project using colcon build
  5. (optional) Execute smoke and unit tests with colcon test
  6. Source the install/setup.bash script (aka the overlay)
  7. Start the desired node or launch file

Requirements

For a more specific list, see the output of the "discover dependencies" task task.

A simple list:

  • ROS2 Humble → Installed as per official guide
  • colcon → Installed as per official guide (with autocompletion)
  • fmt → Installed from source
  • pugixml → Installed from source
  • PX4 → Installed as per official guide
  • eProsima Micro XRCE-DDS Agent → Installed as per official guide

To this you should also add all the other dependencies specified by third-party libraries used by the project.

Warnings during setup

As per this version, the output of colcon build has some warning messages to it. Moreover, I still have some warning myself, which I'll eventually resolve.

An example of output after a complete run, for the sake of completeness, can be found in this file.

Documentation

To generate doxygen style documentation, simply move to the root of the project and execute doxygen doc/Doxyfile. Output files will be created in the doc/html and doc/latex subfolders.

About

MSc thesis regarding the application of a teleoperated multi-UAV system for cooperative payload transport.

Resources

License

Stars

Watchers

Forks

Packages

No packages published