-
Notifications
You must be signed in to change notification settings - Fork 21
MATLAB toolbox changes
Peter Corke edited this page Jul 2, 2024
·
4 revisions
RVC3 uses, as much as possible, MATLAB supported tooling. Many functions used are from MATLAB 23a and later releases. A small number of functions still have no MATLAB equivalents and provided in the RVC3 Toolbox.
RVC2 function | MathWorks replacement | RVC3 toolbox | Notes |
---|---|---|---|
randinit | rng("default") | ||
numrows(a) | size(a,1) | ||
numcols(a) | size(a,2) | ||
mplot | stackedplot | mplot(t, q, "label", {..}) can be replaced with stackedplot(t, q, "DisplayLabels", [...], "GridVisible", 1) | |
tpoly | quinticpolytraj | ||
lspb | trapveltraj | New function doesn't have visualization | |
mtraj | quinticpolytraj, trapveltraj | New function doesn't have visualization | |
mstraj | trapveltraj | ||
ctraj | transformtraj | ||
Polygon | polyshape | Introduced in 17b, has similar functionality | |
colnorm | vecnorm |
RVC2 function | MathWorks replacement | RVC3 toolbox | Notes |
---|---|---|---|
angvec2r | axang2rotm | angvec2r(theta, v) = axang2rotm([v theta]) |
|
delta2tr | delta2tform | ||
e2h | cart2hom | e2h | e2h(x) = cart2hom(x')' |
eul2r | eul2rotm | eul2r(a,b,c) = eul2rotm([a,b,c], "ZYZ") |
|
eul2tr | eul2tform | ||
h2e | hom2cart | h2e | h2e(x) = hom2cart(x')' |
isrot2 | isrotm2d | ||
oa2r | oa2rotm | ||
oa2tr | oa2tform | ||
plot_circle | plotcircle | ||
plot_ellipse | plotellipse | ||
plot_ellipse | plotellipsoid | ||
plot_homline | plothomline | ||
plot_point | plotpoint | ||
plot_vehicle | plotvehicle | ||
plot_poly | plotpoly | Could potentially use polyshape/plot | |
Plucker | Plucker | ||
Quaternion | quaternion | methods are different | |
r2t | se3 | rotm2tform | |
rt2tr | se3 | rotm2tform | rt2tr(R,t) = se3(R,t) |
rot2 | rotm2d | ||
rotx | rotmx | ||
roty | rotmy | ||
rotz | rotmz | ||
SE3.Ad | tform2adjoint | ||
SE3.velxform | velxform | ||
rpy2r | eul2rotm | eul2rotm([a,b,c], 'xyz') = rpy2r(c,b,a, 'xyz') |
|
rpy2tr | eul2tform | eul2tform([a,b,c], 'xyz') = rpy2tr(c,b,a, 'xyz') |
|
skew | vec2skew | ||
skewa | vec2skewa | ||
tr2angvec | tform2axang | HTM case: tr2angvec returns 2 arguments, theta and v. tform2axang returns a single 4-vector, which is a concatenation of [v, theta] | |
tr2angvec | rotm2axang | RM case: tr2angvec returns 2 arguments, theta and v. rotm2axang returns a single 4-vector, which is a concatenation of [v, theta] | |
tr2delta | tform2delta | ||
tr2eul | tform2eul | For HTM case: tr2eul(T) = tform2eul(T, "ZYZ")
|
|
tr2eul | rotm2eul | For RM case: tr2eul(R) = rotm2eul(R, "ZYZ")
|
|
t2r | tform2rotm | ||
tr2rpy | rotm2eul | HTM case: tr2rpy(T,'abc') = flip(tform2eul(T,"abc"), 2)
|
|
tr2rpy | rotm2eul | RM case: tr2rpy(R,'abc') = flip(rotm2eul(R,"abc"), 2)
|
|
tr2rt | tform2trvec, trvec2tform | [R,t]=tr2rt(T) R=tform2rotm(T), t=tform2trvec(T)
|
|
tranimate | animtform | ||
tranimate2 | animtform2d | ||
transl | trvec2tform | transl(t)=trvec2tform(t) |
|
transl | tform2trvec | transl(T)=tform2trvec(T) |
|
trexp | expm |
trexp is efficient analytical form, but is actually slower than expm
|
|
tripleangle | tripleangleApp | ||
trlog | logm |
trlog is an efficient analytical solution for case of SO3/SE3 matrices, logm is much 7x slower |
|
trnorm | tformnorm | ||
trot2 | tformr2d | ||
trotx | tformrx | ||
troty | tformry | ||
trotz | tformrz | ||
trplot | plottform | ||
trplot2 | plottform2d | ||
Twist | Twist2d | For SE(2) | |
Twist | Twist | For SE(3) | |
vex | skew2vec | ||
vexa | skewa2vec |
All angles are in radians. The "deg" option (angles in degrees instead of radians) does not exist for any replacement functions. Use deg2rad or rad2deg if required.
RVC3 function names conform to MathWorks naming and argument conventions.
RVC3 Uncyclo