Skip to content
0:00 / 0:00

#c++#marsrover#vxworks

CppCon 2014: Mark Maimone "C++ on Mars: Incorporating C++ into Mars Rover Flight Software"

CppCon

189K subscribers • 103 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 1 in engineering communities and 1 curated list.
  • Presented by Mark Maimone
  • Linked in the descriptionCppCon/CppCon2014

Intermediate. Assumes working knowledge.

46K views12 years ago2 recommendations

Systems programmingProgramming languagesC++Embedded systemsOperating systems

Mark Maimone discusses how NASA incorporated C++ into the flight software of the Mars Exploration Rovers and Curiosity.

cppcon.org -- Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2014 -- One of the more challenging aspects of developing flight software (FSW) for NASA's Spirit and Opportunity Mars Exploration Rovers (MER) and Curiosity, the Mars Science Laboratory rover was how to enable them to drive themselves safely through unknown Martian terrain. When the MER mission was approved in the year 2000, JPL researchers had already demonstrated that capability on prototype rovers [1] using software written primarily in C++ on a VxWorks realtime O/S platform with shared memory. So when asked to incorporate that capability into the MER vehicles which also relied on a similar VxWorks realtime O/S, the team concluded it would be safest and most expedient to incorporate the already field-tested C++ software. But that presented a challenge, since at that point all rover FSW development was mandated to be done mainly in the C programming language. In this talk we present some of the challenges we faced and solutions we found in deploying C++ onto the Mars Rovers. For example, dynamic allocation was initially precluded, but development of a specialized memory allocator (using the C++ "placement new" operator) enabled us to incorporate it safely into the flight system. We will discuss what aspects of C++ were incorporated, what simulation environments aided development, describe some of the tools used to validate system behavior, and explain how our success using C++ for the implementation of autonomous navigation on MER has influenced future FSW efforts. [1] Jeffrey Biesiadecki, Mark W. Maimone, and Jack Morrison., "The Athena SDM Rover: A Testbed for Mars Rover Mobility," June 2001 iSAIRAS conference proceedings, Montreal, Canada., june 2001. -- Mark Maimone is a Navigation and Machine Vision researcher at JPL.Mark designed and developed the autonomous vision and navigation software that lets the MER and MSL Mars Rovers drive themselves safely, and wrote ground software that automated the analysis of Mobility and arm operations on MER.Mark is now a Rover Driver for Curiosity, and he continues to develop and enhance the onboard autonomous vision and navigation software for the rovers.Mark earned his Ph.D. in Computer Science at Carnegie Mellon University in 1996, and completed a postdoc there in 1997 as Navigation and Software Lead for the 1997 Atacama Desert Trek.At JPL since 1997, Mark has also worked on the Long Range Science Rover, Planetary Dexterous Manipulator, and Pioneer Vision System for Chornobyl Inspection projects, delivering 3D vision systems for autonomous robotic operations and mapping.Website: www-robotics.jpl.nasa.gov/people/Mark_Maimone/ -- Videos Filmed & Edited by Bash Films: BashFilms.com Work at Hudson River Trading (HRT): tinyurl.com/safxfctf

Why it's here

2 people recommend this

What people say. Highly recommended as an interesting and accessible look into real-world embedded C++ development for space exploration.

Moments people linked to

u/petioptrvin r/embedded • Recommends

Embedded C++ on Mars Talk This is an excellent talk I found recently on C++ on the Mars rover. Not very technical, but super interesting.
11View on Reddit

programming-talkscurated list on GitHubRecommends

Under “C++”

C++ on Mars: Incorporating C++ into Mars Rover Flight Software 01:26:18 by **Mark Maimone** (2014)