博主最近在学一本叫做《A Mathematical Introduction to Robotic Manipulation》的机器人学教材,并且在学习之余根据了老师的要求完成了一个仿真项目(MATLAB):
- Analyze workspaces of 4 axis robot and 6 axis robot, find the intersection area firstly.
- Compute the forward kinematics of 4 axis robot and design a point P in intersection area.
- Take P as input, compute inverse kinematics of 6 axis robot.
- Take result from step3 as input to compute the forward kinematics of 6 axis robot to verify it is coincident with point P.
- 2 plots are necessary: ①inverse kinematics converge trend.
- ②In 3D space, point P as result of forward kinematics(color red), and point P’ as result of step 4, P and P’ should be coincident in theory.
从一个项目的角度进行分析,我们首先应该通览全部要求。然后决定我们每一步应该完成什么工作:
博主进行分析后一步步确定要完成的步骤如下:
1.根据已知的四轴与六轴的物理参数,大概设计四轴与六轴机械臂的基座位置,使其具有交集。在这过程中需要写出各个轴的twist坐标为了后续的运算做准备。
(为了演示的时候更加形象生动,博主使用了robotic toolbox用DH法建模,在进行正逆解运算时仍采用POE法)
(在计算交集区域时,采用约束方程,根据机械臂的运动特点将其边界提取成几个方程,并将其解算出来。大概使用了高数下的 内容就足够)
2.根据之前的twist坐标设计一个在交集区域的P点。
约束方程如下所示:
3.将得到的点P放入六轴机械臂的工作空间做逆运动解。因为博主学的是牛顿迭代法(Newton-Raphson Algorithm),因此这里用此方法求解:
首先构建运动学方程:
已知:
·机器人参数:
·目标点:
Newton-Raphon Algorithm:
a.初始化参数:
b.计算当前的关节角:
c.计算jacobian矩阵
d.计算Jacobian的伪逆解
If n≤6,
Else
更新
e.重复以上步骤直到收敛即
趋近零
4.将解算到的θ代入六轴的POE中,观看P*与P是否重合。
在这个项目中重点是在于解题思路,如何将老师提的要求一步一步完成并且展示出来,而那些机械臂参数都是些可以代替的数据。(本次项目中博主使用的是李群四轴和六轴机械臂的参数)
如果有需要的话我再详细地解析这个项目。
希望大家共同进步学习。
代码已放到GitHub上: