Drone GCS: Qt/OsgEarth based ground station designed for APM

This is the Qt GCS that James and I have been working on. It still needs some work but it uses cross-platform libraries and the CMake build system. It uses OsgEarth, an open source equivalent to Google Earth. The GCS can load many 3d model types including the cool FlightGear Models. Right now it mostly uses pop-up menus for editing waypoints (triggered by shift-click). Its a work in progress so not everything is hooked up yet. It was developed on a linux system but has been compiled on mac thanks to drziplock. There are some issues with OsgEarth that we still need to figure out on mac though.



Here is our first recorded test. There is some dead time at the beginning and end since the ground station was started on the 3rd floor of our lab building and we had to walk outside and setup the autopilot. Not a lot of action on the 3D display since we have some signal interference issues with our video, R/C transmitter, and Xbee modules, but DroneGCS works with the GCS_STANDARD_PROTOCOL and uses the ardupilotmegacomm library. http://code.google.com/p/ardupilotmegacomm/ . The website with our ArduPilot, DroneGCS, and aerospace related code is: http://sourceforge.net/projects/oooark/. The git repository for DroneGCS is: git clone git://oooark.git.sourceforge.net/gitroot/oooark/dronegcs. Let us know what you think, we're open to suggestions and development help.

Views: 1313

Tags: APM_BinComm, ArduPilot, Drone, GCS, Mega, ardupilotmegacomm


3D Robotics
Comment by Chris Anderson on November 6, 2010 at 11:34am
Looking good! Do you have to install the whole QT toolchain to run it?

I'm just looking for an executable that runs under Windows. I looked around a bit, but didn't find it. Could you provide a link?

Developer
Comment by James Goppert on November 6, 2010 at 1:25pm
We currently don't have any developers running windows to build it for us. It should only require all the deps to be installed and then run cpack -G NSIS. That should generate a nullsoft installer for windows. As far as static linking for the qt libs under windows, it is possible but will take some work: http://www.freehackers.org/thomas/2008/06/27/static-link-with-cmake... Today I'm working on getting the control gains to send/receive as well as flight plan send/receive via dronegcs. Once I get this on the bincom integration branch it should also be available for other ground stations to use if they are using the ardupilotmegacomm library or following the APM binary protocol standard.

Developer
Comment by James Goppert on November 6, 2010 at 4:01pm
We could really use some help compiling the ground station/ ardupilotmegacomm library for windows. Here is the dependency graph:
Dependency Graph
drone gcs : git clone git://oooark.git.sourceforge.net/gitroot/oooark/jsbsim
cmake >= 2.6 : http://www.cmake.org/cmake/resources/software.html
oooark>=0.1.0 git clone git://oooark.git.sourceforge.net/gitroot/oooark/oooark
boost >= 1.40 https://sourceforge.net/projects/boost/files/boost/1.44.0/
lapack (optional) http://icl.cs.utk.edu/lapack-for-windows/lapack/index.html#librairies
scicoslab = 4.4b7 http://www.scicoslab.org/
jsbsim = 1.0.rc4-advtrim git clone git://oooark.git.sourceforge.net/gitroot/oooark/jsbsim
openscenegraph>=2.8.3 http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGr...
opencv>=2.0.0 https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/
ardupilotmegacomm>=0.1.0 svn checkout http://ardupilotmegacomm.googlecode.com/svn/trunk/ ardupilotmegacomm-read-only
qt >= 4.6 http://qt.nokia.com/downloads/sdk-windows-cpp
Comment by Paul Mather on November 6, 2010 at 8:18pm
I like what you guys have done... the setting of waypoints is really nice. I still haven't figured out how I'm going to handle it in my GCS.

The two posts above are what I dislike about cross-platform developement. I've been writing software since 1992 and I wouldn't even know where to begin compiling your project. Then when there are changes, will it be up to the Windows user to compile it on their own updated executable? I'm sure there are some Windows users out there that may be up for the challenge... but I can't see how this GCS can become mainstream with this kind of hurdle. I'm not trying to bash your work. It looks great and I bet it works great. It's just not user-friendly.

Developer
Comment by James Goppert on November 6, 2010 at 8:48pm
I think it's user friendly, it may just not be developer friendly at the moment :-). We can built the oooark dependencies from source and get it down to these:
cmake >= 2.6 : http://www.cmake.org/cmake/resources/software.html
boost >= 1.40 https://sourceforge.net/projects/boost/files/boost/1.44.0/
openscenegraph>=2.8.3 http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGr...
opencv>=2.0.0 https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/
ardupilotmegacomm>=0.1.0 svn checkout http://ardupilotmegacomm.googlecode.com/svn/trunk/ ardupilotmegacomm-read-only
qt >= 4.6 http://qt.nokia.com/downloads/sdk-windows-cpp

The other libraries are from the oooark library and support our computer vision and flight dynamics trimming applications that we will be releasing soon. So eventually I would like to find some people to build all of oooark. But it is not necessary now. As far as maintainability, as soon as we get a cmake file that builds on all platforms we could write a script that downloads the required deps and builds a new package for whatever os. If necessary I can install the windows cross-compiling tools but currently I haven't read up on that enough.

Cross platform has its hurdles but I think the ability to have all the developers working together on something is a big advantage. The alternative where we just have a specific gcs for each platform is also a possiblity but will cost us more development time.

Developer
Comment by James Goppert on November 6, 2010 at 9:25pm
For linux users I should be able to get official packages into ubuntu and debian in the next few months of all of this, so you'll just have to do sudo apt-get install dronegcs :-). Until then you can check hsl.dynalias.com/debian for experimental packages.

I guess the communications programming is really the tedious part. Most of us are all using ardupilotmegacomm library right now so its wouldn't really be that bad to just have a different front end that is easy to install for each os.
Comment by Andre S on November 7, 2010 at 12:13am
There may be also a way to crosscompile things from linux. I've been planning to look into mingw and related things but haven't had time yet.. although I did manage to bring up a QT window via wine (using qmake with a windows build target). Don't remember the details but google is our friend, as always. Not sure how this will affect the opengl stuff though.
Comment by Brandon Wampler on November 7, 2010 at 6:16am
This sounds interesting, we'll have to look into it as well, Thanks for the heads up.

Developer
Comment by James Goppert on November 7, 2010 at 11:07am
Thanks for the info. Bringing up Qt in wine is definitely further than I"ve gotten. I installed mingw, added mingw toolchain file for cross compiling in cmake, and then found a mingw compilation of boost to download. But I could never get the path flags to sort out in cmake. I was probably doing something stupid as I"m not very familiar with Windows paths anymore.

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2014   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service