Skip to content

ctu-mrs/mrs_uav_controllers

Repository files navigation

MRS UAV Controllers

⚠️ Attention please: This README is outdated.

The MRS UAV System 1.5 is being released, and this page needs updating. Please keep in mind that the information on this page might not be valid.

Purpose of a controller within the MRS control pipeline

Available controllers

  • "SE(3) controller"
    • geometric state feedback in SE(3) capable of precise reference tracking and fast maneuvers
    • pros: precise control, fast response, fast convergence
    • cons: sensitive to measurement noise, requires a feasible and smooth reference, needs to be tuned
    • originally published in: Lee, et al., "Geometric tracking control of a quadrotor UAV on SE(3)", CDC 2010, link
  • "MPC controller"
    • SO(3) force tracking + Linear MPC for acceleration feedforward
    • pros: robust control, immune to measurement noise and reference infeasibilities
    • cons: larger control error than with SE(3)
    • briefly described in: Petrlik, et al., "A Robust UAV System for Operations in a Constrained Environment", RA-L 2020, link
  • "Failsafe controller"
    • feedforward controller for landing without a state estimator
    • is triggered in case of emergency

Controller interface

The controllers are compiled as ROS plugins (http://wiki.ros.org/pluginlib) with the interface defined by the control manager. A controller from any ROS package can be loaded dynamically by the control manager without it being present during control manager's compile time. Loaded controllers can be switched by the control manager in mid-flight, which allows safe testing of new controllers and adds flexibility to the MRS UAV system.

Loading controllers to the Control manager

An example controller plugin is located here.