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 manipulator defined by links or an elementary transform sequence |
|
Base class for robot models loaded from a URDF or xacro file. |
|
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.
Class for revolute links using standard DH convention. |
|
Class for prismatic link using standard DH convention. |
|
Class for revolute links using modified DH convention. |
|
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)
Make a copy of the robot |
|
Add a named joint configuration |
Information
Get/set robot name |
|
Get/set robot manufacturer's name |
|
Get/set robot comment |
|
Keywords that describe the robot |
|
Number of joints |
|
Number of links |
|
Number of branches |
|
Robot links |
|
Return the joint structure string |
|
Check if joint is revolute |
|
Check if joint is prismatic |
|
Revolute joints as bool array |
|
Prismatic joints as bool array |
|
Get/set robot joint configuration |
|
Get/set robot joint velocity |
|
Get/set robot joint acceleration |
|
Joint limits |
|
Return a random joint configuration |
|
Named joint configurations |
|
Get/set robot base transform |
|
Get/set robot tool transform |
|
Get/set default gravitational acceleration |
|
Reach of the robot |
|
Robot has geometry model |
|
Robot has collision model |
|
Robot has dynamic parameters |
Visualization
Graphical display and animation |
|
Graphical teach pendant |
|
Plot the velocity ellipsoid for a manipulator. |
|
Plot the force ellipsoid for a manipulator. |
|
Create a velocity ellipsoid object for plotting with PyPlot. |
|
Create a force ellipsoid object for plotting with PyPlot. |
|
Display a link transform graph in browser |
|
Get default graphical backend |
|
Set the default graphical backend for all robots |
The graphical backends do the drawing.
Kinematics
Forward kinematics |
|
Compute the pose of every link frame |
|
Manipulator geometric Jacobian in the |
|
Manipulator geometric Jacobian in the end-effector frame |
|
Manipulator analytical Jacobian in the |
|
Time derivative of manipulator Jacobian in frame {0} |
|
Manipulator Hessian in the start frame |
|
Manipulator Hessian in the end-effector frame |
|
Manipulability measure |
|
The manipulability Jacobian |
|
Joint-space trajectory between two joint configurations |
|
Levenberg-Marquardt Numerical Inverse Kinematics Solver |
|
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
Compute inverse dynamics via recursive Newton-Euler formulation |
|
Compute gravity load |
|
Manipulator inertia matrix |
|
Coriolis and centripetal term |
|
Compute acceleration due to applied torque |
|
Integrate forward dynamics |
|
Inertia torque |
|
Manipulator joint friction |
|
Remove manipulator joint friction |
|
Add a payload to the end-effector |
|
Compute the payload capacity of the manipulator |
|
Perturb robot parameters |
Collision checking
Check if the robot is in collision with a shape |
|
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.