Equipment Setup
In cs424, we will be programming an iRobot create using a Raspberry Pi 3
Model B. iRobot Create is a robotics platform that can be programmed
through a serial interface called OI (Open Interface).
We will be using OI to read the sensors, and control the actuators.
Raspberry Pi is a small single-board computer with USB, WiFi, Bluetooth, Ethernet, HDMI, Audio, and GPIO connectivity. When the iRobot is in motion, the Raspberry Pi is powered through an external battery. The entire setup is mobile, and it looks like the following:
Class Materials | Additional Resources |
---|---|
Overview of cs424 lab and a summary of iRobot Create. To setup your iRobot with Raspberry Pi and install softwares, follow Equipment Assembly and Initial Setup. |
iRobot Create Manual Refresher for POSIX thread programming Thread scheduling in Linux. Raspicam, C++ API to control Raspberry Pi Camera OpenCV Documentation, Open Source Computer Vision. |
Machine Problem 1
In this problem, we will set up iRobot Create with Raspberry Pi, and implement a program using C++ that drives the robot according to the given instructions.
Class Materials | Additional Resources |
---|---|
mp1 Problem Specification Example program to test and start mp1 |
iRobot Create OPEN INTERFACE Specificationlibirobot-create library headerlibirobot-create Official DocumentationNote that we use a modified version of libirobot-create |
Machine Problem 2
Write a C++ program that drives iRobot by closely following the walls, i.e. the contour of a maze, and plots it. At the same time, the robot identifies known objects inside the maze using the camera. The robot also runs arbitrary external tasks given as binaries. The robot must ensure its own safety, and complete navigating the maze as fast as it can.
Machine Problem 3
In this problem, you will apply the principles learned in class to improve your design of the robot software (your C++ program) developed for mp2. While mp2 focused primarily on functionality needed for the robot mission (such as navigation, safety, and computer vision tasks), mp3 will focus on the overall software architecture and design.
Class Materials | Additional Resources |
---|---|
mp3 Problem Specification |
Machine Problem 4
In this MP, you will apply the principles learned in class to improve your navigation module. Specifically, you will use a feedback control loop to follow walls without bumps. While the earlier machine problems focused on safety and mission critical functionality and the overall architecture, this one focuses on designing and implementing the correct control loop.
Class Materials | Additional Resources |
---|---|
mp4 Problem Specification |