Crazyflie 2.0
Bitcraze · licence MIT · source: github.com/utiasDSL/gym-pybullet-drones @ 2c2470c20
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 ed77817ecbc12daf -->
<robot name="cf2">
<material name="grey">
<color rgba="0.5 0.5 0.5 1.0" />
</material>
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 95.0" />
<geometry>
<mesh filename="./cf2.dae" />
</geometry>
<material name="grey" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.025" radius="0.06" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.027" />
<inertia ixx="2.3951e-05" ixy="0.0" ixz="0.0" iyy="2.3951e-05" iyz="0.0" izz="3.2347e-05" />
</inertial>
</link>
<link name="prop0_link">
<inertial>
<origin xyz="0.0397 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.0" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="prop0_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="prop0_link" />
</joint>
<link name="prop1_link">
<inertial>
<origin xyz="0.0 0.0397 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.0" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="prop1_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="prop1_link" />
</joint>
<link name="prop2_link">
<inertial>
<origin xyz="-0.0397 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.0" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="prop2_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="prop2_link" />
</joint>
<link name="prop3_link">
<inertial>
<origin xyz="0.0 -0.0397 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.0" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="prop3_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="prop3_link" />
</joint>
<link name="center_of_mass_link">
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<mass value="0.0" />
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />
</inertial>
</link>
<joint name="center_of_mass_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="center_of_mass_link" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content ed77817ecbc12daf -->
<mujoco model="cf2">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<material name="grey" rgba="0.5 0.5 0.5 1.0" />
<mesh name="cf2" file="./cf2.dae" />
</asset>
<worldbody>
<body name="base_link">
<inertial pos="0.0 0.0 0.0" mass="0.027" fullinertia="2.3951e-05 2.3951e-05 3.2347e-05 0.0 0.0 0.0" />
<geom name="base_link_vis_0" type="mesh" mesh="cf2" quat="-0.9301004142012893 0.0 -0.0 -0.36730534913419133" contype="0" conaffinity="0" group="2" material="grey" />
<geom name="base_link_col_0" type="cylinder" size="0.06 0.0125" group="3" />
<body name="prop0_link">
<inertial pos="0.0397 0.0 0.0" mass="0.0" diaginertia="0 0 0" />
</body>
<body name="prop1_link">
<inertial pos="0.0 0.0397 0.0" mass="0.0" diaginertia="0 0 0" />
</body>
<body name="prop2_link">
<inertial pos="-0.0397 0.0 0.0" mass="0.0" diaginertia="0 0 0" />
</body>
<body name="prop3_link">
<inertial pos="0.0 -0.0397 0.0" mass="0.0" diaginertia="0 0 0" />
</body>
<body name="center_of_mass_link">
<inertial pos="0.0 0.0 0.0" mass="0.0" diaginertia="0 0 0" />
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="prop0_link" />
<exclude body1="base_link" body2="prop1_link" />
<exclude body1="base_link" body2="prop2_link" />
<exclude body1="base_link" body2="prop3_link" />
<exclude body1="base_link" body2="center_of_mass_link" />
</contact>
</mujoco>
Import report
Counts
| Links | 6 |
|---|---|
| Joints | 5 |
| Moving joints | 0 |
| Visuals | 1 |
| Collisions | 1 |
| Materials | 1 |
Meshes
Formats: dae.
Asset size: 0.5 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
properties | 1 | <properties> is not part of the URDF subset RobotDescription mirrors |
Forward-kinematics check
Forward kinematics of 6 link frames at 20 random joint positions within limits, original URDF against robot.urdf, computed by pinocchio 3.8.0. Worst difference: 0.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 0).
Source & licence
| Repository | https://github.com/utiasDSL/gym-pybullet-drones |
|---|---|
| Commit | 2c2470c2043eb4cf474d9af2681c9fa10f2d0e2f |
| Original file | gym_pybullet_drones/assets/cf2p.urdf |
| Licence | MIT · 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.