I've spent the last six months replicating the paper "Champion-level drone racing using deep reinforcement learning" and now I'm writing down the blog posts I wish I had along the way.
Any feedback is welcome, especially as I'm a bit unsure if I struck the right balance between being concise and not requiring too many prerequisites.
Also if you're working on RL and robotics (especially aerial), let's connect!
You are technically correct - the best kind of correct. But yeah, think of it as a "slice" of a quadcopter along one of its principal axes. Writing the 3D blog post right now.
I assume you are going to start introducing all the 2nd and 3rd order effects? One big one is ground effect, and another is vortex ring state/settling with power and the related translational lift, and the props themselves have p-factor and the dirty air effect for the rear props.
Good question, haven't really thought about modeling complex effects besides prop aerodynamic drag. If I were to start, I'd probably look at the model described in the "Aerodynamic forces and torques" section of "Champion-level drone racing using deep reinforcement learning" (Kaufmann et al. 2023).
Yeah, I did. I didn't implement disturbances like wind, so a very simple PD position controller was enough for stabilization or simple trajectory tracking. I won't focus too much on (position) control as my controller will be RL-based (with a policy network outputting thrust and body rates) and coupled with a PD rate controller (very simple as it's 1st-order).
7 comments
[ 3.8 ms ] story [ 25.2 ms ] threadI've spent the last six months replicating the paper "Champion-level drone racing using deep reinforcement learning" and now I'm writing down the blog posts I wish I had along the way.
Any feedback is welcome, especially as I'm a bit unsure if I struck the right balance between being concise and not requiring too many prerequisites.
Also if you're working on RL and robotics (especially aerial), let's connect!
In general, I think I'd try to go for a black-box/grey-box model based on real data rather than e.g. CFD-based, as I don't think you can run CFD at sufficient accuracy for real-time control anyway. For that, I would look at https://rpg.ifi.uzh.ch/docs/TRO26_Bauersfeld.pdf or https://rpg.ifi.uzh.ch/docs/RSS21_Bauersfeld.pdf