SerialLink robot object
A concrete class that represents a serial-link arm-type robot. The mechanism is described using Denavit-Hartenberg parameters, one set per joint.
links | vector of Link objects (1xN) |
gravity | direction of gravity [gx gy gz] |
base | pose of robot's base (4x4 homog xform) |
tool | drobot's tool transform, T6 to tool tip (4x4 homog xform) |
qlim | joint limits, [qmin qmax] (Nx2) |
offset | kinematic joint coordinate offsets (Nx1) |
name | name of robot, used for graphical display |
manuf | annotation, manufacturer's name |
comment | annotation, general comment |
plotopt | options for "plot_robot()" function. |
n | number of joints |
config | joint configuration string, eg. 'RRRRRR' |
mdh | kinematic convention boolean (0=DH, 1=MDH) |
All methods invoke external functions by passing the robot as the first variable. The methods that require onlt the robot object as input parameter can be called as methods in object-oriented programming. If you need to specify more than one input parameter, the call as a "method" of robot "class" is no longer valid. In this case you must use the syntax "function(robot, parameters)" instead of "robot.function()".
Ie. "robot.isspherical()" works while "robot.jacob0(q, options)" generates an error. The correct syntax is "jacob0(robot, q, options).
plot_robot - display graphical representation of robot
teach - drive the graphical robot
isspherical - test if robot has spherical wrist
islimit - test if robot at joint limit
fkine - forward kinematics
ikine6s - inverse kinematics for 6-axis spherical wrist revolute robot
ikine3 - inverse kinematics for 3-axis revolute robot
ikine - inverse kinematics using iterative method
jacob0 - Jacobian matrix in world frame
jacobn - Jacobian matrix in tool frame
maniplty - manipulability
jtraj - a joint space trajectory
accel - joint acceleration
coriolis - Coriolis joint force
dyn - show dynamic properties of links
fdyn - joint motion
friction - friction force
gravload - gravity joint force
inertia - joint inertia matrix
nofriction set friction parameters to zero
rne - joint torque/force
payload - add a payload in end-effector frame
perturb - randomly perturb link dynamic parameters
R = SerialLink(LINKS,OPTIONS) R = SerialLink(R1,OPTIONS) R = SerialLink(list(R1,R2,...), OPTIONS)
R = SerialLink(LINKS, OPTIONS) is a robot object defined by a list of Link objects. LINKS is a list of Link, ie. "LINKS = list(L1,L2);"
R = SerialLink(list(R1,R2,...), OPTIONS) concatenate robots, the base of R2 is attached to the tip of R1.
R = SerialLink(R1, options) is a deep copy of the robot object R1, with all the same properties.
set robot name property
set robot comment property
set robot manufacturer property
set base transformation matrix property
set tool transformation matrix property
set gravity vector property
set plotting options property
// Create a 2-link robot L = list(); L(1) = Link([ 0 0 1 0], 'standard'); L(2) = Link([ 0 0 1 0], 'standard'); twolink = SerialLink(L, 'name', 'two link'); // Create a copy of the robot twolink R1 = SerialLink(twolink) // Load a model of robot, see help mdl_puma560 mdl_puma560 // Robot objects can be concatenated in two ways R = R1 * mdl_puma560; R = SerialLink(list(R1,mdl_puma560)); | ![]() | ![]() |
SerialLink objects can be used in vectors and arrays.
When robots are concatenated (either syntax) the intermediate base and tool transforms are removed since general constant transforms cannot be represented in Denavit-Hartenberg notation.
[1] Robotics, Vision & Control, Chaps 7-9, P. Corke, Springer 2011.
[2] Robot, Modeling & Control, M.Spong, S. Hutchinson & M. Vidyasagar, Wiley 2006.