ubuntu14.04.5+ROS indigo,在运行gazebo2.2.3时,出现“error [node.cc:90] no namespace found”的错误,但gazebo依然可以打开使用。
网上很多教程虽然给出了办法,但下载网址不对,自己折腾了半天,总算发现需要将原来的 http://old.gazebosim.org/models 替换为 http://gazebosim.org/models ,然后就可以了。
问题类似于如下所示:
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Error [gazebo.cc:220] Waited 11 seconds for namespaces. Giving up.
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
解决办法:
这主要是因为gazebo启动时会预先加载各种已有的模板,比如各种通用的机器人模型、水杯、墙壁等等,但gazebo本身不带这些东西,需要自己下载,因此,只需要将这些模型文件下载好存放于.gazebo文件夹中,启动时可以预读取即可。
首先,先下载models的文件,执行如下指令:(需要时间较长,自己用了1小时30分钟才下好,没有找到相关文件包集合,如找到直接下载包即可)
$ wget -r -R "index\.html*" http://gazebosim.org/models/
接着,在/home里找到models.gazebosim.org文件夹,如下图
models.gazebosim.org文件夹里的内容如下所示:
然后,在home下找到隐藏文件夹./gazebo,在该文件夹下新建文件夹models,然后将models.gazebosim.org文件里的全部内容直接复制或剪切到models文件夹内,原文件夹删掉即可,如下所示:
重新打开terminal,输入
$gazebo
再次启动gazebo,一切正常,OK.