Files
gazebo_models/src_doorway/model.sdf

1092 lines
28 KiB
Plaintext
Raw Permalink Normal View History

2025-08-25 16:30:02 +08:00
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="src_doorway">
<pose>0 0 0 0 0 3.14159</pose>
<!-- The big circular frame + the platform -->
<model name="src_doorframe">
<static>true</static>
<link name="frame">
<!-- Inertia, if needed -->
<!-- Mass computed using density of aluminum 7050 (2800Kg/m3). -->
<!-- m = (1.25*8.209*0.1)*2800 = 2873 Kg -->
<inertial>
<pose>0 0 0.05 0 0 0</pose>
<mass>2873</mass>
<inertia>
<ixx>16895.63</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>376.483</iyy>
<iyz>0</iyz>
<izz>17267.3286</izz>
</inertia>
</inertial>
<!-- The platform with its ramps -->
<collision name="platform">
<pose>0 0 0.05 0 0 0</pose>
<geometry>
<box>
<size>1.25 8.209 0.1</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_1">
<pose>0 4.1135 0.05 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.072 0.072</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_2">
<pose>0 4.1635 0.031 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.045 0.045</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_3">
<pose>0 4.1935 0.02 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.028 0.028</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_4">
<pose>0 4.2135 0.012 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.017 0.017</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_5">
<pose>0 4.2235 0.008 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.012 0.012</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_6">
<pose>0 4.231 0.005 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.008 0.008</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_7">
<pose>0 4.2365 0.003 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.005 0.005</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="front_ramp_8">
<pose>0 4.2405 0.002 0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.0026 0.0026</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_1">
<pose>0 -4.1135 0.05 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.072 0.072</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_2">
<pose>0 -4.1635 0.031 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.045 0.045</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_3">
<pose>0 -4.1935 0.02 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.028 0.028</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_4">
<pose>0 -4.2135 0.012 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.017 0.017</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_5">
<pose>0 -4.2235 0.008 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.012 0.012</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_6">
<pose>0 -4.231 0.005 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.008 0.008</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_7">
<pose>0 -4.2365 0.003 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.005 0.005</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.0</mu>
<mu2>1.0</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="back_ramp_8">
<pose>0 -4.2405 0.002 -0.96 0 0</pose>
<geometry>
<box>
<size>1.25 0.0026 0.0026</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="left_1">
<pose>0.665 0 1.2 0 0 0</pose>
<geometry>
<box>
<size>0.3 0.19 2.2</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="left_2">
<pose>0.96 0 1.21 0 0 0</pose>
<geometry>
<box>
<size>0.3 0.19 1.65</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="left_3">
<pose>1.23 0 1.2 0 0 0</pose>
<geometry>
<box>
<size>0.25 0.19 0.6</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<!-- Collision elements in the circular frame -->
<collision name="right_1">
<pose>-0.665 0 1.2 0 0 0</pose>
<geometry>
<box>
<size>0.3 0.19 2.2</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="right_2">
<pose>-0.96 0 1.21 0 0 0</pose>
<geometry>
<box>
<size>0.3 0.19 1.65</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="right_3">
<pose>-1.23 0 1.2 0 0 0</pose>
<geometry>
<box>
<size>0.25 0.19 0.6</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="top_1">
<pose>0 0 2.32 0 0 0</pose>
<geometry>
<box>
<size>1.25 0.19 0.25</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="diagonal_top_left">
<pose>0.55 0 2.2 0 0.785 0</pose>
<geometry>
<box>
<size>0.3 0.19 0.25</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="diagonal_top_right">
<pose>-0.55 0 2.2 0 -0.785 0</pose>
<geometry>
<box>
<size>0.3 0.19 0.25</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="diagonal_bottom_left">
<pose>0.5 0 0.185 0 -0.785 0</pose>
<geometry>
<box>
<size>0.3 0.19 0.07</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="diagonal_bottom_right">
<pose>-0.5 0 0.185 0 0.785 0</pose>
<geometry>
<box>
<size>0.3 0.19 0.07</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<mesh>
<uri>model://src_doorway/meshes/doorway_base.dae</uri>
</mesh>
</geometry>
</visual>
<!-- Start line -->
<visual name="start_line">
<pose>0 3 0.1 0 0 0</pose>
<geometry>
<box>
<size>1.25 0.05 0.001</size>
</box>
</geometry>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Red</name>
</script>
</material>
</visual>
<!-- Finish line -->
<visual name="finish_line">
<pose>0 -1 0.1 0 0 0</pose>
<geometry>
<box>
<size>1.25 0.05 0.001</size>
</box>
</geometry>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Red</name>
</script>
</material>
</visual>
</link>
</model>
<!-- The door -->
<model name="src_door">
<link name="door">
<pose>0 0 1 0 0 0</pose>
<!-- Mass computed using density of aluminum foil (2700Kg/m3)
<!-- divided by 4 because the door is probably not solid. -->
<!-- m = (0.7*0.19*2.03)*2700 = 2873 Kg -->
<inertial>
<pose>0 0 0.14 0 0 0</pose>
<mass>182</mass>
<inertia>
<ixx>63.04</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>69.932</iyy>
<iyz>0</iyz>
<izz>7.979</izz>
</inertia>
</inertial>
<collision name="center">
<pose>0 0 0.14 0 0 0</pose>
<geometry>
<box>
<size>0.7 0.19 2.03</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="left">
<pose>-0.4 0 0.18 0 0 0</pose>
<geometry>
<box>
<size>0.17 0.19 1.7</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="right">
<pose>0.4 0 0.18 0 0 0</pose>
<geometry>
<box>
<size>0.17 0.19 1.7</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="top_left">
<pose>-0.36 0 1.04 1.57 0 0</pose>
<geometry>
<cylinder>
<radius>0.1</radius>
<length>0.18</length>
</cylinder>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="top_right">
<pose>0.36 0 1.04 1.57 0 0</pose>
<geometry>
<cylinder>
<radius>0.1</radius>
<length>0.18</length>
</cylinder>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="bottom_left">
<pose>-0.36 0 -0.73 1.57 0 0</pose>
<geometry>
<cylinder>
<radius>0.1</radius>
<length>0.18</length>
</cylinder>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="bottom_right">
<pose>0.36 0 -0.73 1.57 0 0</pose>
<geometry>
<cylinder>
<radius>0.1</radius>
<length>0.18</length>
</cylinder>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<collision name="hinge">
<pose>0.507 -0.135 0.17 0 0 0</pose>
<geometry>
<cylinder>
<radius>0.038</radius>
<length>1.48</length>
</cylinder>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<visual name="visual">
<pose>0 0 -1 0 0 0</pose>
<geometry>
<mesh>
<uri>model://src_doorway/meshes/doorway_door.dae</uri>
</mesh>
</geometry>
</visual>
</link>
<!-- The button -->
<link name="button">
<pose>-0.735 0.15 1.247 0 0 0</pose>
<inertial>
<mass>0.2</mass>
<inertia>
<ixx>0.000432</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.000487</iyy>
<iyz>0</iyz>
<izz>0.0000654</izz>
</inertia>
</inertial>
<collision name="collision">
<geometry>
<box>
<size>0.06 0.018 0.16</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<kp>1e16</kp>
<kd>100.0</kd>
<max_vel>1000.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
<friction>
<ode>
<mu>1.5</mu>
<mu2>1.5</mu2>
</ode>
</friction>
</surface>
</collision>
<visual name="visual">
<geometry>
<box>
<size>0.06 0.018 0.16</size>
</box>
</geometry>
<material>
<script>
<uri>model://src_doorway/materials/scripts</uri>
<uri>model://src_doorway/materials/textures</uri>
<name>src_doorway_button/Diffuse</name>
</script>
</material>
</visual>
</link>
</model>
<!-- Joint connecting the frame and the door -->
<joint name="hinge" type="revolute">
<parent>src_doorframe::frame</parent>
<child>src_door::door</child>
<pose>0.5 -0.14 0 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
<limit>
<lower>0</lower>
<upper>3</upper>
</limit>
<dynamics>
<damping>1.0</damping>
<friction>1.0</friction>
</dynamics>
<use_parent_model_frame>true</use_parent_model_frame>
</axis>
<physics>
<ode>
<cfm_damping>1</cfm_damping>
</ode>
</physics>
</joint>
<!-- Joint to make the button pushable -->
<joint name="button_mechanism" type="prismatic">
<parent>src_doorframe::frame</parent>
<child>src_door::button</child>
<pose>-0.735 0.15 1.247 0 0 0</pose>
<axis>
<xyz>0 1 0</xyz>
<limit>
<lower>0</lower>
<upper>0.01</upper>
</limit>
<dynamics>
<damping>10</damping>
<spring_stiffness>800</spring_stiffness>
<spring_reference>0</spring_reference>
</dynamics>
<use_parent_model_frame>true</use_parent_model_frame>
</axis>
<physics>
<ode>
<cfm_damping>1</cfm_damping>
</ode>
</physics>
</joint>
</model>
</sdf>