14
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

PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

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

Page 2: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Tasks and Team RolesPerson 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

Page 3: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

The ProjectStep 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

Page 4: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

The ProjectWhy 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

Page 5: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

The LanguageWhat 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

Page 6: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Build ProcessTravis 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

Page 7: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Assumptions, Constraints, and ReferencesAssumptions:

● 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

Page 8: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Product Features Promised vs DeliveredPromised 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

Page 9: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

DeliverablesSource 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++

Page 11: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Process and ScheduleThe 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

on the prototype

● No time left for

stretch goals

Pull request for changes Pull request + occasional

one off commits to

master

Manual testing for each

pull request

Integrated Travis CI for

automated testing

Page 12: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Problems and ContingenciesEvent 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

Page 13: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

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

Page 14: PSAS RCS Capstone Final Presentationwiki.cs.pdx.edu/capstone/spring_2016/PSAS-RCS-Summer-Presentati… · PSAS RCS Capstone Final Presentation Team: Brian Breniser - Chris Liebert

Questions?