clolsonus
Well-known member
In case it helps you out ... I am posting this. If not, no worries. I totally get wanting to do things yourself so you fully understand it.
For my own UAV project I developed a ground station in 2 parts. I went with the MIT open-source license so outside of maintain author/credit you can pretty much do whatever you want with it. I typically get 5hz update rates, although some of that depends on how fast the data comes down from the airplane.
Part 1: python script that acts as a data interlink/broker/connector. It reads the aircraft telemetry in via a radio modem + serial port (and a specific fairly well documented packet format.) It assembles the incoming data into internal structures and possibly computes some additional derived values itself.
Part 2: this same python script doubles as a simple web server ... it serves out some custom web pages and then also acts as a websocket host. The web pages run javascript under the hood and fetch and draw the flight data from the python script/server/glue/interlink thing.
Part 3: After starting the python script, you connect up with any web client to http://localhost:8888 and then you can open up a moving map, an instrument panel, and a debugging/text only display in 3 separate browser tabs. As soon as the airplane powers up and starts sending data, these pages come alive with the real data.
It's fairly customized towards my own purposes so it may or may not be helpful. You might find better traction figuring out mavlink and connecting up something like qgroundcontrol (px4) or mission planner (ardupilot). These popular opensource autopilots do everything for everyone so they carry a lot of extra weight and complexity and they also serve as the specific configuration/calibration tools for their respective systems.
You may find (like I often do) that the prospect of figuring out someone else's crazy system is extremely daunting and it seems easier to just write your own from scratch. That's how I ended up with my ground control system.
Anyway, if it helps, here it is. If it doesn't help, no worries ...
Python interlink part: https://github.com/AuraUAS/aura-core/tree/master/tools/auralink
Web pages/websocket/javascript/browser part: https://github.com/AuraUAS/aura-gcs
And here are a couple screen shots:
Here is the 'live' organized text/debugging display (in the actual page you would scroll up and down and these values would be live and changing.)
And here is my instrument panel, very loosely modeled after a C172S (with permission I sat in the real cockpit and took some pictures.) Then many years and interations and updates later, this is what's left ...
For my own UAV project I developed a ground station in 2 parts. I went with the MIT open-source license so outside of maintain author/credit you can pretty much do whatever you want with it. I typically get 5hz update rates, although some of that depends on how fast the data comes down from the airplane.
Part 1: python script that acts as a data interlink/broker/connector. It reads the aircraft telemetry in via a radio modem + serial port (and a specific fairly well documented packet format.) It assembles the incoming data into internal structures and possibly computes some additional derived values itself.
Part 2: this same python script doubles as a simple web server ... it serves out some custom web pages and then also acts as a websocket host. The web pages run javascript under the hood and fetch and draw the flight data from the python script/server/glue/interlink thing.
Part 3: After starting the python script, you connect up with any web client to http://localhost:8888 and then you can open up a moving map, an instrument panel, and a debugging/text only display in 3 separate browser tabs. As soon as the airplane powers up and starts sending data, these pages come alive with the real data.
It's fairly customized towards my own purposes so it may or may not be helpful. You might find better traction figuring out mavlink and connecting up something like qgroundcontrol (px4) or mission planner (ardupilot). These popular opensource autopilots do everything for everyone so they carry a lot of extra weight and complexity and they also serve as the specific configuration/calibration tools for their respective systems.
You may find (like I often do) that the prospect of figuring out someone else's crazy system is extremely daunting and it seems easier to just write your own from scratch. That's how I ended up with my ground control system.
Anyway, if it helps, here it is. If it doesn't help, no worries ...
Python interlink part: https://github.com/AuraUAS/aura-core/tree/master/tools/auralink
Web pages/websocket/javascript/browser part: https://github.com/AuraUAS/aura-gcs
And here are a couple screen shots:
Here is the 'live' organized text/debugging display (in the actual page you would scroll up and down and these values would be live and changing.)
And here is my instrument panel, very loosely modeled after a C172S (with permission I sat in the real cockpit and took some pictures.) Then many years and interations and updates later, this is what's left ...