博主最近在学一本叫做《A Mathematical Introduction to Robotic Manipulation》的机器人学教材,并且在学习之余根据了老师的要求完成了一个仿真项目(MATLAB):

  1. Analyze workspaces of 4 axis robot and 6 axis robot,  find the intersection area firstly.
  2. Compute the forward kinematics of 4 axis robot and design a point  P in intersection area.
  3. Take P as input, compute inverse kinematics of 6 axis robot.
  4. Take result from step3 as input to compute the forward kinematics of  6 axis robot to verify it is coincident with point P.
  5. 2 plots are necessary:

          ①inverse kinematics converge trend.

  6.       ②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.

  7.  


从一个项目的角度进行分析,我们首先应该通览全部要求。然后决定我们每一步应该完成什么工作:

博主进行分析后一步步确定要完成的步骤如下:

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上:

https://github.com/KevinJune/robotic

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐