Is it possible to achieve control of 4 DOF in quadcopter?

I have been looking into non-linear control algorithms for controlling a quadcopter. I know that we have total 6 DOF for a quad (3 translation and 3 rotation) and our input belongs to $\mathbb{R}^4$, i.e. the 4 motor inputs. So if I look at a quad following a specified trajectory $x(t)$, where $x\in \mathbb{R}^3$. Then I am actually controlling only the desired position coordinates. Angles and angular velocity vary such that position is attained, but we don't actually command the angles.

So, my doubt is we have 4-degree input but only 3-degree controlled output. Is it possible to have position tracking along with a particular angle, such as yaw tracking? Controlling 4 states using 4 commands? Am I fundamentally wrong in my reasoning?

Alternatively, in terms of movements being directly actuated, we do have 3-moment torques and a thrust as an input. Would we consider this as 4 DOF command instead?

Any reference or paper would be welcome too.

1 Answer

You are fundamentally right in your description of the quadrotor system.

One thing that you oversaw a bit is how your four inputs are mapping to the system dynamics, indeed here 4 motors leads to 4 controllable quantities but it's not always the case. Think for example of an octorotor, with quadrotor configuration, ie, 2 motors per corner of the frame.

Is it possible to have position tracking along with a particular angle, such as yaw tracking?

This is typically what is done in linear control of quadrotor, by relying on the near-hovering approximation. An outer control loop generates the orientation, and its derivative, to be tracked to follow a position trajectory, when an inner loop tracks the orientation and its derivative, the yaw can be chosen arbitrarily at this stage (or set to follow a trajectory). Note that from the quadrotor design this is only possible for yaw, as yaw orientation doesn't influence the total thrust orientation. A complete introduction paper on quadrotor is DOI: 10.1109/MRA.2012.2206474

As for more complex control in SE(3) you can look for DOI: 0.1109/CDC.2010.5717652