ECE597 Project Robot Control

Team members: Alexandre van der Ven de Freitas, Eric Taylor

Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

 00 Executive Summary 00 Installation Instructions 00 User Instructions 00 Highlights 00 Theory of Operation 00 Work Breakdown 00 Future Work 00 Conclusions 00 Demo 00 Late Comments: I'm looking forward to seeing this.

Score: 10/100

(Inline Comment)

Executive Summary
The objective of this project is to create an autonomous Robot based on Beaglebone Black. The robot's structure is consisted basically of two parallel back tractioned wheels, a guideball on the front, 4 Infrared rangefinders, 1 sonar sensor and two digital rotation encoders.

The Magician Robot encoder from Sparkfun is successfully working and being read by a python script as well as the Infrared distance sensors in addition to a sonar sensor available in case one of the previous sensors fails.

The IR distance sensors can be a little tricky to deal due to their non-linear nature, but putting them 10 centimeters away from the edge fixes the issue.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Packaging
If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.

Installation Instructions
This project was developed in python which has a simple API created by Adafruit called Beaglebone Black IO - BBIO.

To install Adafruit's BBIO follow the instructions below. These installation instructions are for Debian and Ubuntu distributions:

1 - Update your Operating System and install the dependencies: bone$ sudo apt-get update bone$ sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y

2 - Next install the BBIO: bone$ sudo pip install Adafruit_BBIO

3 - Verify if the BBIO was installed properly: bone$ sudo python -c "import Adafruit_BBIO.GPIO as GPIO; print GPIO" bone$ 
 * 1) You should see the following message:

If the previous installation method fails, install it manually:

1 - Update and install the depencencies: bone$ sudo apt-get update bone$ sudo apt-get install build-essential python-dev python-pip python-smbus -y

2 - Clone the BBIO's git repository and change into the directory it was downloaded into: bone$ git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git bone$ cd adafruit-beaglebone-io-python

3 - Install the API and remove the installation file: bone$ sudo python setup.py install bone$ cd .. bone$ sudo rm -rf adafruit-beaglebone-io-python

The specifics on how to use this API in Python can be found on the following link provided by Adafruit.

The python scripts used on the project can be found in this git repository.


 * Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
 * Include any additional packages installed via opkg. // Probably won't be necessary.
 * Include kernel mods. // Probably won't be necessary.
 * If there is extra hardware needed, include links to where it can be obtained.

User Instructions
Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Two possible ways this will be implemented:

1. Manually run the main python script to start the robot.

2. Change the init.d file to start running the python script on boot.

Highlights
Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown
List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Future Work
Suggest addition things that could be done with this project.

Conclusions
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.