067 连续轨迹运动:线性插值一、从一次现场调试说起去年在调试一台三轴点胶机时,遇到一个诡异现象:点胶路径明明在CAD里画的是直线,实际跑出来却在拐角处堆胶,像被蚊子叮了一口。检查了速度规划、加减速参数,都没问题。最后用示波器抓了电机编码器波形,才发现问题出在插补器上——相邻两个点位之间,控制器直接跳过去了,没有做中间点的计算。那台设备的运动控制器用的是老款DSP,默认的直线插补只做了起点和终点的位置计算,中间路径全靠伺服自身的速度环去“追”。结果就是:当两个点距离稍远,伺服追不上位置指令的突变,实际轨迹就变成了弧线。这个案例让我意识到,线性插值看似简单,但在嵌入式实时系统里,实现细节决定了轨迹质量。二、线性插值的本质:不是“画直线”,而是“时间上的均匀分配”很多人以为线性插值就是两点之间画一条直线,这没错,但站在运动控制的角度,更准确的描述是:在给定的时间周期内,让每个轴的位置按恒定速度从起点运动到终点。假设起点P0(x0, y0),终点P1(x1, y1),运动时间T,插补周期Δt(比如1ms)。那么每个周期需要计算:Δx = (x1 - x0) / (T / Δt) Δy = (y1 - y0) / (T / Δt)每个周期位置累加:x += Δx, y += Δy这里有个坑:T/Δt不一定是整数。如果T=10ms,Δt=1ms,正好10步。但如果T=10.5ms,最后一步就会多出0.5ms的