Psas Rcs Capstone Final Presentation 2
Psas Rcs Capstone Final Presentation 2
Presentation
Team: Brian Breniser - Chris Liebert - Paul Lee - Harrison Bailey -
Cort Alexander - Sohail Nayani - Tyler Alway
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
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
https://www.youtube.com/watch?v=YUP2_m3gPiM&ab_channel=PSAS https://www.youtube.com/watch?v=dbsLPdYd2Ec&ab_channel=PSAS
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
Build Process
Travis CI / Github - Continuous Integration
Constraints
References
Receive sensor data Determine response and send control signals Yes
Flight Controller
● Common components
● I2C and GPIO integration software
Test framework
https://www.youtube.com/playlist?list=PL8UKBDaWZPifD2Dj1vvfJeWF5F92Efrez
Process and Schedule
The best laid plans of mice and men
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
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
Questions?