Upkie
Upkie Project · licence Apache-2.0 · source: github.com/upkie/upkie_description @ 19a91ce69
What you are looking at is RobotDescription.from_urdf(original).to_urdf_string(): the reference implementation's re-serialisation of the original file, not the original file itself.
drag to orbit · scroll to zoom · right-drag to pan
robot.urdf
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (py backend), content 88cc5f148c81f91f -->
<robot name="upkie">
<material name="black">
<color rgba="0.1 0.1 0.1 1.0" />
</material>
<material name="chalky_blue">
<color rgba="0.65 0.76 0.91 1.0" />
</material>
<material name="dark_gray">
<color rgba="0.3 0.3 0.3 1.0" />
</material>
<material name="light_gray">
<color rgba="0.8 0.8 0.8 1.0" />
</material>
<material name="light_wood">
<color rgba="1.0 0.77 0.48 1.0" />
</material>
<material name="mj5208_rotor">
<color rgba="0.5 0.55 0.6 1.0" />
</material>
<material name="mj5208_stator">
<color rgba="0.22 0.22 0.25 1.0" />
</material>
<material name="terracotta_light">
<color rgba="0.93 0.64 0.52 1.0" />
</material>
<material name="terracotta_transparent">
<color rgba="0.93 0.64 0.52 0.8" />
</material>
<link name="base">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<link name="torso">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.125 0.17 0.25" />
</geometry>
<material name="terracotta_transparent" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.125 0.17 0.25" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="1.0" />
<inertia ixx="0.007616666666666667" ixy="0.0" ixz="0.0" iyy="0.006510416666666667" iyz="0.0" izz="0.0037104166666666674" />
</inertial>
</link>
<joint name="torso_fix" type="fixed">
<origin xyz="0.0 0.0 -0.1" rpy="0.0 0.0 0.0" />
<parent link="base" />
<child link="torso" />
</joint>
<link name="imu">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="imu_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="3.141592653589793 0.0 3.141592653589793" />
<parent link="torso" />
<child link="imu" />
</joint>
<link name="battery">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.13 0.074 0.055" />
</geometry>
<material name="dark_gray" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.13 0.074 0.055" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.8" />
<inertia ixx="0.0005667333333333333" ixy="0.0" ixz="0.0" iyy="0.0013283333333333335" iyz="0.0" izz="0.0014917333333333335" />
</inertial>
</link>
<joint name="battery_fix" type="fixed">
<origin xyz="-0.04 0.0 0.0" rpy="1.5707963267948966 0.0 1.5707963267948966" />
<parent link="torso" />
<child link="battery" />
</joint>
<link name="handle">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/add-ons/handle.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.12 0.07 0.04" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<mass value="0.0525" />
<inertia ixx="2.8437500000000003e-05" ixy="0.0" ixz="0.0" iyy="7.000000000000001e-05" iyz="0.0" izz="8.44375e-05" />
</inertial>
</link>
<joint name="handle_fix" type="fixed">
<origin xyz="0.0 0.0 0.135" rpy="0.0 0.0 -1.5707963267948966" />
<parent link="torso" />
<child link="handle" />
</joint>
<link name="left_hip_qdd100_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_stator.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.03" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.47" />
<inertia ixx="0.00032900000000000003" ixy="0.0" ixz="0.0" iyy="0.00032900000000000003" iyz="0.0" izz="0.0005875000000000001" />
</inertial>
</link>
<joint name="left_hip_qdd100_stator_fix" type="fixed">
<origin xyz="0.0 0.085 -0.064" rpy="-1.5707963267948966 0.0 0.0" />
<parent link="torso" />
<child link="left_hip_qdd100_stator" />
</joint>
<link name="left_hip_qdd100_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_rotor.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.005" radius="0.023" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<mass value="0.015" />
<inertia ixx="2.0149999999999998e-06" ixy="0.0" ixz="0.0" iyy="2.0149999999999998e-06" iyz="0.0" izz="3.9675e-06" />
</inertial>
</link>
<joint name="left_hip" type="revolute">
<origin xyz="0.0 0.0 0.0292" rpy="0.0 0.0 0.0" />
<parent link="left_hip_qdd100_stator" />
<child link="left_hip_qdd100_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="16.0" velocity="28.8" lower="-1.26" upper="1.26" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="left_hip_horn">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_horn.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.09" radius="0.025" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.05267" />
<inertia ixx="4.37819375e-05" ixy="0.0" ixz="0.0" iyy="4.37819375e-05" iyz="0.0" izz="1.6459375000000005e-05" />
</inertial>
</link>
<joint name="left_hip_horn_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 1.5707963267948966" />
<parent link="left_hip_qdd100_rotor" />
<child link="left_hip_horn" />
</joint>
<link name="left_femur">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.25" radius="0.011" />
</geometry>
<material name="light_wood" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.26" radius="0.012" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.056" />
<inertia ixx="5.170666666666667e-06" ixy="0.0" ixz="0.0" iyy="5.170666666666667e-06" iyz="0.0" izz="4.0320000000000005e-06" />
</inertial>
</link>
<joint name="left_femur_fix" type="fixed">
<origin xyz="0.0 0.07 0.025" rpy="1.5707963267948966 0.0 0.0" />
<parent link="left_hip_qdd100_rotor" />
<child link="left_femur" />
</joint>
<joint name="left_knee_stator_fix" type="fixed">
<origin xyz="0.0 0.042 -0.098" rpy="0.0 0.0 -1.5707963267948966" />
<parent link="left_femur" />
<child link="left_knee_stator" />
</joint>
<link name="left_knee_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/knee_stator.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.03 0.0 0.0" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.06" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.03 0.0 0.0" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.09874" />
<inertia ixx="9.133450000000001e-05" ixy="0.0" ixz="0.0" iyy="9.133450000000001e-05" iyz="0.0" izz="0.000123425" />
</inertial>
</link>
<link name="left_knee_qdd100_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_stator.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.03" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.47" />
<inertia ixx="0.00032900000000000003" ixy="0.0" ixz="0.0" iyy="0.00032900000000000003" iyz="0.0" izz="0.0005875000000000001" />
</inertial>
</link>
<joint name="left_knee_qdd100_stator_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="-1.5707963267948966 0.0 1.5707963267948966" />
<parent link="left_knee_stator" />
<child link="left_knee_qdd100_stator" />
</joint>
<joint name="left_knee" type="revolute">
<origin xyz="0.0 0.0 0.0292" rpy="0.0 0.0 0.0" />
<parent link="left_knee_qdd100_stator" />
<child link="left_knee_qdd100_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="16.0" velocity="28.8" lower="-2.51" upper="2.51" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="left_knee_qdd100_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_rotor.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.005" radius="0.023" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<mass value="0.015" />
<inertia ixx="2.0149999999999998e-06" ixy="0.0" ixz="0.0" iyy="2.0149999999999998e-06" iyz="0.0" izz="3.9675e-06" />
</inertial>
</link>
<link name="left_knee_horn">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_horn.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.09" radius="0.025" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.05267" />
<inertia ixx="4.37819375e-05" ixy="0.0" ixz="0.0" iyy="4.37819375e-05" iyz="0.0" izz="1.6459375000000005e-05" />
</inertial>
</link>
<joint name="left_knee_horn_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 1.5707963267948966" />
<parent link="left_knee_qdd100_rotor" />
<child link="left_knee_horn" />
</joint>
<link name="left_tibia">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.25" radius="0.011" />
</geometry>
<material name="light_wood" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.26" radius="0.012" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.056" />
<inertia ixx="5.170666666666667e-06" ixy="0.0" ixz="0.0" iyy="5.170666666666667e-06" iyz="0.0" izz="4.0320000000000005e-06" />
</inertial>
</link>
<joint name="left_tibia_fix" type="fixed">
<origin xyz="0.0 0.07 0.025" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="left_knee_qdd100_rotor" />
<child link="left_tibia" />
</joint>
<link name="left_ankle_base">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/ankle_stator.stl" />
</geometry>
<material name="chalky_blue" />
</visual>
<collision>
<origin xyz="0.0 0.002 0.0275" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.092 0.068 0.056" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.002 0.0275" rpy="0.0 0.0 0.0" />
<mass value="0.07863" />
<inertia ixx="5.084740000000002e-05" ixy="0.0" ixz="0.0" iyy="7.6009e-05" iyz="0.0" izz="8.575912e-05" />
</inertial>
</link>
<joint name="left_ankle_base_fix" type="fixed">
<origin xyz="0.0 0.034 -0.105" rpy="1.5707963267948966 0.0 0.0" />
<parent link="left_tibia" />
<child link="left_ankle_base" />
</joint>
<link name="left_ankle_plate">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.08 0.045 0.003" />
</geometry>
<material name="light_gray" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.09 0.046 0.004" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.02" />
<inertia ixx="3.5533333333333333e-06" ixy="0.0" ixz="0.0" iyy="1.3526666666666667e-05" iyz="0.0" izz="1.7026666666666667e-05" />
</inertial>
</link>
<joint name="left_ankle_plate_fix" type="fixed">
<origin xyz="0.0 0.0 -0.0015" rpy="0.0 0.0 0.0" />
<parent link="left_ankle_base" />
<child link="left_ankle_plate" />
</joint>
<link name="left_ankle_mj5208_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/mj5208_stator.stl" />
</geometry>
<material name="mj5208_stator" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.018" radius="0.03" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<mass value="0.1721" />
<inertia ixx="4.3369200000000005e-05" ixy="0.0" ixz="0.0" iyy="4.3369200000000005e-05" iyz="0.0" izz="7.7445e-05" />
</inertial>
</link>
<joint name="left_ankle_mj5208_stator_fix" type="fixed">
<origin xyz="0.0 0.0 -0.0015" rpy="3.141592653589793 0.0 0.0" />
<parent link="left_ankle_plate" />
<child link="left_ankle_mj5208_stator" />
</joint>
<link name="left_anchor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="left_anchor_fix" type="fixed">
<origin xyz="0.0 0.0545 0.05" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="left_ankle_mj5208_stator" />
<child link="left_anchor" />
</joint>
<link name="left_ankle_mj5208_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/mj5208_rotor.stl" />
</geometry>
<material name="mj5208_rotor" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.016" radius="0.034" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.05" />
<inertia ixx="1.551666666666667e-05" ixy="0.0" ixz="0.0" iyy="1.551666666666667e-05" iyz="0.0" izz="2.8900000000000005e-05" />
</inertial>
</link>
<joint name="left_wheel" type="revolute">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="left_ankle_mj5208_stator" />
<child link="left_ankle_mj5208_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="1.7" velocity="111.0" lower="0.0" upper="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="left_wheel_hub">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/wheel_hub.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0125" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.025" radius="0.039" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0125" rpy="0.0 0.0 0.0" />
<mass value="0.0454" />
<inertia ixx="1.9627933333333332e-05" ixy="0.0" ixz="0.0" iyy="1.9627933333333332e-05" iyz="0.0" izz="3.45267e-05" />
</inertial>
</link>
<joint name="left_wheel_hub_fix" type="fixed">
<origin xyz="0.0 0.0 0.0251" rpy="0.0 0.0 0.0" />
<parent link="left_ankle_mj5208_rotor" />
<child link="left_wheel_hub" />
</joint>
<link name="left_wheel_tire">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/wheel_tire/wheel_tire.stl" />
</geometry>
<material name="dark_gray" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.04" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.08715" />
<inertia ixx="6.608875000000002e-05" ixy="0.0" ixz="0.0" iyy="6.608875000000002e-05" iyz="0.0" izz="0.00010893750000000003" />
</inertial>
</link>
<joint name="left_wheel_fix" type="fixed">
<origin xyz="0.0 0.0 0.0209" rpy="0.0 0.0 0.0" />
<parent link="left_wheel_hub" />
<child link="left_wheel_tire" />
</joint>
<link name="left_contact">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="left_contact_fix" type="fixed">
<origin xyz="0.0 0.047 0.0" rpy="1.5707963267948966 0.0 0.0" />
<parent link="left_wheel_tire" />
<child link="left_contact" />
</joint>
<link name="left_wheel_center">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="left_wheel_center_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="left_wheel_tire" />
<child link="left_wheel_center" />
</joint>
<link name="right_hip_qdd100_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_stator.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.03" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.47" />
<inertia ixx="0.00032900000000000003" ixy="0.0" ixz="0.0" iyy="0.00032900000000000003" iyz="0.0" izz="0.0005875000000000001" />
</inertial>
</link>
<joint name="right_hip_qdd100_stator_fix" type="fixed">
<origin xyz="0.0 -0.085 -0.064" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="torso" />
<child link="right_hip_qdd100_stator" />
</joint>
<link name="right_hip_qdd100_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_rotor.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.005" radius="0.023" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<mass value="0.015" />
<inertia ixx="2.0149999999999998e-06" ixy="0.0" ixz="0.0" iyy="2.0149999999999998e-06" iyz="0.0" izz="3.9675e-06" />
</inertial>
</link>
<joint name="right_hip" type="revolute">
<origin xyz="0.0 0.0 0.0292" rpy="0.0 0.0 0.0" />
<parent link="right_hip_qdd100_stator" />
<child link="right_hip_qdd100_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="16.0" velocity="28.8" lower="-1.26" upper="1.26" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="right_hip_horn">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_horn.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.09" radius="0.025" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.05267" />
<inertia ixx="4.37819375e-05" ixy="0.0" ixz="0.0" iyy="4.37819375e-05" iyz="0.0" izz="1.6459375000000005e-05" />
</inertial>
</link>
<joint name="right_hip_horn_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 1.5707963267948966" />
<parent link="right_hip_qdd100_rotor" />
<child link="right_hip_horn" />
</joint>
<link name="right_femur">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.25" radius="0.011" />
</geometry>
<material name="light_wood" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.26" radius="0.012" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.056" />
<inertia ixx="5.170666666666667e-06" ixy="0.0" ixz="0.0" iyy="5.170666666666667e-06" iyz="0.0" izz="4.0320000000000005e-06" />
</inertial>
</link>
<joint name="right_femur_fix" type="fixed">
<origin xyz="0.0 0.07 0.025" rpy="1.5707963267948966 0.0 0.0" />
<parent link="right_hip_qdd100_rotor" />
<child link="right_femur" />
</joint>
<joint name="right_knee_stator_fix" type="fixed">
<origin xyz="0.0 0.042 -0.098" rpy="0.0 0.0 -1.5707963267948966" />
<parent link="right_femur" />
<child link="right_knee_stator" />
</joint>
<link name="right_knee_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/knee_stator.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.03 0.0 0.0" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.06" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.03 0.0 0.0" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.09874" />
<inertia ixx="9.133450000000001e-05" ixy="0.0" ixz="0.0" iyy="9.133450000000001e-05" iyz="0.0" izz="0.000123425" />
</inertial>
</link>
<link name="right_knee_qdd100_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_stator.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.03" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.47" />
<inertia ixx="0.00032900000000000003" ixy="0.0" ixz="0.0" iyy="0.00032900000000000003" iyz="0.0" izz="0.0005875000000000001" />
</inertial>
</link>
<joint name="right_knee_qdd100_stator_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="-1.5707963267948966 0.0 1.5707963267948966" />
<parent link="right_knee_stator" />
<child link="right_knee_qdd100_stator" />
</joint>
<joint name="right_knee" type="revolute">
<origin xyz="0.0 0.0 0.0292" rpy="0.0 0.0 0.0" />
<parent link="right_knee_qdd100_stator" />
<child link="right_knee_qdd100_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="16.0" velocity="28.8" lower="-2.51" upper="2.51" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="right_knee_qdd100_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_rotor.stl" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.005" radius="0.023" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 -0.0025" rpy="0.0 0.0 0.0" />
<mass value="0.015" />
<inertia ixx="2.0149999999999998e-06" ixy="0.0" ixz="0.0" iyy="2.0149999999999998e-06" iyz="0.0" izz="3.9675e-06" />
</inertial>
</link>
<link name="right_knee_horn">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/qdd100_horn.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<geometry>
<cylinder length="0.09" radius="0.025" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.025" rpy="0.0 1.5707963267948966 0.0" />
<mass value="0.05267" />
<inertia ixx="4.37819375e-05" ixy="0.0" ixz="0.0" iyy="4.37819375e-05" iyz="0.0" izz="1.6459375000000005e-05" />
</inertial>
</link>
<joint name="right_knee_horn_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 1.5707963267948966" />
<parent link="right_knee_qdd100_rotor" />
<child link="right_knee_horn" />
</joint>
<link name="right_tibia">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.25" radius="0.011" />
</geometry>
<material name="light_wood" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.26" radius="0.012" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.056" />
<inertia ixx="5.170666666666667e-06" ixy="0.0" ixz="0.0" iyy="5.170666666666667e-06" iyz="0.0" izz="4.0320000000000005e-06" />
</inertial>
</link>
<joint name="right_tibia_fix" type="fixed">
<origin xyz="0.0 0.07 0.025" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="right_knee_qdd100_rotor" />
<child link="right_tibia" />
</joint>
<link name="right_ankle_base">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/ankle_stator.stl" />
</geometry>
<material name="chalky_blue" />
</visual>
<collision>
<origin xyz="0.0 0.002 0.0275" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.092 0.068 0.056" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.002 0.0275" rpy="0.0 0.0 0.0" />
<mass value="0.07863" />
<inertia ixx="5.084740000000002e-05" ixy="0.0" ixz="0.0" iyy="7.6009e-05" iyz="0.0" izz="8.575912e-05" />
</inertial>
</link>
<joint name="right_ankle_base_fix" type="fixed">
<origin xyz="0.0 0.034 -0.105" rpy="1.5707963267948966 0.0 0.0" />
<parent link="right_tibia" />
<child link="right_ankle_base" />
</joint>
<link name="right_ankle_plate">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.08 0.045 0.003" />
</geometry>
<material name="light_gray" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.09 0.046 0.004" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.02" />
<inertia ixx="3.5533333333333333e-06" ixy="0.0" ixz="0.0" iyy="1.3526666666666667e-05" iyz="0.0" izz="1.7026666666666667e-05" />
</inertial>
</link>
<joint name="right_ankle_plate_fix" type="fixed">
<origin xyz="0.0 0.0 -0.0015" rpy="0.0 0.0 0.0" />
<parent link="right_ankle_base" />
<child link="right_ankle_plate" />
</joint>
<link name="right_ankle_mj5208_stator">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/mj5208_stator.stl" />
</geometry>
<material name="mj5208_stator" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.018" radius="0.03" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<mass value="0.1721" />
<inertia ixx="4.3369200000000005e-05" ixy="0.0" ixz="0.0" iyy="4.3369200000000005e-05" iyz="0.0" izz="7.7445e-05" />
</inertial>
</link>
<joint name="right_ankle_mj5208_stator_fix" type="fixed">
<origin xyz="0.0 0.0 -0.0015" rpy="3.141592653589793 0.0 0.0" />
<parent link="right_ankle_plate" />
<child link="right_ankle_mj5208_stator" />
</joint>
<link name="right_anchor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="right_anchor_fix" type="fixed">
<origin xyz="0.0 0.0545 0.048" rpy="1.5707963267948966 0.0 0.0" />
<parent link="right_ankle_mj5208_stator" />
<child link="right_anchor" />
</joint>
<link name="right_ankle_mj5208_rotor">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/mjbots/mj5208_rotor.stl" />
</geometry>
<material name="mj5208_rotor" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.016" radius="0.034" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.015" rpy="0.0 0.0 0.0" />
<mass value="0.05" />
<inertia ixx="1.551666666666667e-05" ixy="0.0" ixz="0.0" iyy="1.551666666666667e-05" iyz="0.0" izz="2.8900000000000005e-05" />
</inertial>
</link>
<joint name="right_wheel" type="revolute">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="right_ankle_mj5208_stator" />
<child link="right_ankle_mj5208_rotor" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="1.7" velocity="111.0" lower="0.0" upper="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="right_wheel_hub">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/wheel_hub.stl" />
</geometry>
<material name="terracotta_light" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0125" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.025" radius="0.039" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0125" rpy="0.0 0.0 0.0" />
<mass value="0.0454" />
<inertia ixx="1.9627933333333332e-05" ixy="0.0" ixz="0.0" iyy="1.9627933333333332e-05" iyz="0.0" izz="3.45267e-05" />
</inertial>
</link>
<joint name="right_wheel_hub_fix" type="fixed">
<origin xyz="0.0 0.0 0.0251" rpy="0.0 0.0 0.0" />
<parent link="right_ankle_mj5208_rotor" />
<child link="right_wheel_hub" />
</joint>
<link name="right_wheel_tire">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://upkie_description/meshes/wheel_tire/wheel_tire.stl" />
</geometry>
<material name="dark_gray" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.04" radius="0.05" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.08715" />
<inertia ixx="6.608875000000002e-05" ixy="0.0" ixz="0.0" iyy="6.608875000000002e-05" iyz="0.0" izz="0.00010893750000000003" />
</inertial>
</link>
<joint name="right_wheel_fix" type="fixed">
<origin xyz="0.0 0.0 0.0209" rpy="0.0 0.0 0.0" />
<parent link="right_wheel_hub" />
<child link="right_wheel_tire" />
</joint>
<link name="right_contact">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="right_contact_fix" type="fixed">
<origin xyz="0.0 0.047 0.0" rpy="1.5707963267948966 0.0 0.0" />
<parent link="right_wheel_tire" />
<child link="right_contact" />
</joint>
<link name="right_wheel_center">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<box size="0.0 0.0 0.0" />
</geometry>
</visual>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.001" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="right_wheel_center_fix" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="1.5707963267948966 3.141592653589793 0.0" />
<parent link="right_wheel_tire" />
<child link="right_wheel_center" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content 88cc5f148c81f91f -->
<mujoco model="upkie">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<material name="black" rgba="0.1 0.1 0.1 1.0" />
<material name="chalky_blue" rgba="0.65 0.76 0.91 1.0" />
<material name="dark_gray" rgba="0.3 0.3 0.3 1.0" />
<material name="light_gray" rgba="0.8 0.8 0.8 1.0" />
<material name="light_wood" rgba="1.0 0.77 0.48 1.0" />
<material name="mj5208_rotor" rgba="0.5 0.55 0.6 1.0" />
<material name="mj5208_stator" rgba="0.22 0.22 0.25 1.0" />
<material name="terracotta_light" rgba="0.93 0.64 0.52 1.0" />
<material name="terracotta_transparent" rgba="0.93 0.64 0.52 0.8" />
<mesh name="handle" file="upkie_description/meshes/add-ons/handle.stl" />
<mesh name="qdd100_stator" file="upkie_description/meshes/mjbots/qdd100_stator.stl" />
<mesh name="qdd100_rotor" file="upkie_description/meshes/mjbots/qdd100_rotor.stl" />
<mesh name="qdd100_horn" file="upkie_description/meshes/mjbots/qdd100_horn.stl" />
<mesh name="knee_stator" file="upkie_description/meshes/knee_stator.stl" />
<mesh name="ankle_stator" file="upkie_description/meshes/ankle_stator.stl" />
<mesh name="mj5208_stator" file="upkie_description/meshes/mjbots/mj5208_stator.stl" />
<mesh name="mj5208_rotor" file="upkie_description/meshes/mjbots/mj5208_rotor.stl" />
<mesh name="wheel_hub" file="upkie_description/meshes/wheel_hub.stl" />
<mesh name="wheel_tire" file="upkie_description/meshes/wheel_tire/wheel_tire.stl" />
</asset>
<worldbody>
<body name="base">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="base_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
<body name="torso" pos="0.0 0.0 -0.1">
<inertial pos="0.0 0.0 0.0" mass="1.0" fullinertia="0.007616666666666667 0.006510416666666667 0.0037104166666666674 0.0 0.0 0.0" />
<geom name="torso_vis_0" type="box" size="0.0625 0.085 0.125" contype="0" conaffinity="0" group="2" material="terracotta_transparent" />
<geom name="torso_col_0" type="box" size="0.0625 0.085 0.125" group="3" />
<body name="imu" quat="3.749399456654644e-33 6.123233995736766e-17 1.0 6.123233995736766e-17">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="imu_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
<body name="battery" pos="-0.04 0.0 0.0" quat="0.5000000000000001 0.5 0.4999999999999999 0.5">
<inertial pos="0.0 0.0 0.0" mass="0.8" fullinertia="0.0005667333333333333 0.0013283333333333335 0.0014917333333333335 0.0 0.0 0.0" />
<geom name="battery_vis_0" type="box" size="0.065 0.037 0.0275" contype="0" conaffinity="0" group="2" material="dark_gray" />
<geom name="battery_col_0" type="box" size="0.065 0.037 0.0275" group="3" />
</body>
<body name="handle" pos="0.0 0.0 0.135" quat="0.7071067811865476 0.0 0.0 -0.7071067811865475">
<inertial pos="0.0 0.0 0.01" mass="0.0525" fullinertia="2.8437500000000003e-05 7.000000000000001e-05 8.44375e-05 0.0 0.0 0.0" />
<geom name="handle_vis_0" type="mesh" mesh="handle" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="handle_col_0" type="box" size="0.06 0.035 0.02" pos="0.0 0.0 0.01" group="3" />
</body>
<body name="left_hip_qdd100_stator" pos="0.0 0.085 -0.064" quat="0.7071067811865476 -0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.015" mass="0.47" fullinertia="0.00032900000000000003 0.00032900000000000003 0.0005875000000000001 0.0 0.0 0.0" />
<geom name="left_hip_qdd100_stator_vis_0" type="mesh" mesh="qdd100_stator" contype="0" conaffinity="0" group="2" material="black" />
<geom name="left_hip_qdd100_stator_col_0" type="cylinder" size="0.05 0.015" pos="0.0 0.0 0.015" group="3" />
<body name="left_hip_qdd100_rotor" pos="0.0 0.0 0.0292">
<joint name="left_hip" type="hinge" axis="0.0 0.0 -1.0" range="-1.26 1.26" />
<inertial pos="0.0 0.0 -0.0025" mass="0.015" fullinertia="2.0149999999999998e-06 2.0149999999999998e-06 3.9675e-06 0.0 0.0 0.0" />
<geom name="left_hip_qdd100_rotor_vis_0" type="mesh" mesh="qdd100_rotor" contype="0" conaffinity="0" group="2" material="black" />
<geom name="left_hip_qdd100_rotor_col_0" type="cylinder" size="0.023 0.0025" pos="0.0 0.0 -0.0025" group="3" />
<body name="left_hip_horn" quat="0.7071067811865476 0.0 0.0 0.7071067811865475">
<inertial pos="0.0 0.0 0.025" mass="0.05267" fullinertia="1.6459375000000005e-05 4.37819375e-05 4.37819375e-05 0.0 -1.6730244355064252e-21 0.0" />
<geom name="left_hip_horn_vis_0" type="mesh" mesh="qdd100_horn" contype="0" conaffinity="0" group="2" material="black" />
<geom name="left_hip_horn_col_0" type="cylinder" size="0.025 0.045" pos="0.0 0.0 0.025" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
</body>
<body name="left_femur" pos="0.0 0.07 0.025" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.0" mass="0.056" fullinertia="5.170666666666667e-06 5.170666666666667e-06 4.0320000000000005e-06 0.0 0.0 0.0" />
<geom name="left_femur_vis_0" type="cylinder" size="0.011 0.125" contype="0" conaffinity="0" group="2" material="light_wood" />
<geom name="left_femur_col_0" type="cylinder" size="0.012 0.13" group="3" />
<body name="left_knee_stator" pos="0.0 0.042 -0.098" quat="0.7071067811865476 0.0 0.0 -0.7071067811865475">
<inertial pos="0.03 0.0 0.0" mass="0.09874" fullinertia="0.000123425 9.133450000000001e-05 9.133450000000001e-05 0.0 1.964976405401907e-21 0.0" />
<geom name="left_knee_stator_vis_0" type="mesh" mesh="knee_stator" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="left_knee_stator_col_0" type="cylinder" size="0.05 0.03" pos="0.03 0.0 0.0" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
<body name="left_knee_qdd100_stator" quat="0.5000000000000001 -0.5 -0.4999999999999999 0.5">
<inertial pos="0.0 0.0 0.015" mass="0.47" fullinertia="0.00032900000000000003 0.00032900000000000003 0.0005875000000000001 0.0 0.0 0.0" />
<geom name="left_knee_qdd100_stator_vis_0" type="mesh" mesh="qdd100_stator" contype="0" conaffinity="0" group="2" material="black" />
<geom name="left_knee_qdd100_stator_col_0" type="cylinder" size="0.05 0.015" pos="0.0 0.0 0.015" group="3" />
<body name="left_knee_qdd100_rotor" pos="0.0 0.0 0.0292">
<joint name="left_knee" type="hinge" axis="0.0 0.0 -1.0" range="-2.51 2.51" />
<inertial pos="0.0 0.0 -0.0025" mass="0.015" fullinertia="2.0149999999999998e-06 2.0149999999999998e-06 3.9675e-06 0.0 0.0 0.0" />
<geom name="left_knee_qdd100_rotor_vis_0" type="mesh" mesh="qdd100_rotor" contype="0" conaffinity="0" group="2" material="black" />
<geom name="left_knee_qdd100_rotor_col_0" type="cylinder" size="0.023 0.0025" pos="0.0 0.0 -0.0025" group="3" />
<body name="left_knee_horn" quat="0.7071067811865476 0.0 0.0 0.7071067811865475">
<inertial pos="0.0 0.0 0.025" mass="0.05267" fullinertia="1.6459375000000005e-05 4.37819375e-05 4.37819375e-05 0.0 -1.6730244355064252e-21 0.0" />
<geom name="left_knee_horn_vis_0" type="mesh" mesh="qdd100_horn" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="left_knee_horn_col_0" type="cylinder" size="0.025 0.045" pos="0.0 0.0 0.025" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
</body>
<body name="left_tibia" pos="0.0 0.07 0.025" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.0" mass="0.056" fullinertia="5.170666666666667e-06 5.170666666666667e-06 4.0320000000000005e-06 0.0 0.0 0.0" />
<geom name="left_tibia_vis_0" type="cylinder" size="0.011 0.125" contype="0" conaffinity="0" group="2" material="light_wood" />
<geom name="left_tibia_col_0" type="cylinder" size="0.012 0.13" group="3" />
<body name="left_ankle_base" pos="0.0 0.034 -0.105" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.002 0.0275" mass="0.07863" fullinertia="5.084740000000002e-05 7.6009e-05 8.575912e-05 0.0 0.0 0.0" />
<geom name="left_ankle_base_vis_0" type="mesh" mesh="ankle_stator" contype="0" conaffinity="0" group="2" material="chalky_blue" />
<geom name="left_ankle_base_col_0" type="box" size="0.046 0.034 0.028" pos="0.0 0.002 0.0275" group="3" />
<body name="left_ankle_plate" pos="0.0 0.0 -0.0015">
<inertial pos="0.0 0.0 0.0" mass="0.02" fullinertia="3.5533333333333333e-06 1.3526666666666667e-05 1.7026666666666667e-05 0.0 0.0 0.0" />
<geom name="left_ankle_plate_vis_0" type="box" size="0.04 0.0225 0.0015" contype="0" conaffinity="0" group="2" material="light_gray" />
<geom name="left_ankle_plate_col_0" type="box" size="0.045 0.023 0.002" group="3" />
<body name="left_ankle_mj5208_stator" pos="0.0 0.0 -0.0015" quat="6.123233995736766e-17 1.0 0.0 0.0">
<inertial pos="0.0 0.0 0.01" mass="0.1721" fullinertia="4.3369200000000005e-05 4.3369200000000005e-05 7.7445e-05 0.0 0.0 0.0" />
<geom name="left_ankle_mj5208_stator_vis_0" type="mesh" mesh="mj5208_stator" contype="0" conaffinity="0" group="2" material="mj5208_stator" />
<geom name="left_ankle_mj5208_stator_col_0" type="cylinder" size="0.03 0.009" pos="0.0 0.0 0.01" group="3" />
<body name="left_anchor" pos="0.0 0.0545 0.05" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="left_anchor_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
<body name="left_ankle_mj5208_rotor">
<joint name="left_wheel" type="hinge" axis="0.0 0.0 -1.0" range="0.0 0.0" />
<inertial pos="0.0 0.0 0.015" mass="0.05" fullinertia="1.551666666666667e-05 1.551666666666667e-05 2.8900000000000005e-05 0.0 0.0 0.0" />
<geom name="left_ankle_mj5208_rotor_vis_0" type="mesh" mesh="mj5208_rotor" contype="0" conaffinity="0" group="2" material="mj5208_rotor" />
<geom name="left_ankle_mj5208_rotor_col_0" type="cylinder" size="0.034 0.008" pos="0.0 0.0 0.015" group="3" />
<body name="left_wheel_hub" pos="0.0 0.0 0.0251">
<inertial pos="0.0 0.0 0.0125" mass="0.0454" fullinertia="1.9627933333333332e-05 1.9627933333333332e-05 3.45267e-05 0.0 0.0 0.0" />
<geom name="left_wheel_hub_vis_0" type="mesh" mesh="wheel_hub" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="left_wheel_hub_col_0" type="cylinder" size="0.039 0.0125" pos="0.0 0.0 0.0125" group="3" />
<body name="left_wheel_tire" pos="0.0 0.0 0.0209">
<inertial pos="0.0 0.0 0.0" mass="0.08715" fullinertia="6.608875000000002e-05 6.608875000000002e-05 0.00010893750000000003 0.0 0.0 0.0" />
<geom name="left_wheel_tire_vis_0" type="mesh" mesh="wheel_tire" contype="0" conaffinity="0" group="2" material="dark_gray" />
<geom name="left_wheel_tire_col_0" type="cylinder" size="0.05 0.02" group="3" />
<body name="left_contact" pos="0.0 0.047 0.0" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="left_contact_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
<body name="left_wheel_center" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="left_wheel_center_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
<body name="right_hip_qdd100_stator" pos="0.0 -0.085 -0.064" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.015" mass="0.47" fullinertia="0.00032900000000000003 0.00032900000000000003 0.0005875000000000001 0.0 0.0 0.0" />
<geom name="right_hip_qdd100_stator_vis_0" type="mesh" mesh="qdd100_stator" contype="0" conaffinity="0" group="2" material="black" />
<geom name="right_hip_qdd100_stator_col_0" type="cylinder" size="0.05 0.015" pos="0.0 0.0 0.015" group="3" />
<body name="right_hip_qdd100_rotor" pos="0.0 0.0 0.0292">
<joint name="right_hip" type="hinge" axis="0.0 0.0 -1.0" range="-1.26 1.26" />
<inertial pos="0.0 0.0 -0.0025" mass="0.015" fullinertia="2.0149999999999998e-06 2.0149999999999998e-06 3.9675e-06 0.0 0.0 0.0" />
<geom name="right_hip_qdd100_rotor_vis_0" type="mesh" mesh="qdd100_rotor" contype="0" conaffinity="0" group="2" material="black" />
<geom name="right_hip_qdd100_rotor_col_0" type="cylinder" size="0.023 0.0025" pos="0.0 0.0 -0.0025" group="3" />
<body name="right_hip_horn" quat="0.7071067811865476 0.0 0.0 0.7071067811865475">
<inertial pos="0.0 0.0 0.025" mass="0.05267" fullinertia="1.6459375000000005e-05 4.37819375e-05 4.37819375e-05 0.0 -1.6730244355064252e-21 0.0" />
<geom name="right_hip_horn_vis_0" type="mesh" mesh="qdd100_horn" contype="0" conaffinity="0" group="2" material="black" />
<geom name="right_hip_horn_col_0" type="cylinder" size="0.025 0.045" pos="0.0 0.0 0.025" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
</body>
<body name="right_femur" pos="0.0 0.07 0.025" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.0" mass="0.056" fullinertia="5.170666666666667e-06 5.170666666666667e-06 4.0320000000000005e-06 0.0 0.0 0.0" />
<geom name="right_femur_vis_0" type="cylinder" size="0.011 0.125" contype="0" conaffinity="0" group="2" material="light_wood" />
<geom name="right_femur_col_0" type="cylinder" size="0.012 0.13" group="3" />
<body name="right_knee_stator" pos="0.0 0.042 -0.098" quat="0.7071067811865476 0.0 0.0 -0.7071067811865475">
<inertial pos="0.03 0.0 0.0" mass="0.09874" fullinertia="0.000123425 9.133450000000001e-05 9.133450000000001e-05 0.0 1.964976405401907e-21 0.0" />
<geom name="right_knee_stator_vis_0" type="mesh" mesh="knee_stator" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="right_knee_stator_col_0" type="cylinder" size="0.05 0.03" pos="0.03 0.0 0.0" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
<body name="right_knee_qdd100_stator" quat="0.5000000000000001 -0.5 -0.4999999999999999 0.5">
<inertial pos="0.0 0.0 0.015" mass="0.47" fullinertia="0.00032900000000000003 0.00032900000000000003 0.0005875000000000001 0.0 0.0 0.0" />
<geom name="right_knee_qdd100_stator_vis_0" type="mesh" mesh="qdd100_stator" contype="0" conaffinity="0" group="2" material="black" />
<geom name="right_knee_qdd100_stator_col_0" type="cylinder" size="0.05 0.015" pos="0.0 0.0 0.015" group="3" />
<body name="right_knee_qdd100_rotor" pos="0.0 0.0 0.0292">
<joint name="right_knee" type="hinge" axis="0.0 0.0 -1.0" range="-2.51 2.51" />
<inertial pos="0.0 0.0 -0.0025" mass="0.015" fullinertia="2.0149999999999998e-06 2.0149999999999998e-06 3.9675e-06 0.0 0.0 0.0" />
<geom name="right_knee_qdd100_rotor_vis_0" type="mesh" mesh="qdd100_rotor" contype="0" conaffinity="0" group="2" material="black" />
<geom name="right_knee_qdd100_rotor_col_0" type="cylinder" size="0.023 0.0025" pos="0.0 0.0 -0.0025" group="3" />
<body name="right_knee_horn" quat="0.7071067811865476 0.0 0.0 0.7071067811865475">
<inertial pos="0.0 0.0 0.025" mass="0.05267" fullinertia="1.6459375000000005e-05 4.37819375e-05 4.37819375e-05 0.0 -1.6730244355064252e-21 0.0" />
<geom name="right_knee_horn_vis_0" type="mesh" mesh="qdd100_horn" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="right_knee_horn_col_0" type="cylinder" size="0.025 0.045" pos="0.0 0.0 0.025" quat="0.7071067811865476 0.0 0.7071067811865475 0.0" group="3" />
</body>
<body name="right_tibia" pos="0.0 0.07 0.025" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.0" mass="0.056" fullinertia="5.170666666666667e-06 5.170666666666667e-06 4.0320000000000005e-06 0.0 0.0 0.0" />
<geom name="right_tibia_vis_0" type="cylinder" size="0.011 0.125" contype="0" conaffinity="0" group="2" material="light_wood" />
<geom name="right_tibia_col_0" type="cylinder" size="0.012 0.13" group="3" />
<body name="right_ankle_base" pos="0.0 0.034 -0.105" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.002 0.0275" mass="0.07863" fullinertia="5.084740000000002e-05 7.6009e-05 8.575912e-05 0.0 0.0 0.0" />
<geom name="right_ankle_base_vis_0" type="mesh" mesh="ankle_stator" contype="0" conaffinity="0" group="2" material="chalky_blue" />
<geom name="right_ankle_base_col_0" type="box" size="0.046 0.034 0.028" pos="0.0 0.002 0.0275" group="3" />
<body name="right_ankle_plate" pos="0.0 0.0 -0.0015">
<inertial pos="0.0 0.0 0.0" mass="0.02" fullinertia="3.5533333333333333e-06 1.3526666666666667e-05 1.7026666666666667e-05 0.0 0.0 0.0" />
<geom name="right_ankle_plate_vis_0" type="box" size="0.04 0.0225 0.0015" contype="0" conaffinity="0" group="2" material="light_gray" />
<geom name="right_ankle_plate_col_0" type="box" size="0.045 0.023 0.002" group="3" />
<body name="right_ankle_mj5208_stator" pos="0.0 0.0 -0.0015" quat="6.123233995736766e-17 1.0 0.0 0.0">
<inertial pos="0.0 0.0 0.01" mass="0.1721" fullinertia="4.3369200000000005e-05 4.3369200000000005e-05 7.7445e-05 0.0 0.0 0.0" />
<geom name="right_ankle_mj5208_stator_vis_0" type="mesh" mesh="mj5208_stator" contype="0" conaffinity="0" group="2" material="mj5208_stator" />
<geom name="right_ankle_mj5208_stator_col_0" type="cylinder" size="0.03 0.009" pos="0.0 0.0 0.01" group="3" />
<body name="right_anchor" pos="0.0 0.0545 0.048" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="right_anchor_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
<body name="right_ankle_mj5208_rotor">
<joint name="right_wheel" type="hinge" axis="0.0 0.0 -1.0" range="0.0 0.0" />
<inertial pos="0.0 0.0 0.015" mass="0.05" fullinertia="1.551666666666667e-05 1.551666666666667e-05 2.8900000000000005e-05 0.0 0.0 0.0" />
<geom name="right_ankle_mj5208_rotor_vis_0" type="mesh" mesh="mj5208_rotor" contype="0" conaffinity="0" group="2" material="mj5208_rotor" />
<geom name="right_ankle_mj5208_rotor_col_0" type="cylinder" size="0.034 0.008" pos="0.0 0.0 0.015" group="3" />
<body name="right_wheel_hub" pos="0.0 0.0 0.0251">
<inertial pos="0.0 0.0 0.0125" mass="0.0454" fullinertia="1.9627933333333332e-05 1.9627933333333332e-05 3.45267e-05 0.0 0.0 0.0" />
<geom name="right_wheel_hub_vis_0" type="mesh" mesh="wheel_hub" contype="0" conaffinity="0" group="2" material="terracotta_light" />
<geom name="right_wheel_hub_col_0" type="cylinder" size="0.039 0.0125" pos="0.0 0.0 0.0125" group="3" />
<body name="right_wheel_tire" pos="0.0 0.0 0.0209">
<inertial pos="0.0 0.0 0.0" mass="0.08715" fullinertia="6.608875000000002e-05 6.608875000000002e-05 0.00010893750000000003 0.0 0.0 0.0" />
<geom name="right_wheel_tire_vis_0" type="mesh" mesh="wheel_tire" contype="0" conaffinity="0" group="2" material="dark_gray" />
<geom name="right_wheel_tire_col_0" type="cylinder" size="0.05 0.02" group="3" />
<body name="right_contact" pos="0.0 0.047 0.0" quat="0.7071067811865476 0.7071067811865475 0.0 0.0">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="right_contact_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
<body name="right_wheel_center" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865476 -0.7071067811865475">
<inertial pos="0.0 0.0 0.0" mass="0.001" diaginertia="0 0 0" />
<geom name="right_wheel_center_vis_0" type="box" size="0.0 0.0 0.0" contype="0" conaffinity="0" group="2" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base" body2="torso" />
<exclude body1="torso" body2="imu" />
<exclude body1="torso" body2="battery" />
<exclude body1="torso" body2="handle" />
<exclude body1="torso" body2="left_hip_qdd100_stator" />
<exclude body1="left_hip_qdd100_stator" body2="left_hip_qdd100_rotor" />
<exclude body1="left_hip_qdd100_rotor" body2="left_hip_horn" />
<exclude body1="left_hip_qdd100_rotor" body2="left_femur" />
<exclude body1="left_femur" body2="left_knee_stator" />
<exclude body1="left_knee_stator" body2="left_knee_qdd100_stator" />
<exclude body1="left_knee_qdd100_stator" body2="left_knee_qdd100_rotor" />
<exclude body1="left_knee_qdd100_rotor" body2="left_knee_horn" />
<exclude body1="left_knee_qdd100_rotor" body2="left_tibia" />
<exclude body1="left_tibia" body2="left_ankle_base" />
<exclude body1="left_ankle_base" body2="left_ankle_plate" />
<exclude body1="left_ankle_plate" body2="left_ankle_mj5208_stator" />
<exclude body1="left_ankle_mj5208_stator" body2="left_anchor" />
<exclude body1="left_ankle_mj5208_stator" body2="left_ankle_mj5208_rotor" />
<exclude body1="left_ankle_mj5208_rotor" body2="left_wheel_hub" />
<exclude body1="left_wheel_hub" body2="left_wheel_tire" />
<exclude body1="left_wheel_tire" body2="left_contact" />
<exclude body1="left_wheel_tire" body2="left_wheel_center" />
<exclude body1="torso" body2="right_hip_qdd100_stator" />
<exclude body1="right_hip_qdd100_stator" body2="right_hip_qdd100_rotor" />
<exclude body1="right_hip_qdd100_rotor" body2="right_hip_horn" />
<exclude body1="right_hip_qdd100_rotor" body2="right_femur" />
<exclude body1="right_femur" body2="right_knee_stator" />
<exclude body1="right_knee_stator" body2="right_knee_qdd100_stator" />
<exclude body1="right_knee_qdd100_stator" body2="right_knee_qdd100_rotor" />
<exclude body1="right_knee_qdd100_rotor" body2="right_knee_horn" />
<exclude body1="right_knee_qdd100_rotor" body2="right_tibia" />
<exclude body1="right_tibia" body2="right_ankle_base" />
<exclude body1="right_ankle_base" body2="right_ankle_plate" />
<exclude body1="right_ankle_plate" body2="right_ankle_mj5208_stator" />
<exclude body1="right_ankle_mj5208_stator" body2="right_anchor" />
<exclude body1="right_ankle_mj5208_stator" body2="right_ankle_mj5208_rotor" />
<exclude body1="right_ankle_mj5208_rotor" body2="right_wheel_hub" />
<exclude body1="right_wheel_hub" body2="right_wheel_tire" />
<exclude body1="right_wheel_tire" body2="right_contact" />
<exclude body1="right_wheel_tire" body2="right_wheel_center" />
</contact>
</mujoco>
Import report
Counts
| Links | 41 |
|---|---|
| Joints | 40 |
| Moving joints | 6 |
| Visuals | 41 |
| Collisions | 33 |
| Materials | 9 |
Meshes
Formats: stl.
Asset size: 13.1 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
contact | 2 | <contact> is not part of the URDF subset RobotDescription mirrors |
material | 4 | <material> is not part of the URDF subset RobotDescription mirrors |
Forward-kinematics check
Forward kinematics of 41 link frames at 20 random joint positions within limits, original URDF against robot.urdf, computed by pinocchio 3.8.0. Worst difference: 0.0e+00 m · 2.8e-17 rad.
MuJoCo
robot.xml did not compile in MuJoCo: Error: size 0 must be positive in geom
Source & licence
| Repository | https://github.com/upkie/upkie_description |
|---|---|
| Commit | 19a91ce69cab6742c613cab104986e3f8a18d6a5 |
| Original file | urdf/upkie.urdf |
| Licence | Apache-2.0 · the upstream LICENSE file |
| Files | robot.urdf · robot.xml |
Meshes are copied verbatim from the repository at the pinned commit and keep their upstream licence.