NASA’s Mars Perseverance Rover has numerous moving parts, including the robotic arm, drill, mast, instrument covers, high gain antenna, and mobility system. An unintended collision with the rover body or Martian surface during motion could cause damage that can’t be repaired. In addition, the SuperCam instrument shoots the LIBS laser at the surface to create a plasma and perform spectroscopy, and we also want to prevent the laser from zapping any part of the rover.
To avoid this, Perseverance checks upcoming moves and laser firing using its Rover Collision Model flight software and autonomously stops any activity before a collision could happen. To perform robotic arm collision checks Perseverance projects the next arm move into the future and checks if at any point in that move it would collide with the rover body. If the predicted move has no unexpected collisions, it allows commencing motion. At times the arm does need to get very close to hardware or even touch other parts of the rover body, such as during docking to exchange drill bits or cache sample. The rover knows when the contacts are intentional and allows them to occur. When Perseverance autonomously selects science targets onboard using AEGIS, it uses the Rover Collision Model to filter out any targets that may result in collisions before selecting a target for SuperCam targeting.
Typically the operations team sends commands to the rover once a sol and Perseverance needs to protect itself if some of those activities don’t go as planned. If the drill were to encounter even a minor fault, as occurred on Sol 374, the robotic arm could unexpectedly still be in front of the rover, touching the target. The planned LIBS firing in a continuation of the same plan the next morning was pointed to zap a rock that was now blocked by the arm. This was gracefully averted as intended by the Rover Collision Model on Sol 375.
Collision checking autonomously happens onboard, and the operations team does not typically perform any explicit commanding. Unless a move fails a collision check during ground simulation and needs to be adjusted, the operations team may not even notice it. Rover Collision Model was one of the flight software modules I designed and programmed, so I can’t help but think of what it’s doing in the background. As of sol 460, it has performed over 64,000 collision checks on Mars without error, reporting collisions where expected.
We’ve arrived at Hogwallow Flats. I’m looking forward to seeing the rover check for many more collisions and zaps as it performs some exciting science investigation.
Written by Vandi Verma, Chief Engineer for Robotic Operations at NASA/JPL.