Deep RL-based attitude control για quadrotors σε bare-metal MCUs
Ερευνητικό project που εξετάζει αν ένας συμπαγής learned controller μπορεί να διατηρήσει σταθερό έναquadrotor σε μικρό microcontroller, ως εναλλακτική σε έναν συμβατικό PID controller. Ο controller εκπαιδεύεται σε προσομοίωση και στη συνέχεια προετοιμάζεται να εκτελείται απευθείας σε embedded flight hardware.
Ένας μεγαλύτερος "teacher" controller εκπαιδεύεται σε MuJoCo προσομοίωση με πρόσβαση σε πληροφορίες που δεν θα ήταν διαθέσιμες σε πραγματικό αεροσκάφος, όπως ακριβής μάζα και συνθήκες ανέμου. Η συμπεριφορά του αποστάζεται στη συνέχεια σε μικρότερο student model που βασίζεται μόνο σε sensor inputs διαθέσιμα κατά την πτήση. Αυτό κάνει τη διαδικασία μάθησης πιο ικανή διατηρώντας το αναπτυσσόμενο μοντέλο αρκετά μικρό για microcontroller.
Το student model έχει σχεδιαστεί για να ανταποκρίνεται σε πραγματικές διαταραχές πτήσης. Οι μήνσεις motion-sensor μπορούν να αποκαλύψουν ξαφνικές αλλαγές όπως πτώση φορτίου πριν χαθεί σημαντικό υψόμετρο. Ένα σύντομο ιστορικό motor commands βοηθά να λαμβάνει υπόψη καθυστερημένες αποκρίσεις motor και αεροδυναμικών, ενώ η accumulated error feedback βοηθά στη διόρθωση επίμονης απόκλισης που προκαλείται από μακροπρόθεσμες αλλαγές στη μάζα.
Το student model αναπτύσσεται με το fastnn, ένα custom Rust neural-network runtime που μπορεί να εκτελείται χωρίς τυπικό λειτουργικό σύστημα. Συμπιεσμένα βάρη και αποδοτικές εντολές επεξεργαστή επιτυγχάνουν 70–90 μs inference latency σε περίπου 7.5 KB flash memory σε έναν Cortex-M4F microcontroller. Το αποτέλεσμα δείχνει ότι οι neural flight controllers μπορούν να χωρέσουν στους ίδιους στενούς περιορισμούς hardware με τα συμβατικά embedded control systems.