AT

Andrew Tridgell

Things Andrew Says on Podcasts

Where to Find Them

Andrew Tridgell has been a guest on Software Engineering Radio - the podcast for professional software developers .

Recently: “SE Radio 745: Andrew Tridgell on Flight Control Software” on Software Engineering Radio - the podcast for professional software developers (November 2026).

What They Said

“One of the ironies is that the bigger and more expensive a vehicle is, the cheaper and slower a CPU you can get away with. If you've got a one-ton vehicle, there's no real point in running the control at multi-kilohertz. You're just wasting cycles.” — Andrew Tridgell, Software Engineering Radio - the podcast for professional software developers

Asked what loop rates and latencies are needed to keep a drone stable, Tridgell says small quadcopters benefit from very fast control loops, while large heavy aircraft respond slowly enough that low-end processors do the job.

Software Engineering Radio - the podcast for professional software developers · 2026-11-04 Permalink → Listen →
Software Engineering Radio - the podcast for professional software developers Around 35:54 into the episode
Andrew Tridgell

…and the thrust, the change in the thrust angle impacts the barometer and actually changes the pressure. So you get sort of feedback systems where sensors are altered by the way you're trying to fly. So all sorts of little bits and things to keep us entertained in trying to make it fly correctly.

Jason Davey

And what are the typical rates or latency requirements to keep something in the air and keep it stabilized? What sort of

Andrew Tridgell

rates are you talking about? I've been looking at that actually, sort of there's control bandwidths and rates. There's a lot of people who try to push rates up really, really high. So, and there can be some benefit for that. But the default, you know, copter, multi-copter setup for ArgyPilot is the main loop. So the PIDs run at 400 Hz. Whereas if you look at something like Beta Flight, they default to multiple kilohertz. But we do a lot more per loop than they do, right? On the same class of CPUs or microcontrollers. But the rates that you send signals out, so if we're a classic quadcopter with PWM output might be running, telling the commanding the ESCs at 400 Hz. A default fixed wing, a simple little foamy fixed wing, defaults to 50 hertz, which is really quite low. As far as the sort of the control bandwidth, I've been doing a bunch of measurements lately with chirp signals going through real motors and ESCs and propellers to look at how much actual control bandwidth. And the 3DB roll-off is typically, even for little five…

Jason Davey

Yeah, that's definitely counterintuitive. So this sounds like a lot of complexity. Broadly speaking, how is ArgyPilot's codebase structured to manage that? Is it a single monolithic thing? Is it modularized in some way?

Andrew Tridgell

It's all Git, of course, up on GitHub with lots of submodules. How many submodules we've got now, but lots of different submodules for different communication protocols and things like MavLink and DroneCan and various compilers and things. We have DroneCan compilers, MavLink compilers, those types…

Jason Davey

I see. So I imagine that rebuilding the firmware, uploading it to a flight controller and taking an aircraft out into the field every time you want to test a change to this software would be time consuming, expensive, and potentially even dangerous. So how do you approach testing within RGPilot?…

Speaker names come from our own diarization. The position is estimated from where the line sits in the episode.
“Usually people put the cheap and cheerful IMUs, which basically means that all of your sensors are lying to you. And the EKF's job is to sort out all the lies to create the truth, because every sensor has errors.” — Andrew Tridgell, Software Engineering Radio - the podcast for professional software developers

Asked what state estimation is, Tridgell explains that drone flight controllers fuse noisy, drifting, vibration-affected sensors using an extended Kalman filter. The software's real job is deciding which inputs to believe.

Software Engineering Radio - the podcast for professional software developers · 2026-11-04 Permalink → Listen →
Software Engineering Radio - the podcast for professional software developers Around 23:56 into the episode
Andrew Tridgell

…who's the head for state estimation, looks after our EKF architecture, which is state estimation. Working out where you are, which way up you are, and where you're going is really important to this type of vehicle. And so a huge amount of work goes into the state estimation. That's all Paul's area.

Jason Davey

So state estimation is taking the input from all of these sensors and fusing them together to determine where in the world I am, which way up I am. Which my nose is facing and so on.

Andrew Tridgell

That's right. And the fundamentals of these types of vehicles is ArgyPilot can support very high-end sensors. I mean, you can put $100,000 IMU on, and some people do on algebra vehicles, but very rarely. Usually people put the cheap and cheerful IMUs, which basically means that all of your sensors are lying to you. And the EKF's job is to sort out all the lies to create the truth because every sensor has errors, right? And the types of errors vary with flight phase. When you've got vibration effects, you've got just drift, temperature drift, atmospheric drift, all sorts of things. And the EKF has to take all of that erroneous input and produce as accurate a possible an estimate of all of the different states. So roughly speaking, it's sort of a 21-state EKF. So they're all the different things we look at. And those states include things like attitude as a quaternion and position velocity and all sorts of bias states, gyrobiases, accelerometer biases, magnetometer biases, wind estimation, lots of…

Jason Davey

So you essentially run several instances of this algorithm or perhaps different algorithms to try and estimate the state of the vehicle. And there's some system of, is it based on voting or quorum or there's some other heuristics used to determine this sensor is telling us we're at this altitude…

Andrew Tridgell

Yeah, so the robustness is at several different levels. So the most common type of vehicle, I mean, some vehicles only have one IMU, but most commonly three IMUs. And by default, we arrange things so you run one EKF per, we call them lanes. There's basically one EKF per IMU. And then you have…

Jason Davey

So to make that a little bit more concrete for the listeners, can you recall any examples where this EKF switching or the vehicle essentially flip-flopping between different opinions it has about where it is or which way it's facing? How does that manifest in flight and cause a real issue?

Speaker names come from our own diarization. The position is estimated from where the line sits in the episode.

Collections They Appear In