Track Driven Robot

I constructed this track-driven robot together with fellow students for a university project. The goal of the project was to apply programming techniques to a mechanical engineering problem. The project assignment merely required the construction of a very simple autonomous robot, but since practical assignments are unfortunately quite rare, we decided to invest some extra time and design something nice. The robot can autonomously perform standard tasks like obstacle avoidance, parallel parking or labyrinth navigation. It also features an advanced line following logic and automatic calibration routines.

Chassis & Drive System

The robot is propelled using a track drive system. The tracks and rollers were sourced from a tank modeling supply. Each track is driven by a stepper motor through a chain transmission. A photo interrupter was placed on each motor shaft to provide odometry and detect stalls. The drive chassis is constructed from two pieces of aluminum sheet metal that are connected with 10mm extruded aluminum.

Electronics

The robot was designed as a modular system, with each component being connected to a centralized low-baud I2C bus. Since this is an educational project, the bus controller was implemented on an Arduino Uno board, so it would be very easy to program.

A motor driver board was designed for controlling the motors over the system bus. It supports various motor functions including velocity ramping, braking and odometry. Stalls are automatically detected using the previously mentioned photo interrupters and reported to the bus controller.

An ultrasonic distance sensor was mounted on each side of the robot. Each sensor was equipped with an adapter board for interfacing to the bus and pre processing sensor values. A line-tracking array consisting of five infrared reflectance sensors was mounted on the robot. The sensors interface to a separate control board that provides analog to digital conversion and connects to the system bus.

Controls

A basic control panel was designed to allow user interaction. The panel features an two-line LCD panel and a few buttons. The robot is also pre-equipped for WiFi connectivity, although this functionality was not fully implemented.