Should we move ArduPilot Groundstation from LabVIEW to Nokia's Qt?

As we prepare to migrate our current LabVIEW groundstation from ArduPilot to supporting ArduPilot Mega, we're taking the opportunity to rethink its architecture and code base.

Right now it's written in LabVIEW, a visual programming environment that has the advantage of rapid development and easy-to-make instrument displays, as well as being cross-platform. But the problem with it is that the development tools aren't free (indeed, the ones that can create an executable file start at $1,249!), and distributing the files requires users to download a runtime engine and serial driver. As a result, we don't have as much community participation in the ground station as we do in most of our other projects.

Over the past year, we've been looking for an alternative with free and good development tools. It needs to be cross-platform, compatible with open source code standards, and appropriate for a ground station (ie, able to handle a rich visual environment and to talk directly with the serial port). Eventually a good candidate emerged in Nokia's Qt application and UI framework, and I'd like to present it here for community feedback.

You can see a glimpse of Qt above, but here's the description from the site:

"Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile and embedded operating systems without rewriting the source code.


Note that it's cross platform on more than just computers--it will also run on phones, too, which introduces the possibility of an ArduPilot GCS on Android or some other smartphone, which would be very cool. Also, we intend to integrate the current ArduPilot configuration utility into the GCS, so one desktop program can handle all the ArduPilot functions, from mission planning to real-time data display, including integrated Google Earth and video handling and image processing.

So what do you think? Is this a good code foundation for a full-featured groundstation? Does Qt look like something you'd adopt for the right project?

[UPDATE: See this Swiss team's MAV groundstation for an example of what Qt can do. Nice! It's open source, so we can build on it if we want.]

Views: 3684

Comment by Jason Short on March 30, 2010 at 3:49pm
I'm a fan. Not of Nokia, but of Qt which was developed by Trolltech. I think it's a much more powerful platform that labview will ever be, but it is also pretty intimidating. If we had a few members who could use it to get things going, there is no limit to what could be accomplished.
Comment by mook on March 30, 2010 at 4:03pm
I think it's a good idea i was considering learning it for another project
Comment by Edwin Ward on March 30, 2010 at 4:32pm
sounds great! mac compatibility?
Comment by Mike Bakula on March 30, 2010 at 4:50pm
I fall on the LabVIEW side, since I already have the environment. (and I'm working on a version of the ground station right now for a school project!) Fortunately, it's not really an either/or, if there's enough interest...

Comment by Jason Short on March 30, 2010 at 4:51pm
Qt is used to make Safari and Google earth on a mac.
Comment by Xander on March 30, 2010 at 5:11pm
What about Processing? I'm not totally sure it's a good fit, I've only dabbled in it a bit, but it seems to be a popular choice for rapidly developing visual programs that tie in with Arduinos.
Comment by Robert Palmore on March 30, 2010 at 5:12pm
Please take my comments with a grain of salt because I'm not a develper. I have written some program in Python but what I've done is baby steps compared to the leaps that will need to be taken for such a application as Ground Station. That being said, if you really want community participation, it's amazing what the Python community can do. I've been amazed at the coding competitions that are held in this language. It is trully an open source and is a very good community. I don't know if it will be the environment for a project like this but it would be worth looking into it. Thank you for being patient with a novice coder.

3D Robotics
Comment by Chris Anderson on March 30, 2010 at 5:50pm
Qt is totally cross-platform: Windows, Mac, Linux, mobile phones.

I do think Processing is an interesting choice, but just don't know how easy it is to create a full UI with it.

Python could could work with a Flash front end, but would required running two programs, not one, I think. I think Jason would be the best to comment on that, since he's done something similar with his GCS.

Comment by Morli on March 30, 2010 at 7:11pm
Sounds good, started the download already, will start learning shortly , cross platform is gr8 possibility,
Comment by Scott Plunkett on March 30, 2010 at 7:41pm
At the company I worked for previously we spent some time tinkering with Qt on WIndows CE, but eventually scrapped it in favor of an Android solution for the project we were working on (a GPS Navigation product with a 4.7" touch screen). There is some real power under the hood, so it definitely shouldn't be overlooked. I would have to say though, if this were my project and i had to select a language likely to have plenty of coder support and long term reliability - I'd have to go with a combination of Java and Python...Python for Rapidly getting the thing up and going, then hardening objects into more static Java code modularly. This may be a bit complex, but the result is usually a bunch of really solid Java parts with some Python holding it all together. I'm not sure you could really go wrong wither way, but my guess would be we likely have more people with Python experience than Qt. Just some thoughts.


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

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service