The Communication Framework
The Communication Framework on the 2012 Mars Rover
My most important work for the 2011-12 rover was the design structure of the communication system, linking the user, the control and monitor computers, and the computer and microcontrollers on the rover. I designed and implemented a modular addressing scheme that reflect the mechanical configuration of the rover and the control terminals. This enabled modification to the hardware configurations be made on-the-fly during the competitions. It also allowed control and telemetry data to be transmitted across multiple media (2.4GHz and 900MHz WiFi, 900MHz XBee DigiMesh and ZigBee) and hardware with vastly different processing powers.
Control network of the 2012 rover (click to enlarge)
The goal is simple: Design a protocol that minimizes bandwidth and power usage while maximizing responsiveness and ensuring correctness. Its design has to ensure flexibility and expandability of its implementation.
The protocol is designed for a multiple-master multiple-slave configuration. It minimizes the latency by detecting and removing redundant control commands while guaranteeing the control commands are successfully committed at least once (by a query-response scheme). Part of the solution was a software model of the devices of the rover that provides a single point-of-entry for multiple hosts to control the rover simultaneously. The protocol made real-time telemetry, automated testing, debugging and backup override possible during the competitions.
Below is a screen capture of a real-time plot of the telemetry of the rover. By analyzing the sensor readings from the hardware during operations, preemptive actions could be made before problems arises (in this case, intermittent skipping of the linear position sensor shown in blue). This is one example of what my communication framework made possible.