Skip to content
Snippets Groups Projects
Commit 77d4554e authored by Ivo Drescher's avatar Ivo Drescher Committed by Matthias Grob
Browse files

Modified comment about feed forward of yaw setpoint rate.


Added more explanations regarding the coordinate transformation.

Signed-off-by: default avatarIvo Drescher <ivo.drescher@gmail.com>
parent b583c5f6
No related branches found
No related tags found
No related merge requests found
......@@ -417,9 +417,14 @@ MulticopterAttitudeControl::control_attitude(float dt)
/* calculate angular rates setpoint */
_rates_sp = eq.emult(attitude_gain);
/* Feed forward the yaw setpoint rate. We need to apply the yaw rate in the body frame.
* We infer the body z axis by taking the last column of R.transposed (== q.inversed)
* because it's the rotation axis for body yaw and multiply it by the rate and gain. */
/* Feed forward the yaw setpoint rate.
* The yaw_feedforward_rate is a commanded rotation around the world z-axis,
* but we need to apply it in the body frame (because _rates_sp is expressed in the body frame).
* Therefore we infer the world z-axis (expressed in the body frame) by taking the last column of R.transposed (== q.inversed)
* and multiply it by the yaw setpoint rate (yaw_sp_move_rate) and gain (_yaw_ff).
* This yields a vector representing the commanded rotatation around the world z-axis expressed in the body frame
* such that it can be added to the rates setpoint.
*/
Vector3f yaw_feedforward_rate = q.inversed().dcm_z();
yaw_feedforward_rate *= _v_att_sp.yaw_sp_move_rate * _yaw_ff.get();
_rates_sp += yaw_feedforward_rate;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment