Import open source robot descriptions as Python modules.
Importing a description for the first time automatically downloads and caches files for future imports. Most Awesome Robot Descriptions are available. All of them load successfully in respectively MuJoCo (MJCF) or Pinocchio, iDynTree, PyBullet and yourdfpy (URDF).
pip install robot_descriptions
conda install -c conda-forge robot_descriptions
The library provides load_robot_description
functions that return an instance of a robot description directly usable in the corresponding software. For example:
from robot_descriptions.loaders.pinocchio import load_robot_description
robot = load_robot_description("upkie_description")
Loaders are implemented for the following robotics software:
Software | Loader |
---|---|
iDynTree | robot_descriptions.loaders.idyntree |
MuJoCo | robot_descriptions.loaders.mujoco |
Pinocchio | robot_descriptions.loaders.pinocchio |
PyBullet | robot_descriptions.loaders.pybullet |
RoboMeshCat | robot_descriptions.loaders.robomeshcat |
yourdfpy | robot_descriptions.loaders.yourdfpy |
Loading will automatically download the robot description if needed, and cache it to a local directory.
You can also import a robot description directly as a submodule of robot_descriptions
:
from robot_descriptions import my_robot_description
The import will automatically download the robot description if you don't have it already, and cache it to a local directory. The submodule then provides the following paths:
-
URDF_PATH
/MJCF_PATH
- Path to the main URDF/MJCF file of the robot description.
-
PACKAGE_PATH
- Path to the root of the robot description package.
-
REPOSITORY_PATH
- Path to the working directory of the git repository hosting the robot description.
Some robot descriptions include additional fields. For instance, the iiwa_description
exports URDF_PATH_POLYTOPE_COLLISION
with more detailed collision meshes.
Loading a robot description:
Visualizing a robot description:
The command line tool can be used to visualize any of the robot descriptions below. For example:
robot_descriptions show solo_description
Available robot descriptions (gallery) are listed in the following categories:
- Arms
- Bipeds
- Dual arms
- Drones
- Educational
- End effectors
- Mobile manipulators
- Humanoids
- Quadrupeds
- Wheeled
The DOF column denotes the number of actuated degrees of freedom.
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
edo_description |
e.DO | Comau | 6 | URDF |
fanuc_m710ic_description |
M-710iC | Fanuc | 6 | URDF |
gen2_description |
Gen2 (Jaco) | Kinova | 6 | URDF |
gen3_description |
Gen3 (Jaco) | Kinova | 6 | URDF |
gen3_mj_description |
Gen3 (Jaco) | Kinova | 7 | MJCF |
iiwa_description |
iiwa | KUKA | 7 | URDF |
panda_description |
Panda | Franka Emika | 8 | URDF |
panda_mj_description |
Panda | Franka Emika | 8 | MJCF |
poppy_ergo_jr_description |
Poppy Ergo Jr | Poppy Project | 6 | URDF |
ur10_description |
UR10 | Universal Robots | 6 | URDF |
ur3_description |
UR3 | Universal Robots | 6 | URDF |
ur5_description |
UR5 | Universal Robots | 6 | URDF |
ur5e_mj_description |
UR5e | Universal Robots | 6 | MJCF |
z1_description |
Z1 | UNITREE Robotics | 6 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
bolt_description |
Bolt | ODRI | 6 | URDF |
cassie_description |
Cassie | Agility Robotics | 16 | URDF |
cassie_mj_description |
Cassie | Agility Robotics | 16 | MJCF |
rhea_description |
Rhea | Gabrael Levine | 7 | URDF |
spryped_description |
Spryped | Benjamin Bokser | 8 | URDF |
upkie_description |
Upkie | Tast's Robots | 6 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
baxter_description |
Baxter | Rethink Robotics | 15 | URDF |
nextage_description |
NEXTAGE | Kawada Robotics | 15 | URDF |
poppy_torso_description |
Poppy Torso | Poppy Project | 13 | URDF |
yumi_description |
YuMi | ABB | 16 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
cf2_description |
Crazyflie 2.0 | Bitcraze | 0 | URDF |
Name | Robot | DOF | Format |
---|---|---|---|
double_pendulum_description |
Double Pendulum | 2 | URDF |
finger_edu_description |
FingerEdu | 3 | URDF |
simple_humanoid_description |
Simple Humanoid | 29 | URDF |
trifinger_edu_description |
TriFingerEdu | 9 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
allegro_hand_description |
Allegro Hand | Wonik Robotics | 16 | URDF |
barrett_hand_description |
BarrettHand | Barrett Technology | 8 | URDF |
robotiq_2f85_description |
Robotiq 2F-85 | Robotiq | 1 | URDF |
robotiq_2f85_mj_description |
Robotiq 2F-85 | Robotiq | 1 | MJCF |
shadow_hand_mj_description |
Shadow Hand | The Shadow Robot Company | 24 | MJCF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
atlas_drc_description |
Atlas DRC (v3) | Boston Dynamics | 30 | URDF |
atlas_v4_description |
Atlas v4 | Boston Dynamics | 30 | URDF |
draco3_description |
Draco3 | Apptronik | 25 | URDF |
ergocub_description |
ergoCub | IIT | 57 | URDF |
icub_description |
iCub | IIT | 32 | URDF |
jaxon_description |
JAXON | JSK | 38 | URDF |
jvrc_description |
JVRC-1 | AIST | 34 | URDF |
jvrc_mj_description |
JVRC-1 | AIST | 34 | MJCF |
r2_description |
Robonaut 2 | NASA JSC Robotics | 56 | URDF |
romeo_description |
Romeo | Aldebaran Robotics | 37 | URDF |
sigmaban_description |
SigmaBan | Rhoban | 20 | URDF |
talos_description |
TALOS | PAL Robotics | 32 | URDF |
valkyrie_description |
Valkyrie | NASA JSC Robotics | 59 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
eve_r3_description |
Eve R3 | Halodi | 23 | URDF |
fetch_description |
Fetch | Fetch Robotics | 14 | URDF |
ginger_description |
Ginger | Paaila Technology | 49 | URDF |
pepper_description |
Pepper | SoftBank Robotics | 17 | URDF |
pr2_description |
PR2 | Willow Garage | 32 | URDF |
reachy_description |
Reachy | Pollen Robotics | 21 | URDF |
stretch_description |
Stretch RE1 | Hello Robot | 14 | URDF |
tiago_description |
TIAGo | PAL Robotics | 48 | URDF |
Name | Robot | Maker | DOF | Format |
---|---|---|---|---|
a1_mj_description |
A1 | UNITREE Robotics | 12 | MJCF |
a1_description |
A1 | UNITREE Robotics | 12 | URDF |
b1_description |
B1 | UNITREE Robotics | 12 | URDF |
aliengo_description |
Aliengo | UNITREE Robotics | 12 | MJCF, URDF |
anymal_b_mj_description |
ANYmal B | ANYbotics | 12 | MJCF |
anymal_b_description |
ANYmal B | ANYbotics | 12 | URDF |
anymal_c_mj_description |
ANYmal C | ANYbotics | 12 | MJCF |
anymal_c_description |
ANYmal C | ANYbotics | 12 | URDF |
go1_mj_description |
Go1 | UNITREE Robotics | 12 | MJCF |
go1_description |
Go1 | UNITREE Robotics | 12 | URDF |
hyq_description |
HyQ | IIT | 12 | URDF |
laikago_description |
Laikago | UNITREE Robotics | 12 | MJCF, URDF |
mini_cheetah_description |
Mini Cheetah | MIT | 12 | URDF |
minitaur_description |
Minitaur | Ghost Robotics | 16 | URDF |
solo_description |
Solo | ODRI | 12 | URDF |
New robot descriptions are welcome! Check out the guidelines then open a PR.
Thanks to the maintainers of all the git repositories that made these robot descriptions available.
Robot descriptions in other languages:
robot_descriptions.cpp |
---|