Source Code on GitHub
Autonomous Crane | Hexapod Walker
System Architecture | Software Design | Electrical Design | Mechanical Design
The system is divided into 3 major components: The remote PC controlling the system, the single board computer, and the microcontroller driving the servos.
The microcontroller is connected to the single board computer using USB serial. The microcontroller accepts movement commands from the single board computer and translates those into movement scripts, which are then executed to make the robot "walk". These scripts contain multiple servo commands, but are designed to travel minimal distances while still ensuring the robot remains stable. This iteration of the microcontroller code does not have a built-in timeout feature because movements always last a fixed amount of time and start only when a command is received.
The single board computer is responsible for the robot's wireless communication and making the devices on the robot available to the remote computer. It acts as a relay for commands, forwarding commands it receives to the microcontroller. It also acts as a relay for the camera, sending video from the camera to the remote computer for display. All network communication is done over the wireless network using UDP datagrams to carry the data.
The remote PC is responsible for issuing commands and displaying the camera feed to the user. It interacts with the single board computer over the wireless network to send commands and receive video.