“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.
“error [node.cc:90] no namespace found” gazebo運行時出現的問題及解決方案