Hi Nicolas,
I don't think gazebo can read pgm files. Try opening your map file in gimp, save it as a grayscale .png file. Place the file in a package that exports its prefix to gazebo_media_path (for example take a look at manifest.xml for gazebo_worlds), under a subdirectory [package_name]/Media/materials/texture/walls.png.
Then try your spawn again. Note that if the map is complicated, it might take gazebo's recursive rectangle wall builder more than 30 sec. to construct the model.
John
Hi Everybody!!!
I have made a map with gmapping, it is a file 'map.pgm'. Now I want to spawn its walls, for that I am using this launch file:
<launch>
<arg name="scenario"/>
<arg name="no_window"/>
<!-- start gazebo with an empty plane -->
<param name="/use_sim_time" value="true" />
<!-- if no window is set then start with -r (no window displayed) -->
<node name="gazebo" pkg="gazebo" type="gazebo" args="-r $(find han_Scene)/worlds/empty.world" respawn="false" output="screen" if="$(arg no_window)"/>
<!-- Otherwise start normally -->
<node name="gazebo" pkg="gazebo" type="gazebo" args="$(find han_Scene)/worlds/empty.world" respawn="false" output="screen" unless="$(arg no_window)"/>
<!-- walls-->
<param name="walls" textfile="$(find han_Scene)/scenarios/$(arg scenario)/walls.model" />
<node name="xml2factor_walls" pkg="gazebo" type="spawn_model" args="-gazebo -param walls -model walls" respawn="false" output="screen" />
<!-- <node name="xml2factor_walls" pkg="gazebo" type="spawn_model" args="-gazebo -param walls -x -16 -y -16 -model walls" respawn="false" output="screen" /> -->
</launch>
Where the file walls.model is
<?xml version="1.0" ?>
<model:physical name="walls_model"
xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom" >
<static>true</static>
<body:map name="walls_body">
<xyz>-8 -8 0 </xyz>
<geom:map name="walls_geom">
<image>map.pgm</image> <!-- for now this is in the gazebo model dir, change later-->
<height>2</height>
<threshold>200</threshold>
<granularity>1</granularity>
<negative>false</negative>
<scale>0.04</scale>
<offset>0 0 0</offset>
<material>Gazebo/Rocky</material>
</geom:map>
</body:map>
</model:physical>
The thing is that nothing happens in gazebo.
Any clue?? Does exist any documentation about how to spawn walls of a map??
Many thanks
Nicolas
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users