今天,在移动机器人上进行测试的时候功能包的时候,编写的某项功能总是不能实现,我一度认为是我写的有问题,但是在电脑上的gazebo和rviz中进行仿真测试的时候是没问题的,那问题出在哪里呢?
答案是:编译
我的移动机器人的编译结果,如下图所示:

可以看到虽然,编译进程100%已经通过,但是提供了两个警告信息(如上图①处红框所示):xxxx has modification time xxx s in the future以及Your build may be inconplete,大概的意思就是xxx在未来时间有更新,你的构建可能不完整
这个包是我通过将移动机器人上某个文件夹挂载在电脑上,然后将将电脑内的功能包复制到该文件夹内进行传递的,然后在移动机器人上编译时,就出现了以上警告
其原因很简单但却容易被忽略,那就是电脑和移动机器人的时间不匹配,当时我电脑的时间是2022.5.26 20.15,而机器人的时间是2021.11.13 12.38(如上图②处蓝框所示),导致机器人在编译时认为该功能包来自于“未来”,从而并没有进行正常的编译。
知道了原因,解决就很简单了,只需要将机器人上的时间修改成跟电脑相同就可以了,修改后再次进行编译,就可以正常编译了,如下图所示

此时,再对该功能包进行测试,就可以得到正常的运行结果了