CSCE 689-600: Special Topics in Multi-Robot Systems
Docking exercise
Your objective is to write a player client program for the iRobot create that will demonstrate obstacle avoidance (using the bumper) and docking within the provided dock using the IR channels. To do this you will need to process incoming input from sensors and generate the correct controls to produce base-seeking behavior. You can do this any way you see fit. Some examples of how you might structure the controller:-
- Building seperate behaviors using a subsumption-style architecture.
- Implementing and tuning a PID contoller.
Perhaps the single most important outcome of this project is that you should become familar with linux, player, and the development environment. To do this you'll have to immerse yourself in the culture of free and open-source software by seeking online help when you need it. You can also share any useful information or techniques with yourclass mates.
The following two figures are from the iRobot Create Open Interface (v2) documentation, and will probably prove to be useful for you. If you need more information, that document can provide it. So too can archives of player support mailing lists and the source code itself.
Evaluation
Your controller will be assessed by the instructor in person in a one-on-one meeting. You will demonstrate the docking behavior of the robot. The following are aspects that will be considered in the evaluation:-
- Does the robot dock successfully?
- Is the obstacle avoidance robust?
- Do different environmental or lighting conditions affect the performance?
Logging in/Running the code
All logins and passwords are netbook.
Run player by typing the following command in a terminal:
player ~/local/config/create.cfg
In a second terminal, run create test example:
cd ~/src/create_test
./create_test
You can open and edit the source file:
vim create_test.c
Rebuild the binary using the makefile:
make
Documentation
Documentation for player is most useful from the following links: