February 25, 2019
The formula to building a spacecraft that makes its own decisions
When DART Investigation Co-Lead Andy Rivkin asked me to write a blog post about SMART Nav, I thought he was pulling an April Fool's day prank … in December. When I realized he was serious, the obvious next question was, "How many words?" As an engineer, the idea of pausing to write a post is terrifying – but it's also an amazing opportunity to share this critical part of this important mission.
SMART Nav is the autonomous algorithm on DART that makes the decisions related to navigating the spacecraft toward Didymos-B. It stands for Small-body Maneuvering Autonomous Real-Time Navigation as it is intended to maneuver around or toward a small body (like an asteroid or comet). For DART, the algorithm uses the imagery taken by the on-board camera and identifies the targets in the image that could be the Didymos system. It then has to decide which target is Didymos-A and which one is Didymos-B. Like my teenage son who "optimizes" his use of energy, SMART Nav has to figure out when it is worthwhile to fire the thrusters and when it is best to coast, based on how much fuel is left and how far the Didymos system is from the spacecraft.
What makes this challenge even more fun is that we don't yet have a clear picture of what the Didymos system looks like. Radar and imaging data show that the Didymos system is a tidally locked binary, meaning that the same side of Didymos-B always faces Didymos-A, like the same side of our Moon always faces us. But we are unsure of the exact shape of either of the asteroids; their albedo, or light reflecting off the asteroids; or whether there could be a potential third body in the system.
To develop an algorithm that is robust to these unknowns, we needed a modeling and simulation environment that enabled us to emulate these elements as well as spacecraft behavior and optical payload behavior. However, I couldn't do all of this on my own. I needed help from experts. The team started out with three engineers: one that specialized in image processing (me), another in mission design (Justin Atchison), and the guidance, navigation, and control (GNC) "anomaly" (Mark Jensenius). I call Mark an anomaly because he's not just a GNC guy, he is equally strong in software engineering; in order to develop a robust algorithm that can fly in space, I believe that strong software engineering is a requirement.
Together, we developed the generic SMART Nav capability on an APL internal research and development effort. But as we started expanding the simulation, we realized we needed additional experts on the team. Nishant Mehta joined us and immediately extended our optical rendering and camera emulation capability, as we needed something that could simulate noise of the detector and optics, render stars, and give us the ability to change parameters such as integration time and required resolution. At the time, we had an algorithm and simulation environment developed in MATLAB and C++.
It didn't take long before the team doubled in size. We had a flight software expert that architected and developed the software in the loop (SWIL) capability. With any SWIL is the need for speed, and new experts came onboard to optimize execution time. A validation team was formed to make sure that our models do not defy physics. We even assembled a team whose primary objective is to break the SMART Nav algorithm. I could easily write another thousand words to tell you about this fantastic team, but our team picture captures how much fun we are having. Since it takes a team to build an autonomous spacecraft, it'll take a team to continue to tell the DART story – so keep an eye out for the next blog post on another aspect of the first mission to nudge an asteroid off course.