Double Pendulum
None · licence BSD-3-Clause · source: github.com/Gepetto/example-robot-data @ d0d9098d7
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.
Loading the model…
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 f5b477b09e1511e0 -->
<robot name="2dof_planar">
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/base_link.stl" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/base_link.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0030299 2.6279e-13 0.02912" rpy="0.0 0.0 0.0" />
<mass value="0.10159" />
<inertia ixx="2.636e-05" ixy="-1.007e-16" ixz="-2.3835e-06" iyy="1.8042e-05" iyz="-4.6617e-09" izz="1.8795e-05" />
</inertial>
</link>
<link name="link1">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/link1.stl" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/link1.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0086107 2.1727e-06 0.036012" rpy="0.0 0.0 0.0" />
<mass value="0.26703" />
<inertia ixx="0.00040827" ixy="1.2675e-09" ixz="1.8738e-05" iyy="0.00038791" iyz="3.5443e-08" izz="3.6421e-05" />
</inertial>
</link>
<joint name="joint1" type="revolute">
<origin xyz="0.0060872 0.0 0.035" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="link1" />
<axis xyz="1.0 0.0 0.0" />
<limit effort="0.0" velocity="0.0" lower="0.0" upper="0.0" />
<dynamics damping="0.05" friction="0.0" />
</joint>
<link name="link2">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/link2.stl" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://example-robot-data/robots/double_pendulum_description/meshes/link2.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.0050107 1.9371e-10 0.10088" rpy="0.0 0.0 0.0" />
<mass value="0.33238" />
<inertia ixx="0.0011753" ixy="-3.854e-13" ixz="-2.9304e-08" iyy="0.0011666" iyz="-5.2365e-12" izz="1.4553e-05" />
</inertial>
</link>
<joint name="joint2" type="revolute">
<origin xyz="0.023 0.0 0.1" rpy="0.0 0.0 0.0" />
<parent link="link1" />
<child link="link2" />
<axis xyz="1.0 0.0 0.0" />
<limit effort="0.0" velocity="0.0" lower="0.0" upper="0.0" />
<dynamics damping="0.05" friction="0.0" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content f5b477b09e1511e0 -->
<mujoco model="2dof_planar">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<mesh name="base_link" file="example-robot-data/robots/double_pendulum_description/meshes/base_link.stl" />
<mesh name="link1" file="example-robot-data/robots/double_pendulum_description/meshes/link1.stl" />
<mesh name="link2" file="example-robot-data/robots/double_pendulum_description/meshes/link2.stl" />
</asset>
<worldbody>
<body name="base_link">
<inertial pos="0.0030299 2.6279e-13 0.02912" mass="0.10159" fullinertia="2.636e-05 1.8042e-05 1.8795e-05 -1.007e-16 -2.3835e-06 -4.6617e-09" />
<geom name="base_link_vis_0" type="mesh" mesh="base_link" contype="0" conaffinity="0" group="2" />
<geom name="base_link_col_0" type="mesh" mesh="base_link" group="3" />
<body name="link1" pos="0.0060872 0.0 0.035">
<joint name="joint1" type="hinge" axis="1.0 0.0 0.0" range="0.0 0.0" damping="0.05" />
<inertial pos="0.0086107 2.1727e-06 0.036012" mass="0.26703" fullinertia="0.00040827 0.00038791 3.6421e-05 1.2675e-09 1.8738e-05 3.5443e-08" />
<geom name="link1_vis_0" type="mesh" mesh="link1" contype="0" conaffinity="0" group="2" />
<geom name="link1_col_0" type="mesh" mesh="link1" group="3" />
<body name="link2" pos="0.023 0.0 0.1">
<joint name="joint2" type="hinge" axis="1.0 0.0 0.0" range="0.0 0.0" damping="0.05" />
<inertial pos="-0.0050107 1.9371e-10 0.10088" mass="0.33238" fullinertia="0.0011753 0.0011666 1.4553e-05 -3.854e-13 -2.9304e-08 -5.2365e-12" />
<geom name="link2_vis_0" type="mesh" mesh="link2" contype="0" conaffinity="0" group="2" />
<geom name="link2_col_0" type="mesh" mesh="link2" group="3" />
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="link1" />
<exclude body1="link1" body2="link2" />
</contact>
</mujoco>
Import report
Counts
| Links | 3 |
|---|---|
| Joints | 2 |
| Moving joints | 2 |
| Visuals | 3 |
| Collisions | 3 |
| Materials | 0 |
Meshes
Formats: stl.
Asset size: 0.7 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
material | 3 | anonymous material (empty name) cannot be referenced; its colour is not kept |
Forward-kinematics check
Forward kinematics of 3 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 compiles in MuJoCo with its meshes (nq = 2).
Source & licence
| Repository | https://github.com/Gepetto/example-robot-data |
|---|---|
| Commit | d0d9098d752014aec3725b07766962acf06c5418 |
| Original file | robots/double_pendulum_description/urdf/double_pendulum.urdf |
| Licence | BSD-3-Clause · 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.