Skip to content

JMoore5353/thrust-mixing-saturation-lqr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aggressive Quadrotor Flight

This repository is a ROS2 implementation of the 2017 RAL paper titled "Thrust Mixing, Saturation, and Body-Rate Control for Accurate Aggressive Quadrotor Flight" by Faessler, et. al.

It is implemented to work with the ROScopter controller.

Building and running

Build and source this repository in a terminal (that has sourced ROS2) with

colcon build
source install/setup.zsh

Run with:

ros2 run thrust_mixing_lqr lqr_rate_controller

This node is designed to replace the ROScopter controller node. When using with ROScopter, don't launch the controller node, but do launch everything else.

Description

This package defines 3 executables that can be used with ROScopter. One is the LQR rate controller, which takes in rate commands and publishes commands directly to the ROScopter mixer (in pass-through mode).

The trajectory follower transcription node is designed to take output of the ROScopter trajectory follower (if the trajectory follower is outputting angles), and convert those angle commands to rate commands so that the LQR controller node can operate on them.

The last is an RC transcription node, which converts RC output from the rc_raw topic to rate commands, which are then passed to the LQR controller. Note that in order for this to work well, the firmware needs to set the RC stick deviation parameter to 1.0 (so that the ROSflight firmware doesn't hand control over to RC from offboard when the RC sticks deviate from center).

About

Implementation of 2017 RAL paper by Faessler et. al

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published