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, 5 Infrared rangefinders and two analog 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.

Give two sentences telling what isn't working.

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 is based on Go software which has a simple robotics implementation API called gobot.

We first start with downloading and installing Go by following the steps below:

1 - Download the Go 1.3.3 for Linux using the command from the host: host$ wget https://storage.googleapis.com/golang/go1.3.3.linux-386.tar.gz

2 - Use the following command to decompress the tar file into its proper location: host$ tar -C /usr/local -xzf go1.3.3.linux-386.tar.gz

3 - Run the following command to add go to the environmental path or put it into a shell script file (for the sake of simplicity, let's call it "setGo.sh"): host$ export PATH=$PATH:/usr/local/go/bin

For later purposes also run: host$ export GOROOT=/usr/local/go

4 - Now that Go is installed, it is time to download and install gobot. Before running the following set of commands, I strongly suggest you to create an empty directory in an easy location so it is easy to find. The commands are: host$ go get -u github.com/hybridgroup/gobot host$ go get -u github.com/hybridgroup/gobot-beaglebone

5 - Change directories to gobot in order to run the following installation commands: host$ cd github.com/hybridgroup/gobot host$ go get github.com/hybridgroup/gobot && go install

6 - After gobot is installed, go to the root directory of Go and rebuild it to be able to compile the codes to linux-arm: host$ cd /usr/local/go/src - Or - host$ cd $GOROOT/src - And then - host$ GOOS=linux GOARCH=arm ./make.bash --no-clean

7 - Now that the compiler is set for arm architecture, use the following command in order to compile codes and then send them to the bone: host$ GOARM=7 GOARCH=arm GOOS=linux go build examples/beaglebone_blink.go

8 - Using scp to send and run the program in the bone from the host: host$ scp beaglebone_blink root@192.168.7.2:/home/root/ host$ ssh -t root@192.168.7.2 "./beaglebone_blink"

Click for more information about Go and Gobot in different operating systems.


 * Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
 * 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 a Makefile for you code.
 * Include any additional packages installed via opkg.
 * Include kernel mods.
 * 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.

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.