To ensure that all actuator positions and sensor values are being updated correctly in real time from the high level to the low level, we recommend using the provided MMM_XBOX.py controller script. Basically what this script does it that it allows manual operation of the robot through input from a wired Xbox 360 controller. If everything wired correctly and the all the software pin mappings are correct, the following controls should do the following:

D-pad Left: rotates the robot left.

D-Pad Right: rotates the robot right.

D-Pad Up: moves robot forward at .18 meters per second.

D-Pad Down: moves the robot backward at .18 meters per second.

Left Bumper: Rotates all left gripper servos 180 degrees.

Right Bumper: Rotates all right gripper servos 180 degrees.

Left Thumbstick: rotates the left arm up, down, left and right.

Right Thumbstick: rotates the right arm up, down, left and right.

Left Thumbstick Click: Extends the left arm forward and backwards

Right Thumbstick Click: Extends the right arm forward and backwards

Back Button: Closes the connection and quits the script.

Note: when testing out more advanced high level scripts with the robot, it is recommended to send update() commands once every 50 milliseconds in a separate thread. Constant updating is needed to flush the serial buffer and fix errors that may occur during serial transmission. Separate threads are necessary because reading and writing to serial ports is slow and may prevent other high level processes from executing at usable speeds.