环境
项目 | 版本 |
---|---|
ROS | melodic |
系统 | Ubuntu 18.04.6 LTS |
python | 2.7 |
问题描述
ROS中.header.stamp.to_sec()
方法的转换精度不足,如visualization_msgs.msg.Marker
的这个方法。会将1593681371.117784182
转换为1593681371.117784262
也就是后三位不一致。
解决办法
分别将.header.stamp.secs
和.header.stamp.nsecs
进行赋值即可解决这一问题。
问题原因分析
猜测可能跟编程语言(如python)中的浮点型(python中相当于float64)数据精度有关,双精度浮点型本身无法精确表示这么多位数字。