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:
-
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?
-
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?
-
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?
-
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!