Rendered at 23:00:44 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
daww 3 days ago [-]
Author here.
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!
avidiax 1 days ago [-]
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.
daww 3 hours ago [-]
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).
Are there any resources you know of on modelling ground effect? I’m curious how this would change the dynamics from the post.
avidiax 16 hours ago [-]
My understanding of it is that it's especially apparent when you are within 1 prop width of the ground. For a quadcopter, it's most apparent just off the ground, since the props are small compared to the entire craft. You don't usually operate the drone in ground effect for very long, but you need to really push the throttle to get in the air, and the drone floats if you are close to the ground.
The other effects are more apparent, especially settling with power, the tendency to pitch back as you go faster, and translational lift. Modeling all of these accurately turns into a fluid simulation, so probably you'd just want a heuristic.
dvh 1 days ago [-]
Isn't it just bi-copter?
daww 3 hours ago [-]
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.
palata 24 hours ago [-]
No, it's a quadcopter setup, but simulated in a 2D world (I guess for simplicity). A bi-copter would require tiltrotors, which is different.
echoangle 23 hours ago [-]
In 2D, a bi-rotor is equivalent to the quadcopter in the post. There are 2 thrusts you control to guide the thing.
kabir_daki 1 days ago [-]
Physics simulations from scratch are great learning projects.
Did you implement your own PID controller for stabilization?
That's usually where things get interesting — tuning the
gains without it oscillating to death.
daww 3 hours ago [-]
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).
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!
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
The other effects are more apparent, especially settling with power, the tendency to pitch back as you go faster, and translational lift. Modeling all of these accurately turns into a fluid simulation, so probably you'd just want a heuristic.