3D - Matlab/Octave 轨迹生成样条

3D - spline for trajectory generation in Matlab/Octave

我目前正在尝试在 Octave 中为机器人末端执行器创建 3D 轨迹。 末端执行器应该访问一组 3D 点 X = [x_1 ,..., x_n],其中 x_i = [xcoord_i; ycoord_i; zcoord_i]。简单的线性插值会导致机器人运动不平稳。因此,我想生成一个 3D 样条曲线 曲线,在我的参考点之间生成 N 个 3D 点。存在用于此类任务的 Matlab 实现 (documentation)。你能给我一个关于如何在 Octave?

中解决此类问题的提示吗?

您可以使用 interp1X(1,:)X(2,:)X(3,:) 上进行三个一维样条插值,请参阅 https://www.gnu.org/software/octave/doc/interpreter/One_002ddimensional-Interpolation.html

这应该有效:

t = 1:n;
ti = 0:0.01:n;
xi = interp1(t, X(1,:), ti, "spline"); 
yi = interp1(t, X(2,:), ti, "spline"); 
zi = interp1(t, X(3,:), ti, "spline"); 
Xi = [xi; yi; zi];

当然,您应该根据自己的需要调整tti