Autopilot Visualization
Blending real video with synthetic data yields a powerful and cool! way to visualize your kalman filter (attitude estimate) as well as your autopilot flight controller.
Conformal HUD Elements
Conformal definition: of, relating to, or noting a map or transformation in which angles and scale are preserved. For a HUD, this means the synthetic element is drawn in a way that visually aligns with the real world. For example: the horizon line is conformal if it aligns with the real horizon line in the video.
- Horizon line annotated with compass points.
- Pitch ladder.
- Location of nearby airports.
- Location of sun, moon, and own shadow.
- If alpha/beta data is avaliable, a flight path marker is drawn.
- Aircraft nose (i.e. exactly where the aircraft is pointing towards.)
Nonconformal HUD Elements
- Speed tape.
- Altitude tape.
- Pilot or autopilot ‘stick’ commands.
Autopilot HUD Elements
- Flight director vbars (magenta). These show the target roll and pitch angles commanded by the autopilot.
- Bird (yellow). This shows the actual roll and pitch of the aircraft. The autopilot attempts to keep the bird aligned with the flight director using aileron and elevator commands.
- Target ground course bug (show on the horizon line) and actual ground course.
- Target airspeed (drawn on the speed tape.)
- Target altitude (drawn on the altitude tape.)
- Flight time (for referencing the flight data.)
Case Study #1: EKF Visualization
(Note this video was produced earlier in the development process and doesn’t contain all the HUD elements described above.)
What to watch for:
- Notice the jumpiness of the yellow “v” on the horizon line. This “v” shows the current estimated ground track, but the jumpiness points to an EKF tuning parameter issue that has since been resolved.
- Notice a full autonomous wheeled take off at the beginning of the video.
- Notice some jumpiness in the HUD horizon and attitude and heading of the aircraft. This again relates back to an EKF tuning issue.
I may never have noticed the EKF tuning problems had it not been for this visualization tool.
Case Study #2: Spin Testing
What to watch for:
- Notice the flight path marker that shows actual alpha/beta as recorded by actual alpha/beta airdata vanes.
- Notice how the conformal alignment of the hud diverges from the real horizon especially during aggressive turns and spins. The EKF fits the aircraft attitude estimate through gps position and velocity and aggressive maneuvers lead to gps errors (satellites go in and out of visibility, etc.)
- Notice that no autopilot symbology is drawn because the entire flight is flown manually.
Case Study #3: Skywalker Autopilot
What to watch for:
- Notice the yellow “v” on the horizon is still very jumpy. This is the horizontal velocity vector direction which is noisy due to EKF tuning issues that were not identified and resolved when this video was created. In fact it was this flight where the issue was first noticed.
- Notice the magenta flight director is overly jumpy in response to the horizontal velocity vector being jumpy. Every jump changes the current heading error which leads to a change in roll command which the autopilot then has to chase.
- Notice the flight attitude is much smoother than the above Senior Telemaster flight. This is because the skywalker EKF incorporates magnetometer measurements as well as gps measurements and this helps stabilize the filter even with poor noise/tuning values.
- You may notice some crazy control overshoot on final approach. Ignore this! I was testing an idea and got it horribly wrong. I’m actually surprised the landing completed successfully, but I’ll take it.
- Notice in this video the horizon stays attached pretty well. Much better than in the spin-testing video due to the non-aggressive flight maneuvers, and much better than the telemaster video due to using a more accurate gps: ublox7p versus ublox6. Going forward I will be moving to the ublox8.
Case Study #4: Results of Tuning
What to watch for:
- Notice that visually, the HUD horizon lines stays pegged to the camera horizon within about a degree for most of this video. The EKF math says +/-3 standard deviations is about 1.4 degrees in pitch and roll.
- You may notice a little more variation in heading. +/-3 standard deviations in heading is roughly 4 degrees.
- Now that the EKF is tamed a bit better, we can start to tune the PID’s and go after some more subtle improvements in flight control. For example, this skywalker is kind of a floppy piece of foam. I estimate that I have to hold a 4-5 degree right bank to fly straight. We can begin to account for these aircraft specific nuances to improve tracking, autoland performance, etc.
Howto?
These flight visualization videos are created with an automated process using open source tools and scripts. I have started a post on how to create these videos yourself.