基于MATLAB的机器人学、机器视觉与控制

  • 一、机械臂运动学
    • 1.描述一台机械臂
    • 2.正运动学
    • 3.逆运动学
    • 4.轨迹
  • 参考书目:《机器人学、机器视觉与控制——MATLAB算法基础》,Peter Corke
  • 准备工具:MATLAB,Robotics Toolbox[download],安装方法参考[blog]

根据毕业设计的要求,本文主要讨论机械臂动力学,视觉与控制

一、机械臂运动学

运动学是力学的一个分支,它在不考虑质量和作用力的前提下研究一个刚体,或者由多个刚体组成系统的运动。

1.描述一台机械臂

一个串联机械臂的整个链路是由一组被称为连杆的刚体组成的,这些连杆由关节(运动副)连接起来。每个关节有一个平移(滑动或移动副)或者转动(转动副)的自由度。关节的运动改变了其邻接连杆的相对角度和位置。

  • 使用工具箱中的 Link 对象来描述一个机器人连杆:
>> L = Link([0, 0.1, 0.2, pi/2, 0])L =
Revolute(std): theta=q, d=0.1, a=0.2, alpha=1.5708, offset=0

输入向量的元素按顺序为:关节角,连杆偏移,连杆长度,连杆扭转角;第五个元素未指定则默认为转动关节。

  • 两连杆机器人
    D-H 参数如下所示,用这些参数创建一个 Link 对象的向量 L:
>> L(1) = Link([0 0 1 0]);
>> L(2) = Link([0 0 1 0]);
>> LL =
Revolute(std):  theta=q1   d=0           a=1           alpha=0           offset=0
Revolute(std):  theta=q2   d=0           a=1           alpha=0           offset=0

这个向量将被传递给构造函数 SerialLink:

>> two_link = SerialLink(L, 'name', 'two link')two_link = two link:: 2 axis, RR, stdDH, slowRNE
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|          0|          1|          0|          0|
|  2|         q2|          0|          1|          0|          0|
+---+-----------+-----------+-----------+-----------+-----------+

用以下指令,可以画出机器人的图形:

>> two_link.plot([0 0])
>> two_link.plot([pi/4 -pi/4])

  • 六轴机器人
    以 Puma 560 机器人为例,使用如下指令定义一个 Puma 560 机器人的实例(工具箱自带模板指令来定义很多常见的工业机器人),它将在工作区中创建一个名为 p560 的 SerialLink 对象:
>> mdl_puma560
>> p560p560 = Puma 560 [Unimation]:: 6 axis, RRRRRR, stdDH, slowRNE            - viscous friction; params of 8/95;
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|          0|          0|     1.5708|          0|
|  2|         q2|          0|     0.4318|          0|          0|
|  3|         q3|    0.15005|     0.0203|    -1.5708|          0|
|  4|         q4|     0.4318|          0|     1.5708|          0|
|  5|         q5|          0|          0|    -1.5708|          0|
|  6|         q6|          0|          0|          0|          0|
+---+-----------+-----------+-----------+-----------+-----------+

>> p560.plot(qz)
>> p560.plot(qr)
>> p560.plot(qs)
>> p560.plot(qn)

2.正运动学


  • 两连杆机器人 - planar2:
>> mdl_planar2 % 直接构造2连杆平面机器人,并创建名为 two_link 的 SerialLink 对象
>> two_link.fkine([0 0]) % q1 = 0, q2 = 0 时的变换矩阵ans = 1         0         0         20         1         0         00         0         1         00         0         0         1
>> two_link.fkine([pi/4 -pi/4]) % q1 = pi/4, q2 = -pi/4ans = 1         0         0     1.7070         1         0    0.70710         0         1         00         0         0         1
  • 六轴机器人 - Puma 560:
>> mdl_puma560 % 直接构造 Puma 560 机器人,并创建名为 P560 的 SerialLink 对象
>> p560.fkine(qz) % 零角度时的变换矩阵ans = 1         0         0    0.45210         1         0     -0.150         0         1    0.43180         0         0         1
>> p560.fkine(qn) % 标准状态时的变换矩阵ans = 0         0         1    0.59630         1         0   -0.1501-1         0         0  -0.014350         0         0         1

3.逆运动学

给定期望的末端执行器位姿,求取所需的关节坐标。一般而言,逆运动学的解不是唯一的,而且对于某些类型的机械臂甚至没有封闭形式的解存在,只能求出一个数值解

  • 封闭形式解 - ikine6s
    对于六轴机器人,其逆运动学具有封闭形式解的一个必要条件是:三个腕关节的轴相交于一个点。这意味着腕关节的运动只改变末端执行器的姿态,而不改变其位置
>> mdl_puma560
>> qn % 机器人标准状态的关节坐标qn =0    0.7854    3.1416         0    0.7854         0>> T = p560.fkine(qn) % 标准状态对应的末端执行器位姿T = 0         0         1    0.59630         1         0   -0.1501-1         0         0  -0.014350         0         0         1
>> qi = p560.ikine6s(T) % ikine6s 方法计算其逆运动学的封闭解,要实现位姿 T,所需的关节坐标为 qiqi =2.6486   -3.9270    0.0940    2.5326    0.9743    0.3734

由 qn 和 qi 的坐标比较可知,两组不同的关节坐标值得到了相同的末端执行器位姿,这两组坐标值对应的机器人位形如图所示:


分别为左手运动学位形和右手运动学位形,一般来说,有8组不同的关节坐标值可以得到相同的末端执行器位姿

  • 数值解 - ikine
    对于不具有6个关节和球形腕关节的机器人,需要使用一种迭代数值解,使用 ikine 方法来计算一般逆运动学解:
>> mdl_puma560
>> qn % 机器人标准状态的关节坐标qn =0    0.7854    3.1416         0    0.7854         0>> T = p560.fkine(qn) % 标准状态对应的末端执行器位姿T = 0         0         1    0.59630         1         0   -0.1501-1         0         0  -0.014350         0         0         1
>> qi = p560.ikine(T) % ikine 方法计算其逆运动学的封闭解,要实现位姿 T,所需的关节坐标为 qiqi =-0.0000   -0.8335    0.0940    0.0000   -0.8312   -0.0000

4.轨迹

基于MATLAB的机器人学、机器视觉与控制相关推荐

  1. 【飞行器】基于matlab四旋翼飞行器PID控制仿真【含Matlab源码 1277期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[飞行器]基于matlab四旋翼飞行器PID控制仿真[含Matlab源码 1277期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  2. 用matlab微分先行设计,基于MATLAB的微分先行PID控制的设计与仿真

    第 34卷 第 1期 2014 年 1月 高 师 理 科 学 刊 Journal of Science of Teachers College and University Vo1.34 No.1 J ...

  3. 基于MATLAB/Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型

    Solar_Charge_Controller:基于MATLAB/Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型. 其中,光伏MPPT控制采用扰动观测法(P&O法),蓄电池充电采用 ...

  4. 基于MATLAB Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型

    Solar_Charge_Controller:基于MATLAB Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型. 其中,光伏MPPT控制采用扰动观测法(P&O法),蓄电池充电采用 ...

  5. matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究

    摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...

  6. 基于matlab的电流滞环控制,电流滞环控制matlab

    设计二.电路图及封装参考上学期学过的电力电子教程中的电流逆变原理,使用 MATLAB 软件中的 Simulink 和 SimpowerSystems 工具箱构建三相电流跟踪滞环控制 系统的仿真.... ...

  7. matlab控制系统仿真论文,基于MATLAB的异步电动机直接转矩控制系统仿真毕业论文...

    摘  要 矢量控制的交流变频调速系统具有非常好的性能和效率,在许多要求高性能和高精度的场合,矢量控制体现出来了其巨大的优势.对于电气传动系统的研究,往往会遇到数学物理计算的难题,难于得到比较贴近实际系 ...

  8. 【机器人学、机器视觉与控制】臂形机器人——机器人运动学

    文章目录 机器人运动学 1 描述一台机械臂(标准D-H参数法) 2 正运动学 2.1 两连杆机器人 2.2 六轴机器人 3 逆运动学 3.1 封闭形式解(用于六轴机械臂) 3.2 数值解 3.3 轨迹 ...

  9. matlab自适应逆控制,基于matlab仿真模块的自适应有源噪声逆控制研究

    ATE 农业技术与装备 X2 c(q-1) p(q-1) u2 C( x) p(q-1) LMS M(q-1) p(q-1) w( q-1) w( q-1) ! ! e2 d2 + - - + p(q ...

  10. 《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程

    本节书摘来自华章社区<机器人与数字人:基于MATLAB的建模与控制>一书中的第2章,第2.3节指数映射和k过程,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区 ...

最新文章

  1. HDLBits 系列(22) Shift register
  2. Palo Doris版五分钟快速入门
  3. 汽车之家基于 Flink + Iceberg 的湖仓一体架构实践
  4. Ubuntu18.04彻底删除MySQL数据库
  5. c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...
  6. 大疆口袋相机美颜怎么设置_灵眸Osmo口袋云台相机评测-大疆灵眸云相机使用说明...
  7. JSON和XML:它们如何比较?
  8. Linux 系统如何查看硬盘UUID与修改
  9. 多乐融依托大数据锻造五重风控防线
  10. uva 10330(最大流)
  11. 并发网站压力测试工具
  12. 计算机速录水平考试,汉字速录水平测试(速录证考试报名网站)
  13. 机器学习实战笔记1——机器学习导论
  14. java创建表情包_表情包生成器
  15. C/C++代码实现向量叉乘
  16. 【MATLAB航空航天工具箱】学习笔记--IERS国际地球自转服务的公报
  17. 关于镇江市大数据服务体系的对策和建议研究
  18. 幼儿学习品质提升的培养策略问卷
  19. 放弃了又何需执着 ?
  20. str中的join方法,fromkeys(),set集合,深浅拷贝(重点)

热门文章

  1. 七月阅读:《刘慈欣科幻短篇小说集Ⅰ》笔记
  2. LA 5713 Qin Shi Huang's National Road System 最小生成树
  3. 智慧社区安防核心硬件:无障碍人脸识别终端
  4. [DDC]Deep Domain Confusion: Maximizing for Domain Invariance
  5. 攻防世界----confusion1
  6. 2020夏清北学堂提高组腾飞营听课随笔
  7. Ring Buffer介绍
  8. 无需U盘,30秒找回win10/win7用户密码
  9. python 读写pcd
  10. Java-----关于IO流的总结