这一节,就机器人工具箱中的一些常用的函数做一下简单的介绍。机器人工具箱在机器人建模、轨迹规划、控制、可视化仿真等方面给机器人的研究和学习提供便利条件,大大提高了研究和工作效率。

在机器人工具箱中,类函数非常多,主要涉及到机器人建模、正运动学、逆运动学、动力学、逆动力学、雅克比、轨迹规划等。

对于机器人建模,用到最重要的两个函数就是Link和Seriallink函数

(1)Link 类

Link包含了与机器人连杆相关的所有信息,例如运动学参数、刚体惯性参数、电机和传送参数等。

使用方法:

A :关节传动矩阵

RP :关节类型,包括转动关节和移动关节

friction : 摩擦力

nofriction : 摩擦为0

dyn : 显示动力学参数

islimit:检测关节变量是否超出范围

isrevolute : 检测关节是否为转动关节

isprismatic : 检测关节是否为移动关节

display : 显示D-H矩阵

char : 转化为字符串

类函数属性(读/写)

theta:D-H参数

d:D-H参数

a:D-H参数

alpha:D-H参数

sigma: 默认0,旋转关节;1,移动关节

mdh: 默认0,标准D-H;1,改进D-H

offset:关节变量偏移量

qlim:关节变量范围

m: 质量

r: 质心

I: 惯性张量

B: 粘性摩擦

Tc: 静摩擦

G: 减速比

Jm: 转子惯量

示例

L = Link([0 1.2 0.3 pi/2]);

b1=isrevolute(L)    %判读L是否为旋转连杆

b2= L.d    %读取L连杆的长度

(2)Seriallink 类

Serial-link 机器人类函数表示串联类型的机器人类,该类函数对串联机械臂的内部机理进行了表述,D-H参数以及每个关节的设置等。

使用方法

plot:     显示机器人模型

plot3d:   显示机器人的三维图形模型

teach:    示教模式,驱动机器人运动

getpos:   获取机器人模型的位置

jtraj:     关节空间轨迹

edit:       显示和编辑运动学和动力学参数

isspherical:     检测机器人是否有球型腕关节

islimit:         检测机器人是否在关节限位状态

isconfig:     检测机器人的关节状态

fkine:       正运动学

A:          连杆其次变换矩阵

trchain:     由基本变换组成的正运动学

ikine6s:     六轴球关节手腕转动机器人逆运动学

ikine:     采用数值迭代法求解逆运动学

ikunc:     采用最优化法求解逆运动学

ikcon:     有关节限位下采用最优化法求解逆运动学

ikine_sym:    用符号表示的方法解析逆运动学

jacob0:       世界坐标系下的雅克比矩阵

jacobn:      工具坐标系下的雅克比矩阵

Jacob_dot:   雅克比矩阵求导

maniplty:    机器人可操作性

vellipse:     显示速度椭圆

fellipse:      显示力椭圆

qmincon:      零空间运动到中心关节之间的极限

accel:     关节加速度

coriolis:      科里奥利关节合力(科氏合力)

dyn:      显示各连杆的动态属性

friction:     摩擦力

gravload:       重力引起的关节力

inertia:        关节惯性矩阵

cinertia:      笛卡尔惯性矩阵

nofriction:     设置摩擦参数为零

rne:         逆动力学

fdyn:        正动力学

payload:   在末端执行器坐标系下添加负载

perturb:     随机扰动连杆的动态参数

gravjac:     重力负载和雅克比矩阵

paycap:     额定载重量

pay:        额定力矩

sym:    对目标的抽象化表示

gencoords:      抽象广义坐标系

genforces:      抽象广义力

issym:       测试目标是否抽象化

Seriallink 类函数属性(读/写)

links :连杆向量(1 ×  N)

gravity :重力加速度 [gx gy gz]

base :基座标系 (4 ×  4其次变换形式)

tool:与基座标系的变换矩阵 (4 ×  4其次变换形式)

qlim :关节极限位置 (N ×  2)

offset :关节偏移量 (N ×  1)

name :机器人的名字

manuf :制造者的名字

comment: 注释

plotopt:    plot()方法选择(单元格数组)

fast:    使用RNE的MEX版本,如果mex文件存在只能被设置为true,默认值为true

Seriallink 类函数属性(只读)

n :关节数

config: 关节配置,如‘RRRRRR’

mdh :D-H矩阵类型(0表示D-H,1表示MD-H)

theta :D-H参数:关节角 (1 ×  N)

d :D-H参数:连杆偏距 (1 ×  N)

a :D-H参数:连杆长度 (1 ×  N)

alpha: D-H参数:连杆扭角(1 ×  N)

(3)变换矩阵

利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。下面举例来说明:

A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:

>> transl(0.5,0,0)

ans =

1.0000         0         0    0.5000

0    1.0000         0         0

0         0    1.0000         0

0         0         0    1.0000

B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:

>> rotx(pi/4)

ans =

1.0000         0         0         0

0    0.7071   -0.7071         0

0    0.7071    0.7071         0

0         0         0    1.0000

C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:

>> roty(pi/2)

ans =

0.0000         0    1.0000         0

0    1.0000         0         0

-1.0000         0    0.0000         0

0         0         0    1.0000

D 机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:

>> rotz(-pi/2)

ans =

0.0000    1.0000         0         0

-1.0000    0.0000         0         0

0         0    1.0000         0

0         0         0    1.0000

当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。

(4)正运动学

利用Robotics Toolbox中的fkine函数可以实现机器人正运动学的求解。其中fkine函数的调用格式:

TR = FKINE(ROBOT, Q)

参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。

以PUMA560为例,定义关节坐标系的零点qz=[0 0 0 0 0 0],那么fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。比如:

t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);

返回的矩阵T是一个三维的矩阵,前两维是4×4的矩阵代表坐标变化,第三维是时间。

(5)逆运动学

利用Robotics Toolbox中的ikine函数可以实现机器人逆运动学的求解。其中ikine函数的调用格式:

Q = IKINE(ROBOT, T)

Q = IKINE(ROBOT, T, Q)

Q = IKINE(ROBOT, T, Q, M)

参数ROBOT为一个机器人对象,Q为初始猜测点(默认为0),T为要反解的变换矩阵。当反解的机器人对象的自由度少于6时,要用M进行忽略某个关节自由度。

有了关节的轨迹规划之后,我们也可以用ikine函数来进行运动学逆问题的求解。比如:

t=0:0.056:2;

T1=transl(0.6,-0.5,0);

T2=transl(0.4,0.5,0.2);

T=ctraj(T1,T2,length(t));

q=ikine(p560,T);

我们也可以尝试先进行正解,再进行逆解,看看能否还原。

Q=[0 –pi/4 –pi/4 0 pi/8 0];

T=fkine(p560,q);

qi=ikine(p560,T);

(6)轨迹规划

利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。

其中ctraj函数的调用格式:

TC = CTRAJ(T0, T1, N)

TC = CTRAJ(T0, T1, R)

参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。其中jtraj函数的调用格式:

[Q QD QDD] = JTRAJ(Q0, Q1, N)

[Q QD QDD] = JTRAJ(Q0, Q1, N, QD0, QD1)

[Q QD QDD] = JTRAJ(Q0, Q1, T)

[Q QD QDD] = JTRAJ(Q0, Q1, T, QD0, QD1)

参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。QD和QDD为返回的规划轨迹的速度和加速度。其中trinterp函数的调用格式:

TR = TRINTERP(T0, T1, R)

参数TR为在T0和T1之间的坐标变化插值,R需在0和1之间。

要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2;

[q,qd,qdd]=jtraj(qz,qr,t);

其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。

MATLAB Robotics Toolbox常用函数简介相关推荐

  1. 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(3)

    [基于Matlab Robotics Toolbox的Dobot机械臂运动规划]系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进 软件环境 : Matlab ...

  2. 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(4)

    [基于Matlab Robotics Toolbox的Dobot机械臂运动规划]系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进 软件环境 : Matlab ...

  3. 焊接机器人——6自由度焊接机器人solidworks设计、D-H模型参数及matlab robotics toolbox模型仿真与验证

    1 设计思路 焊接机器人在点与点之间移位时速度要快捷,动作要平稳,定位要准确,以减少移位的时间,提高工作效率. 考虑到各种被焊接工件的外型特点,首先我们必须保证机械臂能在达到空间中的所有位置(能够有较 ...

  4. 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(2)

    [基于Matlab Robotics Toolbox的Dobot机械臂运动规划]系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进. 基于Matlab R201 ...

  5. matlab机器人自动分拣_YOLOv3 + Matlab Robotics ToolBox 实战 -- 软包装药品的机器人分拣系统设计与仿真...

    本项目为大三上<机器人技术基础>课程团队研讨课题之一,当时做这个研讨课题还花了挺多的时间,又觉得还比较有意思,因此放在博客中记录一下.不过当时班上很多大佬的成果更牛逼,我们就属于弟弟水平h ...

  6. matlab ikine 源码,RTB-9.10 matlab robotics toolbox 工具箱软件 可进行机器人运动学与动力学建模 275万源代码下载- www.pudn.com...

    文件名称: RTB-9.10下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 20442 KB 上传时间: 2016-11-27 下载次数: 16 提 供 者 ...

  7. Robocup3d比赛环境的搭建及常用函数简介

    一.环境的搭建 1.查看本机wsl子系统的版本号 wsl -l -v 2.导入命令 首先进入想要导入的目录,如图我在E盘中创建了wslstorage目录,将压缩包移到此目录下,打开cmd输入以下代码 ...

  8. 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(1)

    [基于Matlab Robotics Toolbox的Dobot机械臂运动规划] 系列文章是我在学习robotics toolbox中所做工作的记录,方便自己后面复习.改进. 基于Matlab R20 ...

  9. 机器人与matlab—Robotics Toolbox—01空间位姿描述

    机器人学与matlab-Robotics Toolbox-01空间位姿描述 1.二维空间位姿描述 2.三维空间位姿描述 2.1 正交旋转矩阵 2.2 三角度表示法(欧拉角.RPY角) 2.3 等效轴角 ...

最新文章

  1. java的log4j的xml配置_Log4j配置实例(log4j.xml)
  2. JTable调整列宽
  3. 华为上机试题 c语言,华为上机考试题库2017 2017年全国计算机等级考试C语言上机考试题库 -1-20套.doc...
  4. Url解码,兼容utf-8和gb2312
  5. 天梯—打印沙漏以及剩余个数(C语言)
  6. ModuleNotFoundError: No module named ‘pyemd‘ 解决
  7. 10款精美的web前端源码的特效
  8. 64位锐捷多网卡、VMWareNat模式、ICS共享破解
  9. mysql busy buffer_与buffer cache相关的等待事件—buffer busy waits等待事件!
  10. 数据采集时总提示未登录_2月1日起,海关进口增值税专用缴款书数据采集规则大变,请知悉!...
  11. 干货 | 云智慧透视宝Java代码性能监控实现原理
  12. win10系统要求配置_观察者系统还原游戏配置要求高吗?Observer: System Redux硬件一览!...
  13. 支理解SVM的三层境界
  14. 服务器网站需要多大硬盘,做网站服务器硬盘多大
  15. python图像处理:PIL与Pillow区别
  16. 无功补偿的原理和形式
  17. 研究生新生的科研指南
  18. 计算机的隐藏功能文字,键盘上那些隐藏的快捷键,内有彩蛋呦!
  19. 测试开发工程师到底是做什么的?你真的知道吗
  20. SQL注入-HTTP头部注入

热门文章

  1. 推荐系统实战 --- 基于音乐播放推荐
  2. 【vue】【intersectionObserver】滚动正文时菜单滚动到对应菜单
  3. java实现中英文按拼音排序
  4. 不改一行代码!快速迁移 Flask 应用上云
  5. 微软小冰的“体面告别”
  6. JMeter压力测试(一)
  7. 最新爱叶解析接口搭建php网站源码 附4k画质测试效果
  8. 完美解决OneNote for Windows 10无法同步问题
  9. 音频名词解释1(zhuanzai)
  10. UVA 10387 Billiard