Posted by agmatthews on November 16, 2009 at 4:00am
I have created a basic 'ground station' for the ArduIMU in the 'Processing' IDEThe Processing development environment is very similar to the Arduino evironmentProcessing compiles into Java, it allows you to run the same code on Windows, Mac OSX and Linux.Being a Mac user and suffering from not being able to find and run the correct version of the NI LabView runtime engine I decided to have a go at creating a ground station myself.This version ArduIMU_v004.zipwas the result of only a couple of hours of work so is a bit rough.NOTE: This is slightly updated from Original code uploaded - fixed 2 bugs.It borrows some of its design from the exiting LabView example and from Jose Julio's Python(?) exampleThe Ground Station:Logs All incoming Serial data to a text FileShows raw data in real timeDisplays key data in textDisplays Accel and Gyro data as bar graphsDisplays Roll Pitch and Yaw as rotating linesDisplays an 'aircraft' showing 3D orientationControls:Press Y to ignore YawPress L to start or stop LoggingPress Q to QuitHere it is operating (with no GPS - inside the house)I intend to keep developing the code for my own purposes.I'd be happy to hear any suggestions or requests for featuresPlease let me know what you think?-Andrew
I now have a stable copy of the Ardupilot Groundstation written in Processing. It reads in waypoints and home location from text files created using the Config Tool. It will then display a map in XY and Z in relation to waypoints with landing assist indicators, raw navigation data and the "plane" in real time. The plane graphic can easily be changed to an artificial horizon.
There is also a similar program written to take raw GPS data and use this to assist in navigation
If you use the Ardupilot Config Tool to setup your waypoints it can save a text file in a sub-folder called missions. I use this to load the waypoints into this ground station and plot them. Here is an example - you can use this file and browse to it at the start of the programconstruction 2.txt
maybe, i'm missing something obvious, but which config file is it asking me to load when the app launches? have you got a sample?
from what i've seen of the code so far this looks like it's going to be a fun project, however I've got the misfortune of going away on holiday next week, so I'm not going to be able to contribute much to the effort just yet :)
Jim
Thanks for the advice. Here's the code if you would like to have a look.
I like the idea of the ground-based FPV. This would let you superimpose some kind of HUD? I guess you would need a frame grabber to gain access to the video signal. I've also thought of sending the Camera signal as a serial data stream, perhaps use the audio channel for telemetry of raw NMEA sentences.
Loving this project, would be really happy to help, I've been planning to write my GS in processing and would prefer to team up with others than re-invent the wheel. I'm still focused on UAV hardware and getting the thing up in the air before I really start working on the GS part. My core idea is to have the telemetry overlaid on top of live video (using the processing GStream library) from the onboard FPV cam. A kind of hi-res ground based OSD.
@Space Nut, have you tried using array lists? they are much more useful than just arrays. If you want to release your code, I'll help you implement them.
I like this project, so much so that I've modified it to act as a ground station for Ardupilot. It's still pretty rough but here's a screen shot
I needed something that could assist with manual and assisted landings so I'm trying to plot XY and Z data for my plane and also provide an indicator that's similar to those used in real aircraft for ILS approaches.
Do you have a way to keep the old readings of XY and Z while adding the new points? I am resorting to creating an array for my XYZ data (derived from Lat/Lon/Alt) and replaying the array for each draw loop. Do you have a better approach? Would appreciate any assistance.
Gordon,
Dont try to run this as an applet - ie dont use the index.html
download 'processing' from processing.org
Run processing and open ArduIMU_v008.pde
Then in the processing editor you will see the code where you can edit com ports etc
1. I'm new to running processing code, I've exported the program but when I open up index.html a java prompt pops up asking if I want to disable driect draw, I select NO. Then the page loads, but shows just a white area where the applet should be. Any idea what I'm doing wrong? (Screenshot: http://img1.uploadscreenshot.com/images/orig/3/6619032385-orig.jpg )
2. Also where is this console you speak of that says the com ports? I know its com4 however and set it to 4 in the code.
3. Will this work with the new 9DOF razor board? That is what I have....
Comments
Here is another vid showing a raw NMEA Groundstation
There is also a similar program written to take raw GPS data and use this to assist in navigation
Will post some vids in a bit
If you use the Ardupilot Config Tool to setup your waypoints it can save a text file in a sub-folder called missions. I use this to load the waypoints into this ground station and plot them. Here is an example - you can use this file and browse to it at the start of the programconstruction 2.txt
from what i've seen of the code so far this looks like it's going to be a fun project, however I've got the misfortune of going away on holiday next week, so I'm not going to be able to contribute much to the effort just yet :)
Jim
Thanks for the advice. Here's the code if you would like to have a look.
I like the idea of the ground-based FPV. This would let you superimpose some kind of HUD? I guess you would need a frame grabber to gain access to the video signal. I've also thought of sending the Camera signal as a serial data stream, perhaps use the audio channel for telemetry of raw NMEA sentences.
Anyhoo, interested in your progress.
GroundStation10.zipFile
Loving this project, would be really happy to help, I've been planning to write my GS in processing and would prefer to team up with others than re-invent the wheel. I'm still focused on UAV hardware and getting the thing up in the air before I really start working on the GS part. My core idea is to have the telemetry overlaid on top of live video (using the processing GStream library) from the onboard FPV cam. A kind of hi-res ground based OSD.
@Space Nut, have you tried using array lists? they are much more useful than just arrays. If you want to release your code, I'll help you implement them.
Jim
I like this project, so much so that I've modified it to act as a ground station for Ardupilot. It's still pretty rough but here's a screen shot
I needed something that could assist with manual and assisted landings so I'm trying to plot XY and Z data for my plane and also provide an indicator that's similar to those used in real aircraft for ILS approaches.
Do you have a way to keep the old readings of XY and Z while adding the new points? I am resorting to creating an array for my XYZ data (derived from Lat/Lon/Alt) and replaying the array for each draw loop. Do you have a better approach? Would appreciate any assistance.
Dont try to run this as an applet - ie dont use the index.html
download 'processing' from processing.org
Run processing and open ArduIMU_v008.pde
Then in the processing editor you will see the code where you can edit com ports etc
I have not used the 9DOF razor board
Andrew
Thanks for sharing your code.
1. I'm new to running processing code, I've exported the program but when I open up index.html a java prompt pops up asking if I want to disable driect draw, I select NO. Then the page loads, but shows just a white area where the applet should be. Any idea what I'm doing wrong? (Screenshot: http://img1.uploadscreenshot.com/images/orig/3/6619032385-orig.jpg )
2. Also where is this console you speak of that says the com ports? I know its com4 however and set it to 4 in the code.
3. Will this work with the new 9DOF razor board? That is what I have....
Thanks again,
Gordon
Thank you for posting this. Really saved me a bunch of work and is much better than anything that I could have done.
Randy