So, what do you do when you have some old hardware lying around, and want to reuse that instead of buying the new ArduMegaPilot: Build you own ground station and modify parts of the code for the Ardupilot.
First of all I got tired of LabView, and the other standard parts, and found later versions of Ardupilot too messy to manipulate. Second, most of the available ground stations are written for Windows, not good at all on a Mac. Third, I needed some functions, that is not obviously available when using Ardupilot.
What I have done is to implement a simple ground station in Java, using standard components. It shows the basic information transmitted by the Ardupilot. It uses Google Earth to show the planes position on a map. Further more, it supports two way communication with the Ardupilot. This means that I am able to adjust gains, upload waypoints from a Google Earth .kml file and so on, while the UAV is in the air.
If anybody is interested I will make the sourcecode publicly available.
Best regards
Niklas
EDIT: I have add'ed the source code for the ardupilot and the source for the Java groundstation. The code is not commented at all, and is highly customized for my setup. Feel free to use any parts you want. Any questions, hit me! The code also contains quite good examples of how to encode at decode binary GPS data. Enjoy.
Comments
Hey guys.
The trick is to not mess up the data stream from the GPS module, since only one serial port is available. I created a command queue in the ground station, so it transmits one command after each GPS message. These are only received every second in my case. Then I modified the code for the binary GPS message parser, to be able to parse additional commands. I will make the source code available asap.
Regards
Niklas
Correct me if I'm wrong, but with the new Ardupilot update it is possible to use QGroundControl (Linux/Mac/Windows).
Or am I wrong ?