From f9aa66a438f921f6c17fdb52b6c78744c6c5173e Mon Sep 17 00:00:00 2001
From: fherrero <fherrero@iri.upc.edu>
Date: Wed, 24 Feb 2021 15:44:04 +0100
Subject: [PATCH] Add example qr png and localization_sign_macro.xacro

---
 urdf/loc_sign.xacro                      |  11 ++
 urdf/signs/dae/png/qr_loc1.png           | Bin 0 -> 3230 bytes
 urdf/signs/dae/png/qr_loc88.png          | Bin 0 -> 3023 bytes
 urdf/signs/dae/png/world.png             | Bin 0 -> 17752 bytes
 urdf/signs/dae/qr_loc1.dae               | 170 +++++++++++++++++++++++
 urdf/signs/dae/qr_loc88.dae              | 170 +++++++++++++++++++++++
 urdf/signs/dae/world.dae                 | 170 +++++++++++++++++++++++
 urdf/signs/localization_sign_macro.xacro | 131 +++++++++++++++++
 8 files changed, 652 insertions(+)
 create mode 100644 urdf/loc_sign.xacro
 create mode 100644 urdf/signs/dae/png/qr_loc1.png
 create mode 100644 urdf/signs/dae/png/qr_loc88.png
 create mode 100644 urdf/signs/dae/png/world.png
 create mode 100644 urdf/signs/dae/qr_loc1.dae
 create mode 100644 urdf/signs/dae/qr_loc88.dae
 create mode 100644 urdf/signs/dae/world.dae
 create mode 100644 urdf/signs/localization_sign_macro.xacro

diff --git a/urdf/loc_sign.xacro b/urdf/loc_sign.xacro
new file mode 100644
index 0000000..88e60b7
--- /dev/null
+++ b/urdf/loc_sign.xacro
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<robot name="$(arg name)" xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+  <xacro:include filename="$(find iri_sign_description)/urdf/signs/localization_sign_macro.xacro" />
+  
+  <xacro:localization_sign name="$(arg name)"
+              tag_dae="$(arg tag)"
+              top_panel_dae="$(arg type)">
+  </xacro:localization_sign>
+
+</robot>
diff --git a/urdf/signs/dae/png/qr_loc1.png b/urdf/signs/dae/png/qr_loc1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f258b5118581026ff1ad4f016d2a178e1fb12152
GIT binary patch
literal 3230
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

literal 0
HcmV?d00001

diff --git a/urdf/signs/dae/png/qr_loc88.png b/urdf/signs/dae/png/qr_loc88.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e4a268aac6478de2c40ff9983ddc3a472a6ca17
GIT binary patch
literal 3023
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

literal 0
HcmV?d00001

diff --git a/urdf/signs/dae/png/world.png b/urdf/signs/dae/png/world.png
new file mode 100644
index 0000000000000000000000000000000000000000..673b6a3a73784a3ce1aa1b7773b5e81a321b8da2
GIT binary patch
literal 17752
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

literal 0
HcmV?d00001

diff --git a/urdf/signs/dae/qr_loc1.dae b/urdf/signs/dae/qr_loc1.dae
new file mode 100644
index 0000000..4f992c9
--- /dev/null
+++ b/urdf/signs/dae/qr_loc1.dae
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+  <asset>
+    <contributor>
+      <author></author>
+      <authoring_tool>FBX COLLADA exporter</authoring_tool>
+      <comments></comments>
+    </contributor>
+    <created>2014-10-05T08:59:28Z</created>
+    <keywords></keywords>
+    <modified>2014-10-05T08:59:28Z</modified>
+    <revision></revision>
+    <subject></subject>
+    <title></title>
+    <unit meter="1.0" name="meter"></unit>
+    <up_axis>Y_UP</up_axis></asset>
+  <library_images>
+    <image id="Map #1-image" name="Map #1">
+      <init_from>png/qr_loc1.png</init_from>
+    </image>
+  </library_images>
+  <library_materials>
+    <material id="Material #36" name="Material #36">
+      <instance_effect url="#Material #36-fx"/>
+    </material>
+  </library_materials>
+  <library_effects>
+    <effect id="Material #36-fx" name="Material #36">
+      <profile_COMMON>
+        <technique sid="standard">
+          <phong>
+            <emission>
+              <color sid="emission">0  0 0 1</color>
+            </emission>
+            <ambient>
+              <color sid="ambient">1  1 1 1</color>
+            </ambient>
+            <diffuse>
+              <texture texture="Map #1-image" texcoord="CHANNEL0">
+                <extra>
+                  <technique profile="MAYA">
+                    <wrapU sid="wrapU0">TRUE</wrapU>
+                    <wrapV sid="wrapV0">TRUE</wrapV>
+                    <blend_mode>ADD</blend_mode>
+                  </technique>
+                </extra>
+              </texture>
+            </diffuse>
+            <specular>
+              <color sid="specular">0  0 0 1</color>
+            </specular>
+            <shininess>
+              <float sid="shininess">2</float>
+            </shininess>
+            <reflective>
+              <color sid="reflective">0  0 0 1</color>
+            </reflective>
+            <reflectivity>
+              <float sid="reflectivity">1</float>
+            </reflectivity>
+            <transparent opaque="RGB_ZERO">
+              <color sid="transparent">1  1 1 1</color>
+            </transparent>
+            <transparency>
+              <float sid="transparency">0</float>
+            </transparency>
+          </phong>
+        </technique>
+      </profile_COMMON>
+    </effect>
+  </library_effects>
+  <library_geometries>
+    <geometry id="image-lib" name="image">
+      <mesh>
+        <source id="image-POSITION">
+          <float_array id="image-POSITION-array" count="12">
+          -0.5 -0.5 0
+          0.5 -0.5 0
+          -0.5 0.5 0
+          0.5 0.5 0
+          </float_array>
+          <technique_common>
+            <accessor source="#image-POSITION-array" count="4" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-Normal0">
+          <float_array id="image-Normal0-array" count="18">
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          </float_array>
+          <technique_common>
+            <accessor source="#image-Normal0-array" count="6" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-UV0">
+          <float_array id="image-UV0-array" count="8">
+          0 0
+          1 0
+          0 1
+          1 1
+          </float_array>
+          <!--
+          0.000499 0.000500
+          0.999500 0.000499
+          0.000500 0.999501
+          0.999501 0.999500
+          -->
+          <technique_common>
+            <accessor source="#image-UV0-array" count="4" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="image-VERTEX">
+          <input semantic="POSITION" source="#image-POSITION"/>
+        </vertices>
+        <triangles count="2" material="Material #36">
+          <input semantic="VERTEX" offset="0" source="#image-VERTEX"/>
+          <input semantic="NORMAL" offset="1" source="#image-Normal0"/>
+          <input semantic="TEXCOORD" offset="2" set="0" source="#image-UV0"/>
+          <p> 0 0 0 1 1 1 3 2 3 3 3 3 2 4 2 0 5 0</p>
+        </triangles>
+      </mesh>
+    </geometry>
+  </library_geometries>
+  <library_visual_scenes>
+    <visual_scene id="" name="">
+      <node name="image" id="image" sid="image">
+        <matrix sid="matrix">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1</matrix>
+        <instance_geometry url="#image-lib">
+          <bind_material>
+            <technique_common>
+              <instance_material symbol="Material #36" target="#Material #36"/>
+            </technique_common>
+          </bind_material>
+        </instance_geometry>
+        <extra>
+          <technique profile="FCOLLADA">
+            <visibility>1</visibility>
+          </technique>
+        </extra>
+      </node>
+      <extra>
+        <technique profile="MAX3D">
+          <frame_rate>30</frame_rate>
+        </technique>
+        <technique profile="FCOLLADA">
+          <start_time>0</start_time>
+          <end_time>3.333333</end_time>
+        </technique>
+      </extra>
+    </visual_scene>
+  </library_visual_scenes>
+  <scene>
+    <instance_visual_scene url="#"></instance_visual_scene>
+  </scene>
+</COLLADA>
diff --git a/urdf/signs/dae/qr_loc88.dae b/urdf/signs/dae/qr_loc88.dae
new file mode 100644
index 0000000..89a0a28
--- /dev/null
+++ b/urdf/signs/dae/qr_loc88.dae
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+  <asset>
+    <contributor>
+      <author></author>
+      <authoring_tool>FBX COLLADA exporter</authoring_tool>
+      <comments></comments>
+    </contributor>
+    <created>2014-10-05T08:59:28Z</created>
+    <keywords></keywords>
+    <modified>2014-10-05T08:59:28Z</modified>
+    <revision></revision>
+    <subject></subject>
+    <title></title>
+    <unit meter="1.0" name="meter"></unit>
+    <up_axis>Y_UP</up_axis></asset>
+  <library_images>
+    <image id="Map #1-image" name="Map #1">
+      <init_from>png/qr_loc88.png</init_from>
+    </image>
+  </library_images>
+  <library_materials>
+    <material id="Material #36" name="Material #36">
+      <instance_effect url="#Material #36-fx"/>
+    </material>
+  </library_materials>
+  <library_effects>
+    <effect id="Material #36-fx" name="Material #36">
+      <profile_COMMON>
+        <technique sid="standard">
+          <phong>
+            <emission>
+              <color sid="emission">0  0 0 1</color>
+            </emission>
+            <ambient>
+              <color sid="ambient">1  1 1 1</color>
+            </ambient>
+            <diffuse>
+              <texture texture="Map #1-image" texcoord="CHANNEL0">
+                <extra>
+                  <technique profile="MAYA">
+                    <wrapU sid="wrapU0">TRUE</wrapU>
+                    <wrapV sid="wrapV0">TRUE</wrapV>
+                    <blend_mode>ADD</blend_mode>
+                  </technique>
+                </extra>
+              </texture>
+            </diffuse>
+            <specular>
+              <color sid="specular">0  0 0 1</color>
+            </specular>
+            <shininess>
+              <float sid="shininess">2</float>
+            </shininess>
+            <reflective>
+              <color sid="reflective">0  0 0 1</color>
+            </reflective>
+            <reflectivity>
+              <float sid="reflectivity">1</float>
+            </reflectivity>
+            <transparent opaque="RGB_ZERO">
+              <color sid="transparent">1  1 1 1</color>
+            </transparent>
+            <transparency>
+              <float sid="transparency">0</float>
+            </transparency>
+          </phong>
+        </technique>
+      </profile_COMMON>
+    </effect>
+  </library_effects>
+  <library_geometries>
+    <geometry id="image-lib" name="image">
+      <mesh>
+        <source id="image-POSITION">
+          <float_array id="image-POSITION-array" count="12">
+          -0.5 -0.5 0
+          0.5 -0.5 0
+          -0.5 0.5 0
+          0.5 0.5 0
+          </float_array>
+          <technique_common>
+            <accessor source="#image-POSITION-array" count="4" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-Normal0">
+          <float_array id="image-Normal0-array" count="18">
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          </float_array>
+          <technique_common>
+            <accessor source="#image-Normal0-array" count="6" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-UV0">
+          <float_array id="image-UV0-array" count="8">
+          0 0
+          1 0
+          0 1
+          1 1
+          </float_array>
+          <!--
+          0.000499 0.000500
+          0.999500 0.000499
+          0.000500 0.999501
+          0.999501 0.999500
+          -->
+          <technique_common>
+            <accessor source="#image-UV0-array" count="4" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="image-VERTEX">
+          <input semantic="POSITION" source="#image-POSITION"/>
+        </vertices>
+        <triangles count="2" material="Material #36">
+          <input semantic="VERTEX" offset="0" source="#image-VERTEX"/>
+          <input semantic="NORMAL" offset="1" source="#image-Normal0"/>
+          <input semantic="TEXCOORD" offset="2" set="0" source="#image-UV0"/>
+          <p> 0 0 0 1 1 1 3 2 3 3 3 3 2 4 2 0 5 0</p>
+        </triangles>
+      </mesh>
+    </geometry>
+  </library_geometries>
+  <library_visual_scenes>
+    <visual_scene id="" name="">
+      <node name="image" id="image" sid="image">
+        <matrix sid="matrix">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1</matrix>
+        <instance_geometry url="#image-lib">
+          <bind_material>
+            <technique_common>
+              <instance_material symbol="Material #36" target="#Material #36"/>
+            </technique_common>
+          </bind_material>
+        </instance_geometry>
+        <extra>
+          <technique profile="FCOLLADA">
+            <visibility>1</visibility>
+          </technique>
+        </extra>
+      </node>
+      <extra>
+        <technique profile="MAX3D">
+          <frame_rate>30</frame_rate>
+        </technique>
+        <technique profile="FCOLLADA">
+          <start_time>0</start_time>
+          <end_time>3.333333</end_time>
+        </technique>
+      </extra>
+    </visual_scene>
+  </library_visual_scenes>
+  <scene>
+    <instance_visual_scene url="#"></instance_visual_scene>
+  </scene>
+</COLLADA>
diff --git a/urdf/signs/dae/world.dae b/urdf/signs/dae/world.dae
new file mode 100644
index 0000000..b587aca
--- /dev/null
+++ b/urdf/signs/dae/world.dae
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+  <asset>
+    <contributor>
+      <author></author>
+      <authoring_tool>FBX COLLADA exporter</authoring_tool>
+      <comments></comments>
+    </contributor>
+    <created>2014-10-05T08:59:28Z</created>
+    <keywords></keywords>
+    <modified>2014-10-05T08:59:28Z</modified>
+    <revision></revision>
+    <subject></subject>
+    <title></title>
+    <unit meter="1.0" name="meter"></unit>
+    <up_axis>Y_UP</up_axis></asset>
+  <library_images>
+    <image id="Map #1-image" name="Map #1">
+      <init_from>png/world.png</init_from>
+    </image>
+  </library_images>
+  <library_materials>
+    <material id="Material #36" name="Material #36">
+      <instance_effect url="#Material #36-fx"/>
+    </material>
+  </library_materials>
+  <library_effects>
+    <effect id="Material #36-fx" name="Material #36">
+      <profile_COMMON>
+        <technique sid="standard">
+          <phong>
+            <emission>
+              <color sid="emission">0  0 0 1</color>
+            </emission>
+            <ambient>
+              <color sid="ambient">1  1 1 1</color>
+            </ambient>
+            <diffuse>
+              <texture texture="Map #1-image" texcoord="CHANNEL0">
+                <extra>
+                  <technique profile="MAYA">
+                    <wrapU sid="wrapU0">TRUE</wrapU>
+                    <wrapV sid="wrapV0">TRUE</wrapV>
+                    <blend_mode>ADD</blend_mode>
+                  </technique>
+                </extra>
+              </texture>
+            </diffuse>
+            <specular>
+              <color sid="specular">0  0 0 1</color>
+            </specular>
+            <shininess>
+              <float sid="shininess">2</float>
+            </shininess>
+            <reflective>
+              <color sid="reflective">0  0 0 1</color>
+            </reflective>
+            <reflectivity>
+              <float sid="reflectivity">1</float>
+            </reflectivity>
+            <transparent opaque="RGB_ZERO">
+              <color sid="transparent">1  1 1 1</color>
+            </transparent>
+            <transparency>
+              <float sid="transparency">0</float>
+            </transparency>
+          </phong>
+        </technique>
+      </profile_COMMON>
+    </effect>
+  </library_effects>
+  <library_geometries>
+    <geometry id="image-lib" name="image">
+      <mesh>
+        <source id="image-POSITION">
+          <float_array id="image-POSITION-array" count="12">
+          -0.5 -0.5 0
+          0.5 -0.5 0
+          -0.5 0.5 0
+          0.5 0.5 0
+          </float_array>
+          <technique_common>
+            <accessor source="#image-POSITION-array" count="4" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-Normal0">
+          <float_array id="image-Normal0-array" count="18">
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          0 0 1
+          </float_array>
+          <technique_common>
+            <accessor source="#image-Normal0-array" count="6" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="image-UV0">
+          <float_array id="image-UV0-array" count="8">
+          0 0
+          1 0
+          0 1
+          1 1
+          </float_array>
+          <!--
+          0.000499 0.000500
+          0.999500 0.000499
+          0.000500 0.999501
+          0.999501 0.999500
+          -->
+          <technique_common>
+            <accessor source="#image-UV0-array" count="4" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="image-VERTEX">
+          <input semantic="POSITION" source="#image-POSITION"/>
+        </vertices>
+        <triangles count="2" material="Material #36">
+          <input semantic="VERTEX" offset="0" source="#image-VERTEX"/>
+          <input semantic="NORMAL" offset="1" source="#image-Normal0"/>
+          <input semantic="TEXCOORD" offset="2" set="0" source="#image-UV0"/>
+          <p> 0 0 0 1 1 1 3 2 3 3 3 3 2 4 2 0 5 0</p>
+        </triangles>
+      </mesh>
+    </geometry>
+  </library_geometries>
+  <library_visual_scenes>
+    <visual_scene id="" name="">
+      <node name="image" id="image" sid="image">
+        <matrix sid="matrix">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1</matrix>
+        <instance_geometry url="#image-lib">
+          <bind_material>
+            <technique_common>
+              <instance_material symbol="Material #36" target="#Material #36"/>
+            </technique_common>
+          </bind_material>
+        </instance_geometry>
+        <extra>
+          <technique profile="FCOLLADA">
+            <visibility>1</visibility>
+          </technique>
+        </extra>
+      </node>
+      <extra>
+        <technique profile="MAX3D">
+          <frame_rate>30</frame_rate>
+        </technique>
+        <technique profile="FCOLLADA">
+          <start_time>0</start_time>
+          <end_time>3.333333</end_time>
+        </technique>
+      </extra>
+    </visual_scene>
+  </library_visual_scenes>
+  <scene>
+    <instance_visual_scene url="#"></instance_visual_scene>
+  </scene>
+</COLLADA>
diff --git a/urdf/signs/localization_sign_macro.xacro b/urdf/signs/localization_sign_macro.xacro
new file mode 100644
index 0000000..082a586
--- /dev/null
+++ b/urdf/signs/localization_sign_macro.xacro
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+
+<root xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+  <xacro:include filename="$(find iri_sign_description)/urdf/materials.xacro" />
+  
+  <xacro:property name="PI" value="3.1415926535897931" />
+  <xacro:property name="box_width"    value="0.12" />
+  <xacro:property name="box_depth"    value="0.01" />
+  <xacro:property name="box_height"   value="0.175" />
+  <xacro:property name="box_material" value="white" />
+  <xacro:property name="box_gazebo_material" value="Gazebo/White" />
+  <xacro:property name="tag_size"       value="0.08" />
+  <xacro:property name="tag_z_offset"   value="0.025" />
+  <xacro:property name="delta"          value="0.0001" />
+  <xacro:property name="top_panel_width"    value="0.05" />
+  <xacro:property name="top_panel_height"   value="0.05" />
+  <xacro:property name="top_panel_z_offset" value="0.12" />
+
+  <xacro:macro name="localization_sign"
+               params="name:=loc_sign
+                       tag_dae:=qr_loc1
+                       top_panel_dae:=world
+                       box_gazebo_material:=Gazebo/White">
+
+    <link name="${name}_base_link">
+      <visual>
+        <origin xyz="-${box_depth/2.0} 0 ${box_height/2.0}" rpy="0 0 0"/>
+        <geometry>
+          <box size="${box_depth} ${box_width} ${box_height}"/>
+        </geometry>
+        <material name="${box_material}"/>
+      </visual>
+      <collision>
+        <origin xyz="-${box_depth/2.0} 0 ${box_height/2.0}" rpy="0 0 0"/>
+        <geometry>
+          <box size="${box_depth} ${box_width} ${box_height}"/>
+        </geometry>
+      </collision>
+    </link>
+
+    <gazebo reference="${name}_base_link">
+      <material>${box_gazebo_material}</material>
+    </gazebo>
+    
+    <link name="${name}_tag_link">
+      <inertial>
+        <mass value="0.001"/>
+        <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/>
+        <inertia ixx="0.00001" ixy="0.0" ixz="0.0" iyy="0.00001" iyz="0.0" izz="0.00001" />
+      </inertial>
+    </link>
+    
+    <joint name="joint_${name}_base_link_to_${name}_tag_link" type="fixed">
+      <origin xyz="${delta} 0 ${tag_size/2.0+tag_z_offset}" rpy="0 0 0" />
+      <parent link="${name}_base_link"/>
+      <child link="${name}_tag_link" />
+    </joint>
+    
+    <gazebo reference="${name}_tag_link">
+      <material>${box_gazebo_material}</material>
+    </gazebo>
+
+    <link name="${name}_tag_image">
+      <visual>
+        <origin xyz="0 0 0" rpy="0 0 0"/>
+        <geometry>
+          <mesh filename="package://iri_sign_description/urdf/signs/dae/${tag_dae}.dae" scale="${tag_size} 1.0 ${tag_size}"/>
+        </geometry>
+      </visual>
+    </link>
+
+    <joint name="joint_${name}_tag_link_to_${name}_tag_image" type="fixed">
+      <origin xyz="0 0 0" rpy="0 ${PI} -${PI/2}" />
+      <parent link="${name}_tag_link"/>
+      <child link="${name}_tag_image" />
+    </joint>
+
+    <gazebo reference="${name}_tag_image">
+    </gazebo>
+
+    <link name="${name}_top_panel_link">
+    </link>
+
+    <joint name="joint_${name}_base_link_to_${name}_top_panel_link" type="fixed">
+      <origin xyz="${delta} 0 ${top_panel_height/2.0+top_panel_z_offset}" rpy="0 0 0"/>
+      <parent link="${name}_base_link"/>
+      <child link="${name}_top_panel_link"/>
+    </joint>
+
+    <gazebo reference="${name}_top_panel_link">
+    </gazebo>
+
+    <link name="${name}_top_panel_image">
+      <visual>
+        <origin xyz="0 0 0" rpy="0 0 0"/>
+        <geometry>
+          <mesh filename="package://iri_sign_description/urdf/signs/dae/${top_panel_dae}.dae" scale="${top_panel_width} 1.0 ${top_panel_height}"/>
+          <!--<box size="${top_panel_width} ${delta}  ${top_panel_height}"/>-->
+        </geometry>
+        <material name="${box_material}"/>
+      </visual>
+    </link>
+
+    <gazebo reference="${name}_top_panel_image">
+    </gazebo>
+
+    <joint name="joint_${name}_top_panel_link_to_${name}_top_panel_image" type="fixed">
+      <origin xyz="0 0 0" rpy="0 ${PI} -${PI/2}" />
+      <parent link="${name}_top_panel_link"/>
+      <child link="${name}_top_panel_image" />
+    </joint>
+
+    <gazebo>
+      <static>true</static>
+    </gazebo>
+
+    <!--
+    <gazebo>
+      <plugin name="${name}_ground_truth" filename="libgazebo_ros_p3d.so">
+        <frameName>map</frameName>
+        <bodyName>${name}_base_link</bodyName>
+        <topicName>${name}_odom_ground_truth</topicName>
+        <updateRate>5.0</updateRate>
+      </plugin>
+    </gazebo>
+    -->
+
+  </xacro:macro>
+
+</root>
-- 
GitLab