129 lines
4.3 KiB
XML
129 lines
4.3 KiB
XML
<?xml version="1.0" ?>
|
|
<sdf version="1.9">
|
|
<model name="traffic_cone">
|
|
<static>true</static>
|
|
<link name="link">
|
|
|
|
<!-- Rubber base plate -->
|
|
<collision name="base_collision">
|
|
<pose>0 0 0.015 0 0 0</pose>
|
|
<geometry><box><size>0.38 0.38 0.03</size></box></geometry>
|
|
</collision>
|
|
<visual name="base_visual">
|
|
<pose>0 0 0.015 0 0 0</pose>
|
|
<geometry><box><size>0.38 0.38 0.03</size></box></geometry>
|
|
<material>
|
|
<ambient>0.08 0.08 0.08 1</ambient>
|
|
<diffuse>0.10 0.10 0.10 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Cone body: tapered segments (bottom to top) -->
|
|
<!-- Segment 1 (bottom) — widest -->
|
|
<visual name="seg_1">
|
|
<pose>0 0 0.065 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.135</radius><length>0.07</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Segment 2 -->
|
|
<visual name="seg_2">
|
|
<pose>0 0 0.125 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.120</radius><length>0.05</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Lower reflective stripe -->
|
|
<visual name="stripe_lower">
|
|
<pose>0 0 0.168 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.108</radius><length>0.036</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>0.95 0.95 0.95 1</ambient>
|
|
<diffuse>1.0 1.0 1.0 1</diffuse>
|
|
<emissive>0.6 0.6 0.6 0.5</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Segment 3 (between stripes) -->
|
|
<visual name="seg_3">
|
|
<pose>0 0 0.210 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.095</radius><length>0.05</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Upper reflective stripe -->
|
|
<visual name="stripe_upper">
|
|
<pose>0 0 0.253 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.080</radius><length>0.036</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>0.95 0.95 0.95 1</ambient>
|
|
<diffuse>1.0 1.0 1.0 1</diffuse>
|
|
<emissive>0.6 0.6 0.6 0.5</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Segment 4 -->
|
|
<visual name="seg_4">
|
|
<pose>0 0 0.295 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.065</radius><length>0.05</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Segment 5 -->
|
|
<visual name="seg_5">
|
|
<pose>0 0 0.340 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.048</radius><length>0.04</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Segment 6 (top) — narrowest -->
|
|
<visual name="seg_6">
|
|
<pose>0 0 0.375 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.032</radius><length>0.03</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.35 0.0 1</ambient>
|
|
<diffuse>1.0 0.40 0.05 1</diffuse>
|
|
<emissive>0.25 0.08 0.0 0.2</emissive>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Tip cap -->
|
|
<visual name="tip">
|
|
<pose>0 0 0.395 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.020</radius><length>0.01</length></cylinder></geometry>
|
|
<material>
|
|
<ambient>1.0 0.40 0.05 1</ambient>
|
|
<diffuse>1.0 0.45 0.10 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Collision: simplified bounding shape for the whole cone -->
|
|
<collision name="cone_collision">
|
|
<pose>0 0 0.22 0 0 0</pose>
|
|
<geometry><cylinder><radius>0.13</radius><length>0.40</length></cylinder></geometry>
|
|
</collision>
|
|
|
|
</link>
|
|
</model>
|
|
</sdf>
|