System Overview
System Diagram
The diagram above visualizes components in our system and the flow of information.
The user controls the movement of the robot with the “drive” and “spin” knobs on the joystick. These joystick outputs are streamed via USB to the laptop and converted to a command containing desired direction and rotation. The laptop then sends this command over wifi to the Raspberry Pi using sockets. On the Raspberry Pi, a script takes the command and calculates the servo angle and the drive motor velocity of each swerve module for the desired movement. After completing calculations, the Raspberry Pi sends the servo and drive motor commands to the Arduino Unos over serial. Each Arduino is responsible for parsing and executing the servo and motor commands for two swerve modules. Put everything together and we get a swerve drive robot!
Subsystems
Click the following buttons to learn more about our subsystems.