Flight Software Development Through Python

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Joshua Fabian Tyler Young James C. Peyton Jones Garrett M. Clayton Integrating the Microsoft Kinect With Simulink: Real-Time Object Tracking Example (
Selenium Automation Testing Suite of Tools
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Selenium Automation Testing Suite of Tools. What is Selenium? Selenium is a robust set of tools that supports rapid development of test automation for.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Chapter 1 Introduction to SAS ® Enterprise Guide ®
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
COBXXXX EXPERIMENTAL FRAMEWORK FOR EVALUATION OF GUIDANCE AND CONTROL ALGORITHMS FOR UAVS Sérgio Ronaldo Barros dos Santos,
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
March 2004 At A Glance The AutoFDS provides a web- based interface to acquire, generate, and distribute products, using the GMSEC Reference Architecture.
GLAST Large Area Telescope LAT Flight Software System Checkout TRR Test Environment Sergio Maldonado FSW Test Team Lead Stanford Linear Accelerator Center.
Aaron Corso COSC Spring What is LAMP?  A ‘solution stack’, or package of an OS and software consisting of:  Linux  Apache  MySQL  PHP.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Simplifying Customer Software Integration Tim Myers April 9 th, 2011 Colorado Undergraduate Space Research Symposium Payload Configuration GUI.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Linux Standard Base Основной современный стандарт Linux, стандарт ISO/IEC с 2005 года Определяет состав и поведение основных системных библиотек.
Appium Studio Appium testing made easy at any scale.
Simulink Interface Layer (SIL)
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Project Center Use Cases
cFE FSW at APL & FSW Reusability
PLM, Document and Workflow Management
cFS Workshop Introduction
ITEA3 Project: ACOSAR Advanced Co-Simulation Open System Architecture
z/Ware 2.0 Technical Overview
Extending Model-Driven Engineering in Tango
UT-Assert Library Presented by Charles Zogby, NASA-GSFC
Self Healing and Dynamic Construction Framework:
Designing For Testability
Introduction to Redux Header Eric W. Greene Microsoft Virtual Academy
Computer Aided Software Engineering (CASE)
Pipeline Execution Environment
Design and realization of Payload Operation and Application system of China’s Space Station Wang HongFei 首页.
PVS-Studio static analyzer: advanced features
Intent To provide a framework to manage the process of software salvage and promote loose coupling through message passing. Salvage means recycling significant.
Distribution and components
Informix Red Brick Warehouse 5.1
The Client/Server Database Environment
CHAPTER 3 Architectures for Distributed Systems
Integrating CCSDS Electronic Data Sheets into Flight Software
Recall The Team Skills Analyzing the Problem (with 5 steps)
Applied Software Implementation & Testing
Matthew Lyon James Montgomery Lucas Scotta 13 October 2010
cFS Workshop Product Management
Intel® Parallel Studio and Advisor
A Pattern Language for Software Architecture
Chapter 2: The Linux System Part 1
Software Installation
Module 01 ETICS Overview ETICS Online Tutorials
Software visualization and analysis tool box
NASA/ Johnson Space Center
Autonomous Operations in Space
A Collaborative Environment
DevOps for Planetary Defense Flight Software
PyWBEM Python WBEM Client: Overview #2
Software Development Process Using UML Recap
T-FLEX DOCs PLM, Document and Workflow Management.
Chapter 2: Building a System
From Use Cases to Implementation
Presentation transcript:

Flight Software Development Through Python Scott Piggott, Maria Cols Margenet, John Alcorn, P. Kenneally, and Hanspeter Schaub

The Basilisk Development Environment Collaboration between LASP and the Autonomous Vehicle Systems Laboratory at the University of Colorado Named for the South American Common Basilisk Simulation internally runs in C/C++ objects SWIG creates Python bindings that allow each module to be treated as Python objects Cmake allows the whole package to be built cross-platform Windows, OSX, Linux

Relevant Basilisk Design Features Diagram greatly simplified! Algorithm interfaces are handled via message passing Pieces work like “Legos” System abstraction allows user to sandbox messages Dynamics, FSW, analysis, etc. Interface abstraction for multi-process Separate FSW Granularity at the Python “brick” level Completely scalable up to full integrated model Dynamics Reaction Wheels Star Tracker Inter-System MPI Attitude Navigation Pointing Vehicle Control Vehicle System FSW System

Transition to Target FSW Overall design philosophy is to capture what was executed Python is very good at introspection Configuration parameters are captured post-initialization Python can obtain all parameters from models Messaging map is obtained from messaging singleton post-run Task/Algorithm prioritization is reflected in code

Code Testing Unit testing of algorithms performed via Python scripting Significantly easier test setup than with C test-stubs Inline test analysis easily performed with Python/numpy/matplotlib/etc Integrated system-level tests can be based around a central test base-class Data display/analysis, remote communication configuration, scenario-macros Post-run products can be generated automatically Automated testing can be easily integrated with continuous integration methodologies Basilisk utilizes pytest for system checkout Approximately 300 distinct tests running today Complex analysis like code coverage can be performed against the test-suite Mission-unique code can be separated from Basilisk and built/run/tested separately Basilisk compatible code can also be integrated directly

Test Execution Analysis Basilisk is designed to facilitate analysis using Python-standard tools numpy/matplotlib/pytest/etc. Any C/C++ variable accessible via SWIG/Python can be logged and interrogated Haven’t found a type yet that we can’t make work! All system messages that are exchanged can be logged User-specified rate All logs are returned as numpy arrays to simplify analysis

Autocoding a Basilisk Design Each Basilisk task can have boilerplate architecture generated Queries itself to determine how to generate that data All model parameters are specified in a single function Complex objects (arrays of structures for example) are totally usable with simple SWIG directives Each task requested is then configured with top-level function calls Separate rate-groups can be autocoded separately for multi-rate designs Analogous to Simulink or Labview autocode

RTEMS/CFS/Basilisk LASP is working on a project that is using CFS running on the RTEMS operating system Basilisk is being used for the ADCS application development All algorithm functionality dispatched from a single application (multi-rate) using an internal blackboard messaging system CFS’ messaging is ill-suited to Basilisk’s messaging requirements Inter-application messages are mirrored out to CFE software bus Autocode is easily inserted into the main ADC app and called from CFS

Have you Scanned your Planet Today? Cyan line shows a distributed all-Basilisk simulation Blue line shows that same simulation running distributed with CFS Now we have easy reconfigurability Python is our main development testbed Complex vehicle behaviors can be assembled from successive bricks All internal code can be examined and analyzed by you

Basilisk Development Direction Initial Alpha open-source release available January 15th Invitations readily available! Anticipate a full open-source beta release sometime in 2017 Simulation model verification (unit-level) complete Majority of software will be undergoing CDR review in 2017 Simulation will serve as flatsat driver for flight program Integration starting 2017 Algorithms should be on-orbit by late 2020

Conclusions Basilisk is a free and open-source simulation and algorithm-development testbed Entire package is designed from the ground up for the full spacecraft lifecycle on programs of arbitrary complexity The entire Basilisk system can be run on most PC operating systems with the addition of some free and open-source products Tested daily on Windows, OSX, and Linux (Mint) Python, Cmake, SWIG, and your favorite compiler The topics covered today are not even the coolest parts of the system! Full fidelity vehicle dynamics, vehicle visualization, etc.

Questions?