top of page
Xiaoshuo Li
Cpre 288 Final Project
This final project is to compile C Language code embedded into iRobot which can be controlled to arrive at the destination without looking by the user. This is a comprehensive project that combined all previous labs that taught us how to deploy open interface, how to make iRobot moving (forward, backward, turning), how to control stepper motor and PING sensor to measure the distance etc..
This project requires strong technical communication and collaboration to integrate all codes into a system. We split the work to several parts, including: iRobot Motion Code, iRobot Sensor Code, Connection Code (USART, and Bluetooth), Graphical User Interface (GUI) Design, Sound Code, and Test. I focused on motion code, sensor code, fractional GUI code, sound code, and test.
For the demonstration, we are not allowed to look at the machine, and the instructor will put iRobot in a random position where is far away from the destination with different kinds of barriers in between. We need to manually control the machine, and most importantly reach the destination. Eventually, our group was the first group finished the demonstration. One of my teammate and I controlled the machine based on GUI’s display to find the destination. The scenario is to simulate Mars Rover to retrieve something from the Mars. The machine needed to avoid bumping into tall objects; change direction when hit bumpers; avoid falling down the hole, or avoid reaching a cliff; move within the infrared ray bound; reach the destination which bounded by white tape beneath and four thinnest pillar standing at each tape’s corner. We used only 15 minutes to finish the route without violating any rules, and played a song at the destination.
During this final project, our team confronted many troubles in both technical and personal aspects. We used Processing software for GUI design, and it showed a poor compatibility when we tried to connect with iRobot. The Bluetooth connection sometimes was also very weak that slowed down our project’s progress. We have to handle the situation when the hardware underwent breakdown, and at the same time, we need to ensure our software worked fine as well. After this final project, I think I’ve became better in writing and debugging codes, and I realize the importance of teamwork.
bottom of page