I have developed a library that allows DroneCell to be used with APM. That part works fine, however there are massive problems getting the stock mission Planner to
- Connect reliably
- Read missions reliably
- Write missions reliably
Apparently MP was not made for or tested with connections with some latency and data losses. I had some experiences of the same kind with an XBee connection near the end of its range too.
I have looked at the code, hacked around and come up with a Mission Planner and a change in APM firm that make the communications much tougher. I can now read and write 25 waypoint missions over a very bad link :) Before I could only do like 8 WPs and that with lots of failed attempts.
Basically the MP changes were
- Extending timeouts
- Increasing retry counts
- Accept connection after only a single heartbeat received
(if connecting still does not go well because the reading of all the params fails or if you don't care about params but just want to locate your UAV, there is still the CTRL-T secret keyboard shortcut, which connects without reading parameters).
The single change in APM firmware consists of going to the GCS_Mavlink.pde class, find the constructor and change the two timeouts there to 8000 milliseconds instead of 1000. If you don't know how to compile and upload the changes to APM, use the opportunity to learn it or look for help.
The revised MP is here:
I will add a Publish.zip file shortly where all the installation stuff is. If installation fails (I know nothing about Windows installation) then locating the ArdupilotMegaPlanner10.exe file and copying it into an existing installation or launching it directly worked for me.
The title bar of the modified MP has "(dongfang mod)" added to the text.
Of course I hope that changes to allow comms to work over links with latency will be added to the official releases, but until then there is this.. I will update to newer versions upon request.