The MALG takes in serial data from the Oculus Prime server node based on a fixed protocol. Depending upon the data received, the MALG can carry out the following functions:
- Move the platform by a given distance.
- Turn on/off lights, speakers etc.
- Fuse data from encoders and gyro to relay accurate odometry data.
There were a couple of problems with the MALG that required a custom board to be made. The first problem arose from a functional requirement (MF.11) that of the platform to be non-holonomic in nature. The default firmware is such that the platform can execute only one-dimensional motions and thus reach different positions only by turning on its axis. The firmware was modified to include “arc-turns,” which better simulate the turning of a car. However, the minimum turning radius that can be achieved by these stock motors is about 0.6m.
The second problem arose when one of the USB hubs malfunctioned and took out the MALG connected to its USB port. The MALG, being an ATMega 328 based board, was replaced by a custom-made board and a motor driver, which mimic the functionality of the MALG, barring the external gyroscope. This problem has been resolved in the Spring semester. New MALG PCBs were procured which are now integrated with both functional platforms.