Table of Contents
Fetching ...

ROScopter: A Multirotor Autopilot based on ROSflight 2.0

Jacob Moore, Ian Reid, Phil Tokumaru, Tim McLain

TL;DR

The architecture of ROScopter is described and how it can be used to test application code in both simulated and hardware environments, showing that ROScopter achieves similar performance to another state-of-the-art autopilot for basic waypoint-following maneuvers, but with a significantly reduced and more modular code-base.

Abstract

ROScopter is a lean multirotor autopilot built for researchers. ROScopter seeks to accelerate simulation and hardware testing of research code with an architecture that is both easy to understand and simple to modify. ROScopter is designed to interface with ROSflight 2.0 and runs entirely on an onboard flight computer, leveraging the features of ROS 2 to improve modularity. This work describes the architecture of ROScopter and how it can be used to test application code in both simulated and hardware environments. Hardware results of the default ROScopter behavior are presented, showing that ROScopter achieves similar performance to another state-of-the-art autopilot for basic waypoint-following maneuvers, but with a significantly reduced and more modular code-base.

ROScopter: A Multirotor Autopilot based on ROSflight 2.0

TL;DR

The architecture of ROScopter is described and how it can be used to test application code in both simulated and hardware environments, showing that ROScopter achieves similar performance to another state-of-the-art autopilot for basic waypoint-following maneuvers, but with a significantly reduced and more modular code-base.

Abstract

ROScopter is a lean multirotor autopilot built for researchers. ROScopter seeks to accelerate simulation and hardware testing of research code with an architecture that is both easy to understand and simple to modify. ROScopter is designed to interface with ROSflight 2.0 and runs entirely on an onboard flight computer, leveraging the features of ROS 2 to improve modularity. This work describes the architecture of ROScopter and how it can be used to test application code in both simulated and hardware environments. Hardware results of the default ROScopter behavior are presented, showing that ROScopter achieves similar performance to another state-of-the-art autopilot for basic waypoint-following maneuvers, but with a significantly reduced and more modular code-base.
Paper Structure (20 sections, 22 equations, 7 figures, 3 tables)

This paper contains 20 sections, 22 equations, 7 figures, 3 tables.

Figures (7)

  • Figure 1: Architecture of ROScopter within the ROSflight framework. ROScopter communicates with the ROSflight firmware via the ROSflightIO node.
  • Figure 2: Entry points for the ROScopter controller. Each entry point is a PID controller and is described in Table \ref{['tab:roscopter-cascading-controller']}. The ROScopter controller sends commands to the ROSflight firmware.
  • Figure 3: Top-down view of simulation and hardware flight test results using the exact same control and estimation gains on a HolyBro x650 quadcopter frame. Simulation and hardware responses match, highlighting how ROScopter can accelerate simulation to hardware transitions.
  • Figure 4: Response of the vehicle using ROScopter to commanded position and heading setpoints in hardware for the same trajectory shown in Figure \ref{['fig:experiments-roscopter-default-functionality']}.
  • Figure 5: Errors between truth and estimated states for ROScopter's estimator from simulation.
  • ...and 2 more figures