Poppy Ergo Jr
Poppy Project · licence GPL-3.0 · source: github.com/poppy-project/poppy_ergo_jr_description @ 7eb32bd38
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 9ee7ef5738ea7676 -->
<robot name="poppy_ergo_jr">
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/base.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.038 0.015" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.03" radius="0.08" />
</geometry>
</collision>
</link>
<link name="long_U">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/long_U.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.01" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.02" radius="0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m1" type="continuous">
<origin xyz="0.0 0.0 0.0327993216120967" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="long_U" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="section_1">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 1.5707963267949 0.0" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/section_1.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.025 0.0 0.0" rpy="0.0 1.5707963267949 0.0" />
<geometry>
<cylinder length="0.05" radius="0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m2" type="continuous">
<origin xyz="0.0 0.0 0.0240006783879033" rpy="0.0 -1.5707963267949 0.0" />
<parent link="long_U" />
<child link="section_1" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="section_2">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 1.5707963267949 0.0" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/section_2.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.025 0.0 0.0" rpy="0.0 1.5707963267949 0.0" />
<geometry>
<cylinder length="0.05" radius="0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m3" type="continuous">
<origin xyz="0.054 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="section_1" />
<child link="section_2" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="section_3">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 3.14159268 0.0" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/section_3.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 -0.025 0.0" rpy="1.5707963267949 0.0 0.0" />
<geometry>
<cylinder length="0.05" radius="0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m4" type="continuous">
<origin xyz="0.045 0.0 0.0" rpy="0.0 -1.5707963267949 0.0" />
<parent link="section_2" />
<child link="section_3" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="section_4">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 -1.5707963267949 1.5707963267949" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/section_1.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 -0.035 0.0" rpy="1.5707963267949 0.0 0.0" />
<geometry>
<cylinder length="0.06" radius="0.02" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m5" type="continuous">
<origin xyz="0.0 -0.048 0.0" rpy="0.0 -1.5707963267949 0.0" />
<parent link="section_3" />
<child link="section_4" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="fixed_tip" />
<joint name="t7f" type="fixed">
<origin xyz="0.0 -0.075 0.0" rpy="-1.5707963267949 0.0 0.0" />
<parent link="section_5" />
<child link="fixed_tip" />
</joint>
<link name="section_5">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 1.5707963267949" />
<geometry>
<mesh filename="package://poppy_ergo_jr_description/meshes/lamp.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 -0.045 0.0" rpy="1.5707963267949 0.0 0.0" />
<geometry>
<cylinder length="0.06" radius="0.03" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" />
<mass value="0.1" />
<inertia ixx="0.03" ixy="0.0" ixz="0.0" iyy="0.03" iyz="0.0" izz="0.03" />
</inertial>
</link>
<joint name="m6" type="continuous">
<origin xyz="0.0 -0.054 0.0" rpy="0.0 0.0 0.0" />
<parent link="section_4" />
<child link="section_5" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="0.0" velocity="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content 9ee7ef5738ea7676 -->
<mujoco model="poppy_ergo_jr">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<mesh name="base" file="poppy_ergo_jr_description/meshes/base.dae" />
<mesh name="long_U" file="poppy_ergo_jr_description/meshes/long_U.dae" />
<mesh name="section_1" file="poppy_ergo_jr_description/meshes/section_1.dae" />
<mesh name="section_2" file="poppy_ergo_jr_description/meshes/section_2.dae" />
<mesh name="section_3" file="poppy_ergo_jr_description/meshes/section_3.dae" />
<mesh name="lamp" file="poppy_ergo_jr_description/meshes/lamp.dae" />
</asset>
<worldbody>
<body name="base_link">
<geom name="base_link_vis_0" type="mesh" mesh="base" contype="0" conaffinity="0" group="2" />
<geom name="base_link_col_0" type="cylinder" size="0.08 0.015" pos="0.0 0.038 0.015" group="3" />
<body name="long_U" pos="0.0 0.0 0.0327993216120967">
<joint name="m1" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="long_U_vis_0" type="mesh" mesh="long_U" contype="0" conaffinity="0" group="2" />
<geom name="long_U_col_0" type="cylinder" size="0.02 0.01" pos="0.0 0.0 0.01" group="3" />
<body name="section_1" pos="0.0 0.0 0.0240006783879033" quat="0.7071067811865462 0.0 -0.7071067811865488 0.0">
<joint name="m2" type="hinge" axis="0.0 0.0 -1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="section_1_vis_0" type="mesh" mesh="section_1" quat="0.7071067811865462 0.0 0.7071067811865488 0.0" contype="0" conaffinity="0" group="2" />
<geom name="section_1_col_0" type="cylinder" size="0.02 0.025" pos="0.025 0.0 0.0" quat="0.7071067811865462 0.0 0.7071067811865488 0.0" group="3" />
<body name="section_2" pos="0.054 0.0 0.0">
<joint name="m3" type="hinge" axis="0.0 0.0 -1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="section_2_vis_0" type="mesh" mesh="section_2" quat="0.7071067811865462 0.0 0.7071067811865488 0.0" contype="0" conaffinity="0" group="2" />
<geom name="section_2_col_0" type="cylinder" size="0.02 0.025" pos="0.025 0.0 0.0" quat="0.7071067811865462 0.0 0.7071067811865488 0.0" group="3" />
<body name="section_3" pos="0.045 0.0 0.0" quat="0.7071067811865462 0.0 -0.7071067811865488 0.0">
<joint name="m4" type="hinge" axis="0.0 0.0 -1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="section_3_vis_0" type="mesh" mesh="section_3" quat="-1.3205103393917129e-08 -0.0 0.9999999999999999 -0.0" contype="0" conaffinity="0" group="2" />
<geom name="section_3_col_0" type="cylinder" size="0.02 0.025" pos="0.0 -0.025 0.0" quat="0.7071067811865462 0.7071067811865488 0.0 0.0" group="3" />
<body name="section_4" pos="0.0 -0.048 0.0" quat="0.7071067811865462 0.0 -0.7071067811865488 0.0">
<joint name="m5" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="section_4_vis_0" type="mesh" mesh="section_1" quat="0.49999999999999817 0.5000000000000018 -0.5 0.5" contype="0" conaffinity="0" group="2" />
<geom name="section_4_col_0" type="cylinder" size="0.02 0.03" pos="0.0 -0.035 0.0" quat="0.7071067811865462 0.7071067811865488 0.0 0.0" group="3" />
<body name="section_5" pos="0.0 -0.054 0.0">
<joint name="m6" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="0.0 0.0 0.0" mass="0.1" fullinertia="0.03 0.03 0.03 0.0 0.0 0.0" />
<geom name="section_5_vis_0" type="mesh" mesh="lamp" quat="0.7071067811865462 0.0 0.0 0.7071067811865488" contype="0" conaffinity="0" group="2" />
<geom name="section_5_col_0" type="cylinder" size="0.03 0.03" pos="0.0 -0.045 0.0" quat="0.7071067811865462 0.7071067811865488 0.0 0.0" group="3" />
<body name="fixed_tip" pos="0.0 -0.075 0.0" quat="0.7071067811865462 -0.7071067811865488 0.0 0.0" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="long_U" />
<exclude body1="long_U" body2="section_1" />
<exclude body1="section_1" body2="section_2" />
<exclude body1="section_2" body2="section_3" />
<exclude body1="section_3" body2="section_4" />
<exclude body1="section_5" body2="fixed_tip" />
<exclude body1="section_4" body2="section_5" />
</contact>
</mujoco>
Import report
Counts
| Links | 8 |
|---|---|
| Joints | 7 |
| Moving joints | 6 |
| Visuals | 7 |
| Collisions | 7 |
| Materials | 0 |
Meshes
Formats: dae.
Asset size: 10.7 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
box | 2 | a <geometry> holds one shape; the first is kept |
gazebo | 1 | Gazebo simulator extensions are not part of the description |
limit | 6 | no <limit>; RobotDescription always writes one, so effort = velocity = 0 |
material | 7 | anonymous material (empty name) cannot be referenced; its colour is not kept |
transmission | 6 | ROS transmissions (actuator-to-joint wiring) have no RobotDescription field yet |
Forward-kinematics check
Forward kinematics of 8 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.7e-16 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 6).
Source & licence
| Repository | https://github.com/poppy-project/poppy_ergo_jr_description |
|---|---|
| Commit | 7eb32bd385afa11dea5e6a6b6a4a86a0243aaa2b |
| Original file | urdf/poppy_ergo_jr.urdf |
| Licence | GPL-3.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.