Created
May 27, 2026 21:58
-
-
Save azeey/acf33ed620084a4e82e032edc0bd4bce to your computer and use it in GitHub Desktop.
Demo files for mimic joints https://github.com/gazebosim/gz-physics/pull/990
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0" ?> | |
| <sdf version="1.9"> | |
| <!-- Generated by Antigravity - Gemini 3.0 Pro --> | |
| <world name="orrery_demo_world"> | |
| <physics name="1ms" type="ignored"> | |
| <max_step_size>0.001</max_step_size> | |
| <real_time_factor>1.0</real_time_factor> | |
| </physics> | |
| <!-- Configure the world to use our newly validated MuJoCo physics plugin by default --> | |
| <plugin filename="gz-sim-physics-system" name="gz::sim::systems::Physics"> | |
| <engine><filename>gz-physics-mujoco-plugin</filename></engine> | |
| </plugin> | |
| <plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors"> | |
| </plugin> | |
| <scene> | |
| <ambient>0.5 0.5 0.5 1</ambient> | |
| <background>0.05 0.05 0.07 1</background> | |
| </scene> | |
| <gui fullscreen="0"> | |
| <plugin filename="MinimalScene" name="3D View"> | |
| <gz-gui> | |
| <property type="bool" key="showTitleBar">false</property> | |
| <property type="string" key="state">docked</property> | |
| </gz-gui> | |
| <engine>ogre2</engine> | |
| <scene>scene</scene> | |
| <ambient_light>0.5 0.5 0.5 1</ambient_light> | |
| <background_color>0.05 0.05 0.07 1</background_color> | |
| <camera_pose>0 -3.2 1.5 0 0.12 1.570796327</camera_pose> | |
| </plugin> | |
| </gui> | |
| <!-- ==================== 3-POINT STUDIO LIGHTING SYSTEM ==================== --> | |
| <!-- 1. KEY LIGHT: Offset front-right spotlight casting dynamic primary shadows --> | |
| <light type="spot" name="key_light"> | |
| <cast_shadows>true</cast_shadows> | |
| <pose>1.8 1.8 30 0 0 0</pose> | |
| <diffuse>1.0 1.0 1.0 1</diffuse> | |
| <specular>0.8 0.8 0.8 1</specular> | |
| <intensity>3.5</intensity> | |
| <direction>-0.4 -0.4 -0.9</direction> | |
| <attenuation> | |
| <range>100</range> | |
| <constant>0.0</constant> | |
| <linear>0.0</linear> | |
| <quadratic>0.02</quadratic> | |
| </attenuation> | |
| <spot> | |
| <inner_angle>0.1</inner_angle> | |
| <outer_angle>3.0</outer_angle> | |
| <falloff>0.5</falloff> | |
| </spot> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- 2. FILL LIGHT: Offset front-left shadowless point light to soften key shadows --> | |
| <light type="point" name="fill_light"> | |
| <cast_shadows>false</cast_shadows> | |
| <pose>-1.8 1.8 4.0 0 0 0</pose> | |
| <diffuse>0.9 0.9 1.0 1</diffuse> | |
| <specular>0.2 0.2 0.2 1</specular> | |
| <intensity>1.2</intensity> | |
| <attenuation> | |
| <range>20</range> | |
| <constant>0.3</constant> | |
| <linear>0.05</linear> | |
| <quadratic>0.01</quadratic> | |
| </attenuation> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- 3. RIM/BACK LIGHT: High-pose back point light creating dynamic specular outlines --> | |
| <light type="point" name="rim_light"> | |
| <cast_shadows>false</cast_shadows> | |
| <pose>0 -2.2 3.8 0 0 0</pose> | |
| <diffuse>0.95 0.95 1.0 1</diffuse> | |
| <specular>0.7 0.7 0.7 1</specular> | |
| <intensity>1.0</intensity> | |
| <attenuation> | |
| <range>20</range> | |
| <constant>0.2</constant> | |
| <linear>0.04</linear> | |
| <quadratic>0.01</quadratic> | |
| </attenuation> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- Light Grey Matte Ground Floor for high-contrast shadows --> | |
| <model name="ground_plane"> | |
| <static>true</static> | |
| <link name="link"> | |
| <collision name="collision"> | |
| <geometry> | |
| <plane> | |
| <normal>0 0 1</normal> | |
| <size>100 100</size> | |
| </plane> | |
| </geometry> | |
| </collision> | |
| <visual name="visual"> | |
| <cast_shadows>false</cast_shadows> | |
| <geometry> | |
| <plane> | |
| <normal>0 0 1</normal> | |
| <size>100 100</size> | |
| </plane> | |
| </geometry> | |
| <material> | |
| <ambient>0.65 0.65 0.68 1</ambient> | |
| <diffuse>0.65 0.65 0.68 1</diffuse> | |
| <specular>0.1 0.1 0.1 1</specular> | |
| </material> | |
| </visual> | |
| </link> | |
| </model> | |
| <!-- The Kinetic Orrery/Solar System Master Model --> | |
| <model name="kinetic_orrery"> | |
| <pose>0 0 0 0 0 0</pose> | |
| <!-- ==================== CENTRAL STAND AND SUN ==================== --> | |
| <link name="sun_base"> | |
| <inertial> | |
| <mass>200.0</mass> | |
| <inertia><ixx>1.0</ixx><iyy>1.0</iyy><izz>1.0</izz></inertia> | |
| </inertial> | |
| <!-- Sturdy Pedestal Base Stand (Dark Brushed Bronze) --> | |
| <visual name="base_pedestal"> | |
| <pose>0 0 0.05 0 0 0</pose> | |
| <geometry> | |
| <cylinder><radius>0.4</radius><length>0.1</length></cylinder> | |
| </geometry> | |
| <material> | |
| <ambient>0.25 0.2 0.15 1</ambient> | |
| <diffuse>0.25 0.2 0.15 1</diffuse> | |
| <specular>0.8 0.7 0.6 1</specular> | |
| </material> | |
| </visual> | |
| <collision name="base_pedestal_collision"> | |
| <pose>0 0 0.05 0 0 0</pose> | |
| <geometry> | |
| <cylinder><radius>0.4</radius><length>0.1</length></cylinder> | |
| </geometry> | |
| </collision> | |
| <!-- Vertical Central Spindle Shaft (Concentric Center) --> | |
| <visual name="center_shaft"> | |
| <pose>0 0 0.3 0 0 0</pose> | |
| <geometry> | |
| <cylinder><radius>0.03</radius><length>0.4</length></cylinder> | |
| </geometry> | |
| <material> | |
| <ambient>0.8 0.8 0.85 1</ambient> | |
| <diffuse>0.8 0.8 0.85 1</diffuse> | |
| <specular>1.0 1.0 1.0 1</specular> | |
| </material> | |
| </visual> | |
| <!-- THE CENTRAL SUN: Glowing Orange-Yellow Emissive Star --> | |
| <visual name="sun_body"> | |
| <pose>0 0 0.55 0 0 0</pose> | |
| <geometry><sphere><radius>0.22</radius></sphere></geometry> | |
| <material> | |
| <ambient>1.0 0.6 0.0 1</ambient> | |
| <diffuse>1.0 0.6 0.0 1</diffuse> | |
| <specular>1.0 1.0 1.0 1</specular> | |
| <emissive>1.0 0.4 0.0 1</emissive> | |
| </material> | |
| </visual> | |
| <!-- Sun point light to cast realistic shadows radially outward onto the ground floor --> | |
| <light type="point" name="sun_light"> | |
| <cast_shadows>true</cast_shadows> | |
| <pose>0 0 0.55 0 0 0</pose> | |
| <diffuse>1.0 0.8 0.4 1</diffuse> | |
| <specular>0.5 0.5 0.5 1</specular> | |
| <intensity>0.8</intensity> | |
| <attenuation> | |
| <range>15</range> | |
| <constant>0.5</constant> | |
| <linear>0.2</linear> | |
| <quadratic>0.05</quadratic> | |
| </attenuation> | |
| <visualize>false</visualize> | |
| </light> | |
| </link> | |
| <joint name="world_joint" type="fixed"> | |
| <parent>world</parent> | |
| <child>sun_base</child> | |
| </joint> | |
| <!-- ==================== CONCENTRIC Stacked ORBITAL ARMS ==================== --> | |
| <!-- 1. MERCURY ARM: Concentric arm at Z=0.15, orbital radius=0.6 --> | |
| <link name="mercury_arm"> | |
| <pose>0 0 0.15 0 0 0</pose> | |
| <inertial> | |
| <mass>1.2</mass> | |
| <inertia><ixx>0.01</ixx><iyy>0.04</iyy><izz>0.04</izz></inertia> | |
| </inertial> | |
| <!-- Stacked Center Collar (Polished Brass) --> | |
| <visual name="mercury_collar"> | |
| <geometry><cylinder><radius>0.05</radius><length>0.03</length></cylinder></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material> | |
| </visual> | |
| <!-- Horizontal Arm Bar (Extends -0.18 to +0.6) --> | |
| <visual name="mercury_arm_bar"> | |
| <pose>0.21 0 0 0 0 0</pose> | |
| <geometry><box><size>0.78 0.012 0.012</size></box></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material> | |
| </visual> | |
| <!-- Back Counterweight (Sleek Bronze Sphere) --> | |
| <visual name="mercury_counterweight"> | |
| <pose>-0.18 0 0 0 0 0</pose> | |
| <geometry><sphere><radius>0.035</radius></sphere></geometry> | |
| <material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material> | |
| </visual> | |
| <!-- Upward polar spindle holding the planet --> | |
| <visual name="mercury_spindle"> | |
| <pose>0.6 0 0.05 0 0 0</pose> | |
| <geometry><cylinder><radius>0.005</radius><length>0.1</length></cylinder></geometry> | |
| <material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="mercury_arm_collision"> | |
| <pose>0.21 0 0 0 0 0</pose> | |
| <geometry><box><size>0.78 0.012 0.012</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Mercury Arm Joint: Mimics Master Earth Arm with speed ratio 4.15 (T_mercury = 0.24 Earth years) --> | |
| <joint name="mercury_arm_joint" type="revolute"> | |
| <parent>sun_base</parent> | |
| <child>mercury_arm</child> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>4.15</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- 2. VENUS ARM: Concentric arm at Z=0.22, orbital radius=0.9 --> | |
| <link name="venus_arm"> | |
| <pose>0 0 0.22 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.01</ixx><iyy>0.08</iyy><izz>0.08</izz></inertia> | |
| </inertial> | |
| <!-- Center Collar --> | |
| <visual name="venus_collar"> | |
| <geometry><cylinder><radius>0.045</radius><length>0.03</length></cylinder></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material> | |
| </visual> | |
| <!-- Arm Bar (Extends -0.25 to +0.9) --> | |
| <visual name="venus_arm_bar"> | |
| <pose>0.325 0 0 0 0 0</pose> | |
| <geometry><box><size>1.15 0.014 0.014</size></box></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material> | |
| </visual> | |
| <!-- Back Counterweight --> | |
| <visual name="venus_counterweight"> | |
| <pose>-0.25 0 0 0 0 0</pose> | |
| <geometry><sphere><radius>0.04</radius></sphere></geometry> | |
| <material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material> | |
| </visual> | |
| <!-- Spindle --> | |
| <visual name="venus_spindle"> | |
| <pose>0.9 0 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.005</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="venus_arm_collision"> | |
| <pose>0.325 0 0 0 0 0</pose> | |
| <geometry><box><size>1.15 0.014 0.014</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Venus Arm Joint: Mimics Master Earth Arm with speed ratio 1.62 (T_venus = 0.615 Earth years) --> | |
| <joint name="venus_arm_joint" type="revolute"> | |
| <parent>sun_base</parent> | |
| <child>venus_arm</child> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>1.62</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- 3. EARTH ARM: Concentric arm at Z=0.29, orbital radius=1.3 (THE ACTIVE MASTER DRIVER COLLAR) --> | |
| <link name="earth_arm"> | |
| <pose>0 0 0.29 0 0 0</pose> | |
| <inertial> | |
| <mass>2.0</mass> | |
| <inertia><ixx>0.02</ixx><iyy>0.15</iyy><izz>0.15</izz></inertia> | |
| </inertial> | |
| <!-- Center Collar --> | |
| <visual name="earth_collar"> | |
| <geometry><cylinder><radius>0.04</radius><length>0.03</length></cylinder></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material> | |
| </visual> | |
| <!-- Arm Bar (Extends -0.32 to +1.3) --> | |
| <visual name="earth_arm_bar"> | |
| <pose>0.49 0 0 0 0 0</pose> | |
| <geometry><box><size>1.62 0.016 0.016</size></box></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material> | |
| </visual> | |
| <!-- Back Counterweight --> | |
| <visual name="earth_counterweight"> | |
| <pose>-0.32 0 0 0 0 0</pose> | |
| <geometry><sphere><radius>0.045</radius></sphere></geometry> | |
| <material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material> | |
| </visual> | |
| <!-- Spindle --> | |
| <visual name="earth_spindle"> | |
| <pose>1.3 0 0.07 0 0 0</pose> | |
| <geometry><cylinder><radius>0.005</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="earth_arm_collision"> | |
| <pose>0.49 0 0 0 0 0</pose> | |
| <geometry><box><size>1.62 0.016 0.016</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- The single primary Active Driver Hinge, controlled at constant velocity --> | |
| <joint name="earth_arm_joint" type="revolute"> | |
| <parent>sun_base</parent> | |
| <child>earth_arm</child> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <dynamics><damping>0.2</damping></dynamics> | |
| </axis> | |
| </joint> | |
| <!-- 4. MARS ARM: Concentric arm at Z=0.36, orbital radius=1.7 --> | |
| <link name="mars_arm"> | |
| <pose>0 0 0.36 0 0 0</pose> | |
| <inertial> | |
| <mass>2.2</mass> | |
| <inertia><ixx>0.02</ixx><iyy>0.22</iyy><izz>0.22</izz></inertia> | |
| </inertial> | |
| <!-- Center Collar --> | |
| <visual name="mars_collar"> | |
| <geometry><cylinder><radius>0.035</radius><length>0.03</length></cylinder></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material> | |
| </visual> | |
| <!-- Arm Bar (Extends -0.40 to +1.7) --> | |
| <visual name="mars_arm_bar"> | |
| <pose>0.65 0 0 0 0 0</pose> | |
| <geometry><box><size>2.1 0.018 0.018</size></box></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material> | |
| </visual> | |
| <!-- Back Counterweight --> | |
| <visual name="mars_counterweight"> | |
| <pose>-0.4 0 0 0 0 0</pose> | |
| <geometry><sphere><radius>0.05</radius></sphere></geometry> | |
| <material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse><specular>0.8 0.7 0.6 1</specular></material> | |
| </visual> | |
| <!-- Spindle --> | |
| <visual name="mars_spindle"> | |
| <pose>1.7 0 0.08 0 0 0</pose> | |
| <geometry><cylinder><radius>0.005</radius><length>0.16</length></cylinder></geometry> | |
| <material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="mars_arm_collision"> | |
| <pose>0.65 0 0 0 0 0</pose> | |
| <geometry><box><size>2.1 0.018 0.018</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Mars Arm Joint: Mimics Master Earth Arm with speed ratio 0.53 (T_mars = 1.88 Earth years) --> | |
| <joint name="mars_arm_joint" type="revolute"> | |
| <parent>sun_base</parent> | |
| <child>mars_arm</child> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>0.53</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== THE GEMSTONE PLANET SPHERES ==================== --> | |
| <!-- 1. MERCURY BODY (Orange-Brown Gemstone at local Spindle x=0.6, z=0.1) --> | |
| <link name="mercury"> | |
| <pose>0.6 0 0.25 0 0 0</pose> | |
| <inertial> | |
| <mass>0.2</mass> | |
| <inertia><ixx>0.0001</ixx><iyy>0.0001</iyy><izz>0.0001</izz></inertia> | |
| </inertial> | |
| <visual name="mercury_visual"> | |
| <geometry><sphere><radius>0.05</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.85 0.45 0.1 1</ambient> | |
| <diffuse>0.85 0.45 0.1 1</diffuse> | |
| <specular>0.9 0.9 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <collision name="mercury_collision"> | |
| <geometry><sphere><radius>0.05</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| <!-- Mercury Spin Joint: Mimics Master Earth Arm with fast multiplier 3.0 --> | |
| <joint name="mercury_spin_joint" type="revolute"> | |
| <parent>mercury_arm</parent> | |
| <child>mercury</child> | |
| <pose>0 0 0 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>3.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- 2. VENUS BODY (Cream-Yellow Gemstone at local Spindle x=0.9, z=0.12) --> | |
| <link name="venus"> | |
| <pose>0.9 0 0.34 0 0 0</pose> | |
| <inertial> | |
| <mass>0.4</mass> | |
| <inertia><ixx>0.0005</ixx><iyy>0.0005</iyy><izz>0.0005</izz></inertia> | |
| </inertial> | |
| <visual name="venus_visual"> | |
| <geometry><sphere><radius>0.075</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.9 0.8 0.55 1</ambient> | |
| <diffuse>0.9 0.8 0.55 1</diffuse> | |
| <specular>0.6 0.6 0.6 1</specular> | |
| </material> | |
| </visual> | |
| <collision name="venus_collision"> | |
| <geometry><sphere><radius>0.075</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| <!-- Venus Spin Joint: Mimics Master Earth Arm with retrograde slow spin multiplier -2.0 --> | |
| <joint name="venus_spin_joint" type="revolute"> | |
| <parent>venus_arm</parent> | |
| <child>venus</child> | |
| <pose>0 0 0 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>-2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- 3. EARTH BODY (Vibrant Deep Blue & Green Marble at local Spindle x=1.3, z=0.14) --> | |
| <link name="earth"> | |
| <pose>1.3 0 0.43 0 0 0</pose> | |
| <inertial> | |
| <mass>0.6</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia> | |
| </inertial> | |
| <visual name="earth_visual"> | |
| <geometry><sphere><radius>0.09</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.05 0.35 0.7 1</ambient> | |
| <diffuse>0.05 0.35 0.7 1</diffuse> | |
| <specular>0.8 0.8 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Symmetrical Green Landmass Guides Visual --> | |
| <visual name="earth_land_1"> | |
| <pose>0.05 0.05 0.05 0 0 0</pose> | |
| <geometry><sphere><radius>0.045</radius></sphere></geometry> | |
| <material><ambient>0.1 0.5 0.15 1</ambient><diffuse>0.1 0.5 0.15 1</diffuse></material> | |
| </visual> | |
| <visual name="earth_land_2"> | |
| <pose>-0.05 -0.05 -0.05 0 0 0</pose> | |
| <geometry><sphere><radius>0.045</radius></sphere></geometry> | |
| <material><ambient>0.1 0.5 0.15 1</ambient><diffuse>0.1 0.5 0.15 1</diffuse></material> | |
| </visual> | |
| <collision name="earth_collision"> | |
| <geometry><sphere><radius>0.09</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| <!-- Earth Spin Joint: Mimics Master Earth Arm with multiplier 12.0 (self-rotation speed) --> | |
| <joint name="earth_spin_joint" type="revolute"> | |
| <parent>earth_arm</parent> | |
| <child>earth</child> | |
| <pose>0 0 0 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>12.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== CONCENTRIC EARTH-MOON SUB-SYSTEM ==================== --> | |
| <!-- Moon Arm: concentric rotation collar centered on Earth link, extending out to local radius 0.22 --> | |
| <link name="moon_arm"> | |
| <pose>1.3 0 0.50 0 0 0</pose> | |
| <inertial> | |
| <mass>0.15</mass> | |
| <inertia><ixx>0.0001</ixx><iyy>0.001</iyy><izz>0.001</izz></inertia> | |
| </inertial> | |
| <!-- Center brass collar pivot ring --> | |
| <visual name="moon_collar"> | |
| <geometry><cylinder><radius>0.02</radius><length>0.01</length></cylinder></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse><specular>0.9 0.8 0.5 1</specular></material> | |
| </visual> | |
| <!-- Fine horizontal moon arm pointer (extends -0.06 to +0.22) --> | |
| <visual name="moon_arm_bar"> | |
| <pose>0.08 0 0 0 0 0</pose> | |
| <geometry><box><size>0.28 0.006 0.006</size></box></geometry> | |
| <material><ambient>0.6 0.5 0.2 1</ambient><diffuse>0.6 0.5 0.2 1</diffuse></material> | |
| </visual> | |
| <!-- Moon tiny counterbalance sphere --> | |
| <visual name="moon_counterweight"> | |
| <pose>-0.06 0 0 0 0 0</pose> | |
| <geometry><sphere><radius>0.012</radius></sphere></geometry> | |
| <material><ambient>0.25 0.2 0.15 1</ambient><diffuse>0.25 0.2 0.15 1</diffuse></material> | |
| </visual> | |
| <!-- Upward Moon support spindle --> | |
| <visual name="moon_spindle"> | |
| <pose>0.22 0 0.02 0 0 0</pose> | |
| <geometry><cylinder><radius>0.002</radius><length>0.04</length></cylinder></geometry> | |
| <material><ambient>0.8 0.8 0.85 1</ambient><diffuse>0.8 0.8 0.85 1</diffuse></material> | |
| </visual> | |
| <collision name="moon_arm_collision"> | |
| <pose>0.08 0 0 0 0 0</pose> | |
| <geometry><box><size>0.28 0.006 0.006</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Moon Arm Joint: Mimics Master Earth Arm with high multiplier 13.3 (Moon orbits Earth 13.3 times per year) --> | |
| <joint name="moon_arm_joint" type="revolute"> | |
| <parent>earth</parent> | |
| <child>moon_arm</child> | |
| <pose>0 0 0.07 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>13.3</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- THE MOON BODY (Matte White gemstone sphere at local Spindle tip) --> | |
| <link name="moon"> | |
| <pose>1.52 0 0.54 0 0 0</pose> | |
| <inertial> | |
| <mass>0.05</mass> | |
| <inertia><ixx>0.00001</ixx><iyy>0.00001</iyy><izz>0.00001</izz></inertia> | |
| </inertial> | |
| <visual name="moon_visual"> | |
| <geometry><sphere><radius>0.025</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.85 0.85 0.85 1</ambient> | |
| <diffuse>0.85 0.85 0.85 1</diffuse> | |
| <specular>0.1 0.1 0.1 1</specular> | |
| </material> | |
| </visual> | |
| <collision name="moon_collision"> | |
| <geometry><sphere><radius>0.025</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| <!-- Moon Spin Joint: Mimics Master Earth Arm with 13.3 ratio to remain PERFECTLY TIDAL LOCKED to Earth --> | |
| <joint name="moon_spin_joint" type="revolute"> | |
| <parent>moon_arm</parent> | |
| <child>moon</child> | |
| <pose>0 0 0 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>13.3</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- 4. MARS BODY (Vibrant Rust-Red Jasper Gemstone at local Spindle x=1.7, z=0.16) --> | |
| <link name="mars"> | |
| <pose>1.7 0 0.52 0 0 0</pose> | |
| <inertial> | |
| <mass>0.5</mass> | |
| <inertia><ixx>0.0003</ixx><iyy>0.0003</iyy><izz>0.0003</izz></inertia> | |
| </inertial> | |
| <visual name="mars_visual"> | |
| <geometry><sphere><radius>0.065</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.75 0.25 0.12 1</ambient> | |
| <diffuse>0.75 0.25 0.12 1</diffuse> | |
| <specular>0.6 0.6 0.6 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Symmetrical White Polar Spindle Caps Visual --> | |
| <visual name="mars_polar_ice"> | |
| <pose>0 0 0.06 0 0 0</pose> | |
| <geometry><sphere><radius>0.025</radius></sphere></geometry> | |
| <material><ambient>0.95 0.95 0.95 1</ambient><diffuse>0.95 0.95 0.95 1</diffuse></material> | |
| </visual> | |
| <collision name="mars_collision"> | |
| <geometry><sphere><radius>0.065</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| <!-- Mars Spin Joint: Mimics Master Earth Arm with multiplier 10.0 --> | |
| <joint name="mars_spin_joint" type="revolute"> | |
| <parent>mars_arm</parent> | |
| <child>mars</child> | |
| <pose>0 0 0 0 0 0</pose> | |
| <axis> | |
| <xyz>0 0 1</xyz> | |
| <mimic joint="earth_arm_joint" axis="axis"> | |
| <multiplier>10.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- Concentric Master Joint Controller System to automatically spin the entire model --> | |
| <plugin filename="gz-sim-joint-controller-system" name="gz::sim::systems::JointController"> | |
| <joint_name>earth_arm_joint</joint_name> | |
| <use_force_commands>true</use_force_commands> | |
| <topic>cmd_vel</topic> | |
| <initial_velocity>0.08</initial_velocity> | |
| </plugin> | |
| </model> | |
| <!-- GUI Perspective View looking down at the Orrery at a rich, front-isometric angle --> | |
| <gui fullscreen="0"> | |
| <camera name="user_camera"> | |
| <pose>0 -3.6 2.2 0 0.45 1.5708</pose> | |
| </camera> | |
| </gui> | |
| <!-- ==================== HEADLESS SCREENSHOT CAPTURE CAMERA ==================== --> | |
| <model name="camera_model"> | |
| <static>true</static> | |
| <pose>0 -3.6 2.2 0 0.45 1.5708</pose> | |
| <link name="link"> | |
| <sensor name="camera" type="camera"> | |
| <camera> | |
| <horizontal_fov>1.047</horizontal_fov> | |
| <image> | |
| <width>800</width> | |
| <height>800</height> | |
| </image> | |
| <clip> | |
| <near>0.1</near> | |
| <far>100</far> | |
| </clip> | |
| <save enabled="false"> | |
| </save> | |
| </camera> | |
| <always_on>1</always_on> | |
| <update_rate>0</update_rate> | |
| <visualize>true</visualize> | |
| </sensor> | |
| </link> | |
| </model> | |
| </world> | |
| </sdf> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0" ?> | |
| <sdf version="1.9"> | |
| <!-- Generated by Antigravity - Gemini 3.0 Pro --> | |
| <world name="mimic_joint_demo_world"> | |
| <physics name="1ms" type="ignored"> | |
| <max_step_size>0.001</max_step_size> | |
| <real_time_factor>1.0</real_time_factor> | |
| </physics> | |
| <!-- Configure the world to use our newly validated MuJoCo physics plugin by default --> | |
| <plugin filename="gz-sim-physics-system" name="gz::sim::systems::Physics"> | |
| <engine><filename>gz-physics-mujoco-plugin</filename></engine> | |
| </plugin> | |
| <plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors"> | |
| </plugin> | |
| <scene> | |
| <ambient>0.5 0.5 0.5 1</ambient> | |
| <background>0.05 0.05 0.07 1</background> | |
| </scene> | |
| <gui fullscreen="0"> | |
| <plugin filename="MinimalScene" name="3D View"> | |
| <gz-gui> | |
| <property type="bool" key="showTitleBar">false</property> | |
| <property type="string" key="state">docked</property> | |
| </gz-gui> | |
| <engine>ogre2</engine> | |
| <scene>scene</scene> | |
| <ambient_light>0.5 0.5 0.5 1</ambient_light> | |
| <background_color>0.05 0.05 0.07 1</background_color> | |
| <camera_pose>0 -3.2 1.5 0 0.12 1.570796327</camera_pose> | |
| </plugin> | |
| </gui> | |
| <!-- ==================== 3-POINT STUDIO LIGHTING SYSTEM ==================== --> | |
| <!-- 1. KEY LIGHT: Offset front-right spotlight casting dynamic primary shadows --> | |
| <light type="spot" name="key_light"> | |
| <cast_shadows>true</cast_shadows> | |
| <pose>1.8 1.8 30 0 0 0</pose> | |
| <diffuse>1.0 1.0 1.0 1</diffuse> | |
| <specular>0.8 0.8 0.8 1</specular> | |
| <intensity>3.5</intensity> | |
| <direction>-0.4 -0.4 -0.9</direction> | |
| <attenuation> | |
| <range>100</range> | |
| <constant>0.0</constant> | |
| <linear>0.0</linear> | |
| <quadratic>0.02</quadratic> | |
| </attenuation> | |
| <spot> | |
| <inner_angle>0.1</inner_angle> | |
| <outer_angle>3.0</outer_angle> | |
| <falloff>0.5</falloff> | |
| </spot> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- 2. FILL LIGHT: Offset front-left shadowless point light to soften key shadows --> | |
| <light type="point" name="fill_light"> | |
| <cast_shadows>false</cast_shadows> | |
| <pose>-1.8 1.8 4.0 0 0 0</pose> | |
| <diffuse>0.9 0.9 1.0 1</diffuse> | |
| <specular>0.2 0.2 0.2 1</specular> | |
| <intensity>1.2</intensity> | |
| <attenuation> | |
| <range>20</range> | |
| <constant>0.3</constant> | |
| <linear>0.05</linear> | |
| <quadratic>0.01</quadratic> | |
| </attenuation> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- 3. RIM/BACK LIGHT: High-pose back point light creating dynamic specular outlines --> | |
| <light type="point" name="rim_light"> | |
| <cast_shadows>false</cast_shadows> | |
| <pose>0 -2.2 3.8 0 0 0</pose> | |
| <diffuse>0.95 0.95 1.0 1</diffuse> | |
| <specular>0.7 0.7 0.7 1</specular> | |
| <intensity>1.0</intensity> | |
| <attenuation> | |
| <range>20</range> | |
| <constant>0.2</constant> | |
| <linear>0.04</linear> | |
| <quadratic>0.01</quadratic> | |
| </attenuation> | |
| <visualize>false</visualize> | |
| </light> | |
| <!-- Light Grey Matte Ground Floor for high-contrast shadows --> | |
| <model name="ground_plane"> | |
| <static>true</static> | |
| <link name="link"> | |
| <collision name="collision"> | |
| <geometry> | |
| <plane> | |
| <normal>0 0 1</normal> | |
| <size>100 100</size> | |
| </plane> | |
| </geometry> | |
| </collision> | |
| <visual name="visual"> | |
| <cast_shadows>false</cast_shadows> | |
| <geometry> | |
| <plane> | |
| <normal>0 0 1</normal> | |
| <size>100 100</size> | |
| </plane> | |
| </geometry> | |
| <material> | |
| <ambient>0.65 0.65 0.68 1</ambient> | |
| <diffuse>0.65 0.65 0.68 1</diffuse> | |
| <specular>0.1 0.1 0.1 1</specular> | |
| </material> | |
| </visual> | |
| </link> | |
| </model> | |
| <!-- Visually stunning Scissor Lift & Dynamic Suspension Assembly --> | |
| <model name="scissor_lift_suspension"> | |
| <pose>0 0 0 0 0 0</pose> | |
| <!-- Heavy Base Anchor Support Bracket --> | |
| <link name="base"> | |
| <inertial> | |
| <mass>150.0</mass> | |
| <inertia> | |
| <ixx>1.0</ixx> | |
| <iyy>1.0</iyy> | |
| <izz>1.0</izz> | |
| </inertia> | |
| </inertial> | |
| <!-- Central Pedestal Block --> | |
| <visual name="pedestal"> | |
| <pose>0 0 0.1 0 0 0</pose> | |
| <geometry> | |
| <box> | |
| <size>1.2 0.3 0.2</size> | |
| </box> | |
| </geometry> | |
| <material> | |
| <ambient>0.1 0.1 0.12 1</ambient> | |
| <diffuse>0.1 0.1 0.12 1</diffuse> | |
| <specular>0.7 0.7 0.8 1</specular> | |
| </material> | |
| </visual> | |
| <collision name="pedestal_collision"> | |
| <pose>0 0 0.1 0 0 0</pose> | |
| <geometry> | |
| <box> | |
| <size>1.2 0.3 0.2</size> | |
| </box> | |
| </geometry> | |
| </collision> | |
| <!-- Left Hinge Mount Visual Bracket --> | |
| <visual name="left_mount"> | |
| <pose>-0.3 0 0.2 0 0 0</pose> | |
| <geometry><box><size>0.1 0.22 0.1</size></box></geometry> | |
| <material><ambient>0.2 0.2 0.25 1</ambient><diffuse>0.2 0.2 0.25 1</diffuse></material> | |
| </visual> | |
| <!-- Right Hinge Mount Visual Bracket --> | |
| <visual name="right_mount"> | |
| <pose>0.3 0 0.2 0 0 0</pose> | |
| <geometry><box><size>0.1 0.22 0.1</size></box></geometry> | |
| <material><ambient>0.2 0.2 0.25 1</ambient><diffuse>0.2 0.2 0.25 1</diffuse></material> | |
| </visual> | |
| </link> | |
| <joint name="world_joint" type="fixed"> | |
| <parent>world</parent> | |
| <child>base</child> | |
| </joint> | |
| <!-- ==================== TIER 1 SCISSOR BARS ==================== --> | |
| <!-- Left side bar: navy blue, starts left x=-0.3, Y=-0.04, angles up-right to x=0.566 --> | |
| <link name="left_bar_1"> | |
| <pose>-0.3 -0.04 0.2 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="left_bar_1_visual"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.12 0.18 0.28 1</ambient> | |
| <diffuse>0.12 0.18 0.28 1</diffuse> | |
| <specular>0.8 0.8 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Chrome Axle Center Hinge Pin Visual --> | |
| <visual name="left_bar_1_center_pin"> | |
| <pose>0.3 0.04 0.173205 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <!-- Joint Axle Base Hinge Pin Visual --> | |
| <visual name="left_bar_1_base_pin"> | |
| <pose>0 0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="left_bar_1_collision"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Right side bar: maroon, starts right x=0.3, Y=0.04, angles up-left to x=-0.566 --> | |
| <link name="right_bar_1"> | |
| <pose>0.3 0.04 0.2 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="right_bar_1_visual"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.28 0.12 0.12 1</ambient> | |
| <diffuse>0.28 0.12 0.12 1</diffuse> | |
| <specular>0.9 0.8 0.8 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Joint Axle Base Hinge Pin Visual --> | |
| <visual name="right_bar_1_base_pin"> | |
| <pose>0 -0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="right_bar_1_collision"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Base Left Joint acts as our SINGLE Master Active Driver --> | |
| <joint name="left_hinge_1" type="revolute"> | |
| <parent>base</parent> | |
| <child>left_bar_1</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <limit> | |
| <lower>0.10</lower> | |
| <upper>1.20</upper> | |
| </limit> | |
| <dynamics> | |
| <spring_reference>0.7854</spring_reference> | |
| <spring_stiffness>240.0</spring_stiffness> | |
| <damping>6.0</damping> | |
| </dynamics> | |
| </axis> | |
| </joint> | |
| <!-- Symmetrical Base Right Joint mimics Master Hinge with negative coupling (multiplier = -1) --> | |
| <joint name="right_hinge_1" type="revolute"> | |
| <parent>base</parent> | |
| <child>right_bar_1</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>-1.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== TIER 2 SCISSOR BARS ==================== --> | |
| <!-- Left Path: Left 2 is maroon (up-left), starts at tip of Left 1 (x=0.566, Y=0.04) --> | |
| <link name="right_bar_2"> | |
| <pose>0.56602540378 0.04 0.7 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="right_bar_2_visual"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.28 0.12 0.12 1</ambient> | |
| <diffuse>0.28 0.12 0.12 1</diffuse> | |
| <specular>0.9 0.8 0.8 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="right_bar_2_joint_pin"> | |
| <pose>0 -0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="right_bar_2_collision"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Right Path: Right 2 is navy blue (up-right), starts at tip of Right 1 (x=-0.566, Y=-0.04) --> | |
| <link name="left_bar_2"> | |
| <pose>-0.56602540378 -0.04 0.7 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="left_bar_2_visual"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.12 0.18 0.28 1</ambient> | |
| <diffuse>0.12 0.18 0.28 1</diffuse> | |
| <specular>0.8 0.8 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Chrome Axle Center Hinge Pin Visual --> | |
| <visual name="left_bar_2_center_pin"> | |
| <pose>0.56602540378 0.04 0.326795 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="left_bar_2_joint_pin"> | |
| <pose>0 0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="left_bar_2_collision"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Hinge 2 Right (Left Path): parent Left 1, child Right 2. Rotates opposite (multiplier = -2.0) --> | |
| <joint name="right_hinge_2" type="revolute"> | |
| <parent>left_bar_1</parent> | |
| <child>right_bar_2</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>-2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- Hinge 2 Left (Right Path): parent Right 1, child Left 2. Rotates positive (multiplier = 2.0) --> | |
| <joint name="left_hinge_2" type="revolute"> | |
| <parent>right_bar_1</parent> | |
| <child>left_bar_2</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== TIER 3 SCISSOR BARS ==================== --> | |
| <!-- Left Path: Left 3 is navy blue (up-right), starts at tip of Right 2 (x=-0.3, Y=-0.04) --> | |
| <link name="left_bar_3"> | |
| <pose>-0.3 -0.04 1.2 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="left_bar_3_visual"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.12 0.18 0.28 1</ambient> | |
| <diffuse>0.12 0.18 0.28 1</diffuse> | |
| <specular>0.8 0.8 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Chrome Axle Center Hinge Pin Visual --> | |
| <visual name="left_bar_3_center_pin"> | |
| <pose>0.3 0.04 0.173205 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="left_bar_3_joint_pin"> | |
| <pose>0 0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="left_bar_3_collision"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Right Path: Right 3 is maroon (up-left), starts at tip of Left 2 (x=0.3, Y=0.04) --> | |
| <link name="right_bar_3"> | |
| <pose>0.3 0.04 1.2 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="right_bar_3_visual"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.28 0.12 0.12 1</ambient> | |
| <diffuse>0.28 0.12 0.12 1</diffuse> | |
| <specular>0.9 0.8 0.8 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="right_bar_3_joint_pin"> | |
| <pose>0 -0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="right_bar_3_collision"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Hinge 3 Left (Left Path): parent Right 2, child Left 3. Rotates positive (multiplier = 2.0) --> | |
| <joint name="left_hinge_3" type="revolute"> | |
| <parent>right_bar_2</parent> | |
| <child>left_bar_3</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- Hinge 3 Right (Right Path): parent Left 2, child Right 3. Rotates opposite (multiplier = -2.0) --> | |
| <joint name="right_hinge_3" type="revolute"> | |
| <parent>left_bar_2</parent> | |
| <child>right_bar_3</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>-2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== TIER 4 SCISSOR BARS ==================== --> | |
| <!-- Left Path: Left 4 is maroon (up-left), starts at tip of Left 3 (x=0.566, Y=0.04) --> | |
| <link name="right_bar_4"> | |
| <pose>0.56602540378 0.04 1.7 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="right_bar_4_visual"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.28 0.12 0.12 1</ambient> | |
| <diffuse>0.28 0.12 0.12 1</diffuse> | |
| <specular>0.9 0.8 0.8 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="right_bar_4_joint_pin"> | |
| <pose>0 -0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="right_bar_4_collision"> | |
| <pose>-0.4330127 0 0.25 0 0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Right Path: Right 4 is navy blue (up-right), starts at tip of Right 3 (x=-0.566, Y=-0.04) --> | |
| <link name="left_bar_4"> | |
| <pose>-0.56602540378 -0.04 1.7 0 0 0</pose> | |
| <inertial> | |
| <mass>1.5</mass> | |
| <inertia><ixx>0.001</ixx><iyy>0.12</iyy><izz>0.12</izz></inertia> | |
| </inertial> | |
| <visual name="left_bar_4_visual"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| <material> | |
| <ambient>0.12 0.18 0.28 1</ambient> | |
| <diffuse>0.12 0.18 0.28 1</diffuse> | |
| <specular>0.8 0.8 0.9 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Chrome Axle Center Hinge Pin Visual --> | |
| <visual name="left_bar_4_center_pin"> | |
| <pose>0.56602540378 0.04 0.326795 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <!-- Joint Axle Hinge Pin Visual --> | |
| <visual name="left_bar_4_joint_pin"> | |
| <pose>0 0.04 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| <collision name="left_bar_4_collision"> | |
| <pose>0.4330127 0 0.25 0 -0.52359877559 0</pose> | |
| <geometry><box><size>1.0 0.03 0.06</size></box></geometry> | |
| </collision> | |
| </link> | |
| <!-- Hinge 4 Right (Left Path): parent Left 3, child Right 4. Rotates opposite (multiplier = -2.0) --> | |
| <joint name="right_hinge_4" type="revolute"> | |
| <parent>left_bar_3</parent> | |
| <child>right_bar_4</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>-2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- Hinge 4 Left (Right Path): parent Right 3, child Left 4. Rotates positive (multiplier = 2.0) --> | |
| <joint name="left_hinge_4" type="revolute"> | |
| <parent>right_bar_3</parent> | |
| <child>left_bar_4</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>2.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| <!-- ==================== TOP CARGO PLATFORM ==================== --> | |
| <!-- The cargo platform lies flat (origin at x=-0.3, z=2.2; flat horizontal orientation) --> | |
| <link name="platform"> | |
| <pose>-0.3 0 2.2 0 0 0</pose> | |
| <inertial> | |
| <mass>4.0</mass> | |
| <inertia><ixx>0.05</ixx><iyy>0.25</iyy><izz>0.25</izz></inertia> | |
| </inertial> | |
| <!-- Main Platform Plate (Safety Yellow Matte Bed) --> | |
| <visual name="platform_plate"> | |
| <pose>0.3 0 0.015 0 0 0</pose> | |
| <geometry><box><size>1.4 0.24 0.03</size></box></geometry> | |
| <material> | |
| <ambient>0.95 0.75 0.05 1</ambient> | |
| <diffuse>0.95 0.75 0.05 1</diffuse> | |
| <specular>0.5 0.5 0.5 1</specular> | |
| </material> | |
| </visual> | |
| <!-- Platform Plate Collision --> | |
| <collision name="platform_plate_collision"> | |
| <pose>0.3 0 0.015 0 0 0</pose> | |
| <geometry><box><size>1.4 0.24 0.03</size></box></geometry> | |
| </collision> | |
| <!-- ==================== PREMIUM OPEN WIREFRAME HANDRAILS ==================== --> | |
| <!-- Front Handrail system (y = 0.11, z = 0.12) --> | |
| <visual name="rail_front_pipe"> | |
| <pose>0.3 0.11 0.12 0 1.570796327 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>1.4</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_front_post_left"> | |
| <pose>-0.39 0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_front_post_right"> | |
| <pose>0.99 0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_front_post_middle"> | |
| <pose>0.3 0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <!-- Back Handrail system (y = -0.11, z = 0.12) --> | |
| <visual name="rail_back_pipe"> | |
| <pose>0.3 -0.11 0.12 0 1.570796327 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>1.4</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_back_post_left"> | |
| <pose>-0.39 -0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_back_post_right"> | |
| <pose>0.99 -0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_back_post_middle"> | |
| <pose>0.3 -0.11 0.06 0 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.12</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <!-- Left/Right Endcap Handrails --> | |
| <visual name="rail_left_pipe"> | |
| <pose>-0.39 0 0.12 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.22</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <visual name="rail_right_pipe"> | |
| <pose>0.99 0 0.12 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.006</radius><length>0.22</length></cylinder></geometry> | |
| <material><ambient>0.15 0.15 0.18 1</ambient><diffuse>0.15 0.15 0.18 1</diffuse><specular>0.9 0.9 0.9 1</specular></material> | |
| </visual> | |
| <!-- ==================== SOLID BOX COLLISION CRADLE ==================== --> | |
| <!-- Left rail collision cradle boundary wall --> | |
| <collision name="fence_left_collision"> | |
| <pose>-0.39 0 0.06 0 0 0</pose> | |
| <geometry><box><size>0.02 0.24 0.12</size></box></geometry> | |
| </collision> | |
| <!-- Right rail collision cradle boundary wall --> | |
| <collision name="fence_right_collision"> | |
| <pose>0.99 0 0.06 0 0 0</pose> | |
| <geometry><box><size>0.02 0.24 0.12</size></box></geometry> | |
| </collision> | |
| <!-- Front rail collision cradle boundary wall --> | |
| <collision name="fence_front_collision"> | |
| <pose>0.3 0.11 0.06 0 0 0</pose> | |
| <geometry><box><size>1.4 0.02 0.12</size></box></geometry> | |
| </collision> | |
| <!-- Back rail collision cradle boundary wall --> | |
| <collision name="fence_back_collision"> | |
| <pose>0.3 -0.11 0.06 0 0 0</pose> | |
| <geometry><box><size>1.4 0.02 0.12</size></box></geometry> | |
| </collision> | |
| <!-- Right Pivot Hinge Roller Axle Track Underside Support --> | |
| <visual name="right_roller_track"> | |
| <pose>0.6 0 -0.015 0 0 0</pose> | |
| <geometry><box><size>0.4 0.22 0.01</size></box></geometry> | |
| <material><ambient>0.4 0.4 0.42 1</ambient><diffuse>0.4 0.4 0.42 1</diffuse></material> | |
| </visual> | |
| <!-- Left Platform Pivot Axle Visual Pin --> | |
| <visual name="platform_joint_pin"> | |
| <pose>0 0 0 1.570796327 0 0</pose> | |
| <geometry><cylinder><radius>0.015</radius><length>0.14</length></cylinder></geometry> | |
| <material><ambient>0.85 0.85 0.9 1</ambient><diffuse>0.85 0.85 0.9 1</diffuse><specular>1 1 1 1</specular></material> | |
| </visual> | |
| </link> | |
| <!-- Hinge connecting Right 4 (Left Path) to Platform mimics Left 1 with direct 1.0 ratio and zero offset --> | |
| <joint name="platform_joint" type="revolute"> | |
| <parent>right_bar_4</parent> | |
| <child>platform</child> | |
| <axis> | |
| <xyz>0 1 0</xyz> | |
| <mimic joint="left_hinge_1" axis="axis"> | |
| <multiplier>1.0</multiplier> | |
| </mimic> | |
| </axis> | |
| </joint> | |
| </model> | |
| <!-- ==================== DYNAMIC SPHERE PAYLOAD ==================== --> | |
| <!-- Dynamic target cargo sphere rolling inside the safety cradle platform --> | |
| <model name="payload_sphere_model"> | |
| <pose>0.3 0 2.4 0 0 0</pose> | |
| <link name="payload_sphere"> | |
| <inertial> | |
| <mass>6.0</mass> | |
| <inertia><ixx>0.06</ixx><iyy>0.06</iyy><izz>0.06</izz></inertia> | |
| </inertial> | |
| <!-- Glowing Emerald-Green / Cyan Highly Specular Emissive Sphere --> | |
| <visual name="sphere_visual"> | |
| <geometry><sphere><radius>0.16</radius></sphere></geometry> | |
| <material> | |
| <ambient>0.0 0.8 0.8 1</ambient> | |
| <diffuse>0.0 0.8 0.8 1</diffuse> | |
| <specular>1.0 1.0 1.0 1</specular> | |
| <emissive>0.0 0.4 0.4 1</emissive> | |
| </material> | |
| </visual> | |
| <collision name="sphere_collision"> | |
| <geometry><sphere><radius>0.16</radius></sphere></geometry> | |
| </collision> | |
| </link> | |
| </model> | |
| <!-- GUI users viewport camera pose pointing directly to the center of the scissor mechanism --> | |
| <gui fullscreen="0"> | |
| <camera name="user_camera"> | |
| <pose>0 -3.2 1.5 0 0.12 1.570796327</pose> | |
| </camera> | |
| </gui> | |
| <!-- ==================== HEADLESS SCREENSHOT CAPTURE CAMERA ==================== --> | |
| <model name="camera_model"> | |
| <static>true</static> | |
| <pose>0 -3.2 1.5 0 0.12 1.570796327</pose> | |
| <link name="link"> | |
| <sensor name="camera" type="camera"> | |
| <camera> | |
| <horizontal_fov>1.047</horizontal_fov> | |
| <image> | |
| <width>800</width> | |
| <height>800</height> | |
| </image> | |
| <clip> | |
| <near>0.1</near> | |
| <far>100</far> | |
| </clip> | |
| <save enabled="true"> | |
| <path>/Users/addisuzt/ws/rotary</path> | |
| </save> | |
| </camera> | |
| <always_on>1</always_on> | |
| <update_rate>0</update_rate> | |
| <visualize>true</visualize> | |
| </sensor> | |
| </link> | |
| </model> | |
| </world> | |
| </sdf> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment