From 4d2b3b5f57252b8d4eaca06ef3f2ce01dfefa7a3 Mon Sep 17 00:00:00 2001 From: Astik Srivastava <101447736+Astik-2002@users.noreply.github.com> Date: Sun, 18 Feb 2024 10:07:20 +0530 Subject: [PATCH] Update README.md --- libraries/AC_CustomControl/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/AC_CustomControl/README.md b/libraries/AC_CustomControl/README.md index 2d2d4a892d1350..c5cbefe29f5ac7 100644 --- a/libraries/AC_CustomControl/README.md +++ b/libraries/AC_CustomControl/README.md @@ -256,3 +256,7 @@ AC_CustomControl_PID::AC_CustomControl_PID(AC_CustomControl &frontend, AP_AHRS_V 12. Add reset functionality inside `reset` function of `AC_CustomControl_XYZ.cpp` file. It is user's responsibility to add proper controller resetting functionality. This highly depends on the controller and it should not be copy-pasted from another backend without testing it in SITL. 13. You can access target attitude and target rate values using `atti_control->get_attitude_target_quat()` and `atti_control->rate_bf_targets()` functions, respectively. You can also access latest gyro measurement using `_ahrs->get_gyro_latest()` function. Take a look at other backends + +## Integral action Linear Quadratic Regulator controller + +1. This controller serves as an example on using this library for deploying your own attitude controllers. The LQR controller implemented here essentially works like an attitude PID controller, wherein the PID gains for each axis have been tuned by solving the Algebraic Riccati Equation (ARE) for the attitude state-space of a quadcopter. Details about quadcopter dynamics are documented here: https://ardupilot.org/copter/docs/systemid-mode-operation.html#identification-of-a-multicopter. For further details behind the mathematics and implementation of this attitude controller, refer to this publication: https://www.researchgate.net/publication/279448184_Quadrotor_Quaternion_Control and this article: https://www.mathworks.com/help/control/ref/ss.lqi.html