-
-
Notifications
You must be signed in to change notification settings - Fork 619
Models
The Toolbox ships with a number of models, and it is also quite easy to create your own model.
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.
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.
Follow the instructions in the README file in each of the folders.
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.
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.
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.
- Frequently asked questions (FAQ)
- Documentation Style Guide
- Background
- Key concepts
- Introduction to robot and link classes
- Working with Jupyter
- Working from the command line
- What about Simulink?
- How to contribute
- Contributors