|
From: <hsu...@us...> - 2008-11-20 02:15:03
|
Revision: 7030
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=7030&view=rev
Author: hsujohnhsu
Date: 2008-11-20 02:14:58 +0000 (Thu, 20 Nov 2008)
Log Message:
-----------
udpate demos to start with empty world.
using urdf2factory to read robotdesc/pr2 and spwan robot in gazebo.
Modified Paths:
--------------
pkg/trunk/demos/arm_gazebo/arm.launch
pkg/trunk/demos/pr2_gazebo/pr2.launch
pkg/trunk/demos/pr2_gazebo/pr2_floorobj.launch
pkg/trunk/demos/pr2_gazebo/pr2_obs.launch
pkg/trunk/demos/pr2_gazebo/pr2_wg.launch
pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1.launch
pkg/trunk/drivers/simulator/gazebo_plugin/src/urdf2factory.cc
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/wg.world
Added Paths:
-----------
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_objects/willow-walls.model
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/floorobj.world
pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_worlds/obstacle.world
Removed Paths:
-------------
pkg/trunk/robot_descriptions/gazebo_robot_description/world/tests/willow-walls.model
Modified: pkg/trunk/demos/arm_gazebo/arm.launch
===================================================================
--- pkg/trunk/demos/arm_gazebo/arm.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/arm_gazebo/arm.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -2,13 +2,18 @@
<group name="wg">
<!-- send pr2_arm.xml to param server -->
<include file="$(find wg_robot_description)/pr2_arm_test/send_description.launch" />
+
<!-- -g flag runs gazebo in gui-less mode -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_arm_test.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/empty.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<node pkg="mechanism_control" type="mech.py" args="sp $(find wg_robot_description)/pr2_arm_test/controllers_arm.xml" respawn="false" output="screen" /> <!-- load default arm controller -->
<node pkg="robot_mechanism_controllers" type="control.py" args="set gripper_left_controller 0.5" respawn="false" output="screen" /> <!-- open gripper .5 radians -->
<!-- for visualization, heavy, off by default -->
Modified: pkg/trunk/demos/pr2_gazebo/pr2.launch
===================================================================
--- pkg/trunk/demos/pr2_gazebo/pr2.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/pr2_gazebo/pr2.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -5,13 +5,16 @@
<include file="$(find wg_robot_description)/pr2/send_description.launch" />
<!-- start gazebo -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_simple.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/simple.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<!-- load controllers -->
<include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
</group>
Modified: pkg/trunk/demos/pr2_gazebo/pr2_floorobj.launch
===================================================================
--- pkg/trunk/demos/pr2_gazebo/pr2_floorobj.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/pr2_gazebo/pr2_floorobj.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -4,12 +4,16 @@
<include file="$(find wg_robot_description)/pr2_prototype1/send_description.xml" />
<!-- -g flag runs gazebo in gui-less mode -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_floorobj.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/floorobj.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
</group>
</launch>
Modified: pkg/trunk/demos/pr2_gazebo/pr2_obs.launch
===================================================================
--- pkg/trunk/demos/pr2_gazebo/pr2_obs.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/pr2_gazebo/pr2_obs.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -4,13 +4,16 @@
<include file="$(find wg_robot_description)/pr2/send_description.launch" />
<!-- start gazebo -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_obstacle.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/obstacle.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<!-- load controllers -->
<include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
</group>
Modified: pkg/trunk/demos/pr2_gazebo/pr2_wg.launch
===================================================================
--- pkg/trunk/demos/pr2_gazebo/pr2_wg.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/pr2_gazebo/pr2_wg.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -4,13 +4,16 @@
<include file="$(find wg_robot_description)/pr2_prototype1/send_description.xml" />
<!-- start gazebo -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_wg.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/wg.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<!-- load controllers -->
<include file="$(find pr2_gazebo)/pr2_default_controllers.launch" />
</group>
Modified: pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1.launch
===================================================================
--- pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1.launch 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/demos/pr2_prototype1_gazebo/pr2_prototype1.launch 2008-11-20 02:14:58 UTC (rev 7030)
@@ -2,18 +2,22 @@
<!-- this launch file corresponds to robot model in ros-pkg/robot_descriptions/wg_robot_description/pr2 -->
<!-- if needed, group tag allows pushing components into namespace via ns="namespace" -->
<group name="wg">
- <!-- create model file for gazebo -->
- <node pkg="gazebo_robot_description" type="urdf2gazebo" args="$(find wg_robot_description)/pr2_prototype1/pr2_prototype1.xml.expanded $(find gazebo_robot_description)/world/pr2_xml_prototype1.model" />
+
<!-- send pr2.xml to parameter server as a string, allow retrieval by various components whe needs it
(Mechanism Control, BaseControllerNode, etc...) -->
<include file="$(find wg_robot_description)/pr2_prototype1/send_description.xml" />
+
<!-- assign environment variables for gazebo and startup gazebo with argument containing the world file. -->
- <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/world/robot_prototype1.world" respawn="false" output="screen">
+ <node pkg="gazebo" type="gazebo" args="-n $(find gazebo_robot_description)/gazebo_worlds/wg.world" respawn="false" output="screen">
<env name="LD_LIBRARY_PATH" value="$(find gazebo_plugin)/lib:$(find gazebo)/gazebo/lib:$(find Cg)/Cg/lib:$LD_LIBRARY_PATH" />
<env name="GAZEBO_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
<env name="OGRE_RESOURCE_PATH" value="$(find ogre)/ogre/lib/OGRE" />
<env name="MC_RESOURCE_PATH" value="$(find gazebo_robot_description)/world" />
</node>
+
+ <!-- push robotdesc/pr2 to factory and spawn robot in gazebo -->
+ <node pkg="gazebo_plugin" type="urdf2factory" args="robotdesc/pr2" respawn="false" output="screen" /> <!-- load default arm controller -->
+
<!-- use mech.py to spawn all controllers listed in controllers.xml -->
<include file="$(find pr2_prototype1_gazebo)/pr2_prototype1_controllers.launch" />
</group>
Modified: pkg/trunk/drivers/simulator/gazebo_plugin/src/urdf2factory.cc
===================================================================
--- pkg/trunk/drivers/simulator/gazebo_plugin/src/urdf2factory.cc 2008-11-20 02:01:49 UTC (rev 7029)
+++ pkg/trunk/drivers/simulator/gazebo_plugin/src/urdf2factory.cc 2008-11-20 02:14:58 UTC (rev 7030)
@@ -398,15 +398,13 @@
void usage(const char *progname)
{
- printf("\nUsage: %s URDF.xml Gazebo.model\n", progname);
- printf(" where URDF.xml is the file containing a robot description in the Willow Garage format (URDF)\n");
- printf(" and Gazebo.model is the file where the Gazebo model should be written\n\n");
- printf(" if nothing is not specified, read from param and send to gazebo factory\n\n");
+ printf("\nUsage: %s robotdesc/pr2\n", progname);
+ printf(" read robotdesc/pr2 from param server and send to gazebo factory to spawn robot\n\n");
}
int main(int argc, char **argv)
{
- if (argc < 0)
+ if (argc < 2)
{
usage(argv[0]);
exit(1);
@@ -414,33 +412,27 @@
// connect to gazebo
gazebo::Client *client = new gazebo::Client();
- gazebo::SimulationIface *simIface = new gazebo::SimulationIface();
gazebo::FactoryIface *factoryIface = new gazebo::FactoryIface();
int serverId = 0;
+ bool connected_to_server = false;
/// Connect to the libgazebo server
- try
+ while (!connected_to_server)
{
- client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
+ try
+ {
+ client->ConnectWait(serverId, GZ_CLIENT_ID_USER_FIRST);
+ connected_to_server = true;
+ }
+ catch (gazebo::GazeboError e)
+ {
+ std::cout << "Gazebo error: Unable to connect\n" << e << "\n";
+ usleep(1000000);
+ connected_to_server = false;
+ }
}
- catch (gazebo::GazeboError e)
- {
- std::cout << "Gazebo error: Unable to connect\n" << e << "\n";
- return -1;
- }
- /// Open the Simulation Interface
- try
- {
- simIface->Open(client, "default");
- }
- catch (gazebo::GazeboError e)
- {
- std::cout << "Gazebo error: Unable to connect to the sim interface\n" << e << "\n";
- return -1;
- }
-
/// Open the Factory interface
try
{
@@ -459,7 +451,7 @@
ros::node* rosnode = new ros::node("pr2_factory",ros::node::DONT_HANDLE_SIGINT);
printf("-------------------- starting node for pr2 param server factory \n");
std::string xml_content;
- rosnode->get_param("robotdesc/pr2",xml_content);
+ rosnode->get_param(argv[1],xml_content);
// Parse URDF to get gazebo model.
bool enforce_limits = true;
Copied: pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_objects/willow-walls.model (from rev 7001, pkg/trunk/robot_descriptions/gazebo_robot_description/world/tests/willow-walls.model)
===================================================================
--- pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_objects/willow-walls.model (rev 0)
+++ pkg/trunk/robot_descriptions/gazebo_robot_description/gazebo_objects/willow-walls.model 2008-11-20 02:14:58 UTC (rev 7030)
@@ -0,0 +1,11197 @@
+<?xml version="1.0"?>
+<!-- This file autogenerated by gazebo_map_extruder by parsing /u/gerkey/code/personalrobots/demos/2dnav-gazebo/world/Media/materials/textures/willowMap.png -->
+<model:physical name="willow-walls"
+xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
+xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
+xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
+xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
+xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
+xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
+xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
+>
+ <xyz> 0.0 0.0 0.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+
+
+ <body:box name="wall_0_body">
+ <xyz> 4.700 25.550 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_0_geom">
+ <mesh>default</mesh>
+ <size> 34.500 0.200 2.0</size>
+ <visual>
+ <size> 34.500 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_1_body">
+ <xyz> -8.100 23.450 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_1_geom">
+ <mesh>default</mesh>
+ <size> 8.900 4.000 2.0</size>
+ <visual>
+ <size> 8.900 4.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_2_body">
+ <xyz> 0.200 23.450 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_2_geom">
+ <mesh>default</mesh>
+ <size> 0.500 4.000 2.0</size>
+ <visual>
+ <size> 0.500 4.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_3_body">
+ <xyz> 4.750 23.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_3_geom">
+ <mesh>default</mesh>
+ <size> 0.400 3.900 2.0</size>
+ <visual>
+ <size> 0.400 3.900 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_4_body">
+ <xyz> 8.050 23.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_4_geom">
+ <mesh>default</mesh>
+ <size> 0.200 3.900 2.0</size>
+ <visual>
+ <size> 0.200 3.900 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_5_body">
+ <xyz> 11.350 23.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_5_geom">
+ <mesh>default</mesh>
+ <size> 0.400 3.900 2.0</size>
+ <visual>
+ <size> 0.400 3.900 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_6_body">
+ <xyz> 18.900 25.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_6_geom">
+ <mesh>default</mesh>
+ <size> 6.100 0.100 2.0</size>
+ <visual>
+ <size> 6.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_7_body">
+ <xyz> 4.500 25.300 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_7_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_8_body">
+ <xyz> 16.050 23.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_8_geom">
+ <mesh>default</mesh>
+ <size> 0.400 3.200 2.0</size>
+ <visual>
+ <size> 0.400 3.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_9_body">
+ <xyz> 21.700 -0.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_9_geom">
+ <mesh>default</mesh>
+ <size> 0.500 50.900 2.0</size>
+ <visual>
+ <size> 0.500 50.900 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_10_body">
+ <xyz> 4.500 25.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_10_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_11_body">
+ <xyz> 16.100 21.850 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_11_geom">
+ <mesh>default</mesh>
+ <size> 0.300 0.600 2.0</size>
+ <visual>
+ <size> 0.300 0.600 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_12_body">
+ <xyz> -17.100 21.900 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_12_geom">
+ <mesh>default</mesh>
+ <size> 9.100 0.300 2.0</size>
+ <visual>
+ <size> 9.100 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_13_body">
+ <xyz> 11.650 21.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_13_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.400 2.0</size>
+ <visual>
+ <size> 0.200 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_14_body">
+ <xyz> 6.000 21.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_14_geom">
+ <mesh>default</mesh>
+ <size> 2.100 0.300 2.0</size>
+ <visual>
+ <size> 2.100 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_15_body">
+ <xyz> 7.850 21.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_15_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.200 2.0</size>
+ <visual>
+ <size> 0.200 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_16_body">
+ <xyz> 8.250 21.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_16_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.200 2.0</size>
+ <visual>
+ <size> 0.200 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_17_body">
+ <xyz> 10.150 21.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_17_geom">
+ <mesh>default</mesh>
+ <size> 2.000 0.300 2.0</size>
+ <visual>
+ <size> 2.000 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_18_body">
+ <xyz> 11.800 21.800 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_18_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_19_body">
+ <xyz> 14.300 21.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_19_geom">
+ <mesh>default</mesh>
+ <size> 3.300 0.300 2.0</size>
+ <visual>
+ <size> 3.300 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_20_body">
+ <xyz> 19.250 21.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_20_geom">
+ <mesh>default</mesh>
+ <size> 4.400 0.200 2.0</size>
+ <visual>
+ <size> 4.400 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_21_body">
+ <xyz> -21.450 17.200 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_21_geom">
+ <mesh>default</mesh>
+ <size> 0.400 9.100 2.0</size>
+ <visual>
+ <size> 0.400 9.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_22_body">
+ <xyz> -15.950 20.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_22_geom">
+ <mesh>default</mesh>
+ <size> 0.200 3.300 2.0</size>
+ <visual>
+ <size> 0.200 3.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_23_body">
+ <xyz> -13.200 20.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_23_geom">
+ <mesh>default</mesh>
+ <size> 1.300 3.300 2.0</size>
+ <visual>
+ <size> 1.300 3.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_24_body">
+ <xyz> -2.350 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_24_geom">
+ <mesh>default</mesh>
+ <size> 2.600 0.300 2.0</size>
+ <visual>
+ <size> 2.600 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_25_body">
+ <xyz> -0.150 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_25_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.300 2.0</size>
+ <visual>
+ <size> 0.200 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_26_body">
+ <xyz> 2.200 21.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_26_geom">
+ <mesh>default</mesh>
+ <size> 3.300 0.100 2.0</size>
+ <visual>
+ <size> 3.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_27_body">
+ <xyz> 0.550 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_27_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.100 2.0</size>
+ <visual>
+ <size> 0.200 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_28_body">
+ <xyz> 1.300 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_28_geom">
+ <mesh>default</mesh>
+ <size> 0.500 0.100 2.0</size>
+ <visual>
+ <size> 0.500 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_29_body">
+ <xyz> 1.700 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_29_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_30_body">
+ <xyz> 2.850 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_30_geom">
+ <mesh>default</mesh>
+ <size> 2.000 0.100 2.0</size>
+ <visual>
+ <size> 2.000 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_31_body">
+ <xyz> 7.900 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_31_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_32_body">
+ <xyz> 8.200 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_32_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_33_body">
+ <xyz> 17.250 21.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_33_geom">
+ <mesh>default</mesh>
+ <size> 0.400 0.100 2.0</size>
+ <visual>
+ <size> 0.400 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_34_body">
+ <xyz> 21.300 18.050 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_34_geom">
+ <mesh>default</mesh>
+ <size> 0.300 7.200 2.0</size>
+ <visual>
+ <size> 0.300 7.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_35_body">
+ <xyz> 0.500 21.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_35_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_36_body">
+ <xyz> 4.700 21.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_36_geom">
+ <mesh>default</mesh>
+ <size> 0.300 0.100 2.0</size>
+ <visual>
+ <size> 0.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_37_body">
+ <xyz> 12.700 21.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_37_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_38_body">
+ <xyz> 17.200 21.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_38_geom">
+ <mesh>default</mesh>
+ <size> 0.300 0.100 2.0</size>
+ <visual>
+ <size> 0.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_39_body">
+ <xyz> -8.700 21.200 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_39_geom">
+ <mesh>default</mesh>
+ <size> 7.700 0.500 2.0</size>
+ <visual>
+ <size> 7.700 0.500 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_40_body">
+ <xyz> 4.800 21.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_40_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_41_body">
+ <xyz> 17.250 21.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_41_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.100 2.0</size>
+ <visual>
+ <size> 0.200 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_42_body">
+ <xyz> -4.800 21.050 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_42_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.400 2.0</size>
+ <visual>
+ <size> 0.100 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_43_body">
+ <xyz> -8.900 20.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_43_geom">
+ <mesh>default</mesh>
+ <size> 7.300 0.400 2.0</size>
+ <visual>
+ <size> 7.300 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_44_body">
+ <xyz> -5.000 20.900 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_44_geom">
+ <mesh>default</mesh>
+ <size> 0.300 0.100 2.0</size>
+ <visual>
+ <size> 0.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_45_body">
+ <xyz> 17.200 19.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_45_geom">
+ <mesh>default</mesh>
+ <size> 0.300 2.000 2.0</size>
+ <visual>
+ <size> 0.300 2.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_46_body">
+ <xyz> -9.000 20.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_46_geom">
+ <mesh>default</mesh>
+ <size> 7.100 0.100 2.0</size>
+ <visual>
+ <size> 7.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_47_body">
+ <xyz> -9.100 20.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_47_geom">
+ <mesh>default</mesh>
+ <size> 6.900 0.100 2.0</size>
+ <visual>
+ <size> 6.900 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_48_body">
+ <xyz> -9.150 20.300 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_48_geom">
+ <mesh>default</mesh>
+ <size> 6.800 0.100 2.0</size>
+ <visual>
+ <size> 6.800 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_49_body">
+ <xyz> -9.200 20.200 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_49_geom">
+ <mesh>default</mesh>
+ <size> 6.700 0.100 2.0</size>
+ <visual>
+ <size> 6.700 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_50_body">
+ <xyz> -9.250 20.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_50_geom">
+ <mesh>default</mesh>
+ <size> 6.600 0.100 2.0</size>
+ <visual>
+ <size> 6.600 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_51_body">
+ <xyz> 0.750 20.000 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_51_geom">
+ <mesh>default</mesh>
+ <size> 9.000 0.300 2.0</size>
+ <visual>
+ <size> 9.000 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_52_body">
+ <xyz> 10.300 20.000 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_52_geom">
+ <mesh>default</mesh>
+ <size> 7.100 0.300 2.0</size>
+ <visual>
+ <size> 7.100 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_53_body">
+ <xyz> -9.300 19.900 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_53_geom">
+ <mesh>default</mesh>
+ <size> 6.500 0.300 2.0</size>
+ <visual>
+ <size> 6.500 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_54_body">
+ <xyz> -3.900 19.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_54_geom">
+ <mesh>default</mesh>
+ <size> 0.300 1.300 2.0</size>
+ <visual>
+ <size> 0.300 1.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_55_body">
+ <xyz> -4.100 19.350 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_55_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.200 2.0</size>
+ <visual>
+ <size> 0.100 1.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_56_body">
+ <xyz> -1.550 19.800 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_56_geom">
+ <mesh>default</mesh>
+ <size> 4.400 0.100 2.0</size>
+ <visual>
+ <size> 4.400 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_57_body">
+ <xyz> 13.700 18.050 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_57_geom">
+ <mesh>default</mesh>
+ <size> 0.300 3.600 2.0</size>
+ <visual>
+ <size> 0.300 3.600 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_58_body">
+ <xyz> -9.350 19.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_58_geom">
+ <mesh>default</mesh>
+ <size> 6.400 0.100 2.0</size>
+ <visual>
+ <size> 6.400 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_59_body">
+ <xyz> -4.250 19.250 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_59_geom">
+ <mesh>default</mesh>
+ <size> 0.200 1.000 2.0</size>
+ <visual>
+ <size> 0.200 1.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_60_body">
+ <xyz> -1.600 19.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_60_geom">
+ <mesh>default</mesh>
+ <size> 4.300 0.100 2.0</size>
+ <visual>
+ <size> 4.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_61_body">
+ <xyz> -9.400 19.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_61_geom">
+ <mesh>default</mesh>
+ <size> 6.300 0.100 2.0</size>
+ <visual>
+ <size> 6.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_62_body">
+ <xyz> 0.400 12.900 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_62_geom">
+ <mesh>default</mesh>
+ <size> 0.300 13.500 2.0</size>
+ <visual>
+ <size> 0.300 13.500 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_63_body">
+ <xyz> -9.450 19.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_63_geom">
+ <mesh>default</mesh>
+ <size> 6.200 0.100 2.0</size>
+ <visual>
+ <size> 6.200 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_64_body">
+ <xyz> -4.400 19.150 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_64_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.800 2.0</size>
+ <visual>
+ <size> 0.100 0.800 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_65_body">
+ <xyz> -9.550 19.400 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_65_geom">
+ <mesh>default</mesh>
+ <size> 6.000 0.100 2.0</size>
+ <visual>
+ <size> 6.000 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_66_body">
+ <xyz> -4.500 18.800 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_66_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.300 2.0</size>
+ <visual>
+ <size> 0.100 1.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_67_body">
+ <xyz> -9.600 19.300 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_67_geom">
+ <mesh>default</mesh>
+ <size> 5.900 0.100 2.0</size>
+ <visual>
+ <size> 5.900 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_68_body">
+ <xyz> -4.600 18.750 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_68_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.200 2.0</size>
+ <visual>
+ <size> 0.100 1.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_69_body">
+ <xyz> 17.400 19.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_69_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.500 2.0</size>
+ <visual>
+ <size> 0.100 0.500 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_70_body">
+ <xyz> -9.650 19.150 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_70_geom">
+ <mesh>default</mesh>
+ <size> 5.800 0.200 2.0</size>
+ <visual>
+ <size> 5.800 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_71_body">
+ <xyz> 19.300 19.050 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_71_geom">
+ <mesh>default</mesh>
+ <size> 3.700 0.400 2.0</size>
+ <visual>
+ <size> 3.700 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_72_body">
+ <xyz> -4.750 18.650 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_72_geom">
+ <mesh>default</mesh>
+ <size> 0.200 1.000 2.0</size>
+ <visual>
+ <size> 0.200 1.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_73_body">
+ <xyz> -9.700 19.000 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_73_geom">
+ <mesh>default</mesh>
+ <size> 5.700 0.100 2.0</size>
+ <visual>
+ <size> 5.700 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_74_body">
+ <xyz> -9.750 18.900 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_74_geom">
+ <mesh>default</mesh>
+ <size> 5.600 0.100 2.0</size>
+ <visual>
+ <size> 5.600 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_75_body">
+ <xyz> -4.900 18.550 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_75_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.800 2.0</size>
+ <visual>
+ <size> 0.100 0.800 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_76_body">
+ <xyz> -9.800 18.800 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_76_geom">
+ <mesh>default</mesh>
+ <size> 5.500 0.100 2.0</size>
+ <visual>
+ <size> 5.500 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_77_body">
+ <xyz> -5.000 18.650 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_77_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.400 2.0</size>
+ <visual>
+ <size> 0.100 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_78_body">
+ <xyz> 21.050 17.450 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_78_geom">
+ <mesh>default</mesh>
+ <size> 0.200 2.800 2.0</size>
+ <visual>
+ <size> 0.200 2.800 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_79_body">
+ <xyz> -9.850 18.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_79_geom">
+ <mesh>default</mesh>
+ <size> 5.400 0.100 2.0</size>
+ <visual>
+ <size> 5.400 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_80_body">
+ <xyz> 17.250 18.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_80_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.100 2.0</size>
+ <visual>
+ <size> 0.200 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_81_body">
+ <xyz> -15.700 18.550 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_81_geom">
+ <mesh>default</mesh>
+ <size> 0.300 0.200 2.0</size>
+ <visual>
+ <size> 0.300 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_82_body">
+ <xyz> -14.300 18.550 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_82_geom">
+ <mesh>default</mesh>
+ <size> 0.900 0.200 2.0</size>
+ <visual>
+ <size> 0.900 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_83_body">
+ <xyz> -9.900 18.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_83_geom">
+ <mesh>default</mesh>
+ <size> 5.300 0.100 2.0</size>
+ <visual>
+ <size> 5.300 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_84_body">
+ <xyz> -5.250 18.550 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_84_geom">
+ <mesh>default</mesh>
+ <size> 0.400 0.200 2.0</size>
+ <visual>
+ <size> 0.400 0.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_85_body">
+ <xyz> -10.000 18.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_85_geom">
+ <mesh>default</mesh>
+ <size> 5.100 0.100 2.0</size>
+ <visual>
+ <size> 5.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_86_body">
+ <xyz> -5.500 18.500 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_86_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.100 2.0</size>
+ <visual>
+ <size> 0.100 0.100 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_87_body">
+ <xyz> 17.200 16.700 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_87_geom">
+ <mesh>default</mesh>
+ <size> 0.300 2.700 2.0</size>
+ <visual>
+ <size> 0.300 2.700 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_88_body">
+ <xyz> -6.100 17.350 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_88_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.200 2.0</size>
+ <visual>
+ <size> 0.100 1.200 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_89_body">
+ <xyz> -6.200 17.350 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_89_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.000 2.0</size>
+ <visual>
+ <size> 0.100 1.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_90_body">
+ <xyz> -5.700 17.150 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_90_geom">
+ <mesh>default</mesh>
+ <size> 0.700 1.400 2.0</size>
+ <visual>
+ <size> 0.700 1.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_91_body">
+ <xyz> -6.300 17.350 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_91_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.800 2.0</size>
+ <visual>
+ <size> 0.100 0.800 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_92_body">
+ <xyz> -6.400 17.350 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_92_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.600 2.0</size>
+ <visual>
+ <size> 0.100 0.600 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_93_body">
+ <xyz> -6.500 17.300 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_93_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.500 2.0</size>
+ <visual>
+ <size> 0.100 0.500 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_94_body">
+ <xyz> -4.550 16.650 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_94_geom">
+ <mesh>default</mesh>
+ <size> 1.600 0.400 2.0</size>
+ <visual>
+ <size> 1.600 0.400 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_95_body">
+ <xyz> -2.250 16.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_95_geom">
+ <mesh>default</mesh>
+ <size> 3.000 0.300 2.0</size>
+ <visual>
+ <size> 3.000 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_96_body">
+ <xyz> 0.200 16.600 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_96_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.300 2.0</size>
+ <visual>
+ <size> 0.100 0.300 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_97_body">
+ <xyz> -6.100 16.150 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_97_geom">
+ <mesh>default</mesh>
+ <size> 0.100 1.000 2.0</size>
+ <visual>
+ <size> 0.100 1.000 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_98_body">
+ <xyz> -6.250 16.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_98_geom">
+ <mesh>default</mesh>
+ <size> 0.200 0.900 2.0</size>
+ <visual>
+ <size> 0.200 0.900 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_99_body">
+ <xyz> -6.400 16.050 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_99_geom">
+ <mesh>default</mesh>
+ <size> 0.100 0.800 2.0</size>
+ <visual>
+ <size> 0.100 0.800 2.0</size>
+ <material>Gazebo/PioneerBody</material>
+ <mesh>unit_box</mesh>
+ </visual>
+ </geom:box>
+ </body:box>
+
+
+ <body:box name="wall_100_body">
+ <xyz> -5.850 16.100 1.0</xyz>
+ <rpy> 0.0 0.0 0.0</rpy>
+ <static>true</static>
+ <geom:box name="wall_100_geom">
+ <mesh>default</mesh>
+ <size> 0.400 0.700 2.0</size>
+ <visual>
+ <size> 0.400 0.700 2.0</size>
+ <material>Gazebo/Pi...
[truncated message content] |