Had a few more flights with the ArduIMU yesterday.
I should mention, that with regards to RC flying, my main interest is competing in IMAC (Scale Aerobatics). Basically it's flying giant scale aircraft through predefined aerobatic patterns for judges. Last year I competed in intermediate (3rd of 5 difficulty levels) and this year I'll be moving up to Advanced (4th of 5 levels).
Arising from this interest, my long term goal would be to get an autopilot doing aerobatics.
Anyways, yesterday was the first flight of the spring with my contest aircraft, shown here.
After the first flight, to confirm that everything was still working, I couldn't help but put the ArduIMU/GPS on board for some data collection.
What I really wanted to know was if typical IMAC aerobatic manuevers could be detected by the sensors used on the IMU. If the sensors railed as soon as I departed level flight, then we might have to rethink things a little. On the second flight with the IMU on board, I put the plane through the Intermediate contest sequence from last year. By flying a known sequence it makes it easy to figure out what the aircraft was doing at each point of the flight, and to determine if the sensor data is appropriate.
The initial data analysis is favourable. I am using the ArduIMU code associated with the recent Ardupilot 2.5.1 work with a few tweaks to work with my equipment. I also added the gyro rate information to the ASCII data stream to give me a better idea of what's going on inside the ArduIMU.
Here are a couple of snapshots from the data:
The starting of the engine is clearly visible in the Roll Rate data. The engine is hand propped. A few flips with choke on to get it primed, and then a few flips with choke off and she's running:
You can see that the engine introduces alot of vibration noise into the rate gyros. I'm not too worried at this point because:
- I had the system hard mounted without much padding.
- I will be installing this in my smaller electric aircraft to start.
If I ever get cocky enough to Ardupilot a gas plane, I might have to add some filtering to the rate gyros to damp out this vibration.
The last maneuver in the sequence is a rolling circle. Basically, you need to fly a circle, while rolling the plane. You need to do 4 rolls in total, so after each 90 degree heading change the aircraft should have completed one more full roll. In my opinion, it's by far the most difficult maneuver they force us to do. Anyways, the data shows just how bad my "roller" is:
There's more stuff in there, but the fact that I can make sense of the outputs gives me hope that I can teach the Ardupilot to do the same :)
Thoughts, and To Do List:
1. GPS signal seems to go wonky as the aircraft rolls inverted (even for short periods). Still haven't decided if this is an issue, since during aerobatics, the attitude and attitude rate is more important than the lat/long. The key will be to make sure that the Attitude and Rate numbers aren't peturbed by momentary GPS jumps.
2. Definitely want to integrate the static airpressure system into the data record (I'm not sure I trust the GPS altitude numbers)
3. Add accelerometer data to the output stream. It would be intesting to see if I can track the gravity vector as I do a slow roll across the field.
4. Right now the data log is time stamped with the GPS Time of Week (TOW) value. Since the ArduIMU is spitting out sensor data faster than my GPS is updating the TOW, I'm ending up with multiple datapoints with the same time value. I think I will switch the timestamp source from TOW to "timeNow" (Arduino milliseconds since boot) to try to prevent this.
That's all for today. More to come.
Tom
Comments
Have you tried more with Arduimu on gas planes? How did you manage to damp the vibration issues?
@Morli: did you try waypoints using Arduimu on gas plane? Did it work reliably?
Thanks!
I'll make a post about the resetting OpenLog.
set up from the DIY store. I just assumed that was fixed. I will have to look at the U center. BTW i just ordered the openlog, its back in stock. I plan to put it in my ground station boxand record all data comming from the plane
and figure out have to parse it later. A 1G sd card would hold around 1000 hrs of flight. You didn't say why your logger was reseting.
Greg
Tom
38400 is the rate the Ublox uses so every thing else needs to run at that speed. I want to record all the data received on the ground station (Ardustation). I could also store lots of waypoints scripts on it and upload them to the plane in the field. I am trying to eliminate the need for a notebook. Every thing needed would be mounted on my transmitter. I am using the Ublox.
I also ran into the fact that OpenLog didn't work at 38400bps out of the box. Right now the way I'm getting around it is by running the GPS/IMU and ArduPilot all at 57600bps.
For the Ardupilot guys: was 38400 picked for any specific reason?
Tom