HN user

daww

153 karma

Contact info on my website: https://mrandri19.github.io/

Posts16
Comments16
View on HN

Hi, thanks! Love your product, it's been incredible for debugging simulations as well as looking at individual policy rollouts (instead of e.g. static videos) to design better rewards/environments

Hi HN, Andrea (the author) here.

I'm continuing my series of blog posts on quadcopter simulation and (Reinforcement Learning based) control.

This one is the second in the series, following my previous planar/2d quadcopter post. Next one will be on how to use PPO to train a racing policy

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).

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.

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).

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

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!

Thanks :) I've used what was available on the latest ubuntu lts. FreeType functions return 0 (FT_Err_Ok) on success or a specific value for each function, but yes I agree that error handling could be better, maybe at the expense of terseness.