The Ubuntu software update tool updated my gazebo install from 1.8 to 1.9, and it appears to have broken something regarding includes. I have a model (in a custom path) that includes a slightly modified hokuyo model (in the same custom path).
In the script I run to launch gazebo and insert the model I use an export to set the model path, and gzfactory to insert my model.
export GAZEBO_MODEL_PATH=my/custom/path/models:$GAZEBO_MODEL_PATH
then later
gzfactory spawn -f my/custom/path/models/myrobot/myrobot.sdf
I get these errors:
Error [SDF.cc:118] Tried to use callback in sdf::findFile(), but the callback is empty. Did you call sdf::setFindCallback()?
Error [parser.cc:520] Unable to find uri[model://5D_Hokuyo]
Exception [Joint.cc:137] Couldn't Find Child Link[hokuyo::link]
Error [Model.cc:153] LoadJoint Failed
Heres what the include in the sdf looks like:
<include>
<uri>model://Modified_Hokuyo</uri>
<pose>.25 0 0.2675 0 0 0</pose>
</include>
<joint name="hokuyo_joint" type="revolute">
<child>hokuyo::link</child>
<parent>base_link</parent>
<axis>
<xyz>0 0 1</xyz>
<limit>
<upper>0</upper>
<lower>0</lower>
</limit>
</axis>
</joint>
What is odd is that it is able to insert my custom robot, but then fails to find the hokuyo model. Was something changed from 1.8 to 1.9 about how gazebo uses model://?
Any help would be greatly appreciated, I have a demo coming up very soon and I can't find a way to downgrade to 1.8 to fix the problem temporarily.