# What can cause yaw rotation on a multirotor when yaw control is disabled?

Let's assume that I assembled a multicopter (quadcopter, hexacopter or octocopter) and let's say that I disable yaw control on it while roll and pitch controllers are enabled.

Now let's assume that I require it to hover in a specific xyz point.

What could cause the multicopter to indefinitely yaw?

• imbalance between the RPMs provided by the motors (e.g., I ask the motors a specific RPM values X (to hover) and some of them provide (consistently) X+delta).
• motors not all aligned among each other and therefore able to exert a thrust perfectly aligned with gravity (correct?)
• broken propellers

Is there something else that does not come to my mind?

I am asking since my octorotor, with the yaw controller enabled, tries to compensate all the time an almost constant yaw rate if I ask it to maintain a certain yaw angle. Therefore, I am thinking about a structural problem.

• tries to compensate all the time ... are you saying that it fails to compensate? ... are the rotors counter-rotating? Jan 13 at 22:06
• Nope, he's saying that the controller does its job correctly but he has been observing a constant yaw rate disturbing the control (which by the way is compensated for). Jan 14 at 12:43
• Exactly, the controller does its job correctly. If I look at the drone: the drone is stable in position and in attitude (assume that the references given to the controller are (i) in position (0,0,2)[m] and (ii) in attitude roll,pitch, yaw (0,0,0) [deg]. However, the logs show that the controller is constantly giving as an output a yaw rate control which is around -0.1 [deg/s]. Therefore, it means that there is a constant "disturbance" that would cause the drone to yaw if there wasn't a yaw (and yaw rate) controller. Jan 15 at 9:17
• When you turn off yaw control do you also turn off yaw rate control? If not, then it could be due to gyroscope bias along the z-axis, i.e. the robot thinks its rotating when it is actually not and vice-versa.
– Alex
Feb 16 at 6:14
• Hi, thanks for your comment. I turn off both of them (the yaw control and the yaw rate control). Feb 17 at 7:30

A disturbance yaw rate of $$-0.1, \text{deg/s}$$ seems way low. Are sure that in steady-state there won't be any cause external to your copter (very low airflow?) justifying it?

### Imbalance between the RPMs provided by the motors (max current not reached) ❌

The open-loop response of different motors will certainly vary because of the variability of the building components. Thus, if commanded with the exact same input voltage, different motors will respond with slightly different speeds.

However, closed-loop control is purposely designed and implemented to overcome this type of imbalance. So, nope; this is unlikely to be the problem if your controllers are up to the task.

This reasoning is valid if all the process controllers+motors do work in their "linear" range so that there's no saturation.

### Imbalance between the RPMs provided by the motors (max current reached by one or more controllers) ❌

Differently, if you realize that one or more controllers provide the maximum allowed current, then the corresponding motors are clearly not able to deliver the requested speed and you may be in the situation you reported.

It is however unlikely that you had to deliver maximum current to a motor and this won't cause trouble to pitch and roll as well.

### Variability of speed sensors ❌

Variability of the components in the speed sensors may impede the control. The outer loop, which is closed over IMU feedback, should adapt for such a difference in speed setpoints. Anyway, the inner speed control loop will experience a constant thrust that it will be required to compensate for.

It is unlikely that sensor variability affects only the yaw though.

### Motors not all aligned among each other ✅

This is the most likely cause, yep. It is concerned with a structural configuration of your propellers and can possibly generate a nonnull yaw rate.

### Broken propellers ❌

I tend to rule out this as you would have realized it visually, instead, plus it would have affected the pitch and roll as well.

• Hi Ugo, thanks for your answer. I agree with you about 2nd and 3rd point but I don't understand why you are sure about what you wrote in the 1st point (about "imbalance between the RPMs provided by the motors"). I completely agree that the closed-loop controller should take care of this and it does (as I further explained in my comment to my question above). However, imagine that some ESCs are constantly not able to provide what we ask for. If this happens it means that the RPMs provided by one motor would be less than another one consistently. This would cause the drone to yaw. Correct? Jan 15 at 9:19
• Sure, you're right. I was only considering the context of controllers+motors working in the "linear" zone, but of course if you observe motors saturating then the story is different. I've amended the answer accordingly. Jan 15 at 12:08
• With a second thought, sensors variability can hamper the inner speed control, although it is unlikely that this will cause trouble only to the yaw. Answer updated. Jan 16 at 11:51
• Anyway, the disturbance yaw rate is pretty low, hence it might be caused by external factors. Jan 16 at 12:02
• Thanks for all the answers. Actually I am not sure that we observe a yaw rate of 0.1[deg/s]. This was my bad in reporting. I need to understand what is the units of the logs I am looking to. I think that the yaw compensantion is bigger. I will come back here with further details. Thanks again. Jan 17 at 8:27