Skip to content

Key concepts

Peter Corke edited this page Sep 12, 2020 · 2 revisions

Elementary transform strings (ETS)

ETS are an alternative way to describe serial-link manipulators and are introduced in this 2007 article.

Pose

Pose, position and orientation of the end effector in space, is represented by the SE3 class. These are imported from the Spatial Math for Python package which is installed when you install this Toolbox using PyPI.

Robots

Robot manipulators are represented by the abstract Robot class which is subclassed for different representations:

  • DHRobot for robots defined using standard or modified Denavit-Hartbenberg parameters. This is similar to the SerialLink class from the MATLAB version of the Toolbox, and you can use this class name in Python (but it is deprecated and you will get a message). Key features:

    • you only need a table of DH parameters to create a workable model
    • you can specify inertial parameters, in which case you can compute inverse and forward dynamics, gravity load, inertia matrix, centripetal/Coriolis terms etc.
    • if you have STL or Collada (.dae file) meshes available then you can create a rendered 3D view of the robot
    • The model is defined as a list of joint objects drawn from the set: RevoluteDH, PrismaticDH, RevoluteMDH, PrismaticMDH
    • The robot cannot have branches, ie. a single end-effector
  • ETSRobot for robots defined as a collection of link frames ELink each of which is connected by a transform to its parent link. The transform has a constant component (expressed as an ETS) and a variable component (the revolute or prismatic joint itself). Key features:

    • is very general and allows the representation of regular serial-link manipulators as well as branched structures such as a humanoid robot.
    • a URDF model maps nicely to this representation and we support URDF import with a builtin xacro preprocessor
    • if you have STL or Collada (.dae file) meshes available then you can create a rendered 3D view of the robot

Backends

The Toolbox provides a general way to connect to a variety of simulated or physical robots which we collectively call backends. A robot model in the Toolbox can connect to one or more backends, and we can also connect multiple robot models to the one backend.