3D Robotics

New algorithm can save a quadcopter after one motor/prop failure

The latest work from the star ETH team shows how a quadcopter can recover from a prop loss. Excerpt from a Fast Company article:

Today, the software controlling most quadcopters is designed to have all four propellers functional at the same time. As ETH Zurich doctoral student (and key researcher on this algorithm) Mark Müllerexplains, drone software doesn't do a good job accounting for emergency scenarios.

“During normal flight, a quadcopter can produce three independent torques to control its attitude: ‘roll,’ 'pitch,' and ‘yaw,’” says Müller. “If a propeller fails, this is no longer possible--the strategy for our algorithm is to give up the yaw torque, and let the machine spin uncontrolled about this axis. We then use the remaining propellers to tilt this axis of rotation, allowing the machine to move around.”

...

“The hardest part of the work was the initial mathematics,” says Müller. “How [do you] describe the system in a way that captures the relevant dynamics, but is still simple enough for us to analyze and manipulate? We started with Euler's law--a set of three differential equations that describe the rotation of a body as a function of the torques applied to that body. These equations are a gold mine of unexpected and surprising results, and trying to wrap our heads around this was probably the biggest challenge.”

If the initial mathematics proved a steep learning curve, however, what surprised Müller about the eventual algorithm was its conceptual simplicity. “The derivation is quite complex, and required a lot of time,” he continues. “The implementation on a quadcopter was relatively simple. The control law that we use (the set of equations that calculate the required motor forces) ends up being very concise: To calculate the motor forces only requires a handful of multiplications and additions.”

...

What makes the ETH Zurich algorithm different to previous attempted solutions is that it is entirely software-based--requiring no added hardware whatsoever. Previous solutions were mainly centered on physical additions to the quadcopter concept--often proposing hexa- and even octocopters, equipped with six or eight motors/propellers.

While these may have improved safety, they would also have done away with many of the plus-sides of quadcopters--since the augmentations would make the machines heavier, more complex, less maneuverable, and more expensive to manufacture.

By creating an entirely software-based solution, the ETH Zurich team have not only found a way past these issues, but have also come up with a concept that could easily be applied to a large batch of existing quadcopters.

“[In this way] our work is not focused on quadcopters as such, but rather on algorithms and mathematics that allow us to fully explore and exploit the capabilities of dynamic machines,” Müller says. “As such we do a lot of work on mathematical modeling and abstraction, allowing us to control complicated systems, and getting them to do interesting things.”

Currently the ETH Zurich team has a patent pending on their algorithm, while a paper detailing the invention will be published in 2014.

• People already done this outdoor without external sensors ;-)

• Speaking without knowing any better, surely detecting the loss of a prop is a matter of observing an expected rotation. Using the changed levelness of the copter compared to its last known good level, one can determine which arm has lowered and with that compute which arm is contributing no thrust.

• Cool. About detecting the rpm-change via the ESC, i don't think thats possible, the ESC just outputs PWM on a pin or two, it does not get any feedback there (correct me if im wrong?) The pins ar only set as outputs on the CPU.

Still, the hard thing about this surely is not the detection of failure, its probably controlling the craft with only three props...

• I think anything with gyros would be capable of detecting a motor failure. The challenge lies in the algorithm to actually do it.

However, even if you detect it - for a quadcopter I do not think what they did in the video would be doable without a viacom camera system.

• It would seem that the sensor suite that is on the PX4 (or Pixhawk) would be enough for recognizing this sort of error.  For instance, if the Mag and accels sensed an abrupt change in angular rates in yaw, pitch and roll that fit within a predefined range, for x seconds, for all modes but acro, and that was absent an rc command it could initiate said fail safe.  Sure, that is way over simplified, but I can see this being implemented in the near future for Arducopter.  I think its SWEET!  An additional fail safe without the need for adding additional weight.  Simplicity!

Seeing this is from the ETH Zurich guys is it possible that they are using a PX4FMU, Pixhawk or variant of the two?  I'm sure someone here knows.

• Well you can detect it a few ways. the easiest is having feedback from the ESC. It would be pretty detectable when for a certain on time the RPM shot through the roof, or if you had current monitoring you'd see a big change in torque.

Alternatively if you are running some sort of system identification on your UAV you'll see that suddenly it isn't responding as expected and could identify that the effectiveness of motor N has dropped to zero. This would be a much more computationally intensive approach though.

• but then again that's not detectable without hall sensors?

• was thinking about the detection, if the RPM of one motor goes up, its lost a prop?

• two big issues:

1. Actually detecting it occurred so you can use an updated control model

2. Some things like a hex are controllable with a missing output (in a control theory sense) meaning the mapping from motors to roll, pitch, yaw and thrust can be inverted to achieve a desired output. In the case of a quadcopter when you lose a prop it no longer is, which means you cannot achieve an arbitratry combination of those attitude variables.

What this work did was show there was a degenerate solution. Give up control of yaw (hence the nuts spinning) but still solve roll, pitch and total thrust. They layer that on top of awareness of the current yaw and can achieve position hold.

• can anyone explain the different problems one need to resolve in case of prop-(multiple?)failure?