“error [node.cc:90] no namespace found” gazebo运行时出现的问题及解决方案

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.

posted @ 2018-04-04 19:03  飞翔的拖拉机  阅读(1344)  评论(0编辑  收藏  举报