Skip to content

robot-descriptions/robot_descriptions.py

Repository files navigation

Robot descriptions in Python

Build Coverage Conda Version PyPI version PyPI downloads Contributing

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).

Installation

From conda-forge

Conda Version

conda install -c conda-forge robot_descriptions

From PyPI

PyPI version

pip install robot_descriptions

Usage

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.

Import as submodule

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 iiwa14_description exports URDF_PATH_POLYTOPE_COLLISION with more detailed collision meshes.

Examples

Loading a robot description:

Visualizing a robot description:

Command line tool

The command line tool can be used to visualize any of the robot descriptions below. For example:

robot_descriptions show solo_description

Descriptions

Available robot descriptions (gallery) are listed in the following categories:

The DOF column denotes the number of actuated degrees of freedom.

Arms

Name Robot Maker DOF Format
edo_description e.DO Comau 6 URDF
fanuc_m710ic_description M-710iC Fanuc 6 URDF
fr3_mj_description FR3 Franka Robotics 7 MJCF
gen2_description Gen2 Kinova 6 URDF
gen3_description Gen3 Kinova 6 URDF
gen3_mj_description Gen3 Kinova 7 MJCF
iiwa14_description iiwa 14 KUKA 7 URDF
iiwa14_mj_description iiwa 14 KUKA 7 MJCF
iiwa7_description iiwa 7 KUKA 7 URDF
panda_description Panda Franka Robotics 8 URDF
panda_mj_description Panda Franka Robotics 8 MJCF
poppy_ergo_jr_description Poppy Ergo Jr Poppy Project 6 URDF
sawyer_mj_description Sawyer Rethink Robotics 7 MJCF
so_arm100 SO-ARM100 The Robot Studio 6 URDF
ur10_description UR10 Universal Robots 6 URDF
ur10e_mj_description UR10e Universal Robots 6 MJCF
ur3_description UR3 Universal Robots 6 URDF
ur5_description UR5 Universal Robots 6 URDF
ur5e_mj_description UR5e Universal Robots 6 MJCF
viper_mj_description ViperX Trossen Robotics 8 MJCF
widow_mj_description WidowX Trossen Robotics 8 MJCF
xarm7_mj_description xArm7 UFACTORY 7 MJCF
z1_description Z1 UNITREE Robotics 6 URDF

Bipeds

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

Dual arms

Name Robot Maker DOF Format
aloha_mj_description Aloha 2 Trossen Robotics 14 MJCF
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

Drones

Name Robot Maker DOF Format
cf2_description Crazyflie 2.0 Bitcraze 0 URDF
cf2_mj_description Crazyflie 2.0 Bitcraze 6 MJCF
skydio_x2_description Skydio X2 Skydio 6 URDF
skydio_x2_mj_description Skydio X2 Skydio 6 MJCF

Educational

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

End effectors

Name Robot Maker DOF Format
allegro_hand_description Allegro Hand Wonik Robotics 16 URDF
allegro_hand_mj_description Allegro Hand Wonik Robotics 16 MJCF
barrett_hand_description BarrettHand Barrett Technology 8 URDF
leap_hand_v1 LEAP Hand v1 Carnegie Mellon University 16 URDF
leap_hand_mj_description LEAP Hand Carnegie Mellon University 16 MJCF
robotiq_2f85_description Robotiq 2F-85 Robotiq 1 URDF
robotiq_2f85_mj_description Robotiq 2F-85 Robotiq 1 MJCF
shadow_dexee_mj_description Shadow DEX-EE The Shadow Robot Company 12 MJCF
shadow_hand_mj_description Shadow Hand The Shadow Robot Company 24 MJCF

Humanoids

Name Robot Maker DOF Format
atlas_drc_description Atlas DRC (v3) Boston Dynamics 30 URDF
atlas_v4_description Atlas v4 Boston Dynamics 30 URDF
berkeley_humanoid_description Berkeley Humanoid Hybrid Robotics 12 URDF
draco3_description Draco3 Apptronik 25 URDF
ergocub_description ergoCub IIT 57 URDF
g1_description G1 UNITREE Robotics 37 URDF
g1_mj_description G1 UNITREE Robotics 37 MJCF
h1_description H1 UNITREE Robotics 25 URDF
h1_mj_description H1 UNITREE Robotics 25 MJCF
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
op3_mj_description OP3 ROBOTIS 20 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
talos_mj_description TALOS PAL Robotics 32 MJCF
valkyrie_description Valkyrie NASA JSC Robotics 59 URDF

Mobile manipulators

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
sretch_mj_description Stretch 2 Hello Robot 14 MJCF
sretch_3_mj_description Stretch 3 Hello Robot 14 MJCF
tiago_description TIAGo PAL Robotics 48 URDF

Quadrupeds

Name Robot Maker DOF Format
a1_description A1 UNITREE Robotics 12 URDF
a1_mj_description A1 UNITREE Robotics 12 MJCF
aliengo_description Aliengo UNITREE Robotics 12 URDF
aliengo_mj_description Aliengo UNITREE Robotics 12 MJCF
anymal_b_description ANYmal B ANYbotics 12 URDF
anymal_b_mj_description ANYmal B ANYbotics 12 MJCF
anymal_c_description ANYmal C ANYbotics 12 URDF
anymal_c_mj_description ANYmal C ANYbotics 12 MJCF
b1_description B1 UNITREE Robotics 12 URDF
b2_description B2 UNITREE Robotics 12 URDF
spot_mj_description Spot Boston Dynamics 12 MJCF
go1_description Go1 UNITREE Robotics 12 URDF
go1_mj_description Go1 UNITREE Robotics 12 MJCF
go2_description Go2 UNITREE Robotics 12 URDF
go2_mj_description Go2 UNITREE Robotics 12 MJCF
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

Contributing

New robot descriptions are welcome! Check out the guidelines then open a PR.

Thanks

Thanks to the maintainers of all the git repositories that made these robot descriptions available.

Citation

If you use this project in your works, please cite as follows:

@software{robot_descriptions_py,
  title = {{robot_descriptions.py: Robot descriptions in Python}},
  author = {Caron, Stéphane and Romualdi, Giulio and Kozlov, Lev and Ordoñez Apraez, Daniel Felipe and Tadashi Kussaba, Hugo and Bang, Seung Hyeon and Zakka, Kevin and Schramm, Fabian},
  license = {Apache-2.0},
  url = {https://github.com/robot-descriptions/robot_descriptions.py},
  version = {1.13.0},
  year = {2024}
}

See also