FEAT: new actuator class for roll, throttle, and thrust vector control#965
FEAT: new actuator class for roll, throttle, and thrust vector control#965zuorenchen wants to merge 11 commits into
Conversation
…uash for RocketPy PR) (#7) * Merge RocketPy 1.12 and add updates for balloon popping challenge (#8) * Add actuator dynamics in TVC and ThrottleControl authored-by: RickyRicato <rickywang44@gmail.com> * Refactor actuator_tau parameters to use None as default in TVC and ThrottleControl authored-by: RickyRicato <rickywang44@gmail.com> * Add actuator dynamics to RollControl authored-by: RickyRicato <rickywang44@gmail.com> * Move actuators to a new actuator folder and rename actuator classes * Refactor roll, throttle, and thrust vector acutator with a new actuator class * Add pytest for all actuators * Update rocket.py and flight.py for actuator class update * Fix actuator class calls * Update active control example with new actuator class --------- Co-authored-by: RickyRicato <rickywang44@gmail.com>
TODO:
@Gui-FernandesBR @giovaniceotto do you want this in a continuous improvement approach (leave the TODOs in future PRs), or complete all TODOs in one PR? Feel free to send PRs to branch: /enh/actuator-merge-rocketpy in fork: ARRC-Rocket/ActiveRocketPy/ if you want to contribute more on this topic. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #965 +/- ##
===========================================
+ Coverage 80.27% 81.13% +0.86%
===========================================
Files 104 121 +17
Lines 12769 14806 +2037
===========================================
+ Hits 10250 12013 +1763
- Misses 2519 2793 +274 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
a3472bc to
d6787a8
Compare
MateusStano
left a comment
There was a problem hiding this comment.
Hello @zuorenchen! These are great enhancements to the library!
We are currently working in a restructure of the Flight-Controllers code so that we can make controlled simulations more robust and the related code more scalable.
Your throttle and TVC models are in particular really good for us.
We will soon make a draft PR of the Flight-Controllers restructure in another branch, and we are looking into merging the changes you made here into this new refactor. This might take a few weeks but soon we will get there! Just letting you know
Pull request type
Checklist
black rocketpy/ tests/) has passed locallypytest tests -m slow --runslow) have passed locallyCHANGELOG.mdhas been updated (if relevant)Current behavior
air_brakeis implemented as a controllerNew behavior
A new
Actuatorbase class is added.air_brakedemand_rate(a.k.a.sampling_rate) is discrete)demand_rate(a.k.a.sampling_rate) is discrete)Inheriting the
Actuatorbase class arethrottle: an actuator that applies a throttle gain value on top of motor thrust.roll: an actuator that applies a magic / hand-of-god roll torque on the rocketthrust vector: actuators that gimbal the motor thrust vector on x and y axisNew files:
/actuatorfolderhalcyon_flight_simModified files:
rocket.py: implement add_actuator methodsflight.py: apply actuators on the ODEsknown issue
Breaking change
Additional information
co-authored-by: RickyRicato rickywang44@gmail.com @chichunwang