Skip to content

MATLAB toolbox changes

Peter Corke edited this page Jul 2, 2024 · 4 revisions

Migrating from RVC2 to RVC3

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.

Utility functions

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

Spatial operations: transforms, triple angles, quaternions etc.

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.

Clone this wiki locally