Which one is the most advantageous: MAVLink, MAVSDK, or MAVROS?

Hi @serkan, please see below

My goal is to access as many components of the drone as possible. Which is safer to use and allows for greater control over PX4: MAVROS, MAVLink, or MAVSDK

if that is your goal then stick with uXRCE-DDS, its our fastest interface and it gives you access to almost everything in a way MAVLink will never do.

What is the difference between MAVROS, MAVLink, and MAVSDK? Is the difference only in the communication methods, or does one allow you to easily access IMU data while the others do not?

Both MAVROS and MAVSDK are using MAVLink in the backend, so you are 100% depending on MAVLink. What you have to understand about MAVLink is that its a standard, and that multiple projects are using it, which means the interface is stable, but also means that its limited to what makes it into the standard. The second thing you have to understand is that its not meant to be a realtime protocol.

Heres a list of supported mavlink messages:

https://mavlink.io/en/messages/common.html

I think you made the right choice with uXRCE-DDS if what you want is access to all components, with almost no latency added from the protocol.

2 Likes