rt_ctraj - compute a Cartesian trajectory between two points[view code]
This function returns a Cartesian trajectory (straight line motion) TC from the point represented by homogeneous transform T0 to T1. The number of the point along the path is n or the length of the given vector R. For the second case R is a vector of distances along the path (in the range 0 to 1) for each point. The first case has the points equally spaced, but different spacing may be specified to achieve acceptable acceleration profile.
// To create a Cartesian path with smooth acceleration we can use the
// rt_jtraj() function to create the path vector r with continuous
// derivatives.
T0 = rt_transl([0, 0, 0]); // starting point
T1 = rt_transl([-1, 2, 1]); // arrival point
t = [0:0.056:10]; // time vector
r = rt_jtraj(0, 1, t); // path vector with continuous derivatives
TC = rt_ctraj(T0, T1, r); // Cartesian trajectory
// plot results
cfh = scf();
drawlater();
xgrid(); xtitle("", "Time (s)", ""); plot(t, rt_transl(TC));
a1 = cfh.children; a1.data_bounds = [0 -1; 10 2];
a1.tight_limits = "on"; a1.auto_ticks = ["off" "off" "off"];
a1.x_ticks = tlist(["ticks", "locations", "labels"],..
[0 1 2 3 4 5 6 7 8 9 10],..
["0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"]);
a1.y_ticks = tlist(["ticks", "locations", "labels"],..
[-1 -0.5 0 0.5 1 1.5 2], ["-1" "-0.5" "0" "0.5" "1" "1.5" "2"]);
drawnow();
rt_qinterp, rt_transl, rt_trinterp,
Corke, P.I. "A Robotics Toolbox for MATLAB", IEEE Robotics and Automation Magazine, Volume 3(1), March 1996, pp. 24-32
R. P. Paul, Robot Manipulators: Mathematics, Programming and Control. Cambridge, Massachusetts: MIT Press, 1981.