
Today I want to share with you an application I am working on at the moment. It is a ground station for radio controlled plane and it's purpose is to illustrate raw data sent from the plane back to the ground using on-board modem.
I am writing my application in C# using Winforms. Every instrument is a separate Windows Control Library, so it can be easily reused in a different application. So far I created 3 controls:
- Altitude indicator control
- Gauge control (with 2 modes: Compass and Speedometer)
- Map control (based on Google Maps)
Application can work in two modes: online mode (to be introduced soon) and offline mode. In online mode it will be able to consume data sent by airplane's modem. It will use Socket class to read raw data and then parse it, and forward it to appropriate controls.
In the offline mode we can open log file recorded during previous, real flight. Application is parsing it the same way it would in online mode.
For my 'instrument' controls I'm using PictureBox control to draw lines and rotate them using Matrix class. Background images are used to provide gauge look&feel.
For map control I'm using Google Map loaded inside WebBrowser control. I'm 'injecting' JavaScript there to programmatically create point on the map. This isn't a perfect solution because it requires connection to the Internet so I might change it to use something that works offline.
Apart from the controls listed above, I want to create:
- Video Cotrol able to display live video streamed from the airplane's camera
- Improved altitude control, to display both Pitch and Roll on the same control
On the picture below you can preview early stage of my Cockpit application. My UI will definitely change as I need to accommodate few other controls.
I will keep you posted on this project and show some movies later, so you can see how our airplane and ground station work together.
One more screenshot showing the Graph control:
RC airplane ground station software demo
Great Article. I'm building something similar myself, but in VB.NET.
I was wondering which UAV are you using to get the GPS reading, speed, altitude, pitch, yaw and roll. The UAV I'm using (AP40 AutoPilot) is from UAV Flight Systems, Inc. and the company does not exist any more, so that means I get no support.
What you are doing is exactly what I'm doing. Maybe we can share some experiences as we move along.
Please keep me posted.
Post new comment