Robot manipulators (arms)

A robot manipulator is an object of a subclass of Robot, which provides the methods in the tables below. The subclass depends on how the robot is defined: from Denavit-Hartenberg parameters, from an elementary transform sequence, or from a URDF file. The robots that the Toolbox provides ready made are described under Models.

Construction

A robot is made in one of three ways, and each has its own class.

Robot

Robot manipulator defined by links or an elementary transform sequence

URDFRobot

Base class for robot models loaded from a URDF or xacro file.

DHRobot

Class for robots defined using Denavit-Hartenberg notation

A Robot is made from an elementary transform sequence, and can be a tree. (ERobot is a subclass with the same behaviour, kept for compatibility.) A URDFRobot is made from a URDF or xacro file. A DHRobot is made from a list of links, each with its Denavit-Hartenberg parameters, standard or modified, and a prismatic or revolute joint, using the link classes below.

RevoluteDH

Class for revolute links using standard DH convention.

PrismaticDH

Class for prismatic link using standard DH convention.

RevoluteMDH

Class for revolute links using modified DH convention.

PrismaticMDH

Class for prismatic link using modified DH convention.

>>> import roboticstoolbox as rtb
>>> from roboticstoolbox import DHRobot, Robot, RevoluteDH, ET
>>> dh = DHRobot([RevoluteDH(a=1), RevoluteDH(a=1)], name="two link")  # from DH parameters
>>> e = ET.Rz() * ET.tx(1) * ET.Rz() * ET.tx(1)
>>> ets = Robot(e, name="two link")  # from an elementary transform sequence
>>> dh.n, ets.n
(2, 2)

copy

Make a copy of the robot

addconfiguration

Add a named joint configuration

Information

name

Get/set robot name

manufacturer

Get/set robot manufacturer's name

comment

Get/set robot comment

keywords

Keywords that describe the robot

n

Number of joints

nlinks

Number of links

nbranches

Number of branches

links

Robot links

structure

Return the joint structure string

isrevolute

Check if joint is revolute

isprismatic

Check if joint is prismatic

revolutejoints

Revolute joints as bool array

prismaticjoints

Prismatic joints as bool array

q

Get/set robot joint configuration

qd

Get/set robot joint velocity

qdd

Get/set robot joint acceleration

qlim

Joint limits

random_q

Return a random joint configuration

configs

Named joint configurations

base

Get/set robot base transform

tool

Get/set robot tool transform

gravity

Get/set default gravitational acceleration

reach

Reach of the robot

hasgeometry

Robot has geometry model

hascollision

Robot has collision model

hasdynamics

Robot has dynamic parameters

Visualization

plot

Graphical display and animation

teach

Graphical teach pendant

plot_vellipse

Plot the velocity ellipsoid for a manipulator.

plot_fellipse

Plot the force ellipsoid for a manipulator.

vellipse

Create a velocity ellipsoid object for plotting with PyPlot.

fellipse

Create a force ellipsoid object for plotting with PyPlot.

showgraph

Display a link transform graph in browser

default_backend

Get default graphical backend

set_default_backend

Set the default graphical backend for all robots

The graphical backends do the drawing.

Kinematics

fkine

Forward kinematics

fkine_all

Compute the pose of every link frame

jacob0

Manipulator geometric Jacobian in the start frame

jacobe

Manipulator geometric Jacobian in the end-effector frame

jacob0_analytical

Manipulator analytical Jacobian in the start frame

jacob0_dot

Time derivative of manipulator Jacobian in frame {0}

hessian0

Manipulator Hessian in the start frame

hessiane

Manipulator Hessian in the end-effector frame

manipulability

Manipulability measure

jacobm

The manipulability Jacobian

jtraj

Joint-space trajectory between two joint configurations

ikine_LM

Levenberg-Marquardt Numerical Inverse Kinematics Solver

ik_LM

Fast Levenberg-Marquardt Numerical Inverse Kinematics Solver

ikine_LM and ik_LM are two examples: the first is written in Python, the second in C++ and is faster but has limits. All the inverse kinematics methods, ikine_XX and ik_XX, are described under Inverse Kinematics.

Dynamics

rne

Compute inverse dynamics via recursive Newton-Euler formulation

gravload

Compute gravity load

inertia

Manipulator inertia matrix

coriolis

Coriolis and centripetal term

accel

Compute acceleration due to applied torque

fdyn

Integrate forward dynamics

itorque

Inertia torque

friction

Manipulator joint friction

nofriction

Remove manipulator joint friction

payload

Add a payload to the end-effector

payload_capacity

Compute the payload capacity of the manipulator

perturb

Perturb robot parameters

Collision checking

iscollided

Check if the robot is in collision with a shape

closest_point

Find the closest point between robot and shape

The Shape that these methods take is a class of the spatialgeometry package, such as Sphere, Cuboid or Mesh. In the signatures it links to the documentation of that package.