Skip to content
This repository was archived by the owner on Oct 23, 2025. It is now read-only.
This repository was archived by the owner on Oct 23, 2025. It is now read-only.

REP-147 mandating covariances in messages is too much data for embedded #392

@Ryanf55

Description

@Ryanf55

Problem

REP-147 recommends the use Odometry and Imu messages. These have covariance arrays. When using MicroXRCEDDS, this translates into 36 doubles of data, which is a ton of overhead for a tiny little STM32 running ArduPilot. Couple that with trying to push hundreds of messages a second, and we have a bit of a bandwidth problem, even when using ethernet.

I don't think the REP should be recommending using this messages with large covariances if they aren't used in embedded.

Use Case

ArduPilot supporting a REP-147 compliant MicroXRCEDDS interface.

References

px4_msgs only uses 9 elements for variances in Odometry. https://github.com/PX4/px4_msgs/blob/6c5a8e74eb2d173c0decb3feacd7e1932b64095b/msg/VehicleOdometry.msg#L23

px4_msgs doesn't even have covariances in the IMU message:
https://github.com/PX4/px4_msgs/blob/6c5a8e74eb2d173c0decb3feacd7e1932b64095b/msg/VehicleImu.msg#L9

This talk from the 2023 PX4 developer conference is great:
https://youtu.be/qly4tXj-aaA?si=umf_XRdErrm2Ll9f&t=1121

Thoughts from the ArduPilot dev team

Tridge, the lead dev of ArduPlane, says it's a "huge waste of bandwidth": ArduPilot/ardupilot#26187 (comment)

Alternatives

Modify the messages to allow leaving the covariances empty if they can't be populated. This won't be a good solution for humble which is what ~32% of people use according to the last ROS developer survey because it would break ABI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions