M-File Help: SE2 | View code for SE2 |
Representation of 2D rigid-body motion
This subclasss of SO2 < RTBPose is an object that represents an SE(2) rigid-body motion.
SE2 | general constructor |
SE2.exp | exponentiate an se(2) matrix |
SE2.rand | random transformation |
new | new SE2 object |
dim* | returns 2 |
isSE* | returns true |
issym* | true if rotation matrix has symbolic elements |
isa | check if matrix is SE2 |
plot* | graphically display coordinate frame for pose |
animate* | graphically animate coordinate frame for pose |
print* | print the pose in single line format |
display* | print the pose in human readable matrix form |
char* | convert to human readable matrix as a string |
det | determinant of matrix component |
eig | eigenvalues of matrix component |
log | logarithm of rotation matrix |
inv | inverse |
simplify* | apply symbolic simplication to all elements |
interp | interpolate between poses |
check | convert object or matrix to SE2 object |
theta | return rotation angle |
double | convert to rotation matrix |
R | convert to rotation matrix |
SE2 | convert to SE2 object with zero translation |
T | convert to homogeneous transformation matrix |
t | translation column vector |
isrot2* | returns false |
ishomog2* | returns true |
tr2rt* | convert to rotation matrix and translation vector |
t2r* | convert to rotation matrix |
trprint2* | print single line representation |
trplot2* | plot coordinate frame |
tranimate2* animate coordinate frame
transl2 | return translation as a row vector |
check | convert object or matrix to SO2 object |
Construct an SE(2) object
Constructs an SE(2) pose object that contains a 3x3 homogeneous transformation matrix.
T = SE2() is a null relative motion
T = SE2(x, y) is an object representing pure translation defined by x and y
T = SE2(xy) is an object representing pure translation defined by xy (2x1). If xy (Nx2) returns an array of SE2 objects, corresponding to the rows of xy.
T = SE2(x, y, theta) is an object representing translation, x and y, and rotation, angle theta.
T = SE2(xy, theta) is an object representing translation, xy (2x1), and rotation, angle theta
T = SE2(xyt) is an object representing translation, xyt(1) and xyt(2), and rotation, angle xyt(3). If xyt (Nx3) returns an array of SE2 objects, corresponding to the rows of xyt.
T = SE2(R) is an object representing pure rotation defined by the orthonormal rotation matrix R (2x2)
T = SE2(R, xy) is an object representing rotation defined by the orthonormal rotation matrix R (2x2) and position given by xy (2x1)
T = SE2(T) is an object representing translation and rotation defined by the homogeneous transformation matrix T (3x3). If T (3x3xN) returns an array of SE2 objects, corresponding to the third index of T
T = SE2(T) is an object representing translation and rotation defined by the SE2 object T, effectively cloning the object. If T (Nx1) returns an array of SE2 objects, corresponding to the index of T
'deg' | Angle is specified in degrees |
Convert to SE2
q = SE2.check(x) is an SE2 object where x is SE2 or 3x3 homogeneous transformation matrix.
Construct SE2 object from Lie algebra
p = SE2.exp(se2) creates an SE2 object by exponentiating the se(2) argument (3x3).
Get translational component
P.t is a column vector (2x1) representing the translational component of the rigid-body motion described by the SE2 object P.
case use P.transl().
Interpolate between SO2 objects
P1.interp(p2, s) is an SE2 object representing interpolation between rotations represented by SE3 objects P1 and p2. s varies from 0 (P1) to 1 (p2). If s is a vector (1xN) then the result will be a vector of SE2 objects.
Inverse of SE2 object
q = inv(p) is the inverse of the SE2 object p. p*q will be the identity matrix.
Test if matrix is SE(2)
SE2.ISA(T) is true (1) if the argument T is of dimension 3x3 or 3x3xN, else false (0).
SE2.ISA(T, true') as above, but also checks the validity of the rotation sub-matrix.
SO3.ISA, SE2.ISA, SO2.ISA, ishomog2
Lie algebra
se2 = P.log() is the Lie algebra augmented skew-symmetric matrix (3x3) corresponding to the SE2 object P.
Construct a new object of the same type
p2 = P.new(x) creates a new object of the same type as P, by invoking the SE2 constructor on the matrix x (3x3).
p2 = P.new() as above but defines a null motion.
Construct a random SE(2) object
SE2.rand() is an SE2 object with a uniform random translation and a uniform random orientation. Random numbers are in the interval 0 to 1.
Lift to 3D
q = P.SE3() is an SE3 object formed by lifting the rigid-body motion described by the SE2 object P from 2D to 3D. The rotation is about the z-axis, and the translational is within the xy-plane.
Set translational component
P.t = TV sets the translational component of the rigid-body motion described by the SE2 object P to TV (2x1).
Extract SO(2) rotation
q = SO2(p) is an SO2 object that represents the rotational component of the SE2 rigid-body motion.
Get homogeneous transformation matrix
T = P.T() is the homogeneous transformation matrix (3x3) associated with the SE2 object P, and has zero translational component. If P is a vector (1xN) then T (3x3xN) is a stack of rotation matrices, with the third dimension corresponding to the index of P.
Get translational component
tv = P.transl() is a row vector (1x2) representing the translational component of the rigid-body motion described by the SE2 object P. If P is a vector of objects (1xN) then tv (Nx2) will have one row per object element.
Convert to Twist object
tw = P.Twist() is the equivalent Twist object. The elements of the twist are the unique elements of the Lie algebra of the SE2 object P.
Construct SE2 object from Lie algebra
xyt = P.xyt() is a column vector (3x1) comprising the minimum three parameters of this rigid-body motion [x; y; theta] with translation (x,y) and rotation theta.
© 1990-2014 Peter Corke.