Autonomous Robots

The goal of this project is to build robotic cars using Commercial-Off-The-Shelf (COTS) parts and add the ability to communicate between the bots and perform cooperatively.

This is a computer science based project and is focused more on the software design for the robots rather than the building of the robots. Because of this the bots are simple to build while allowing for robust software development.

Problem Definition
The goal for the project this semester is to implement functional communication between the two bots using Android based phones and Xbee chips on the Arduino board of each bot. The communication overview is as follows:


 * 1) The first phone will send commands to the first bot via Bluetooth.
 * 2) The first bot will receive this information.
 * 3) The first bot will relay the information to the second bot via the XBee chip.
 * 4) The second bot will receive the information from the first bot.
 * 5) The second bot will communicate that it received information to the second phone via Bluetooth.

Background
Past members for this project built two bots with an Arduino board, XBee chip, Bluetooth chip, engine, and battery pack. They also wrote code for the Arduino as well as code for the Android application. The Android app runs, but there are currently issues with the Arduino code that we are working on.

Deliverables
By the end of the semester we should be able to deliver a working demo of the bots working and communicating with each other. We will also deliver comprehensive documentation of the work we do in order to aid future developers of the Autonomous Robots project.

Specifications
The project sponsors have set some design specifications that we must follow in order to make the project a success.

Bot Specifications:


 * 1) The bots must be affordable (less than $500).
 * 2) The bots must be easy to build.
 * 3) The bots must be programmable using modern languages and IDEs.
 * 4) The bots must be durable for repeated testing.

Communication Specifications:


 * 1) Communication must work quickly.
 * 2) Communication must be stable.
 * 3) Communication must be simple for the end user.

These are the general specifications that we will work with while designing and developing the project.

Android Studio
We have learned how to use Android Studio for Android development in order to install the app to an Android phone.

The issues we ran into involved the Android API version because some of the code requires API 14 and up. This means that some older phones will not work because of updates to the Android development libraries and tools.

The other issue we ran into is that new Android phones have the developer options hidden. In order to install apps from the Android studio onto the phone we had to perform the following steps:


 * 1) Go to the phone settings.
 * 2) Tap on about phone.
 * 3) Tap the build version number 7 steps.

Doing this activates developer mode and allowed us to install the app.

Arduino Studio
We have learned the basics of Arduino Studio in order to write code for the Arduino board. We performed several simple routines using just the board, manipulating the LED light.

Document Archive
TO BE ADDED