はじめに
traffic editor で配置したモデルがgazeboで表示されない問題があったので投稿します。
所々間違っている点があるかもしれませんが、ご了承ください。
エラーの内容
youtube動画に従って、以下のようにtraffic editorでマップを作成しました。
しかし、gazeboでマップを表示すると、カフェテーブルやソファのようなモデルが表示されませんでした。
エラーの内容は以下の通りでした。
Error Code 12 Msg: Unable to find uri[model://Sofa]
Error Code 12 Msg: Unable to find uri[model://Cafe table]
uriが見つからないみたいです。
エラーの解決方法
エラーの原因は二つありました。
- uriが間違っている。
- リンク先にモデルがそもそも無い。
それぞれについて説明します。
uriが間違っている
最初にカフェテーブルが表示されない問題を解決します。
ros2 runで生成されたworldファイルを見ると、先程のエラー文にあった通り、<uri>model://Cafe table</uri>
となっています。
一方この時、gazeboでinsertを開くと、二つのリンク先のモデルを参照している事がわかります。
その内、https://models.gazebosim.org/のリストを見ると、cafe tableがあるので、クリックし一度gazeboで配置すると、/home/ubuntu/.gazebo/modelsでモデルのフォルダを参照できるようになります。
ubuntu@ubuntu2204:~$ cd /home/ubuntu/.gazebo/models
ubuntu@ubuntu2204:~/.gazebo/models$ ls -l
drwxrwxr-x 4 ubuntu ubuntu 4096 4月 24 2020 cafe_table
cafe_tableディレクトリの中のmodel.sdfを参照すると、uriがCafe table
でなくcafe_table
である事がわかります。
なので、worldファイルの
<uri>model://Cafe table</uri>
を
<uri>model://cafe_table</uri>
に変更します。
それでは、gazeboを立ち上げます。
カフェテーブルが表示されました。
Error Code 12 Msg: Unable to find uri[model://Sofa]
エラー文も減りました。
リンク先にモデルがそもそも無い
次にソファが表示されない問題を解決します。先程の二つのリンク先のモデルを調べると、ソファのモデルがそもそも無い事がわかります。無いモデルに関しては、以下のリンク先からダウンロードし、/usr/share/gazebo-11/models
に配置します。
https://app.gazebosim.org/dashboard
それではgazeboを立ち上げます。
ソファも出現しました。エラー文も消えました。