run_id on parameter server does not match declared run_id 解决方式

今天早上为单位配置SLAM算法库时,发现之前我已经调好的一个算法突然报错:

run_id on parameter server does not match declared run_id: 2e04386e-22c8-11ea-accf-54bf64943d1c vs 2e043c60-22c8-11ea-accf-54bf64943d1c
The traceback for the exception was written to the log file
[master] killing on exit

我的情况是:我写了一个bash脚本,在脚本中后台启动roscore,再启动roslaunch,再rosplay。之前明明可以正常运行,今早突然不能运行了,不得其解。

最后解决方式是,在bash脚本中增加一个sleep操作。

因为roslaunch启动的时候,会尝试获得已有的rosmaster的id,如果没有获得,将会创建一个自己的。这应该是导致runid冲突的原因。

因此,在bash脚本中的roslaunch操作之前,加一个“sleep 3”操作,让它稍微等一下roscore的启动或者之前的别的操作,然后它再启动,错误就会消失。

你可能感兴趣的:(Linux和ROS)