psas rcs capstone final presentation
play

PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris - PowerPoint PPT Presentation

PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert - Paul Lee - Harrison Bailey - Cort Alexander - Sohail Nayani - Tyler Alway Sponsor: Jamey Sharp and Theo Bailey from PSAS Tasks and Team Roles Person Planned Role


  1. PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert - Paul Lee - Harrison Bailey - Cort Alexander - Sohail Nayani - Tyler Alway Sponsor: Jamey Sharp and Theo Bailey from PSAS

  2. Tasks and Team Roles Person Planned Role Actual Role Brian Breniser Lead & embedded architect Lead & Unit tester & prototype tester Chris Liebert Scheduler & test library architect Scheduler & test library architect Paul Lee Requirements guru & telemetry data architect Requirements guru & telemetry data architect & prototype tester Harrison Bailey DevOps / backup engineer & main logic architect DevOps / Backup engineer & main logic architect Cort Alexander Backup lead & control module architect Backup lead & control module architect Sohail Nayani JSBSim specialist & test library architect JSBSim specialist / test mode Tyler Alway Risk management & sensor module architect Risk management & sensor module architect & prototype tester

  3. The Project Step 1: Build a Flight controller, starting with roll control: Software used to control and monitor the aircraft ● Keeps the rocket stable in flight and provide roll control ● Step 2: Make it testable Use JSBSim to test the physics of a rocket ● Plug it into the flight controller ●

  4. The Project Why is this required? Transferring from fin based controller to cold gas jet based controller, allowing ● aircraft to be controlled in thin atmosphere Want to improve testability for existing design ● https://www.youtube.com/watch?v=YUP2_m3gPiM&ab_channel=PSAS https://www.youtube.com/watch?v=dbsLPdYd2Ec&ab_channel=PSAS

  5. The Language What is Rust? New open-source language sponsored by Mozilla ● Strongly statically typed, compiled, cross-platform language ● Advantages Memory safe WITHOUT garbage collection ● Move semantics ● Comparable speeds to C, C++ ● LLVM backend which allows for powerful optimization ● Gotchas New and changing language ● Library support exists but is not refined ●

  6. Build Process Travis CI / Github - Continuous Integration Automatically try to build and run tests ● Provides EMail and Github notifications ● CMake / Cargo Build Integration Generates build configuration / Makefile ● Used cmake-rs to launch CMake from Cargo ●

  7. Assumptions, Constraints, and References Assumptions: Flight controller runs on Linux with hardware, but we should compile/test ● without hardware Constraints Written in Rust, tested using JSBSim ● Compiled with 32 bit architecture ● References Prior PSAS work ● JSBSim documentation ●

  8. Product Features Promised vs Delivered Promised Delivered Receive sensor data Determine response and send control signals Yes Written in Rust - Linux compatible and 32 bit Yes Modular to add and remove hardware Yes Flight mode and Test mode compile separately Yes Utilize JSBSim for physics simulation Yes Simulate sensors and actuators in JSBSim Yes Runs on LED prototype Yes Run on Satellite reaction wheel No

  9. Deliverables Source code In a repository on Github, all open source using GPL2 license ● PSAS group will fork the Github repository into their own project directory ● Flight Controller Common components ● I2C and GPIO integration software ● Test framework JSBSim framework and glue code between Rust and C++ ●

  10. Demo https://www.youtube.com/playlist?list=PL8UKBDaWZPifD2Dj1vvfJeWF5F92Efrez

  11. Process and Schedule The best laid plans of mice and men Planned Process Actual Process Planned Schedule Actual Schedule Feature driven Module driven 3 iteration plan for ● Extra development development development implementation effort to learn hardware Pull request for changes Pull request + occasional Baseline work Refined behavior ● ● one off commits to ● Testing on the prototype master Stretch goals No time left for ● ● stretch goals Manual testing for each Integrated Travis CI for pull request automated testing

  12. Problems and Contingencies Event Mitigation Didn’t expect compiling to 32 bit Used built in rust methods to cross-compile Didn’t meet iteration schedule Dropped stretch goals but finished core work Running on cold gas jet prototype was Ran on LED board instead, then borrowed the LED board problematic from PSAS so we could test anytime we needed, it was also safer to test repeatedly on the LED board JSBSim was a blocker the whole time Rearranged so more people worked on the testing team

  13. Lessons Learned Co-location or active online communication is helpful for good development ● Rust is still new and changing (we went through 3 version in this project) ● Some libraries are not cross platform ● Flight controllers are awesome, but complicated ● JSBSim is awesome, but complicated ● … and has lackluster documentation ● Git is your frenemy ● Continuous Integration is your friend ● You can compile C++ inside of Rust using cmake + Cargo ● We learned how to use C++ libraries in Rust using a C ABI ● The more prototyping, the better ●

  14. Questions?

Recommend


More recommend