UR5型六轴机械臂运动学推导及效果演示

2715
10
2020年5月11日 23时39分

        UR5构型的机械臂是目前机器人领域比较常见的一种,本文基于GuYueInvent PROBOT C800(《如何从Solidworks导出URDF模型 · 古月》课程中使用的机械臂)机械臂,从DH建模,到正逆运动学的推导,介绍其整个运动学建模的过程,并演示了在matlab 2015a和ROS-Rviz环境下的运动效果。

 

一、C800的DH模型:

        DH建模法是建立串联机器人连杆坐标系最常用的方法,目前学术界同时存在标准DH和改进DH两种建模方法,本文是应用的标准DH建模法对机械臂建模,图1是GuYue Invent PROBOT C800机械臂的尺寸参数。

图片1

图1  C800机械臂尺寸参数

 

         建立如图2所示的连杆坐标系,根据坐标系写出其DH参数表,见表1。

图片2

图2  C800机械臂连杆坐标系

 

11


二、C800
的正运动学:

        机械臂的正运动学是把机械臂的关节变量作为自变量,描述机械臂末端执行器的位置和姿态与机械臂基座之间的函数关系。

 

1.变换矩阵的推导:

微信图片3

 

2.末端执行器位姿推导:

微信图片4

微信图片5

至此,正运动学就推导完毕了。

三、C800的逆运动学:

         机械臂的逆运动学就是已知末端执行器相对于基坐标系的位置和姿态,求对应的六个关节角度。

1.变换矩阵的求解:

微信图片6

 

2.关节1的求解:

微信图片7

微信图片8

 

3.关节5的求解:

微信图片9

 

4.关节6的求解:

微信图片10

 

5.关节3的求解:

微信图片11

微信图片_12

微信图片16微信图片_14微信图片15

 

6.关节2的求解:

微信图片17

 

7.关节4的求解:

微信图片18

 

四、效果演示

1.正运动学测试:

        利用MATLAB 2015a robotic toolbox进行机械臂的建模,并验证正运动学推算的正确性。

以下是利用toolbox计算的程序。

图片20

 

        同时,为了测试自己的正运动学算法是否正确,笔者是在VS中编写的C程序来测试,两者误差基本为0。

以下是利用关节角度控制机械臂运动的代码及演示图。

 

图片21

GIF 2020-4-23 19-24-08

 

2.逆运动学测试:

        在Ubuntu18.04 ROS-Melodic下,利用Rviz的可视化界面,测试逆运动学的实时效果,如图。

GIF 2020-4-23 19-46-13

 

点击按钮,C800机械臂末端会朝着竖直向下的方向移动,机械臂控制器实时解算位姿,解出距离当前位姿最靠近的解(控制周期10ms)。

 

以上就是笔者基于GuYueInvent PROBOT C800型机械臂推演的运动学算法,并在MATLAB和ROS-RVIZ中测试验证算法可用性的整个流程,也借鉴了许多网络上的建模经验。希望本文能够对你产生帮助,谢谢欣赏!

发表评论

后才能评论

评论列表(10条)

  • HenryLiu 2020年7月2日 下午4:03

    因为我之前在solidworks中按照标准DH法为机器人(我们自己的,和ur5相似)关节建立坐标系,然后自动生成urdf文件,其中alpha值和UR的保持一致。然后在ros中做仿真验证,其中运动学这一部分直接使用的ur5_ros包中带的ur_kinematics那一部分,代码使用的是标准DH法。遇到的问题是:1. 在rviz中拖动机器人末端的交互markers时,机器人会突然移动至另一个位置(任意使用鼠标点击交互式markers,都会发生)。但是我按照ur给出的ros包中rviz展示出的坐标系来建立为我们的机器人建立坐标系,一切都正常。2. 同时我发现rviz中ur5展示的机器人坐标系也不遵循标准DH法啊。请问一下,您遇到这种情况吗?或者能给出一些建议吗?

    • 搁浅 回复 HenryLiu 2020年7月13日 下午3:40

      rviz中的各关节坐标系确实不是按照标准DH来建模的,它原理是tf转换得到的,所以我这里是用自己的运动学算法来求解的。如果说你遇到了rviz里拖球的问题,应该是需要用自己的urdf模型去配moveit,运动学选择trackik或者kdl。这样应该就没问题了

  • HenryLiu 2020年7月2日 下午3:42

    @搁浅 老师,请问一下,在ROS中建立机器人link坐标系时,是按标准DH法建立的还是参照UR5机器人的建立的。

    • 搁浅 回复 HenryLiu 2020年7月13日 下午3:37

      老师不敢当。。我是按照标准DH法建模的,现在有两种建模方法,一种是标准DH,还有一种是改进DH。两种建模的变化矩阵T的表现形式不一样,但运动学推导结果都是一样的

  • Grady奥利 2020年6月15日 下午5:25

    请问古老师能提供一下这个rviz插件的源码吗?

  • u3oey_0531 2020年6月10日 下午9:51

    请问机器臂的逆运动学求解能做一个万能的求解公式进行求解吗?还是每个机械臂的逆运动学求解方式都不一样?

    • 搁浅 回复 u3oey_0531 2020年7月2日 上午9:10

      ikfast 等等可以用解析解求解很多类型机械臂的逆运动学,或者一些迭代解法。

  • wmaiq_8607 2020年5月22日 下午8:16

    请问你这个可视化界面是自己做的吗?能分享吗?