Skip to content

DDS: External Odometry overflows the timestamp #31979

@tizianofiorenzani

Description

@tizianofiorenzani

The function AP_DDS_External_Odom::handle_external_odom() converts the reported timestamp from microseconds (uint64) to ms (uint32). This causes an overflow when calculating time_ms.

https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_DDS/AP_DDS_External_Odom.cpp#L42

For example, it remote_time_us = 1769032352500220, time_ms = 3800825856

Suggestion

We can convert timestamp to time since boot right in place, accepting some minor jitter.

Platform
[ x ] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine

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