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

psas rcs capstone final presentation
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 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

slide-3
SLIDE 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
slide-4
SLIDE 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

slide-5
SLIDE 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
slide-6
SLIDE 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
slide-7
SLIDE 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
slide-8
SLIDE 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

slide-9
SLIDE 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++
slide-10
SLIDE 10

Demo

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

slide-11
SLIDE 11

Process and Schedule

The best laid plans of mice and men

Planned Process Actual Process Planned Schedule Actual Schedule Feature driven development Module driven development 3 iteration plan for implementation

  • Baseline work
  • Testing
  • Stretch goals
  • Extra development

effort to learn hardware

  • Refined behavior
  • n the prototype
  • No time left for

stretch goals Pull request for changes Pull request + occasional

  • ne off commits to

master Manual testing for each pull request Integrated Travis CI for automated testing

slide-12
SLIDE 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 problematic Ran on LED board instead, then borrowed the LED board 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

slide-13
SLIDE 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
slide-14
SLIDE 14

Questions?