QGroundControl stream rates

I am trying to use mavros + QGC to control ArduSub and running into trouble controlling the MAV message telemetry rates.

My setup: mavros is the GCS, and QGC is connected to mavros via UDP. Both have the same system_id (255), so both can send RC and/or INPUT commands. I always launch mavros, and sometimes launch QGC.

I am setting message rates by making ROS2 service calls to mavros:

$ ros2 service call /mavros/set_message_interval mavros_msgs/srv/MessageInterval "{message_id: 32, message_rate: 20}"
$ ros2 service call /mavros/set_message_interval mavros_msgs/srv/MessageInterval "{message_id: 31, message_rate: 20}"

This works great until I launch QGC. As soon as I launch QGC I see a bunch of REQUEST_DATA_STREAM messages in ArduSub that override the rates I’ve set via mavros. I can’t seem to find a way to turn this off in the QGC UI.

Skimming the QGC code, I see a routine in ArduSubFirmwarePlugin that requests MAV message streams at the specific rates I’m seeing: qgroundcontrol/ArduSubFirmwarePlugin.cc at master · mavlink/qgroundcontrol · GitHub

Does this make sense? Is there a way to turn this off?

Thanks!

(I originally posted this on the ArduPilot board, but I think that this is a better spot.)

Hi @clyde,

I presume those rates are being set to ensure a manual operator has sufficient feedback of important telemetry values when using QGC to maintain effective control. I’ve asked internally in case that reasoning is incorrect.

Is there a reason you think it doesn’t make sense?

I don’t believe so, short of removing it from QGC (either in a custom build, or entirely).

That said, I’ve just tested and there don’t seem to be any issues with requesting new rates after QGC is already opened. Are you able to open QGC before Mavros when you know you’re planning to use both? :slight_smile:

@EliotBR answer is mostly correct. But you can turn off some of the datastreams on Settings → Mavlink → Telemetry Stream Rates

1 Like

Thanks for the info, @EliotBR and @patrickelectric This makes sense to me.