Integrated Design Project

An autonomous line following robot, programmed in C++


For my second year Integrated Design Project, I worked in a team of 6 to design and build an autonomous line following robot.

I worked with a partner on writing the software for our robot in C++. The task for the robot was to collect, identify, and deposit small parcels at different locations based on their colour or weight. Our program had to be robust and reliable, to deal with errors with the sensors and irregularities with the motors.

Before we could write the code, we had to decide which sensors and actuators we could use to best implent our strategy and basic design concept. We ended up with an array of infrared sensors for the line-following, a couple of microswitches to get feedback from the collection mechanism, and a light sensor to identify the parcels.

The pictures opposite show how we designed our system, with each colour indicating a different source file. This clear layout of the software structure allowed us to work in parallel on the code, allowing us plenty of time to debug, test, and calibrate our program.

Our code proved the most reliable in the class, due to the extensive testing and refinement that we were able to do. In the final time-limited competition, our robot placed 3rd out of 12.