机械臂速成小指南(十四):多项式插值轨迹规划

📅 2026/8/25 7:50:58
机械臂速成小指南(十四):多项式插值轨迹规划
‍需要机械臂相关资源的同学可以在评论区中留言哦指南目录机械臂速成小指南零点五机械臂相关资源机械臂速成小指南零指南主要内容及分析方法机械臂速成小指南一机械臂发展概况机械臂速成小指南二机械臂的应用机械臂速成小指南三机械臂的机械结构机械臂速成小指南四机械臂关键部件之减速机机械臂速成小指南五末端执行器机械臂速成小指南六步进电机驱动器机械臂速成小指南七机械臂位姿的描述方法机械臂速成小指南八运动学建模标准DH法机械臂速成小指南九正运动学分析机械臂速成小指南十可达工作空间机械臂速成小指南十一坐标系的标准命名机械臂速成小指南十二逆运动学分析机械臂速成小指南十三轨迹规划概述机械臂速成小指南十四多项式插值轨迹规划机械臂速成小指南十五线性规划机械臂速成小指南十六带抛物线过渡的线性规划机械臂速成小指南十七直线规划机械臂速成小指南十八圆弧规划机械臂速成小指南十九机械臂的电路板抓取实验机械臂速成小指南二十机械臂的位姿重复性实验机械臂速成小指南二十一几何雅可比矩阵机械臂速成小指南二十二机械臂逆运动学的数值解方法机械臂速成小指南二十三Paul方法求解机械臂运动学逆解含matlab代码以下为正文多项式插值polynomial interopolation在工业中的应用十分常见常用的几种多项式插值法有直接法、拉格朗日插值法和牛顿插值法。多项式插值轨迹规划也是一种常用的关节空间轨迹规划方法。下面我们将以机械臂作点对点运动为例从理论分析、程序仿真及实际应用三个方面对多项式插值轨迹规划进行介绍。一、三次多项式cubic polynomial插值轨迹规划1.理论分析点对点运动的过程中机械臂必须在规定的时间t_f内到达目标点各个关节也从初始状态转变为期望状态。机械臂初始位姿与期望位姿均已知那么我们通过逆运动学运算就可以得到这两个状态下的关节变量。设初始时刻为t_0则我们需要将每一个关节在t_0t_f时间内的角度变化与时间的关系使用三次多项式进行描述该多项式称为关节角度函数。以关节1为例初始角度为θ_0期望角度为θ_f。那么关节1的关节角度函数曲线一定通过t_0t_0与点t_ft_f。关节1角度曲线可能的几种形状为了确定该三次多项式的4个系数我们必须找到4个约束条件。我们已经知道了初始时刻与终止时刻机械臂的状态这就可以确定2个约束条件即此时还缺少2个约束条件。由于机械臂进行的是点对点运动机械臂的各关节角速度在t_0与t_f时刻均为0可表示为该三次多项式可表示为则关节角速度与关节角加速度可分别表示为上述三次多项式的一次导数与二次导数即将4个约束条件与上式联立即可得到三次多项式的4个系数即2.程序仿真使用MATLAB中的RTB工具箱对该轨迹规划方法进行仿真首先定义3个数组用于储存机械臂关节的角度、角速度及角加速度用于绘制图像。q zeros(step,N); %初始化机械臂关节的角度 qd zeros(step,N); %初始化机械臂关节的角速度 qdd zeros(step,N); %初始化机械臂关节的角加速度第二步按照上一小节中的计算思路计算多项式的4个系数。a_0 init_ang; %三次多项式的第1个系数 a_1 zeros(1,6); %三次多项式的第2个系数 a_2 3/(step^2)*(targ_ang-init_ang); %三次多项式的第3个系数 a_3 -2/(step^3)*(targ_ang-init_ang); %三次多项式的第4个系数第三步计算正运动学方程、输出末端轨迹并进行动画演示。Trobot.fkine(q); %运动学正解 nTT.T; %转为齐次变换矩阵 plot3(squeeze(nT(1,4,:)),squeeze(nT(2,4,:)),squeeze(nT(3,4,:))); %输出末端轨迹 title(三次多项式插值轨迹); robot.plot(q); %动画演示最后一步将关节的角度曲线、角速度曲线以及角加速度曲线绘制出来。figure(f) subplot(6, 1, 1); plot(q(:,1)); title(关节1角度(三次多项式插值));机械臂轨迹规划之三次多项式插值规划matlab仿真程序https://download.csdn.net/download/m0_53966219/87521943?spm1001.2014.3001.55033.编程实现与仿真不同的一点是在对机械臂进行实际控制时是要考虑到轨迹点生成个数对于轨迹精度的影响的。因为关节变量与时间的函数是连续的但我们所发送给上位机的指令实际上是一个个离散的轨迹点对应的关节变量。生成的轨迹点太多运算量会增加生成的轨迹点太少机械臂的运行轨迹就会不够平滑。本文使用python编写上位机完成轨迹规划中的运算。首先需要检测轨迹规划运算结果是否在机械臂的可达工作空间以及关节限度之内。if (J1newAng J1NegAngLim or J1newAng J1PosAngLim) or (J2newAng J2NegAngLim or J2newAng J2PosAngLim) or (J3newAng J3NegAngLim or J3newAng J3PosAngLim) or (J4newAng J4NegAngLim or J4newAng J4PosAngLim) or (J5newAng J5NegAngLim or J5newAng J5PosAngLim) or (J6newAng J6NegAngLim or J6newAng J6PosAngLim or TrackNew 0 or TrackNew TrackLength): almStatusLab.config(textAXIS LIMIT, bg red) almStatusLab2.config(textAXIS LIMIT, bg red) tab1.runTrue 0其次对于每一个关节进行运算以关节1为例J1calcAng float(J1newAng) - float(J1AngCur) J1steps int(J1calcAng / J1DegPerStep) J1StepCur J1StepCur J1steps #Invert J1AngCur round(J1NegAngLim (J1StepCur * J1DegPerStep),2) #四舍五入小数点为2 J1steps str(J1steps)最后生成指令字符串。J1curAngEntryField.delete(0, end) J1curAngEntryField.insert(0,str(J1AngCur))使用AE追踪机械臂末端在空间中的运行轨迹二、五次多项式quintic polynomial插值轨迹规划1.理论分析当我们使用五次多项式对关节空间轨迹进行插值时需要求解对应的6个系数即与上文相比我们需要再设定2个约束条件。为保证关节速度函数的连续假设在t_0与t_f时刻机械臂的各关节角加速度为0即此时我们可以唯一确定一个五次多项式同样令t_00该多项式可表示为将6个约束条件与上式联立可得到五次多项式的系数为2.程序仿真我们使用MATLAB的RTB工具箱中自带函数jtraj()完成五次多项式轨迹规划的仿真[qt,qdt,qddt] jtraj(q0, q1, tv, qd0, qd1)其中qt、qdt、qddt分别为关节的旋转角度、角速度以及角加速度q0、q1分别为关节的初始角度与终止角度tv为生成的轨迹点个数qd0与qd1分别为机械臂在起始点处及终止点处的速度默认为0。关键代码段如下所示。%轨迹规划 f 1; figure(f) step 50; [q ,qd, qdd]jtraj(init_ang,targ_ang,step); %五次多项式轨迹得到关节角度角速度角加速度50为采样点个数 grid on Trobot.fkine(q); %根据插值得到末端执行器位姿 nTT.T; plot3(squeeze(nT(1,4,:)),squeeze(nT(2,4,:)),squeeze(nT(3,4,:)));%输出末端轨迹其余代码与三次多项式轨迹规划仿真一致。机械臂轨迹规划之五次多项式插值规划matlab仿真代码https://download.csdn.net/download/m0_53966219/87521950?spm1001.2014.3001.5503