Skip Navigation

Flight Projects

Surface System Software and Rover Navigation


Surface System Software and Rover Navigation

JPL Robotics provided technical leadership, algorithm design, software development as well as testing for: general motor control, basic mobility, drilling, arm operations as well as high level autonomous navigation.

Control of the Rover is achieved through a distributed architecture. At the highest level is the Rover flight software (FSW) which runs on the Rover Compute Element (RCE), a RAD750 processor running the VxWorks operating system. Each subsystem’s FSW receives commands from the sequence engine and generates high level and low level motion behaviors designed to achieve the functional requirements of the subsystem. At the lowest level is the Motor Control Flight Software (MCFSW) running on separate SPARC processors in the Rover Motor Control Assembly (RMCA). The MCFSW provides PID control and low level motion fault protection operating at a 512 Hz control rate.

To drive on Mars, human Rover Planners assess the terrain and select a safe driving route through the local terrain imaged with stereo vision camara pairs on the front, back, and mast of the rover. The Rover Planners can instruct the rover to blindly follow the commanded path, or employ onboard control to navigate to selected waypoints while avoiding specified keep-out zones. Driving can be also be done autonomously: auto-navigation uses stereo vision to identify terrain with large vertical steps, steep slopes, or high roughness and automatically drive around them. When avoiding hazards, the rover stops every 0.5 (or up to 1.5 meters if it sees that the nearby terrain is safe), takes 4 sets of images, evaluates hazards, and then chooses where to drive. Auto-navigation is typically used to extend directed drives into terrain previously unseen by any human.


Curiosity keeps track of its position and orientation by fusing attitude measurements from gyros and accelerometers with measured wheel rotations. Additionally, a Visual Odometry (VO) robotic algorithm measures any deviation from the planned path by comparing pairs of images obtained before and after each drive step. The algorithm autonomously tracks features in the terrain and uses them to generate a full 6-degree-of-freedom pose estimate. This algorithm is the only method Curiosity has to detect slip while driving and is a critical safety component. Since being updated in the third year of the mission, VO has been used on more than 90% of drives, successfully converging in 99.6% of its first 20,682 attempts.

The MSL team discovered a higher-than-expected amount of damage on the surface of multiple wheels after 490 sols of operation. The science team devised strategies to avoid areas known to do the most damage, and several technologies were applied and developed by JPL Robotics in response. Visual Odometry became the primary drive mode, so that any anomalous slip could be detected as quickly as possible. New ground tools for terrain classification that could help detect the small, pointy rocks doing the most damage were developed. And a new FSW capability was developed to enable onboard Terrain-adaptive Wheel Speed Control to reduce the forces pushing on the wheel surfaces. As a result, the rate of damage has been dramatically lowered, enabling mission operations to continue for many years to come.

Three representations of MSL autonomous navigation: operators bound the space, the rover interprets the terrain, and a 3D view of the rover in a similar terrain.


People on this Project

Neil Abcouwer
Mark Maimone