Skip to content

A toolbox to run simulations and experiments with PX4-powered drones

License

Notifications You must be signed in to change notification settings

dbenders1/drone_toolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drone toolbox

This toolbox contains Robot Operating System (ROS) packages with functionality to simulate and run experiments with different types of drones.

This README explains the usage of this repository with the following sections:

Repository overview

The main goal of this repository is to easily get started with drone simulation and experiments. To this end, the repository is structured as follows:

It includes the following packages:

  • A toolbox for the different supported drones (see Supported drones).
  • px4_tools: provides a PX4 control interface for running simulations and experiments and includes launch files for PX4-related packages.
  • drone_gazebo: provides custom world and vehicle models for simulations in Gazebo. Take care that most of the vehicle models are implemented in this fork of the PX4-SITL_gazebo repository.

Moreover, it includes the following directories:

The figure below shows how the repository can be used (together with the repositories it is dependent on) to create a full drone simulation/experiment pipeline:

This figure shows that the setup is modular to any navigation/planner/controller algorithm and any type of drone. Specifically, this repository contains the packages to implement:

  • A PX4 control interface to interface any algorithm implemented with a ROS node to the PX4 autopilot via the MAVROS interface.
  • Drone-specific functionality, including system identification simulation/experiment launch files and data post-processing.

The code is meant to be run from a launch file in the external navigation/planner/controller package. Note that the algorithms in this package do not need to run using ROS nodes with ROS communication, as long as there is one ROS interface node to establish communication with the node px4_control_interface_node. This option is not shown in the figure. A template controller package is available here and can be used as a baseline implementation for interfacing the custom navigation/planning/controller code with the PX4 control interface.

Supported drones

For each of the supported drones, a toolbox package (ROS metapackage) is created. These toolboxes provide code for different purposes:

  • System identification:
    • Parameters for drone model used in model-based controller (e.g., dynamical model for MPC)
    • Parameters for drone model used in simulator (e.g., SDF in Gazebo)
  • Running a simulation or experiment with one of the pre-defined PX4 controllers or an external controller.

Documentation

The documentation contains tutorials including the usage of PX4, PX4 with Gazebo simulation, PID tuning, and using a companion computer. Furthermore, it contains a troubleshooting section.

Documentation corresponding to a specific drone type can be found in drone_name/README.md.

About

A toolbox to run simulations and experiments with PX4-powered drones

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published