The purpose of this session is to address a complex problem, split it into sub-problems, divide the work, agree on interfaces, and to engage in continued process of communication and revision towards solving the problem.
The challenge is to precisely drive the robot to where we want. That presumably means developing schemes for determining the robots current location, as well as driving along a predictable path. This may sound straight forward, but note that you don’t have a GPS, only partial information about the robots location. Our environment will consist of walls and boxes.
We want you to organize the work. We assign you to some teams initially to bootstrap the process. You can then brainstorm what sub-problems needs to be solved, and which ones can be worked on in parallel. You can appoint a leader and other roles as you feel necessary. You can eventually contact the other teams to regroup into workgroups addressing separate tasks. These workgrounps will then work together as needed to create the right interfaces, so that you together will end up with a consistent solution.
Focus on relation between the problem at hand and the organization of the work. Redistribute people, regroup, merge, and split as you learn more about the problem.
Just to give an idea of what to aim for, consider the following challenges:
But note that before archiving most of the higher level goals, you will need to learn to control the hardware and esp. get sensible results from the sensors. It’s up to you to formulate intermediate challenges. Don’t expect to solve all the higher level challenges, they are not as easy as they may seem.
You will be provided:
You bring your own laptop to connect to the robot and to access available documentation.
We recommend to follow our instructions but you are welcome to experiment and create different robots.
To skip over the technicalities of designing the protocol between the
Raspberry Pi and the Arduino, you may start off with the our
skeleton code.
The arduino
directory contains a driver for the extra shield
containing accelerometer, gyro, and compass, and main application serving
some basic commands. The python
directory contains a partial
implementation of the corresponding Raspberry Pi code.
You are of course free to change or replace any parts of the provided software, and you should certainly extend it as needed.
We have set up a dedicated access point for connecting to the Raspberry Pis, which also provides internet connectivity. The SSID is ahm2017 and with a password to be provided.
The Pis are numbered from 1 to 4, and the corresponding IP numbers are:
10.10.0.228
10.10.1.116
10.10.2.59
10.10.3.208