ECE497 Project Rover
Embedded Linux Class by Mark A. Yoder
Team members: Ross Hansen, Jesse Brannon, Michael Junge
Contents
Executive Summary
This project is a BeagleBone implementation of a land-based rover intelligence platform. Through the BeagleBone mounted on an RC car, the user will be able to control the car over WiFi. The user can give commands to drive forward, drive backward, turn left, and turn right. The BeagleBone will send back helpful information to the user over Wifi, such as GPS location and compass heading. Time permitting, the user will also be able to guide the rover along a path by defining waypoints for movement.
Currently, the project is well underway. The RC car has been acquired and reverse-engineered to gain access to the motor electronics, and the BeagleBone GPIO outputs have been interfaced to allow motor control. A WiFi module has been selected and a procedure has been developed to get it working on the BeagleBone (harder than it seems!). Libraries for the GPS sensor and compass have been written and tested. Code for the network communication to control the BeagleBone over WiFi has been written, and the protocol and libraries are currently being developed to add drive command and waypoint functionality.
In the next week the team hopes to complete the code to drive the rover over the network - this involves polishing the networking code and developing the waypoint/movement management code. The team also needs to implement more features in the GPS library to allow configuration of the GPS location update frequency (it is currently limited to 1 Hz).
When completed, the project will serve as a neat demonstration of the capabilities of the BeagleBone as a robotics platform. The GPIO output, I2C and serial interfaces, WiFi dongle compatibility, and embedded Linux OS of the BeagleBone provide an excellent platform for mobile robotics development.
Installation Instructions
The work-in-progress code for the platform can be found on Github. The drive base used for the platform was purchased from Toys R Us, and the modifications to access the motor electronics can be accomplished with a dremel tool. Pictures and a detailed explanation will be provided at the end of the project, when the procedure is finalized.
Currently, the WiFi dongle works best when Ubuntu is flashed to the Bone. Further investigation is underway into the problems present in certain images of Angstrom, and when that investigation is complete the team will decide on which BeagleBone OS to use. Detailed instructions to install the BeagleBone and setup the software will be provided at that time. In general, all of the software needed is provided on the github repository. All custom code is written in C and python, and a Makefile is provided on github.
User Instructions
As the code is currently in development, UI details are not finalized. These instructions will be updated.
Highlights
Coming Soon!
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.
Embedded Linux Class by Mark A. Yoder