gz-sim icon indicating copy to clipboard operation
gz-sim copied to clipboard

Incorrect warning msg when sim jumps back in time

Open iche033 opened this issue 1 month ago • 0 comments

Environment

  • OS Version: Ubuntu 22.04
  • Source or binary build? citadel and above

In many of gz-sim's systems PostUpdate function, there is this code to print warning msg:

  if (_info.dt < std::chrono::steady_clock::duration::zero())
  {
    gzwarn << "Detected jump back in time ["
        << std::chrono::duration_cast<std::chrono::seconds>(_info.dt).count()
        << "s]. System may not work properly." << std::endl;
  }

The problem is that if _info.dt is smaller than 1 sec, std::chrono::duration_cast<std::chrono::seconds>(_info.dt).count() would produce 0, and the msg will output jump back in time [0s]

A quick fix is to change all instances of this code to std::chrono::duration<double>(_info.dt).count()

iche033 avatar May 14 '24 21:05 iche033