Hello,
I am developing an industrial Autonomous Mobile Robot (AMR) using ROS 2 Humble and a B&R PLC (communicating via OPC UA PubSub/UDP). I have measured a significant round-trip latency between ROS 2 cmd_vel and the actual wheel odometry feedback.
Hardware Setup:
Processor: Intel i5-14500 (PC-side)
PLC: B&R (Automation Studio)
Communication: OPC UA (UDP)
Sensors: SICK Safety Lidars (connected directly to ROS 2)
The Problem
Using a custom latency logger, I’ve measured a ~364ms delay from the moment cmd_vel is published until the PLC-based odometry reflects the physical movement. This includes:
Network serialization (OPC UA/UDP)
Mechanical inertia and electromagnetic brake release.
When using CLOSED_LOOP feedback in the velocity_smoother, the robot exhibits significant jitter and oscillations because the smoother reacts to “old” odometry data.
Current Workaround
Questions
Is a ~360ms round-trip latency considered "within acceptable limits" for heavy industrial AMRs in the Nav2 ecosystem?
Is the "negative timestamping" approach (now - delay) considered a safe practice for temporal synchronization between high-speed Lidars and high-latency PLC Odometry?