matlab 轨迹生成函数

jtraj

计算两个构型之间的关节空间轨迹

[q, qd, qdd] = jtraj(q0, qf, m)是关节空间轨迹q(MxN),其中关节坐标从q0(1xN)变化到qf(1xN)。使用五次(5阶)多项式,并默认速度和加速度为零边界条件。假设时间以m步从0到1变化。关节速度和加速度可以分别以qd(MxN)和qdd(MxN)的形式随机返回。轨迹q,qd和qdd是MxN矩阵,每个时间步有一行,每个关节有一列。

[ q, qd, qdd] = jtraj( q0, qf, m, qd0, qdf)如前所述,但也规定了轨迹的初始和最终关节速度。

[ q, qd, qdd] = jtraj( q0, qf, T)同上,但轨迹长度由时间向量T ( Mx1 )的长度定义。

[ q, qd, qdd] = jtraj( q0, qf, T, qd0, qdf)如上,但指定轨迹和时间向量的初始和最终关节速度。

ctraj

两个位姿之间的笛卡尔轨迹。

tc = ctraj(T0, T1, n)是一个从位姿T0到T1的笛卡尔轨迹(4x4xN),其中n个点沿路径遵循梯形速度曲线。笛卡尔轨迹是一个齐次变换序列,最后一个下标是点索引,即T( :, :, i)是沿路径的第i个点。

tc = ctraj( T0, T1, s)如上,但s(Nx1)的元素指定沿路径的分数距离,这些值在[0 1]范围内。第i个点对应路径上的一个距离s(i)。

若T0或T1等于[ ],则取其为单位矩阵。
在第二种情况下,S可以由一个标量轨迹生成器生成,如TPOLY或LSPB (默认)。

mstraj

多段多轴轨迹

traj = mstraj( p, qdmax, tseg, q0, dt, tacc, Options)是一条N轴同时通过M段的轨迹( KxN )。每个片段为直线运动,片段之间用多项式混合连接。轴从q0(1xN)开始,通过矩阵p(MxN)的行定义的点穿过M - 1,在p的最后一行定义的点结束。轨迹矩阵每时间步有一行,每轴有一列。轨迹K中的步数是过孔点数和所适用的时间或速度限制的函数。

  • P(MxN)是一个过孔点矩阵,每过孔点1行,每轴1列。最后一个经过点即为终点。
  • QDMAX (1xN)为不能超过的轴速限制,
  • TSEG ( 1xM )是每个K片段的持续时间
  • Q0 ( 1xN )为初始坐标轴
  • DT为时间步长
  • TACC ( 1x1 )该加速时间适用于所有分段过渡
  • TACC ( 1xM )为每个片段的加速时间,TACC(i)为从片段i过渡到片段i + 1的加速时间。TACC(1)也为第1段起始时刻的加速时间。

traj = mstraj( segment, qdmax, q0, dt, tacc, qd0, qdf, Options),但额外指定了初始和最终的轴心速度( 1xN )。

  • 只需指定QDMAX或TSEG中的一个,另一个设置为[ ]。
  • 如果没有指定输出参数,则绘制轨迹。
  • 路径长度K是过孔点数Q0、DT和TACC的函数。
  • 最终过孔点P(end, :)即为终点。
  • 运动有M段,从Q0到P(1, :)到P(2,:)…到P(end,:)。
  • 所有轴同时到达其过孔点。
  • 可以用于创建关节空间轨迹,其中每个轴是关节坐标。
  • 可以用来创建笛卡尔轨迹,其中"轴"对应于RPY或欧拉角形式的平移和定向。

mtraj

两点之间的多轴运动轨迹

[q, qd, qdd] = mtraj(tfunc, q0, qf, m)是根据m步标量轨迹函数tfunc从构型q0 (1xN)变化到qf (1xN)的多轴轨迹( MxN )。关节速度和加速度分别为qd (MxN)和qdd (MxN)。轨迹输出为每时间步一行,每轴一列。

轨迹的形状由标量轨迹函数tfunc给出
[S,SD,SDD] = TFUNC(S0, SF, M);

而tfunc的可能取值包括梯形轨迹的@lspb,或者多项式轨迹的@tpoly。

[q, qd, qdd] = mtraj( tfunc, q0, qf, T)如上所述,但T (Mx1)是一个时间向量,它决定了轨迹上的点的数量。

  • 如果没有指定输出参数Q,则绘制QD和QDD。
  • 当TFUNC为@ tpoly时,除不能指定初始速度外,其结果与JTRAJ在功能上是等价的。JTRAJ在计算效率上略高。

tpoly

生成标量多项式轨迹

[s, sd, sdd] = tpoly( s0, sf, m)是一个标量轨迹( Mx1 ),使用五次(5阶)多项式以m步从s0到sf平滑变化。速度和加速度可以选择地返回为sd ( Mx1 )和sdd ( Mx1 )。

tpoly( s0, sf, m)如上,但在单个图中绘制s,sd和sdd随时间的变化。

[s, sd, sdd] = tpoly(s0, sf, T)如上所述,但根据时间向量T(Mx1)的长度指定轨迹。

lspb

线性段用抛物线混合

[s, sd, sdd] = lspb(s0, sf, m)是一个标量轨迹(Mx1),它使用一个常速段和抛物线混合轨道(一条梯形路径)以m步从s0到sf平滑变化。速度和加速度可以选择地返回为sd(Mx1)和sdd(Mx1)。

[ s, sd, sdd] = lspb( s0, sf, m, v)如上,但规定了线性段的速度,通常是自动计算的。

[ s, sd, sdd] = lspb( s0, sf, T)如上所述,但根据时间向量T ( Mx1 )的长度指定轨迹。

[s , sd, sdd] = lspb( s0, sf, T, v)如上,但规定了通常自动计算的线性段的速度和一个时间向量。

lspb( s0, sf, m, v)如上,但在单个图中绘制s,sd和sdd随时间的变化。

trinterp

插值齐次变换

T = trinterp(

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余加木

想喝蜜雪冰城柠檬水(≧≦)/

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值