MR60

The problem with non-symmetric copters is fairly easy to understand.  But because we deal in mostly symmetric (+ or X), those problems are often overlooked.

(note:  I'm posting this here, versus the developers site, because I've received multiple questions from the user community about this)

When the copter yaws clockwise (CW), it adds power to the CCW motors and decreases power to the CW motors according to their factors.  Remember the "for every force there is an equal and opposite ... thingy?  Because most copters motor layouts fit in a circle (symmetric fore/aft & left/right), the yaw factors are all +1 (if CCW) or -1 (if CW)--all the motors are equidistant from the center.  But with the V or quad spider, the distance from the center differs for each pair of motors. So why does that matter?

Just like for roll and pitch, the farther the motor is from the ship's center axis, the faster it has to go to keep up with motors that are in closer.  So for efficiency:

  • Roll factors are signed (+ left / - right) and proportional to their distance from the Y (fore/aft) axis.
  • Pitch factors are signed (+ forward / - aft) and proportional to their distance from the X axis.
  • Yaw factors are signed (+ CCW / - CW) and proportional to their distance from the CG, origin.

So why would factors cause a problem?  Pitch input should only cause a change in pitch.  Roll should only change roll.  Yaw should only change yaw.  But with the spider and V and other partially non-symmetric configurations, roll can impact yaw and yaw can impacts pitch.  The following explains how.  

  • When a + roll command is given all four motors on the left side increase while all four motors on the right side decrease.
  • With a fully symmetric copter all of the roll factors would have equal pairs (let's say one pair 0.80 and the other pair 1.00).  One of the 1.00 pair will be CW and one will be CCW.  Thus each pair when increased by a + roll input has no impact on yaw: +.8 (CCW) -1(CW) +1(CCW) -.8(CW) = 0.
  • A V frame, however, doesn't have equal pairs on the left side (or right side).  It's roll factors on the left side would gradually go from 1 to a lessor number, say 1.00, 0.75, 0.50, and 0.25.
  • So when a + roll input is given, the result on yaw is 1(CCW) -.75(CW) +.5(CCW) -.25(CW) = 0.5!  So roll input causes yaw.  The right side gets the opposite with opposite signs for another .5, so the total impact is 1.  (Note:  don't try to solve this by making the two front props CCW, etc. because that only shifts the problem to pitch).


 So if roll causes yaw, does pitch cause yaw?

  • When a pitch command is given, all four motors up front increase while all four motors aft decrease.
  • Two motors on the front will be CW and two will be CCW, which increase by their pitch factors (let's say 1.00, 1.00, 0.33, 0.33).
  • With the V, the impact of pitch on yaw is +1(CCW), -1(CW), +.33(CCW), -.33(CW), so the total impact is zero. 

On a V, does yaw -impact pitch?  Motor distances of the front motors to the origin operate in pairs.  So no.  On a V, does yaw impact roll?  Motor distances of the left motors to the origin do not operate in pairs.  So yes.

Is there a solution to this?  There are several.  Some better than others.  But those solutions are not yet in firmware or in documentation.

For those dealing in copters that are not fully symmetric (a wide front for the camera) or because the CG isn't located in the center, then this problem is impacting your copter.  This includes most ships with cameras.

I'm working on the documentation and code to fix this (mostly complete), but so far I haven't found someone who will look at the relatively simple math and confirm the problem.  Any takers?

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –