|
1 | 1 | # MRS UAV Controllers |
2 | 2 |
|
3 | | - |
4 | | - |
5 | | -> :warning: **Attention please: This README is outdated.** |
6 | | -> |
7 | | -> 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. |
8 | | -
|
9 | | -## Purpose of a controller within the MRS control pipeline |
10 | | - |
11 | | -* receiving an all-state reference from [reference trackers](https://github.com/ctu-mrs/mrs_uav_trackers) |
12 | | -* outputs control command to the [HW Api](https://github.com/ctu-mrs/mrs_uav_hw_api). |
13 | | - |
14 | | -## Available controllers |
15 | | - |
16 | | -* "SE(3) controller" |
17 | | - * geometric state feedback in SE(3) capable of precise reference tracking and fast maneuvers |
18 | | - * **pros**: precise control, fast response, fast convergence |
19 | | - * **cons**: sensitive to measurement noise, requires a feasible and smooth reference, needs to be tuned |
20 | | - * originally published in: `Lee, et al., "Geometric tracking control of a quadrotor UAV on SE(3)", CDC 2010`, [link](https://ieeexplore.ieee.org/abstract/document/5717652) |
21 | | -* "MPC controller" |
22 | | - * SO(3) force tracking + Linear MPC for acceleration feedforward |
23 | | - * **pros**: robust control, immune to measurement noise and reference infeasibilities |
24 | | - * **cons**: larger control error than with SE(3) |
25 | | - * briefly described in: `Petrlik, et al., "A Robust UAV System for Operations in a Constrained Environment", RA-L 2020`, [link](https://ieeexplore.ieee.org/abstract/document/8979150) |
26 | | -* "Failsafe controller" |
27 | | - * feedforward controller for landing without a state estimator |
28 | | - * is triggered in case of emergency |
29 | | - |
30 | | -## Controller interface |
31 | | - |
32 | | -The controllers are compiled as *ROS plugins* ([http://wiki.ros.org/pluginlib](http://wiki.ros.org/pluginlib)) with the [interface](https://github.com/ctu-mrs/mrs_uav_managers/blob/master/include/mrs_uav_managers/controller.h) defined by the [control manager](https://github.com/ctu-mrs/mrs_uav_managers). |
33 | | -A controller from any ROS package can be loaded dynamically by the [control manager](https://github.com/ctu-mrs/mrs_uav_managers) without it being present during [control manager](https://github.com/ctu-mrs/mrs_uav_managers)'s compile time. |
34 | | -Loaded controllers can be switched by the [control manager](https://github.com/ctu-mrs/mrs_uav_managers) in mid-flight, which allows safe testing of new controllers and adds flexibility to the [MRS UAV system](https://github.com/ctu-mrs/mrs_uav_system). |
35 | | - |
36 | | -## Loading controllers to the [Control manager](https://github.com/ctu-mrs/mrs_uav_managers) |
37 | | - |
38 | | -An example controller plugin is located [here](https://github.com/ctu-mrs/mrs_core_examples). |
| 3 | +Please follow to the [documentation page](https://ctu-mrs.github.io/docs/features/controllers/). |
0 commit comments