# Treatment of euler angles in quadcopter control

In most implementations of quadcopter control systems I've seen, each axis of the quadcopter is controlled independently. For example, to control the rate in the roll axis, the desired output is calculated using a PID controller with the error as input, and that output is applied as a difference in thrust between the corresponding motors. I know this works, It's what I currently use in my quadcopter, but it has always bothered me that the relationship between euler angles is ignored, so I've been trying to find a proper justification for this.

Controlling the thrust of each motor we can directly control the torque vector, as described in the "Torques" section of this article. In that article the quadcopter dynamics model is described, but when it starts describing the PD control part it says this as justification for setting each component of the torque proportional to an euler angle: $\text{Torques are related to our angular velocities by } \tau = I\ddot \theta$, where $\theta$ refers to the yaw pitch roll angles vector, but unless I'm missing something that equation is valid for the angular velocity vector, not the yaw pitch roll vector. The implementation used in that article first chooses the torque vector based on the euler angles, and then solves for motor thrusts, and they obtain good results, but I don't understand the justification.

Is there any justification for using the euler angles to control each axis independently?

EDIT: Seeing that the equation that transforms euler angle derivatives to angular velocities is (the $\theta$ in the right is the $(\phi,\theta,\psi)$ vector) : $$\omega=\begin{bmatrix} 1 &0&-s_\theta\\ 0 & c_\phi & c_\theta s_\phi\\ 0 &-s_\theta &c_\theta c_\phi\end{bmatrix}\dot\theta$$

It seems it might just be a small angle approximation (since the matrix is close to the identity when the angles are small).

• It is probably small angle approximation, also since Euler angles can experience gimbal lock, so wouldn't work well at all attitudes. – fibonatic Apr 1 '18 at 20:24
• Also a PID controller will probably also only work well for small angles/angular velocities, since after that nonlinearities might start to dominate in the dynamics. – fibonatic Apr 1 '18 at 22:36