PSAS RCS Capstone Final Presentation

Similar documents
PSAS RCS Capstone Presentation

Standards for Developing and Implementing Administrative Systems at UC Davis

CMPT 373 Software Development Methods. Building Software. Nick Sumner Some materials from Shlomi Fish & Kitware

Managing and Maintaining Windows Server 2008 Servers

Chapter 12. Development Tools for Microcontroller Applications

Requirements Management John Hrastar

Continuous Integration/Testing and why you should assume every change breaks your code

Software Continuous Integration & Delivery

(Refer Slide Time: 01:52)

Agile Performance Testing

SCADE Suite in Space Applications

Latest Trends in Testing. Ajay K Chhokra

The MODIS online archive and on-demand processing

Software Configuration Management

Getting Started with the AllJoyn Lighting Service Framework 14.12

Art of Code Front-end Web Development Training Program

F-16 Modular Mission Computer Application Software

Managing Variability in Software Architectures 1 Felix Bachmann*

DevOps. Building a Continuous Delivery Pipeline

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Example Software Development Process.

2.1 The RAD life cycle composes of four stages:

The Importance of Continuous Integration for Quality Assurance Teams

DevOps Course Content

How To Write An Slcm Project Plan

Template for IT Project Plan. Template for IT Project Plan. [Project Acronym and Name]

SCOPE PRESENTATION INTRODUCTION

SOFTWARE DEVELOPMENT BASICS SED

Applying Agile Project Management to a Customized Moodle Implementation

Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?

Smarter Balanced Assessment Consortium. Recommendation

System Development Process based on Embedded Linux and Sensor Node


Continuous Integration for Snabb Switch

Glendale Community College Microsoft Office SharePoint Server 2007 Initiative Vision/Scope Document. Version 1.0

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Department of Veterans Affairs. Open Source Electronic Health Record (EHR) Services

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Organization. Project Name. Project Overview Plan Version # Date

Mastering CMake. Sixth Edition. Bill Martin & Hoffman. Ken. Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard,

Software Testing, Mythology & Methodologies

The Click2NetFPGA Toolchain. Teemu Rinta-aho, Mika Karlstedt, Madhav P. Desai USENIX ATC 12, Boston, MA, 13 th of June, 2012

Time Monitoring Tool Software Development Plan. Version <1.1>

Software Test Plan (STP) Template

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

SOFTWARE PERFORMANCE TESTING SERVICE

Open Source Alternative to Deploying Transportation Management Systems

Accessing I2C devices with Digi Embedded Linux 5.2 example on Digi Connect ME 9210

Continuous Integration

Planning and Administering Windows Server 2008 Servers

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

A Talk ForApacheCon Europe 2008

RISC-V Software Ecosystem. Andrew Waterman UC Berkeley

Resource Monitoring During Performance Testing. Experience Report by Johann du Plessis. Introduction. Planning for Monitoring

ERIKA Enterprise pre-built Virtual Machine

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

From Chaos to Clarity: Embedding Security into the SDLC

TASPO-ATS-L System Test Plan

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

Managing your Red Hat Enterprise Linux guests with RHN Satellite

BUSMASTER An Open Source Tool

MOC 20467B: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Open is as Open Does: Lessons from Running a Professional Open Source Company

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

DevOps Stack. Reid Holmes. Chris Parnin:

x86 ISA Modifications to support Virtual Machines

The sphinx simulator project

State of New Jersey Shared IT Architecture

PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0

Lesson 1 Introduction to Rapid Application Development using Visual Basic

Three SOA Case Studies understanding what to use where. Paul Fremantle Chief Technology Officer WSO2 Inc

INTERNAL SERVICES GROUP PMO

Designing a Windows Server 2008 Applications Infrastructure

Summer camp. Emily May. Instructor and Curriculum Developer for Adventures in Engineering and Rocket Science. Digital Media Academy 7-12

Service Oriented Architecture for Agricultural Vehicles

R3: Windows Server 2008 Administration. Course Overview. Course Outline. Course Length: 4 Day

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

Automation & Open Source. How to tame the Cloud?

C Programming Review & Productivity Tools

A lap around Team Foundation Server 2015 en Visual Studio 2015

What Is Software Configuration Management?

De-Risking large Software development projects

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Tonight s Speaker. Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft

STM32JAVA. Embedded Java Solutions for STM32

Massively! Continuous Integration! A case study for Jenkins at cloud-scale

Automated Module Testing of Embedded Software Systems

Code Sharing using C++ between Desktop Applications and Real-time Embedded Platforms

Cloud Computing for Universities: A Prototype Suggestion and use of Cloud Computing in Academic Institutions

BarTender Version Upgrades. Best practices for updating your BarTender installation WHITE PAPER

A FRAMEWORK FOR SMART TRANSDUCER INTERFACE SYSTEMS

Five standard procedures for building the android system. Figure1. Procedures for building android embedded systems

Agile project portfolio manageme nt

Utilizing Defect Management for Process Improvement. Kenneth Brown, CSQA, CSTE

Risk Mitigation, Monitoring and Management Plan

LESSON 17: Balloon Rockets ESTIMATED TIME Setup: 5 10 minutes Procedure: 5 10 minutes

Custom Software Development Approach

Iterative Project Management 1

COL- CC and ESA Ground Segment. Page 1

Transcription:

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

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

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

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

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

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

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

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

Process and Schedule The best laid plans of mice and men Planned Process Actual Process Planned Schedule Actual Schedule Feature driven development Pull request for changes Manual testing for each pull request Module driven development Pull request + occasional one off commits to master Integrated Travis CI for automated testing 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

Problems and Contingencies Event Mitigation Didn t expect compiling to 32 bit Didn t meet iteration schedule Running on cold gas jet prototype was problematic JSBSim was a blocker the whole time Used built in rust methods to cross-compile Dropped stretch goals but finished core work 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 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?