Here is an update for the development of the Droidplanner app, the first post can be read here.
- Auto-waypoint generation (hatch filling) just like Mission Planner.
- Codded a MAVlink v1.0 parser in Java, including a python script for the MAVlink generator to generate the necessary Java classes.
- TCP communication, all handled in an android service with the MAVlink packets being delivered to the U.I. via messages. (This structure is based on Bart's code). The entire communication is logged to a *.tlog file on the SD-card.
- HUD screen, just added the HUD designed by Bart.
- Fight Data screen with the current GPS position and heading of the drone overlayed in a map (the drone rotates). (I hope the designer of the icons on Mission Planner doesn't complain that i used them, where else would I find such nice graphics)
- Waypoint sending and receiving to the APM board (by the way i use a APM1 board)
How to test it
- First download the app from DroidPlanner_v0.2.apk. Now you should be able to use all functions that don't require communication to a APM board.
- To setup communication a Serial-to-TCP re-director is necessary, I'm using Pira CZ Remote COM (on Win7) with the following configuration. (Just set COM3 to the serial port of the APM board). When done, click on Run!
- Now on the app go to Menu->Settings, and set the Server IP (the IP of the computer witch has the board connected)
- Use the connect button on any of the screens and you should receive the MAVlink data. (I suggest using the terminal screen since it show the last received packet).
- Other option is to use the SILT simulator. And to test the TCP connection first with Mission Planner.
Note: The app is in development, and I haven't yet tested it on the field. I take no responsibility from any damage.
I like the idea of WiFi because it's a wireless connection to a tablet (and available on all android devices), all that is needed is a WiFi router (really cheap these days, and could be used for other purposes in the field) and a Serial-TCP bridge. This adds the possibility of using multiple GCS on the network.
Other options for the Serial-to-TCP bridge are (I have not tested any of these yet):
- Chinese Serial-to-TCP bridge from ebay ($20).
- Chine Serial-to-Wifi module
- Custom board (really DIY stuff, but it was a nice project), with could be designed to include servo outputs to control a tracking antenna. If there is interest i could explore this possibility.
- A Raspberry PI board.
- A modified WRT54GS router.
How to Collaborate:
- Download the source code from GitHub. (I changed it to it's own repository, to avoid messing up with my ardupilot repo, but in the process I lost the commit history)
- Read the read-me on the project folder, it's really simple to start developing (Just importing the project to eclipse basically).
- Chose something to fix or improve and do it.
The big question!
When I started this project there was no other active project on DiyDrones for developing a Android GCS. There was Bart copter-gcs, but since there was no more support (and because I don't have Bluetooth on my tablet, what was necessary) I decided to start codding a app. (even without much knowledge of Java).
Soon after my release, Kevin Hester released an app he was developing: Andropilot. Thanks to his amazing codding the app is great.
I keep developing my app for two reasons:
- I had just started learning Java and the Android SDK, Andropilot is written in Scala. This would greatly complicate my beginner life.
- I wanted to keep the project in a state I could support it all. And that it could be easily maintained by others, in the hope it could join the DiyDrones codebase. (Currently all that is needed to develop is the android SDK)
So my big question is in fact two:
- What language is easier to be maintained for this community?
- Should I drop DroidPlanner, and start developing with Kevin?
Comments
Arthur, I find your work very useful. Personally I think there are more developers with Java/Android experience than with Scala. Having Bluetooth connectivity would certainly be a plus, since it would also work nice with android phones (less battery consumption than with Wifi).
Best
-S
I have made some changes to the polygon point insertion algorithm on polygon mode, it works really well (polygons points are added based on the distance, not on a simple sequence).
Just try to add a polygon with this version: DroidPlanner_v0.2.2.apk.
New HUD code added, new DroidPlanner_V0.2.1. The new code has a much better response, thanks Kevin.
Great!
Arthur,
Looks like a fantastic application, look forward to trying it out this week..
Also feel free to snarf my version of HUD.java. The original Bart version spins in the draw thread which burns a huge amount of battery.
Hi Arthur,
Your waypoint editor looks really slick. I'd happily join forces with you ;-). Adding Java code to Andropilot is fine with me (scala mixes and matches freely with Java). The Serial to TCP bridge is a good idea - I have TCP gateway inside of Andropilot but I had previously considered it only really useful for development.
Amazing Arthur ! What a great work it is. I suggest you to keep developing your own and also join hands with Kevin for the advancements in AndroPilot.