main page

Making a helicopter fly autonomously is a complex project. Especially in an indoor environment. Much more complex than I thought it could be. But this is very exciting!

1) Pilot lessons:

I learned RC helicopter flying especially for this project. I bought 2 small helicopters : a Walkera CB100 (small, lightweight and very funny to use), and the Lama V3 that is the base of my UAV. It is very important to be able to pilot the helicopter naturally. I have to recover manually from difficult situation during development.

2) flying or analyzing but not both at the same time:

I realized that I was totally unable to fly and watch to my computer screen at the same time. This is quite easy with a rolling robot. But not with a helicopter. Flying a RC helicopter requires attention. Therefore, I cannot analyze the information given by the UAV during the flight. I have to analyze it AFTER the flight. This takes a lot of time. Tuning the software is therefore made of short periods when I fly the UAV, then analyze the data, fly again, analyze, correct the software, etc...

3) Test pilot :

When I started to tune the autopilot software, the flight suddenly began more stressful. Giving controntroll to the software that is not already tuned, and that I don't trust... this is stressful! Furthermore, this UAV is something that I care. I don't want it to crash.

I have to be able to control the UAV again if something goes wrong. This happens very often. Furthermore, when something goes wrong, this happens suddenly, without warning! This is very stressful.
But if I want to understand why something goes wrong, especially for the PID, I have to let the UAV wrong for short moment (fractions of a second), before going to manual control. With this, it is easier to analyze the log afterward.

4) 4 channels at the same time :

Making a software control this UAV, this needs 4 control loops. If only one of these 4 loops goes wrong, then the UAV can crash rapidly. I need 4 robust control loops to fligh.
But unfortunately, the 4 channels are not independent at all! A movement on one channel can have an influence on the other movements! This is quite complex for a human to learn RC helicopter flying... This is as well complex for a software!

5) Parameters tuning :

This is one of the main difficulty of this project. There are MANY parameters to tune. For every sensor, for every filter, every dimension, every speed, position, I have several parameters. And several sensors can be used for the same dimension : sonars and Wii Camera. There are also high pass filters, low pass filters, some threshold that triggers condition (good/wrong measure, autopilot off).

And there are also lots of parameters for the control loops. There are 3 parameters (PID) for the 4 control loops. Plus saturation thresholds, and order smoothing...
A counted a total of more than 60 parameters to tune... This is crazy!

6) Consequence of errors :

We have to consider the object that we pilot. A small error can induce the UAV to crash into a wall, or the ceiling; and this can happen very rapidly. Unlike a wheeled robot, a software bug, or a bad tuning can rapidly induce dramatic consequences. My UAV already crashed a lot of times. The smallest sign error, or an "if condition" badly written, or a bad parameter can induce a crash.

Therefore, the safety mechanisms must be very robust:
  • Manual recovery (with a movement of joysticks)
  • Hardware failsafe (that cuts the power of motors)
Leon | 28/08/2011