Microduck_Manipulation / models /badminton_racket.xml
Raghav-16's picture
feat: publish MicroDuck Dynamic Manipulation Suite with models, telemetry, and 1x media
dad190e verified
Raw History Blame Contribute Delete
5.62 kB
<mujoco model="badminton_racket">
<compiler angle="radian" autolimits="true"/>
<visual>
<global offwidth="1280" offheight="960"/>
<headlight ambient="0.4 0.4 0.4" diffuse="0.7 0.7 0.7" specular="0.2 0.2 0.2"/>
<rgba haze="0.15 0.25 0.35 1"/>
</visual>
<asset>
<texture type="skybox" builtin="gradient" rgb1="0.3 0.5 0.7" rgb2="0.05 0.05 0.1" width="512" height="512"/>
<texture type="2d" name="groundplane" builtin="checker" mark="edge" rgb1="0.2 0.25 0.3" rgb2="0.15 0.18 0.22" markrgb="0.8 0.8 0.8" width="300" height="300"/>
<material name="groundmat" texture="groundplane" texuniform="true" texrepeat="5 5" reflectance="0.1"/>
<material name="frame_carbon" rgba="0.10 0.18 0.35 1" specular="0.8" shininess="0.9"/>
<material name="shaft_carbon" rgba="0.08 0.12 0.22 1" specular="0.7" shininess="0.8"/>
<material name="t_joint" rgba="0.85 0.75 0.20 1" specular="0.9" shininess="0.95"/>
<material name="strings" rgba="0.95 0.98 0.98 0.45" specular="0.3" shininess="0.5"/>
<material name="grip_black" rgba="0.12 0.12 0.12 1" specular="0.1" shininess="0.1"/>
<material name="cone_mat" rgba="0.20 0.22 0.26 1" specular="0.5" shininess="0.6"/>
<material name="butt_cap" rgba="0.05 0.45 0.25 1" specular="0.5" shininess="0.6"/>
</asset>
<worldbody>
<geom name="floor" type="plane" size="1 1 0.1" material="groundmat"/>
<!-- Badminton Racket Free Body (Total Length 675mm) -->
<body name="badminton_racket" pos="0 0 0.20" quat="0.7071068 0 0.7071068 0">
<freejoint name="racket_free"/>
<!-- Mass: 83g (4U tournament weight standard) -->
<inertial pos="0 0 0.050" mass="0.083" diaginertia="0.0035 0.0034 0.00015"/>
<!-- 1. Handle Butt Cap (z = -0.340) -->
<geom name="butt_cap_geom" type="cylinder" pos="0 0 -0.336" size="0.0135 0.004" material="butt_cap" friction="2.0 0.1 0.1"/>
<!-- 2. Grip Handle (Length 150mm: z from -0.332 to -0.182) -->
<geom name="grip_handle" type="cylinder" pos="0 0 -0.257" size="0.011 0.075" material="grip_black" friction="2.5 0.1 0.1"/>
<!-- 3. Handle Cone / Transition (z from -0.182 to -0.165) -->
<geom name="handle_cone" type="cylinder" pos="0 0 -0.173" size="0.008 0.009" material="cone_mat"/>
<!-- 4. Ultra-Slim 7mm Carbon Shaft (Length 240mm: z from -0.164 to +0.076) -->
<!-- This 7mm diameter shaft directly matches Microduck's 8mm beak silicone aperture -->
<geom name="shaft" type="cylinder" pos="0 0 -0.044" size="0.0035 0.120" material="shaft_carbon" friction="2.8 0.1 0.1"/>
<!-- 5. T-Joint Connector (z = +0.080) -->
<geom name="t_joint_geom" type="cylinder" pos="0 0 0.080" size="0.0055 0.006" material="t_joint"/>
<!-- 6. Oval Head Frame (16 connected carbon segments, length 240mm, width 190mm) -->
<geom name="frame_seg_0" type="capsule" fromto="0.0950 0.0000 0.2150 0.0878 0.0000 0.2609" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_1" type="capsule" fromto="0.0878 0.0000 0.2609 0.0672 0.0000 0.2999" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_2" type="capsule" fromto="0.0672 0.0000 0.2999 0.0364 0.0000 0.3259" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_3" type="capsule" fromto="0.0364 0.0000 0.3259 0.0000 0.0000 0.3350" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_4" type="capsule" fromto="0.0000 0.0000 0.3350 -0.0364 0.0000 0.3259" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_5" type="capsule" fromto="-0.0364 0.0000 0.3259 -0.0672 0.0000 0.2999" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_6" type="capsule" fromto="-0.0672 0.0000 0.2999 -0.0878 0.0000 0.2609" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_7" type="capsule" fromto="-0.0878 0.0000 0.2609 -0.0950 0.0000 0.2150" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_8" type="capsule" fromto="-0.0950 0.0000 0.2150 -0.0878 0.0000 0.1691" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_9" type="capsule" fromto="-0.0878 0.0000 0.1691 -0.0672 0.0000 0.1301" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_10" type="capsule" fromto="-0.0672 0.0000 0.1301 -0.0364 0.0000 0.1041" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_11" type="capsule" fromto="-0.0364 0.0000 0.1041 -0.0000 0.0000 0.0950" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_12" type="capsule" fromto="-0.0000 0.0000 0.0950 0.0364 0.0000 0.1041" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_13" type="capsule" fromto="0.0364 0.0000 0.1041 0.0672 0.0000 0.1301" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_14" type="capsule" fromto="0.0672 0.0000 0.1301 0.0878 0.0000 0.1691" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<geom name="frame_seg_15" type="capsule" fromto="0.0878 0.0000 0.1691 0.0950 0.0000 0.2150" size="0.0035" material="frame_carbon" friction="1.5 0.1 0.1"/>
<!-- 7. Translucent String Bed Visual Plane -->
<geom name="string_bed" type="box" pos="0 0 0.215" size="0.086 0.0003 0.110" material="strings" contype="0" conaffinity="0"/>
</body>
</worldbody>
</mujoco>