机械臂动力学建模(1)- 建立机器人模型

机械臂

在这里插入图片描述
我使用的aubo的i5机械臂作为实验目标,也是用i5的D-H参数进行建模,前期使用matlab机器人工具箱进行仿真,熟悉机械臂的运动学算法,之后再在实际的机械臂上实验。

参考资料

我使用的是matliab机器人工具箱,具体的一些功能和操作可以参考:
清华大学出版社的《机器人仿真与编程技术》一书
以及我之前关于matlab机器人工具箱的7篇博文:
链接: 第一篇.等

建模

D-H参数

首先我们找到aubo_i5的D-H参数:
在这里插入图片描述
主要的参数d与a存入到matlab变量中

d1 = 0.122
d2 = 0.1215
a2 = 0.408
a3 = 0.376
d5 = 0.1025
d6 = 0.094

建关节

先熟悉Link:

>> Link
 
ans = 
Revolute(std): theta=q, d=0, a=0, alpha=0, offset=0

根据D-H参数建立6个关节:


L(1)=Link([pi,d1,0,0],'modified')
L(2)=Link([-pi/2,d2,0,-pi/2],'modified')
L(3)=Link([0,0,a2,pi],'modified')
L(4)=Link([-pi/2,0,a3,pi],'modified')
L(5)=Link([0,d5,0,-pi/2],'modified')
L(6)=Link([0,d6,0,pi/2],'modified')

建立机器人

robot =SerialLink(L,'name','aubo_i5')

求初始机械臂状态,并显示


T = robot.fkine([0 0 0 0 0 0 ])
title("T")
robot.plot([0 0 0 0 0 0 ])

效果图:在这里插入图片描述
并且末端位姿为:


T = 
         1         0         0     0.784
         0         0         1    0.2155
         0        -1         0    0.0195
         0         0         0         1

改进

但是到这里,我发现末端的姿态并不对,位置信息中x轴信息(0.784)不应该存在。机械臂各个Link中的theta似乎没有其作用。我自己尝试在定义Link的时候改变theta值,发现确实不起作用,只有在fkine求运动学正解的时候赋值(pi,-pi/2,0,-pi/2,0, 0)才会改变theta:
在这里插入图片描述
末端姿态也变成:

T = 
         1         0         0         0
         0         0        -1   -0.2155
         0         1         0     1.008
         0         0         0         1

这会带来一个问题,实际电机的零位和模型零位不一致。看了Link的定义,发现theta的初始化受到offset的影响,除了前面的4个参数theta, d, a, alpha。第五个是关节类型,0为旋转,第六个就是offset,所以改变定义link的方式:

L(1)=Link([pi,d1,0,0,0,pi],'modified')
L(2)=Link([pi/2,d2,0,-pi/2,0,-pi/2],'modified',-pi/2)
L(3)=Link([0,0,a2,pi],'modified')
L(4)=Link([0,0,a3,pi,0,-pi/2],'modified',-pi/2)
L(5)=Link([0,d5,0,-pi/2],'modified')
L(6)=Link([0,d6,0,pi/2],'modified')

使得Link的参数变为:

robot = 
 
aubo_i5:: 6 axis, RRRRRR, modDH, slowRNE                         
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|      0.122|          0|          0|    3.14159|
|  2|         q2|     0.1215|          0|    -1.5708|    -1.5708|
|  3|         q3|          0|      0.408|    3.14159|          0|
|  4|         q4|          0|      0.376|    3.14159|    -1.5708|
|  5|         q5|     0.1025|          0|    -1.5708|          0|
|  6|         q6|      0.094|          0|     1.5708|          0|
+---+-----------+-----------+-----------+-----------+-----------+

此时各个关节为0时,末端的位姿为:

T = 
         1         0         0         0
         0         0        -1   -0.2155
         0         1         0     1.008
         0         0         0         1

在这里插入图片描述
至此初步建机器人模型成功

另一种建模

matlab可以直接读取URDF文件进行建模:

robot = importrobot('aubo_i5.urdf')
show(robot )

aubo的urdf模型和模型文件在git上:
链接: aubo_description.
在aubo_robot/aubo_description/里面有urdf和模型文件,如果用matlab读取urdf,需要把urdf中mesh filename属性修改,指到本地存mesh文件的地方。
修改后运行:
在这里插入图片描述具体的可以看我matlab工具箱的第8篇文章
链接: 通过URDF建立机器人模型.

  • 5
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
UR5e机械臂是一款通用型的机械臂,它具有6个自由度,可以灵活地执行各种任务。运动学建模是对机械臂的运动轨迹进行数学描述的过程。 UR5e机械臂的运动学建模首先需要确定每个关节的坐标系,并定义它们之间的关系。在UR5e机械臂中,每个关节都有一个旋转轴,并且它们的坐标系是通过D-H(迪尼金-赫尔伯特)方法来定义的。 在运动学建模中,我们需要确定机械臂每个关节的旋转角度和关节的长度,这些参数可以通过传感器来测量或由用户提供。然后我们可以使用正向运动学模型来确定机械臂末端执行器的位置和姿态,并将其表示为3D空间中的一个坐标。 同时,我们也可以使用逆向运动学模型,通过已知的末端执行器的位置和姿态,计算出每个关节的旋转角度和关节的长度。这对于路径规划和轨迹控制非常有用。 除了正向和逆向运动学模型,我们还可以使用雅可比矩阵来描述机械臂的速度和加速度。雅可比矩阵可以将关节空间的速度和末端执行器空间的速度相互转换,从而实现机械臂的精确控制。 总结起来,UR5e机械臂的运动学建模是通过确定各个关节的坐标系和关节参数,使用正向和逆向运动学模型以及雅可比矩阵来描述机械臂的运动轨迹和速度加速度的过程。这些模型对于机械臂的运动控制和路径规划都非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值