For the second interview in our series, we'll go to Australia, where aerospace engineer Matt Chave has been developing a very interesting open source UAV that uses magnetometers in an interesting way (and he's using FlightGear for simulation!). Called CUAV (formerly Apeliotes), it's pretty much state of the art for amateur UAVs and is full of good ideas that we can all use.
Q: Can you tell us a little about yourself, day job, background, family, education, hobbies, etc?
I've always had a fascination with aircraft, physics, maths, programming and electronics among other things and couldn't think of a more perfect way to combine them all than an aircraft flight control system.
While I was an undergrad I managed to convince my supervisor at uni that we could make an R/C autopilot for my honors year...(actually it didn't take much convincing he's a bit of a modeler himself). So I did plenty of reading over the summer holidays while I worked for a navigation company in New Zealand called Navman, and was ready to hit the ground running the following year implementing it. The original design was called the Apeliotes project and included the hardware and software to fly a small polystyrene plane. The controller used an arm7 micro on a custom board:
The only sensor was a three axis magnetometer to determine the error in pitch and heading from the desired attitude assuming the roll angle was zero. Apeliotes flew fairly well and managed several successful test flights switching between Remotely piloted and autopilot while in flight and recovering from any attitude our test pilot could put it in back to straight and level flight towards geographic north. you can see the video here
I haven't given up yet on the magnetometer-only design yet, but it was difficult to make it fly anything other than north and level. Not that there's anything special about geographic north for the magnetometer
especially in Dunedin where we were testing (inclination 70+degrees, declination about 20degrees). But I was taking too much time and we needed to detect roll anyway to fly more sophisticated models. So when I continued the project as a masters with the uni we added in a three axis accelerometer and toyed with a few computationally inexpensive attitude detection algorithms including; downhill simplex minimisation of Wahba's loss function, Triad, QUEST, etc...
A new controller board was created (below) with the lessons learned from the first along with many other developments and the project changed its name to the CUAV (custom unmanned air vehicle). Yeah, I was
sick of the Apeliotes name :)
I've now moved to Australia with the project landing me a great full time aerospace job and am continuing the open source development of the CUAV in my spare time.
Q: What's unique about CUAV?
I'll try to summarise some of the major differences:
- Cost: Using only magnetometers and accelerometers for the attitude detection and efficient algorithms on a an arm7 micro reduces the cost significantly over other gyro based systems, and the parts are also
readily available worldwide.
- Failsafe: A CPLD provides a thoroughly tested failsafe uav/rpv switching mechanism which is separate to the flight control computer so that control can be recovered at any time. The switch was required to be very
immune to noise since we had some very low quality R/C gear with only a very small range so we've removed any chances of the state changing erroneously. The plane could even operate without an r/c receiver attached although this almost certainly would be disallowed in most countries it's handy when developing on the ground that you don't require the r/c transmitter to be switched on or receiver connected.
- Attitude detection solution: efficient attitude solution which means there's more time to calculate the guidance etc and should be capable of flying aircraft which have high dynamics.
- COTS friendly board design: There are no modifications required to plug in your R/C gear. I didn't want to require anyone to pull apart their receiver and solder wires which would void their warranty's etc. Also CUAVs power is sourced from the same lines that the R/C receiver, servos and speed
controller get their power from so the power consumption of the entire system is easily monitored.
- Low power consumption: 375mW including GPS and sensors with an acceptable input voltage between 3.6 to 5.5V
- Weight: 50g including GPS and sensors; Size: 10cmx4cmx2cm
- Open source: Though the source isn't released yet it will be soon I'm very conscious of the RERO (release early release often) mantra and am looking forward to getting it out there soon.
- Flexibility: The custom board combined with the arm7 provides plenty of room for further additions of sensors etc.
- Custom FDM: Custom physics model for the aircraft. This provides the ability to do hardware in the loop testing on the ground. Output to flightgear for visualization and networking. We found writing our own
physics model for an aircraft helped with understanding the dynamics involved.
- Data analysis: We use a matlab GUI to help tune and test the system. This should eventually be made from c/c++ so that you wont require matlab.
- Compiler: gcc(++) arm7 development, using linux so that no proprietary software is required.
- Custom fixed point math library: including vectors, rotation matrices, quaternions and trigonometry using 16.16, 32.32 and a 64 bit integer accumulator class. When we started the apeliotes project there wasn't
any available math libraries for the arm7 (or we couldn't find any) and since there is no built in divide available on the arm7 we needed to build our own.
[In the next installment, Matt talks about the advantages and disadvantages of magnetometers