1、matlab机器人运动学计算

一、两连杆机器人
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')

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

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

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

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

这里写图片描述

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);

具体示例:

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

这里写图片描述

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

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

>> mdl_puma560
>> p560

这里写图片描述
在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)

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

>>p560.plot(qr)

这里写图片描述

(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')

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

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

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

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

这里写图片描述



参考:
(1)http://blog.csdn.net/terminater_a1992/article/details/50365815
matlab机器人工具箱攻略——矩阵变换,运动学
(2)http://blog.csdn.net/jameshater/article/details/53020093 Matlab机器人工具箱(一)
(3)http://blog.csdn.net/jameshater/article/details/53064219
Matlab机器人工具箱(二)
(4)《机器人学、机器视觉与控制》【澳】Peter Corke

  • 32
    点赞
  • 312
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Matlab是一种常用于科学计算和工程应用的软件平台,也可以用于机器人相关的计算和控制任务。在机器人学中,逆运动学是指根据机器人末端执行器的位置和姿态,计算机器人关节角度的过程。Matlab提供了一些工具箱和函数来简化机器人运动学计算。 首先,我们需要定义机器人的模型和参数,包括关节类型(旋转关节或者平移关节)、关节起始角度、关节长度、坐标系等。然后,可以使用Matlab内置的工具箱,例如Robotics System Toolbox,来建立机器人模型。这个工具箱提供了各种函数和类来创建和操作机器人模型。 在建立了机器人模型后,我们可以使用Matlab提供的逆运动学函数来计算机器人的关节角度。这些函数可以根据机器人模型和末端执行器的位置和姿态,计算机器人关节角度的解析解或数值解。在计算过程中,我们可以指定一些约束条件,例如关节角度的范围,来获得满足特定要求的解。 此外,Matlab还提供了可视化工具来显示机器人模型和计算结果。我们可以使用3D绘图函数,例如plot3和trplot,来绘制机器人的关节和末端执行器的位置。这样可以帮助我们更直观地理解和验证逆运动学计算的结果。 总之,Matlab是一个强大的工具,可以用于机器人运动学计算和可视化。通过定义机器人模型、使用逆运动学函数和绘图工具,我们可以方便地进行机器人关节角度的计算和分析。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值