gz-sim
gz-sim copied to clipboard
Incorrect warning msg when sim jumps back in time
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()