Difference between revisions of "ECE497 Project Rover"

From eLinux.org
Jump to: navigation, search
Line 6: Line 6:
 
== Executive Summary ==
 
== Executive Summary ==
  
This project is a Beagle Bone implementation of a land-based rover autopilot. The user will be able to specify GPS waypoints for an RC car to travel, and the Bone will autonomously navigate the RC car along the waypoints.
+
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.
  
Give two sentence intro to the project.
+
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.
  
Give two sentences telling what works.
+
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).
  
Give two sentences telling what isn't working.
+
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.
 
 
End with a two sentence conclusion.
 
 
 
The sentence count is approximate and only to give an idea of the expected length.
 
  
 
== Installation Instructions ==
 
== Installation Instructions ==
  
Give step by step instructions on how to install your project on the SPEd2 image.
+
The work-in-progress code for the platform can be found on [https://github.com/brannojs/Senior-Design Github]. The drive base used for the platform was purchased from [http://www.toysrus.com/product/index.jsp?productId=12925248 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.
  
* Include your [https://github.com/ github] path as a link like this:  [https://github.com/MarkAYoder/gitLearn https://github.com/MarkAYoder/gitLearn]. 
+
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.
* 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 ==
 
== 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.
+
As the code is currently in development, UI details are not finalized. These instructions will be updated.
  
 
== Highlights ==
 
== Highlights ==
  
Here is where you brag about what your project can do.
+
Coming Soon!
 
 
Include a [http://www.youtube.com/ YouTube] demo.
 
  
 
== Theory of Operation ==
 
== Theory of Operation ==
Line 42: Line 33:
  
 
== Work Breakdown ==
 
== Work Breakdown ==
 +
 +
  
 
List the major tasks in your project and who did what.
 
List the major tasks in your project and who did what.

Revision as of 21:09, 1 November 2012

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Ross Hansen, Jesse Brannon, Michael Junge

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.




thumb‎ Embedded Linux Class by Mark A. Yoder