Hello all,
When I started with my copter, I thought of making a Linux based GCS, as I don't run Windows. However, I decided that trying to duplicate all the work on the Windows GCS was counter productive. On top of that, my laptop is dying, so in the field it would be less than useful anyway.
I recently got an Android phone, in part for its programmability. Linking it up to a quad (or hexa etc.) seemed like it would be useful. Therefore, I've been working on an Android based GCS, and although by no means done, I thought I would share and maybe get some feedback on desired features.
The phone really only has WIFI and Bluetooth for connectivity, and my quad has neither of those as options. Finding a 802.11 link for on the quad proved tough, and the range on Bluetooth is not good enough for what I am looking for. To solve that I made a Bluetooth <-> XBee link: its small and just stays in my gear case while letting me use the phone at long range from the quad. When using my laptop, I can just use it's bluetooth connection and still use the standard configurator.
I needed a place for code, so if interested, its hosted at Copter-GCS Wiki. There are screenshots there showing features, but in a nutshell:
-Configure PIDs
-Calibrate Offsets and Transmitter
-Sensor graph for current outputs
-Map the quad GPS position, as well as the phone's
Like I said, its not done, and has some things to work out. Once I do I will make the code available (if there is interest). There are a bunch of things I want to try with this, like GPS following etc, but this seemed useful for in the field calibration/testing. When Arducopter 2.0 comes out, I will update so that the MAVLink protocol is compatible.
Cheers,
Bart
Comments
@Flick
I'm not familiar with the frsky modules, but I imagine that the main issue will be whether you can setup the APM for that rate. I imagine arduinno can do it (certainly 9600 is no problem as far as I know).
I'm debating between making the APK available for download, or just publishing it in the market. Will post once its available. For now the source is up at code.google.com
finally someone did it! I did the same months ago to hook google maps and a gps dashboard to my android phone because I was not able to program a gcs. bluetooth and frsky module do not interfere a lot. where can I download the apk of your gcs?
also I use frsky for telemetry and not with ardupilot, is a pilot of myself with my protocl that is changed by a n arduino to mavlink on the ground. I ordered and apm, will apm send too many data for the 4800bps that frsky could send?
@Yiangos: When I work out the remaining bugs, I can certainly see about grouping certain sections together. Part of the reason for the current division of functions is that it mirrors the protocol. Streaming telemetry is relatively fast, but if I need data from various areas, then I need to start and stop each stream, which is much slower. That is partly due to having to ensure old data is gone before requesting new data, as the current protocol does not indicate the source of the data (its just a stream of characters, without any packaging). I suspect that the MAVlink protocol will be better, and plan on focusing on it once the ACM code comes out.
@Mister Ligi: Looks very good. I had a look around when I started this, but didn't find any past projects. Clearly I overlooked some. I'm not sure about the SDP, I simply got a module that was reported to work with android. After that I just crossed my fingers :)
Thanks for all the comments, I appreciate the feedback. I'll update when I add the links for the code.
@BArt: Does your Bluetooth-Module does SDP? That is the only drawback with the ones I tested - they do not do SDP and so some Android Phones/Tablets do not work ..
http://code.google.com/p/android/issues/detail?id=5427
Well done Bart. I'll be downloading your code for sure.
im extremly intersted in this :)
linux android fan!