matlab机器人运动学计算

您所在的位置:网站首页 matlab中已达到最大递归限制 matlab机器人运动学计算

matlab机器人运动学计算

2023-11-21 16:47| 来源: 网络整理| 查看: 265

一、两连杆机器人 1.Link Link()是构建连杆的基本函数 建立连杆的基本规则是 L = Link(DH, OPTIONS) DH = [THETA D A ALPHA SIGMA OFFSET] THETA D A ALPHA 为基本的DH参数 theta 关节角度 d 连杆偏移量 a 连杆长度 alpha 连杆扭角 Sigma 可以设定连杆的类型 0为旋转 1为伸长 offset 关节变量偏移量 qlim 关节变量范围[min max] Options: ‘standard’ for standard D&H parameters (default). ‘modified’ for modified D&H parameters. ‘revolute’ 旋转关节(default) ‘prismatic’ 伸长关节

建立一个旋转连杆 L = Link([0 1.2 0.3 pi/2]);或 L = Link([0 1.2 0.3 pi/2 0]) L = Link([0 1.2 0.3 pi/2],’revolute’) L = Link( ‘d’, 1.2, ‘a’, 0.3, ‘alpha’, pi/2); L = Link(‘revolute’, ‘d’, 1.2, ‘a’, 0.3, ‘alpha’, pi/2); L = Revolute(‘d’, 1.2, ‘a’, 0.3, ‘alpha’, pi/2); 建立一个移动连杆 L = Link([0 1.2 0.3 pi/2 1]) L = Link([0 1.2 0.3 pi/2],’prismatic’) L = Link( ‘theta’, 0, ‘a’, 0.3, ‘alpha’, pi/2); L = Link(‘prismatic’, ’ theta’, 0, ‘a’, 0.3, ‘alpha’, pi/2); L = prismatic(’ theta’, 0, ‘a’, 0.3, ‘alpha’, pi/2); 通过操作 L.theta;L.d;L.a;L. alpha 。。。。 可以显示,修改连杆的参数

操作函数: %A 连杆变换矩阵 % RP 关节类型: ‘R’ 或 ‘P’ % friction 摩擦力 % nofriction 摩擦力忽略 % dyn 显示动力学参数 % islimit 测试关节是否超出软限制 % isrevolute 测试是否为旋转关节 % isprismatic 测试是否为移动关节 % display 连杆参数以表格形式显示 % char 转为字符串 L.A(X)可以显示连杆变换矩阵,但是需要补齐DH参数变量,X在旋转连杆中就是theta值,在伸长连杆中就是d的值。 L.RP 返回关节类型 返回R表示旋转关节,P为伸长关节 其他的用法类似。。。

2.SerialLink 使用SerialLink可以把连杆联系起来形成机械臂 (1)基本用法 R = SerialLink(R1, options) 复制机器人R1 R = SerialLink([L1 L2 …], OPTIONS) 机器人连接, 将L2的基座连接到L1的末端. R = SerialLink(DH, OPTIONS),矩阵DH的构成:每个关节一行,每一行为[theta d a alpha](默认为旋转关节),第五列(sigma)为可选列,sigma=0(默认)为旋转关节,sigma=1为移动关节。 OPTIONS可以是: ‘name’、’comment’、’manufacturer’ ‘base’、’tool’、’gravity’、’plotopt’ ‘name’可以用于给机械臂命名

bot = SerialLink([L1 L2], 'name', 'my robot') 1

‘name’、’comment’、’manufacturer’的用法都差不多。用于标定一些额外信息

‘base’, ‘tool’,用于设定基坐标和工具坐标的原点

mdl_puma560 p560_2 = SerialLink(p560, 'base', transl(-0.5, 0.5, 0) ) 12

具体实例如下:这里写图片描述

这里写图片描述

3、R.plot(Q, options)可以显示出机械臂 当Q为1*N维向量,向量元素为各关节变量,显示的是静态的机械臂 Q为M*N矩阵,列向量元素为各关节变量,显示一个机械臂的动图 Options:: ‘workspace’, W 为空间限制W = [xmn, xmx ymn ymx zmn zmx] ‘floorlevel’,L 底板在Z轴的显示位置 Eg:

>>mdl_puma560 >>p560.plot(q, 'floorlevel',0); 12

具体示例:

>> two_link.plot([0 0]); 1

这里写图片描述

4、运动学的求解函数 正运动学求解 Q = R.fkine(T) 逆运动学求解 T = R.ikine(Q, OPTIONS)这里写图片描述

二、六轴机器人 (1)Puma560机器人已经作为标准的机器人模型加入到matlab的库中。 使用mdl_puma560命令,便可以创建一个名为p560的SerialLink对象。

>> mdl_puma560 >> p560 12

这里写图片描述 在mdl_puma560工作空间里还自动创建了一些关节坐标向量,代表了一些典型的机器人位形。 qz:(0,0,0,0,0,0) 零角度 qr:(0,pi/2,-pi/2,0,0,0) 就绪状态,机械臂伸直切垂直 qs:(0,0,-pi/2,0,0,0) 伸展状态,机械臂伸直且水平 qn:(0,pi/4,-pi,0,pi/4,0) 标准状态,机械臂处于一个灵巧工作状态。这里写图片描述 求qz位置点进行正运动学计算:

>>p560.fkine(qr) 1

这里写图片描述 对qr姿态进行图形显示;

>>p560.plot(qr) 1

这里写图片描述

(2)一般来说,有8组不同的关节坐标值可以得到相同的末端执行器位姿。逆解是不唯一的。这里写图片描述 如图所示,同一个空间位姿得到了两组不同的关节角度。证明了上述的问题。 两组空间位姿的仿真图如下: (a)第一组为左手位形解这里写图片描述这里写图片描述

(b)第二组为右手位形解这里写图片描述这里写图片描述 ikine6s返回的运动学位形可以由一个或者多个字符来控制。 左手或者右手 ‘l’,‘r’ 肘部在上或者肘部在下 ‘u’,‘d’ 手腕翻转或不翻转 ‘f’,‘n’

三、冗余机器人 冗余机器人指的是多余6个关节的机器人。将上面的机器人加入到一个平台上 (1)利用机器人基座的D-H参数建立SerialLink 对象。

>>platform=SerialLink([0 0 0 -pi/2 1;-pi/2 0 0 pi/2 1],'base',troty(pi/2),'name','platform') 1

(2)引入前文中的机械臂模型,为了模拟机器人在底盘之上,对机器人的底座高度进行设置。

>>p560.links(1).d=30*0.0254 1

这里写图片描述 (3)将底盘与机械臂进行组合

>>p8=SerialLink([platform,p560]) 1

这里写图片描述

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3