Working with mavlink in Java

I am starting a new project to experiment with swarm control in Java. So to begin, I am running five SITLs of Copter 4.0 in five separate docker containers.

I am trying to figure out the best way to interact with these SITLs (and later real copters) through Java. I have tried using mavsdk_server https://github.com/mavlink/MAVSDK but it actually causes the SITL program to crash with a floating point error when I connect. So the MAVSDK project seems a bit young and I need to use something more robust. Would any of you have suggestions on how to interface with mavlink over a network in a Java program?

Any suggestions would be great, thank you.

pymavlink can generate Java bindings for you. Try using that. There is a PR that improves pymavlink https://github.com/ArduPilot/pymavlink/pull/341

There’s also this: https://github.com/dronefleet/mavlink
which might be worth looking at.

For whoever comes behind me to read this, I have begun using dronefleet/mavlink which has worked out very well.