Unable to Increase IMU Message Rate Beyond 50 Hz on Pixhawk 6C with PX4

Hi everyone,

I’m working with a Pixhawk 6C running PX4 version 1.14.3, connected via USB (using mavlink-router and MAVROS on ROS Noetic). My goal is to have the IMU data (both RAW_IMU and HIGHRES_IMU streams) published at 200 Hz instead of the default 50 Hz.

What I’ve Tried:

  • I’ve confirmed that my IMU_INTEG_RATE parameter is set to 200, so the sensor integration on PX4 is running at 200 Hz.

  • I also tried changing the baudrate from 115200 to 921600.

  • Using MAVROS, I attempted to change the message rate by calling the service:

rosservice call /mavros/set_message_interval “{message_id: 27, message_rate: 200.0}”
rosservice call /mavros/set_message_interval “{message_id: 107, message_rate: 200.0}”

However, when I check the topic /mavros/imu/data_raw (for RAW_IMU, ID 27) and /mavros/imu/data (for HIGHRES_IMU, ID 107), the rate remains at ~50 Hz.

I verified that the service call succeeds (i.e. it returns success) but the output rate does not change.

My Questions:

  1. Is it expected behavior for PX4 v1.14.3 to limit the RAW_IMU and HIGHRES_IMU messages to 50 Hz regardless of the requested rate via MAVROS?

  2. Are there specific PX4 parameters (e.g. in the MAV_0_CONFIG bitmask or similar) that need to be adjusted to allow a higher MAVLink stream rate for IMU data when using a USB connection?

  3. Would switching from a USB connection to a hardware serial port (like TELEM2) potentially allow a higher baud rate and thus support a 200 Hz output for IMU messages?

  4. Has anyone successfully increased the IMU message output rate above 50 Hz on a similar setup?

Any insights, parameter recommendations, or workarounds would be greatly appreciated.

Thanks in advance!