基于MATLAB的机器人学、机器视觉与控制
基于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的机器人学、机器视觉与控制相关推荐
- 【飞行器】基于matlab四旋翼飞行器PID控制仿真【含Matlab源码 1277期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[飞行器]基于matlab四旋翼飞行器PID控制仿真[含Matlab源码 1277期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 用matlab微分先行设计,基于MATLAB的微分先行PID控制的设计与仿真
第 34卷 第 1期 2014 年 1月 高 师 理 科 学 刊 Journal of Science of Teachers College and University Vo1.34 No.1 J ...
- 基于MATLAB/Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型
Solar_Charge_Controller:基于MATLAB/Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型. 其中,光伏MPPT控制采用扰动观测法(P&O法),蓄电池充电采用 ...
- 基于MATLAB Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型
Solar_Charge_Controller:基于MATLAB Simulink的太阳能光伏MPPT控制蓄电池充电仿真模型. 其中,光伏MPPT控制采用扰动观测法(P&O法),蓄电池充电采用 ...
- matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究
摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...
- 基于matlab的电流滞环控制,电流滞环控制matlab
设计二.电路图及封装参考上学期学过的电力电子教程中的电流逆变原理,使用 MATLAB 软件中的 Simulink 和 SimpowerSystems 工具箱构建三相电流跟踪滞环控制 系统的仿真.... ...
- matlab控制系统仿真论文,基于MATLAB的异步电动机直接转矩控制系统仿真毕业论文...
摘 要 矢量控制的交流变频调速系统具有非常好的性能和效率,在许多要求高性能和高精度的场合,矢量控制体现出来了其巨大的优势.对于电气传动系统的研究,往往会遇到数学物理计算的难题,难于得到比较贴近实际系 ...
- 【机器人学、机器视觉与控制】臂形机器人——机器人运动学
文章目录 机器人运动学 1 描述一台机械臂(标准D-H参数法) 2 正运动学 2.1 两连杆机器人 2.2 六轴机器人 3 逆运动学 3.1 封闭形式解(用于六轴机械臂) 3.2 数值解 3.3 轨迹 ...
- 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 ...
- 《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程
本节书摘来自华章社区<机器人与数字人:基于MATLAB的建模与控制>一书中的第2章,第2.3节指数映射和k过程,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区 ...
最新文章
- HDLBits 系列(22) Shift register
- Palo Doris版五分钟快速入门
- 汽车之家基于 Flink + Iceberg 的湖仓一体架构实践
- Ubuntu18.04彻底删除MySQL数据库
- c语言 乱码转化为16进制_面向小白的C语言科普教程(一)文件和扩展名、编码和十六进制...
- 大疆口袋相机美颜怎么设置_灵眸Osmo口袋云台相机评测-大疆灵眸云相机使用说明...
- JSON和XML:它们如何比较?
- Linux 系统如何查看硬盘UUID与修改
- 多乐融依托大数据锻造五重风控防线
- uva 10330(最大流)
- 并发网站压力测试工具
- 计算机速录水平考试,汉字速录水平测试(速录证考试报名网站)
- 机器学习实战笔记1——机器学习导论
- java创建表情包_表情包生成器
- C/C++代码实现向量叉乘
- 【MATLAB航空航天工具箱】学习笔记--IERS国际地球自转服务的公报
- 关于镇江市大数据服务体系的对策和建议研究
- 幼儿学习品质提升的培养策略问卷
- 放弃了又何需执着 ?
- str中的join方法,fromkeys(),set集合,深浅拷贝(重点)