02-二自由度机械臂—运动学分析

在前文,已经验证二自由度机械臂在静止状态下,不同方法得到的末端点P的位置坐标值是一致的,此文将简单介绍一下二自由度机械臂正运动学、逆运动学分析。

2.1 正运动学

给出二自由度机械臂两个关节的运动曲线,让机械臂运动,得到末端点P的位置曲线。两个关节角度变化如下所示:

让机械臂按照上述关节角度曲线运动,对比几种方法计算的末端点P的位置曲线。

(1)RT & MDH & MATLAB对比

采用前文所述的机器人工具箱(RT )、改进DH法(MDH )和几何法(MATLAB ),根据上文的关节角度轨迹,计算机械臂末端点P的位置变化曲线。三种方法的结果如下图所示:

为了更方便对比不同方法的计算结果,分别对RT&MDH、RT&MATLAB计算的结果进行作差,具体如下:

RT和MDH计算结果的差值:

RT和MATLAB计算结果的差值:

可以看到,RT、MDH和MATLAB这三种方法计算的结果十分接近,误差几乎为零!

(2)RT和Solidworks对比

以机器人工具箱(RT)为基准,与Soldiworks仿真结果进行对比。在Solidworks中,利用Motion模块进行运动学仿真,如下所示:

采集末端点P的位置曲线,与RT计算的结果进行对比,如下所示:

RT和Solidworks计算结果的差值:

可以看出,利用Solidworks进行运动学仿真,其仿真结果准确性虽然不如机器人工具箱,但两者的误差也较小,用来做简单的运动学仿真足以(由于利用Solidworks可以很方便的做运动学、动力学仿真,笔者使用该方法进行仿真较多)。

(3)RT和Simscape对比

以机器人工具箱(RT)为基准,与Simscape仿真结果进行对比。在Simscape中进行运动学仿真,如下所示:

采集末端点P的位置曲线,与RT计算的结果进行对比,如下所示:

RT和Simscape计算结果的差值:

可以看出,利用Simscape进行运动学仿真,其仿真结果准确性较高,但是前期搭建Simscape仿真模型较为麻烦,不过后期如果要做控制相关的课题,离不开Simscape仿真平台。

2.2 逆运动学

给定末端点P的位置坐标( x p , y p x_p,y_p xp,yp),求解二自由度机械臂的关节角度( θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2)

(1)公式推导

在直角三角形OPC中有: L 0 = x p 2 + y p 2 L _ { 0 } = \sqrt { x _ { p } ^ { 2 } + y _ { p } ^ { 2 } } L0=xp2+yp2 , θ 0 = arctan ⁡ ( y p / x p ) \theta_0=\arctan(y_p/x_p) θ0=arctan(yp/xp), x p = L 0 cos ⁡ θ 0 x_p=L_0\cos\theta_0 xp=L0cosθ0, y p = L 0 sin ⁡ θ 0 y_p=L_0\sin\theta_0 yp=L0sinθ0

求解 θ 1 \theta_1 θ1,有公式:

平方相加后为:

由于: x p = L 0 cos ⁡ θ 0 x_p=L_0\cos\theta_0 xp=L0cosθ0, y p = L 0 sin ⁡ θ 0 y_p=L_0\sin\theta_0 yp=L0sinθ0,上式可以写成:

也即:

解得:

求解 θ 2 \theta_2 θ2:

<1> 当 x p − L 1 cos ⁡ θ 1 = 0 x_p-L_1\cos{\theta_1}=0 xp−L1cosθ1=0时,有 cos ⁡ ( θ 1 + θ 2 ) = 0 \cos(\theta_1 + \theta_2) = 0 cos(θ1+θ2)=0,即:

当 y p > L 1 sin ⁡ θ 1 y_p\ >\ L_1\sin\theta_1 yp > L1sinθ1,满足 θ 1 + θ 2 = 9 0 ∘ \theta_1 + \theta_2=90^{\circ} θ1+θ2=90∘,有以下四类情况:

此时,可得:

当 y p < L 1 sin ⁡ θ 1 y_p\ <\ L_1\sin\theta_1 yp < L1sinθ1,满足 θ 1 + θ 2 = − 9 0 ∘ \theta_1 + \theta_2=-90^{\circ} θ1+θ2=−90∘,有以下四类情况:

此时,可得:

<2>当 x p − L 1 cos ⁡ θ 1 ≠ 0 x_p-L_1\cos{\theta_1}\neq0 xp−L1cosθ1=0时,根据下式:

两式相除,有:

因此可得:

(2)验证

验证轨迹1 :让二自由度机械臂末端点P以(0.1,0,1)m为圆心,0.02m为半径画圆,如下所示:

按照上一节的公式进行逆运动学计算,算出来了两组解,如下图所示:

为了验证逆运动学是否正确,将算出来的结果再代入正运动学中,看求解出来的末端点P的轨迹曲线是否为上述的圆形轨迹。根据两组解来进行正运动学计算,结果如下所示:

可以看出,理论值(给出的圆形轨迹)和验证值(利用两组解,按照正运动学计算末端点P的轨迹)重合度较高。为了更为直观的观察前后结果,这里通过对坐标值进行作差来进行观察,结果如下所示:

由图可知,在圆形轨迹中,通过逆运动学可算出来两组解。利用这两组解进行正运动学计算,得到的末端点轨迹与给出的圆形轨迹误差几乎为零!!

验证轨迹2 :让二自由度机械臂末端点P画8字曲线,如下所示:

同理,按照上一节的公式进行逆运动学计算,算出来了两组解,如下图所示:

可以看到,第二组解的 θ 2 \ \theta_2 θ2出现了两个畸变点,这种情况在实际实验、加工中是不允许有的,要注意规避这种情况,这里不做过多深究。同理,为了验证逆运动学是否正确,将算出来的结果再代入正运动学中,看求解出来的末端点P的轨迹曲线是否为上述的8字轨迹。根据两组解来进行正运动学计算,结果如下所示:

可以看出,理论值(给出的8字轨迹)和验证值(利用两组解,按照正运动学计算末端点P的轨迹)重合度较高。为了更为直观的观察前后结果,这里通过对坐标值进行作差来进行观察,结果如下所示:

图可知,在8字轨迹中,通过逆运动学可算出来两组解。利用这两组解进行正运动学计算,得到的末端点轨迹与给出的8字轨迹误差几乎为零!!

(3)小结

对二自由度串联机械臂而言,进行逆运动学求解一般有两组解,且通过本文验证实验表明,所推导的逆运动学公式准确性较高!!

我是木头人,以上全是个人见解,有问题请大家评论区指出,大家共同进步!!

相关推荐
机器学习之心2 小时前
NGO-VMD北方苍鹰算法优化变分模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
算法·matlab·重构·信号重构·ngo-vmd·皮尔逊系数·小波阈值降噪
心无旁骛~3 小时前
MotionTrans: 从人类VR数据学习机器人操作的运动级迁移
学习·机器人·vr
简简单单做算法3 小时前
基于球面透视投影模型的鱼眼图像校正算法matlab仿真
matlab·球面透视投影·鱼眼图像校正
PWRJOY4 小时前
【SolidWorks】默认模板设置
solidworks
可爱的蜗牛牛6 小时前
灵猴机器人操作
机器人
机器觉醒时代9 小时前
解锁人形机器人灵巧操作智能—— 视触觉传感器或许是关键钥匙
机器人·人形机器人·灵巧手·视触觉传感器
fie888911 小时前
基于MATLAB实现的Elman神经网络用于电力负载预测
神经网络·机器学习·matlab
fie888917 小时前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
gihigo199817 小时前
MATLAB中生成混淆矩阵
开发语言·matlab·矩阵
ZPC821018 小时前
FPGA 部署ONNX
人工智能·python·算法·机器人