Skip to content

MATLAB toolbox changes

remo-pillat edited this page Jul 31, 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 are provided in the RVC3 Toolbox.

Utility functions

RVC2 function MathWorks replacement RVC3 toolbox Notes
colnorm vecnorm
ctraj transformtraj
lspb trapveltraj MathWorks function doesn't have visualization, but example visualizations are in documentation
mplot stackedplot mplot(t, q, "label", {..}) can be replaced with stackedplot(t, q, "DisplayLabels", [...], "GridVisible", 1)
mstraj trapveltraj
mtraj quinticpolytraj, trapveltraj MathWorks function doesn't have visualization, but example visualizations are in documentation
numcols(a) size(a,2)
numrows(a) size(a,1)
Polygon polyshape Introduced in 17b, has similar functionality
randinit rng("default")
tpoly quinticpolytraj

Spatial Math operations: transforms, triple angles, quaternions etc.

RVC2 function MathWorks replacement RVC3 toolbox Notes
angvec2r axang2rotm angvec2r(theta, v) ~ axang2rotm([v theta])
delta2tr delta2tform Renamed in RVC3 to use "tform" for 4x4 transform used in other functions
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 Renamed in RVC3 to use "rotm" for rotation matrix used in other functions
oa2r oa2rotm Renamed in RVC3 to use "rotm" for rotation matrix used in other functions
oa2tr oa2tform Renamed in RVC3 to use "tform" for transform matrix used in other functions
plot_circle plotcircle
plot_ellipse plotellipse
plot_ellipse plotellipsoid
plot_homline plothomline
plot_point plotpoint
plot_vehicle plotvehicle
plot_poly plotpoly An alternative in MATLAB is polyshape/plot
Plucker Plucker
Quaternion quaternion methods are different
r2t se3 and rotm2tform
rt2tr se3 and 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 logm is slower than trlog
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

Robotics Functionality

RVC2 function MathWorks replacement RVC3 toolbox Notes

Vision Functionality

RVC2 function MathWorks replacement RVC3 toolbox Notes

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.