Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "ECE497 Project RoverGUI"

From eLinux.org
Jump to: navigation, search
m (Theory of Operation)
m (Grading Template)
(One intermediate revision by the same user not shown)
Line 9: Line 9:
  
 
<pre style="color:red">
 
<pre style="color:red">
00 Executive Summary
+
07 Executive Summary (Should state what the project is doing, not what you hope to do.)
00 Installation Instructions  
+
10 Installation Instructions (Worked fine for me.)
00 User Instructions
+
10 User Instructions (It works!)
00 Highlights
+
08 Highlights
00 Theory of Operation
+
05 Theory of Operation
00 Work Breakdown
+
09 Work Breakdown
00 Future Work
+
09 Future Work
00 Conclusions
+
08 Conclusions
00 Demo
+
10 Demo
00 Late
+
10 On time
Comments: I'm looking forward to seeing this.
+
Comments: It works.  I would have liked to have seen more details on the Google Maps interface.
  
Score:  00/100
+
Score:  86/100
 
</pre>
 
</pre>
  

Revision as of 21:27, 14 November 2012

thumb‎ Embedded Linux Class by Mark A. Yoder


Team member: Chris Good

Grading Template

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

07 Executive Summary (Should state what the project is doing, not what you hope to do.)
10 Installation Instructions (Worked fine for me.)
10 User Instructions (It works!)
08 Highlights
05 Theory of Operation
09 Work Breakdown
09 Future Work
08 Conclusions
10 Demo
10 On time
Comments: It works.  I would have liked to have seen more details on the Google Maps interface.

Score:  86/100

Executive Summary

This project is to create a GUI that could be used to control the rover project found here:ECE497_Project_Rover The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.

The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.

Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.

Installation Instructions

First, ensure node.js is installed by running:

beagle$ opkg install nodejs

Next, the GUI can be downloaded from [https://github.com/goodca/roverGUI.git]

No compiling is needed so the GUI is now ready to be used.

User Instructions

Move to the top level of the directory GUI directory. To run the GUI server, run:

beagle$ node GUI.js

Then, from any networked browser point to:

beagle$ beagle:8081

where beagle is the IP of the BeagleBone. The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.

RoverGUIHome.PNG

Selecting the simple control option will send you to the simple control GUI.

RoverGUISimple.PNG

Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.

If instead the maps GUI was clicked the following will be displayed

RoverGUIMapsStart.PNG

From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed.

The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman. RoverGUIMaps.PNG

Once finished, the user can click the "done" button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.

(39.4824644923698, -87.32401371002197)
(41.88592102814744, -87.626953125)
(41.50857729743935, -81.683349609375)
(38.27268853598097, -85.75927734375)
(39.48246138709902, -87.32401169836521)

Highlights

This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.

The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.

Theory of Operation

The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.

More details would help. How do you interact with Google Maps? What messages are being sent back and forth between the server and the browser, etc.

Work Breakdown

All work was done by Chris Good

Future Work

Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.

Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.

Conclusions

This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.




thumb‎ Embedded Linux Class by Mark A. Yoder