Prototype rover in test bed with rocks.

MoonRanger is a microrover designed by Astrobotic and CMU to search for volatiles (ice) at the south pole of the moon. The rover is roughly the size of a suitcase and carries a neutron spectrometer as its payload, in addition to a solar panel that deploys at a 90 degree angle due to the low incidence angle of sunlight in the polar regions. MoonRanger is equipped with two pairs of stereo cameras, one in front and one in the rear, to be used for navigation, along with infrared laser dot projectors for use in shadowed regions. The rover is designed to autonomously traverse to waypoints of scientific interest and return to the lander, and is expected to survive for 2 weeks (one lunar day) on the surface of the moon.

I designed, authored, and validated the mapping component of the flight software for MoonRanger. The terrain mapper relies on stereo cameras to produce disparity images, which are then used to generate terrain meshes based on where edges are found in the depth images of a scene. Edges are generally observed at the horizon line, as well as along the tops or borders of obstacles (rocks) due to the presence of occlusions. Points determined to be along edges are kept at a higher rate to ensure correct modeling of these important features. Meshes are accumulated as the robot moves based on the pose estimate, with a set maximum radius and number of vertices used to remove points from the model if either constraint is violated. The terrain models generated by this mapper have been compared to a dense ground-truth scan produced by a FARO scanner while static and driving to confirm they represent the geometry of the terrain to an acceptable degree of accuracy.

In addition to my role developing the mapping software, I am also an active participant in integrated testing of the autonomous navigation software on a prototype rover (shown above). This testing occurs in the Moonyard test bed in the Planetary Robotics Lab at CMU and has included using motion capture systems to track ground-truth location of the robot, running the prototype rover through repeated loops around the test bed with different rock formations, and of course debugging software issues on the fly.