Robotics Engineering
Controls Lead for Mars 2020 Rover sampling & caching subsystem
Embedded software development for Europa Lander testbeds
Analysis & simulation of nonlinear systems
Testbed operations planning & execution
NASA Jet Propulsion Lab — 2018 to 2021
IEEE PAPER | Mars 2020 | Europa
Feedback control
I joined the Mars 2020 (AKA Perseverance) project at JPL in 2018, at which point the hardware design was all but final. The system design involved many trades, and the final design had many controls challenges including limited sensing capabilities and nonlinear mechanism dynamics. It was my team’s responsibility to design feedback control systems to robustly overcome these challenges. Linear techniques and analysis were used to the extent possible, and “lessons learned” regarding hardware design in the context of motion control were documented for future missions. These have since been incorporated into JPL’s best-practices.
Simulation & nonlinearities
Various nonlinearities in the Mars 2020 system made it difficult to analyze system performance. The primary challenges were related to verifying the assumptions made during analysis and extending the analysis if assumptions are found to be invalid.
High-fidelity simulations were often required to determine root cause of highly nonlinear transient behavior. I developed simulations for the Mars 2020 robotic actuators in Simulink, and I validated them against test results on real hardware. These simulations were able to predict phenomena that had previously only been observed empirically, thus establishing theoretical basis for operational work-arounds that had been implemented in response to the observed behaviors.
Testbed operations, and verification & validation (V&V)
As the system matured and the launch date came and went, testing campaigns grew ever more complicated and vital to mission success. Test procedures were designed to trade resources (time, facilities, staff, etc) with risk reduction while eliciting results that were meaningful and interpretable in the context of the larger project.
I helped plan some tests of the Mars 2020 Sampling & Caching Subsystem in support of both my controls analysis and miscellaneous systems engineering investigations. I served as a testbed operator in a variety of venues which encompassed a range of system configurations, test objectives, and environmental conditions (including thermal vacuum chamber testing).
I also acted as a systems engineer and reviewed data gathered during testing. I typically used JMP and Python / Jupyter to explore, analyze, and visualize the data. One IEEE publication came out of my efforts related to testing and V&V.
Embedded software for Europa Lander testbeds
The Europa Lander project had a collection of robotic research testbeds, each serving a different purpose for the project. I was on the software development team writing the next generation of embedded software (fastcat) that would operate these and other testbeds at JPL. Git was heavily utilized in the development process.
Our software deployments that bring these testbeds online leveraged the widely used ROS2 libraries and EtherCAT device network. We wrote custom ROS2 nodes, libraries, and tools in C, C++, and/or Python, depending on the application. Low-level device drivers, high-level behavior modules, telemetry logging, and operator interfaces were all encompassed by our software.