机器人三次多项式插值和带抛物线过渡的线性插值法详解

机器人三次多项式插值和带抛物线过渡的线性插值法详解

在机器人轨迹规划中,三次多项式插值和**带抛物线过渡的线性插值(LSPB)**是两种最基础、最常用的方法。它们分别对应"平滑但不可控速度"和"可控速度但加速度有突变"的典型场景。

下面详细拆解这两种方法。


一、三次多项式插值

这种方法为每一段关节空间轨迹生成一个三次多项式函数 θ(t)\theta(t)θ(t),保证位置和速度在起点和终点连续。

1. 数学模型

设单关节从起点 θ0\theta_0θ0 运动到终点 θf\theta_fθf,总时间 tft_ftf,起点速度为 v0v_0v0,终点速度为 vfv_fvf。

三次多项式形式:

θ(t)=a0+a1t+a2t2+a3t3 \theta(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3 θ(t)=a0+a1t+a2t2+a3t3

速度:

θ˙(t)=a1+2a2t+3a3t2 \dot{\theta}(t) = a_1 + 2a_2 t + 3a_3 t^2 θ˙(t)=a1+2a2t+3a3t2

代入边界条件:

θ(0)=θ0=a0θ˙(0)=v0=a1θ(tf)=θf=a0+a1tf+a2tf2+a3tf3θ˙(tf)=vf=a1+2a2tf+3a3tf2 \begin{aligned} \theta(0) &= \theta_0 = a_0 \\ \dot{\theta}(0) &= v_0 = a_1 \\ \theta(t_f) &= \theta_f = a_0 + a_1 t_f + a_2 t_f^2 + a_3 t_f^3 \\ \dot{\theta}(t_f) &= v_f = a_1 + 2a_2 t_f + 3a_3 t_f^2 \end{aligned} θ(0)θ˙(0)θ(tf)θ˙(tf)=θ0=a0=v0=a1=θf=a0+a1tf+a2tf2+a3tf3=vf=a1+2a2tf+3a3tf2

解得:

a0=θ0,a1=v0,a2=3(θf−θ0)−(2v0+vf)tftf2,a3=−2(θf−θ0)+(v0+vf)tftf3 a_0 = \theta_0,\quad a_1 = v_0,\quad a_2 = \frac{3(\theta_f - \theta_0) - (2v_0 + v_f)t_f}{t_f^2},\quad a_3 = \frac{-2(\theta_f - \theta_0) + (v_0 + v_f)t_f}{t_f^3} a0=θ0,a1=v0,a2=tf23(θf−θ0)−(2v0+vf)tf,a3=tf3−2(θf−θ0)+(v0+vf)tf

2. 典型情况:起点与终点速度为零

若 v0=vf=0v_0 = v_f = 0v0=vf=0:

θ(t)=θ0+3(θf−θ0)tf2t2−2(θf−θ0)tf3t3 \theta(t) = \theta_0 + \frac{3(\theta_f - \theta_0)}{t_f^2} t^2 - \frac{2(\theta_f - \theta_0)}{t_f^3} t^3 θ(t)=θ0+tf23(θf−θ0)t2−tf32(θf−θ0)t3

此时加速度为线性变化(因为三次多项式求导二次为一次函数),起点和终点加速度不为零(分别为 6(θf−θ0)tf2\frac{6(\theta_f - \theta_0)}{t_f^2}tf26(θf−θ0) 和 −6(θf−θ0)tf2-\frac{6(\theta_f - \theta_0)}{t_f^2}−tf26(θf−θ0))。

3. 特点

  • 优点:位置、速度、加速度均连续(二阶连续),无突变,对电机冲击小。
  • 缺点
    • 中间段速度不可控,可能超过关节极限。
    • 加速度在起点和终点不为零(若要求起止速度为零),意味着需要电机瞬间提供较大加速度。
    • 只能保证经过端点,不能精确经过中间点(除非拼接多段多项式)。

4. 适用场景

  • 单段点到点运动。
  • 对冲击敏感,且对速度曲线形状无特殊要求的场合。

二、带抛物线过渡的线性插值(LSPB)

这种方法为了克服纯线性插值(梯形速度曲线)在速度转折点加速度无穷大的问题,在两端用抛物线(匀加速/减)过渡,中间段保持匀速。

1. 基本思想

  • 加速段 :恒定加速度 aaa(抛物线形状的位置曲线)。
  • 匀速段 :速度恒定 vmaxv_{\text{max}}vmax。
  • 减速段 :恒定减速度 −a-a−a(对称设计)。

2. 数学推导(以对称 LSPB 为例,起点终点速度为零)

设总行程 θf−θ0=D\theta_f - \theta_0 = Dθf−θ0=D,总时间 tft_ftf,加速度 aaa(正值)。

加速段时间 tat_ata,加速度段位移 12ata2\frac{1}{2} a t_a^221ata2。

由于对称,加速和减速位移相等,匀速段位移 D−ata2D - a t_a^2D−ata2,匀速段时间 tm=D−ata2atat_m = \frac{D - a t_a^2}{a t_a}tm=ataD−ata2。

总时间:

tf=2ta+tm=2ta+D−ata2ata=Data+ta t_f = 2t_a + t_m = 2t_a + \frac{D - a t_a^2}{a t_a} = \frac{D}{a t_a} + t_a tf=2ta+tm=2ta+ataD−ata2=ataD+ta

给定 tft_ftf 和 DDD,需选择 aaa 或 tat_ata 满足 ata≤D/2a t_a \le D/2ata≤D/2(保证有匀速段)且 ata2≤Da t_a^2 \le Data2≤D。

3. 位置分段表达式

设 tb=tat_b = t_atb=ta(加速结束时间),tc=tf−tat_c = t_f - t_atc=tf−ta(减速开始时间),vmax=atav_{\text{max}} = a t_avmax=ata。

  • 加速段 (0≤t≤ta0 \le t \le t_a0≤t≤ta):

θ(t)=θ0+12at2 \theta(t) = \theta_0 + \frac{1}{2} a t^2 θ(t)=θ0+21at2

  • 匀速段 (ta≤t≤tf−tat_a \le t \le t_f - t_ata≤t≤tf−ta):

θ(t)=θ0+ata(t−ta/2) \theta(t) = \theta_0 + a t_a (t - t_a/2) θ(t)=θ0+ata(t−ta/2)

  • 减速段 (tf−ta≤t≤tft_f - t_a \le t \le t_ftf−ta≤t≤tf):

θ(t)=θf−12a(tf−t)2 \theta(t) = \theta_f - \frac{1}{2} a (t_f - t)^2 θ(t)=θf−21a(tf−t)2

4. 特点

  • 优点
    • 加速度有限(仅在起点、终点、加速‑匀速交接点有阶跃,但不为无穷大)。
    • 速度可严格控制在 vmaxv_{\text{max}}vmax 以内,适合受限于关节速度的机器人。
    • 计算简单,实时性好。
  • 缺点
    • 加速度不连续(在 tat_ata 和 tf−tat_f - t_atf−ta 处有突变),理论上会激起机械振动。
    • 需要提前选定 aaa 和 tft_ftf 或 aaa 和 vmaxv_{\text{max}}vmax,若行程太短可能无匀速段,自动退化为三角形速度曲线。

5. 适用场景

  • 工业机器人快速搬运、喷涂等对路径精度要求不高但需严格控制最大速度的场合。
  • 多用于关节空间笛卡尔空间直线插补(与直线插补结合,变成"加速‑匀速‑减速"直线运动)。

三、两者对比表

特性 三次多项式插值 抛物线过渡线性插值 (LSPB)
加速度连续性 连续(线性变化) 不连续(在过渡点阶跃)
速度控制 中间速度不可预测,可能超限 能严格限制最大速度
计算量 简单,仅需解 4 个系数 需要判断是否有匀速段,计算过渡时间
对电机冲击 较小(加速度连续) 较大(加速度突变)
适用场景 精密装配、高平滑轨迹 高速搬运、点到点快速运动
过中间点方式 多段三次多项式拼接(需额外约束) 常与 PVT 模式结合,或使用高阶多项式过渡

四、实际应用建议

  • 若机器人负载较轻、刚性较好 (如 SCARA、小型六轴),且希望运动极致平滑,优先选择五次多项式 (加速度也连续)而不是三次------三次的加速度在端点不为零,仍有一定冲击。

    但若只能用三次多项式,注意检查中间速度是否超过关节限位。

  • 在通用工业机器人轨迹规划中 ,需要明确的"加‑匀‑减"阶段以便于时间最优控制,LSPB 是一个实用的选择 。实际代码中常将 LSPB 与速度前瞻S 形曲线(加速度也连续,但计算更复杂)结合使用。

  • 一个常见陷阱 :LSPB 中加速度突变会导致理论上的无穷大加加速度(jerk)。对于大负载或高精度机器人,这会引起残余振动。此时应改用 S 形速度曲线 (七段式,加加速度有限)或五次多项式

相关推荐
AI科技星2 小时前
基于代数拓扑与等腰梯形素数对网格【乖乖数学】
人工智能·算法·决策树·机器学习·数学建模·数据挖掘·机器人
爆打维c3 小时前
5.ROS话题通信编程(万字详解)
机器人
东京老树根3 小时前
Arduino - 入门03 - Arduino编程基础 Arduino常用函数-digitalRead
单片机·机器人
东京老树根3 小时前
Arduino - 入门01 - Arduino,SimulIDE 简介
单片机·机器人
YJlio12 小时前
7.4.5 Windows 11 企业网络连接与网络重置实战:远程访问、本地策略与故障恢复
前端·chrome·windows·python·edge·机器人·django
xwz小王子13 小时前
Science Robotics基础模型正在改写机器人集群的“游戏规则”
数据库·人工智能·机器人
沫儿笙19 小时前
机器人二保焊焊接节气装置
人工智能·机器人
2601_957964871 天前
无人巡检车锂电池包完整设计方案要求【浩博电池】
机器人
ZPC82101 天前
CPU 核心隔离 + 线程绑核 + 实时优先级 SCHED_FIFO
人工智能·算法·计算机视觉·机器人