时间与运动
上一章主要介绍了在二维和三维空间中如何描述位姿。这一章则将上章拓展到对象,其位姿是时间的函数。
分两个部分,第一个部分主要讨论如何产生一系列短暂的位姿序列,一条足够光滑的从起始位姿到终止位姿的轨迹;
第二部分主要讨论位姿改变速率的概念,即其导数,以及如何将从机械学角度比如速度和角速度等方面将这些概念
联系起来。
轨迹
注意路径(path)和轨迹(trajectory)的区别,路径是指从A到B的空间概念,而轨迹是有特定时间点的一条路径。
轨迹的一个重要特征就是光滑(包括位置和姿态都关于时间是光滑的)。
接下来讨论如何在一维空间中产生光滑的轨迹,然后扩展到多维空间,然后扩展到分线段的轨迹。
一维光滑轨迹
我们从一个时间函数开始讨论。这个函数的特点是其初始值和终止值是给定的,并且它是光滑的。光滑在这里意味着其一阶微分是连续的。
多项式函数就是这样一个函数。我们经常使用五次多项式,其加速度是光滑的三次曲线,加加速度是光滑的抛物线。
Matlab机器人工具箱提供了函数tpoly来产生 一个五次多项式轨迹:
s=tpoly(0,1,50);
产生一个0到1之间的五次轨迹,时间间隔是50次。
我们也可以得到其速度和加速度曲线:
[s,sd,sdd]=tpoly(0,1,50);
其中sd,sdd就分别是速度和加速度。可以用plot(s),plot(sd)等将这些曲线绘制出来
也可以在tpoly函数中给出初始值和终止值:
s=tpoly(0,1,50,0.5,0);
其中0.5