Skip to content
Peter Corke edited this page Aug 17, 2026 · 2 revisions

The Toolbox ships with a number of models, and it is also quite easy to create your own model.

Existing models

There are three types of model supported by the Toolbox, and all are subclasses of the abstract Robot class.

  • Denavit-Hartenberg (DH) models, defined using standard or modified DH parameters, with optional 3D meshes for visualisation and optional dynamic parameters. These models live in the folder src/roboticstoolbox/models/DH.
  • ETS model, defined using a sequence of elementary transformations (rotation and translations), and is a quick and intuitive way to describe a robot, see this article. These models live in the folder src/roboticstoolbox/models/ETS.
  • URDF models, defined by a Unified Robot Description Format file, an XML format file, see this tutorial article for details. These models live in the folder src/roboticstoolbox/models/URDF. Models exist for the classic Puma560 robot as well as the Franka-Emika Panda, the Universal robotics range and all the Interbotix hobby-class robots.

To list what's available, both the models built into the Toolbox and those it can load on demand (see below), use roboticstoolbox.models.catalog(). It supports filtering by keyword, degrees of freedom or model type, and sorting on name, manufacturer or DoF — see its docstring for details.

Loading models from robot_descriptions

Beyond the models built into the Toolbox, URDFRobot can load any model registered with the robot_descriptions package — a large, actively-maintained collection of URDF/xacro/MJCF files for robots from many manufacturers. robot_descriptions is installed automatically as a Toolbox dependency, no extra setup is needed.

from roboticstoolbox.models.URDF.URDFRobot import URDFRobot
ur5 = URDFRobot("ur5")

Passing a bare name with no file suffix (as above) tells URDFRobot to fetch and parse the model from robot_descriptions rather than a local file. Run catalog() (or catalog(mtype="URDF")) to see the full list of names it recognises, alongside the models that ship with the Toolbox directly.

Creating a new model

Follow the instructions in the README file in each of the folders.

A Denavit-Hartenberg (DH) model

The DH parameters might come from the manufacturer or you might have derived them using the process in textbooks such as "Robotics: modelling, planning and control" by Siciliano etal.

Please see the details in the README.

an ETS model

Please see the details in the models README — there is currently no ETS-specific README, follow the DH one's pattern and look at an existing ETS model file for a concrete example.

A URDF model

You will need a URDF file for the robot, and this may include a set of mesh files that describe the shape and appearance of the robot's links. The URDF contains all the kinematic and dynamic data required by the Toolbox, you simply need to create a class.

Please see the details in the models README — there is currently no URDF-specific README, follow the DH one's pattern and look at an existing URDF model file (e.g. UR5.py) for a concrete example. If the robot is already available via robot_descriptions (see above), you likely don't need to add a new model file at all — URDFRobot("name") already covers it.

Clone this wiki locally