<?xml version="1.0"?>
<!--
    URDF file representing a Pendulum Wave Device.
    - 21 independent pendulums with lengths decreasing by 1% successively.
    - Device is centered at the XY origin.
    - An initial roll offset (0.7854 rad / 45 degrees) is applied to all joints.
    - **CORRECTION:** All joints now rotate about the X-axis (roll).
-->
<robot name="pendulum_wave_device">

    <!-- ==================================================================== -->
    <!-- Thanksgiving Color Palette Definitions -->
    <!-- ==================================================================== -->
    <material name="cranberry">
        <color rgba="0.6 0.1 0.1 1.0"/>
    </material>
    <material name="maize">
        <color rgba="1.0 0.8 0.0 1.0"/>
    </material>
    <material name="pumpkin">
        <color rgba="0.9 0.4 0.0 1.0"/>
    </material>
    <material name="chestnut">
        <color rgba="0.5 0.25 0.0 1.0"/>
    </material>
    <material name="sage">
        <color rgba="0.4 0.5 0.4 1.0"/>
    </material>
    <material name="rod_grey">
        <color rgba="0.4 0.4 0.4 1.0"/>
    </material>
    <material name="support_brown">
        <color rgba="0.3 0.15 0.0 1.0"/>
    </material>

    <!-- ==================================================================== -->
    <!-- BASE LINK (Stationary Support Beam) -->
    <!-- X-position adjusted to center the pendulums at the origin -->
    <!-- ==================================================================== -->
    <link name="base_link">
        <inertial>
            <origin xyz="0.05 0 0.75" rpy="0 0 0"/>
            <mass value="10.0"/>
            <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
        </inertial>
        <visual>
            <origin xyz="0.05 0 0.75" rpy="0 0 0"/>
            <geometry>
                <box size="2.1 0.05 0.05"/>
            </geometry>
            <material name="support_brown"/>
        </visual>
    </link>

    <!-- ==================================================================== -->
    <!-- PENDULUM 1 -->
    <!-- Length: 0.50000 m. X-Position: -0.95 m. Color: cranberry -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_1">
        <inertial>
            <origin xyz="0 0 -0.50000" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.24000" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.48000"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.50000" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="cranberry"/>
        </visual>
    </link>
    <joint name="pendulum_joint_1" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_1"/>
        <origin xyz="-0.95 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 2 -->
    <!-- Length: 0.49500 m. X-Position: -0.85 m. Color: maize -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_2">
        <inertial>
            <origin xyz="0 0 -0.49500" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.23750" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.47500"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.49500" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="maize"/>
        </visual>
    </link>
    <joint name="pendulum_joint_2" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_2"/>
        <origin xyz="-0.85 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 3 -->
    <!-- Length: 0.49005 m. X-Position: -0.75 m. Color: pumpkin -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_3">
        <inertial>
            <origin xyz="0 0 -0.49005" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.235025" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.47005"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.49005" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="pumpkin"/>
        </visual>
    </link>
    <joint name="pendulum_joint_3" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_3"/>
        <origin xyz="-0.75 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 4 -->
    <!-- Length: 0.48515 m. X-Position: -0.65 m. Color: chestnut -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_4">
        <inertial>
            <origin xyz="0 0 -0.48515" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.232575" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.46515"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.48515" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="chestnut"/>
        </visual>
    </link>
    <joint name="pendulum_joint_4" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_4"/>
        <origin xyz="-0.65 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 5 -->
    <!-- Length: 0.48030 m. X-Position: -0.55 m. Color: sage -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_5">
        <inertial>
            <origin xyz="0 0 -0.48030" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.230150" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.46030"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.48030" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="sage"/>
        </visual>
    </link>
    <joint name="pendulum_joint_5" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_5"/>
        <origin xyz="-0.55 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 6 -->
    <!-- Length: 0.47549 m. X-Position: -0.45 m. Color: cranberry -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_6">
        <inertial>
            <origin xyz="0 0 -0.47549" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.227745" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.45549"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.47549" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="cranberry"/>
        </visual>
    </link>
    <joint name="pendulum_joint_6" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_6"/>
        <origin xyz="-0.45 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 7 -->
    <!-- Length: 0.47074 m. X-Position: -0.35 m. Color: maize -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_7">
        <inertial>
            <origin xyz="0 0 -0.47074" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.225370" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.45074"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.47074" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="maize"/>
        </visual>
    </link>
    <joint name="pendulum_joint_7" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_7"/>
        <origin xyz="-0.35 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 8 -->
    <!-- Length: 0.46603 m. X-Position: -0.25 m. Color: pumpkin -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_8">
        <inertial>
            <origin xyz="0 0 -0.46603" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.223015" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.44603"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.46603" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="pumpkin"/>
        </visual>
    </link>
    <joint name="pendulum_joint_8" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_8"/>
        <origin xyz="-0.25 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 9 -->
    <!-- Length: 0.46137 m. X-Position: -0.15 m. Color: chestnut -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_9">
        <inertial>
            <origin xyz="0 0 -0.46137" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.220685" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.44137"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.46137" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="chestnut"/>
        </visual>
    </link>
    <joint name="pendulum_joint_9" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_9"/>
        <origin xyz="-0.15 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 10 (Left of Origin) -->
    <!-- Length: 0.45676 m. X-Position: -0.05 m. Color: sage -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_10">
        <inertial>
            <origin xyz="0 0 -0.45676" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.218380" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.43676"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.45676" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="sage"/>
        </visual>
    </link>
    <joint name="pendulum_joint_10" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_10"/>
        <origin xyz="-0.05 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 11 (Right of Origin) -->
    <!-- Length: 0.45220 m. X-Position: 0.05 m. Color: cranberry -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_11">
        <inertial>
            <origin xyz="0 0 -0.45220" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.216100" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.43220"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.45220" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="cranberry"/>
        </visual>
    </link>
    <joint name="pendulum_joint_11" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_11"/>
        <origin xyz="0.05 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 12 -->
    <!-- Length: 0.44768 m. X-Position: 0.15 m. Color: maize -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_12">
        <inertial>
            <origin xyz="0 0 -0.44768" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.213840" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.42768"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.44768" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="maize"/>
        </visual>
    </link>
    <joint name="pendulum_joint_12" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_12"/>
        <origin xyz="0.15 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 13 -->
    <!-- Length: 0.44320 m. X-Position: 0.25 m. Color: pumpkin -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_13">
        <inertial>
            <origin xyz="0 0 -0.44320" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.211600" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.42320"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.44320" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="pumpkin"/>
        </visual>
    </link>
    <joint name="pendulum_joint_13" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_13"/>
        <origin xyz="0.25 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 14 -->
    <!-- Length: 0.43877 m. X-Position: 0.35 m. Color: chestnut -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_14">
        <inertial>
            <origin xyz="0 0 -0.43877" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.209385" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.41877"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.43877" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="chestnut"/>
        </visual>
    </link>
    <joint name="pendulum_joint_14" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_14"/>
        <origin xyz="0.35 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 15 -->
    <!-- Length: 0.43438 m. X-Position: 0.45 m. Color: sage -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_15">
        <inertial>
            <origin xyz="0 0 -0.43438" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.207190" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.41438"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.43438" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="sage"/>
        </visual>
    </link>
    <joint name="pendulum_joint_15" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_15"/>
        <origin xyz="0.45 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 16 -->
    <!-- Length: 0.43004 m. X-Position: 0.55 m. Color: cranberry -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_16">
        <inertial>
            <origin xyz="0 0 -0.43004" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.205020" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.41004"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.43004" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="cranberry"/>
        </visual>
    </link>
    <joint name="pendulum_joint_16" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_16"/>
        <origin xyz="0.55 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 17 -->
    <!-- Length: 0.42574 m. X-Position: 0.65 m. Color: maize -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_17">
        <inertial>
            <origin xyz="0 0 -0.42574" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.202870" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.40574"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.42574" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="maize"/>
        </visual>
    </link>
    <joint name="pendulum_joint_17" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_17"/>
        <origin xyz="0.65 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 18 -->
    <!-- Length: 0.42148 m. X-Position: 0.75 m. Color: pumpkin -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_18">
        <inertial>
            <origin xyz="0 0 -0.42148" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.200740" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.40148"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.42148" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="pumpkin"/>
        </visual>
    </link>
    <joint name="pendulum_joint_18" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_18"/>
        <origin xyz="0.75 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 19 -->
    <!-- Length: 0.41727 m. X-Position: 0.85 m. Color: chestnut -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_19">
        <inertial>
            <origin xyz="0 0 -0.41727" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.198635" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.39727"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.41727" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="chestnut"/>
        </visual>
    </link>
    <joint name="pendulum_joint_19" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_19"/>
        <origin xyz="0.85 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 20 -->
    <!-- Length: 0.41310 m. X-Position: 0.95 m. Color: sage -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_20">
        <inertial>
            <origin xyz="0 0 -0.41310" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.196550" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.39310"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.41310" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="sage"/>
        </visual>
    </link>
    <joint name="pendulum_joint_20" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_20"/>
        <origin xyz="0.95 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

    <!-- ==================================================================== -->
    <!-- PENDULUM 21 -->
    <!-- Length: 0.40897 m. X-Position: 1.05 m. Color: cranberry -->
    <!-- Axis: X (1 0 0). Initial Roll: 45 degrees -->
    <!-- ==================================================================== -->
    <link name="pendulum_link_21">
        <inertial>
            <origin xyz="0 0 -0.40897" rpy="0 0 0"/>
            <mass value="0.1"/>
            <inertia ixx="0.0001" ixy="0.0" ixz="0.0" iyy="0.0001" iyz="0.0" izz="0.0001"/>
        </inertial>
        <visual>
            <origin xyz="0 0 -0.194485" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.005" length="0.38897"/>
            </geometry>
            <material name="rod_grey"/>
        </visual>
        <visual>
            <origin xyz="0 0 -0.40897" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.04"/>
            </geometry>
            <material name="cranberry"/>
        </visual>
    </link>
    <joint name="pendulum_joint_21" type="revolute">
        <parent link="base_link"/>
        <child link="pendulum_link_21"/>
        <origin xyz="1.05 0.0 0.75" rpy="0.7854 0 0"/>
        <axis xyz="1 0 0"/>
        <limit lower="-1.57" upper="1.57" effort="10.0" velocity="1.0"/>
    </joint>

</robot>

