基于MATLAB教学型机器人空间轨迹仿真
基于matlab平台的机器人学仿真软件实验报告
关节型机器人仿真软件
杨涛(sc11010039)2011.12.10
一、开发环境:matlab2008及以上版本(要求带机器人学工具箱)
二、功能:
1.按照DH矩阵建立图形化的关节型机器人对象
2.对生成的机器人进行正逆运动学的位置和速度进行分析和图形仿真
3.对机器人进行轨迹规划,并在轨迹规划的基础上对其做出动力学的分析。
计算机器人在负载情况下的各个关机所需提供
的力向量。
三、本软件的使用方法:
1.启动:如下图在将matlab的工作目录调整为本软件所在的
work目录,在matlab命令界面中输入maininterface命令;
的参数点击完成并返回即可生成相应机器人对象
3.点击文件菜单的显示子菜单即可显示如下的机器人对象
4.点击运动学分析菜单即可弹出如下运动学分析界面
5.在运动学位置分析的基础上选择进行运动学速度分析即可
弹出以下界面,利用雅克比矩阵对当前位置的速度向量进行正逆分析
6.点击轨迹规划菜单即可弹出以下界面,分别输入初始位置的
空间参数(位置参数和RPY参数)点击轨迹规划即可查看关机空间的轨迹规划的结果曲线和方程(五次多项式插值法)
7.在轨迹规划得到一系列位置、速度、加速度向量的基础上可
以对机器人进行动力学分析,计算完成以下动作机器人各个关节所需提供的力向量;。
基于Matlab的签名机器人建模与仿真报告
机器人学课程设计基于Matlab的签名机器人建模与仿真一、课程设计问题描述 (1)1.基本要求 (1)2.实现正运动学与工作空间 (1)3.实现逆运动学轨迹规划 (1)4.自由发挥项 (1)5.附录要求 (1)二、六自由度机器人设计 (1)1.机器人的基本构型设计 (1)2.机器人的尖节与连杆参数设计 (1)三、正运动学实现与工作空间 (2)1 •建立坐标系 (2)2.建立D-H表 (3)3.分析正运动 (3)4.按摩机器人正运动学仿真结果与工作空间 (4)四、机器人逆解与奇异型分析 (5)1.机器人逆运动学与微分运动学分析 (5)2.机器人轨迹规划仿真结果 (6)五、机器人数值解法改进 (6)1-逆运动的数值解法 (6)六 ' 心得体会 (9)七、程序流程与代码附录 (9)一♦课程设计问题描述1•基本要求①设计一款六自由度机器人,要求2,3,4,5尖节中有一个是滑动矢节,其余尖节应为转动尖节。
试构想该机器人的功能,并根据功能设定机器人的介绍参数(杆件长及尖节极限);②建立机器人的正运动学模型,进行Matlab运动仿真。
(分析机器人的工作空间,制作机器人的各个运动的动画)o2.实现正运动学与工作空间①自行设计一个六自由度机器人,对其尖节建立坐标系,注意包含滑动矢节;②给出所设计的六自由度机器人的D・H参数表;③推导所设计的六自由度机器人的正运动学,写出各个齐次变换矩阵;④使也MATLAB编程,得出机器人工作空间,包含立体图和剖面图、机器人工作动画;⑤对设计的六自Lil度机器人机器的工作空间进行简单分析。
3.实现逆运动学轨迹规划①这里特征机器人末端的轨迹规划,不是尖节空间的轨迹规划;②要实现控制机器人末端在空间完成某种轨迹(如直线、圆弧•写字•画图等);③可以釆用求解逆运动的方程或者是利用微分运动;④写出详细的推导过程(公式);⑤使用MATLAB编程仿真,得到仿真动画和图片。
4.自由发挥项①机器人完整逆解(数值解);②寻找奇异点,分析奇异位型;5.附录要求①附程序流程图;②附代码。
基于Matlab的空间描点机器人建模与仿真报告
课程设计课程名称机器人学题目名称空间描点机器人建模仿真学生学院专业班级学号学生姓名指导教师目录1.课程设计要求 (1)2.空间描点机器人的设计 (2)2.1机器人构型及坐标 (2)2.2D-H参数表 (4)3.正运动学 (5)3.1齐次变换矩阵 (5)3.2 空间描点机器人工作空间 (6)4.几何法求逆解 (7)5.程序流程图 (8)6.总结分析 (9)7.Matlab程序附录 (10)7.1 Mov_6DOF_Rob_Lnya.m (10)7.2 DHfk6Dof_Lnya.m (12)7.3 IK_6DOF_Rob_Lnya.m (13)7.4 Build_6DOFRobot_Lnya.m (14)7.5 Erzhihua.m (14)7.6 draw_Workplace.m (15)7.7 Matrix_DH_Ln.m (16)7.8 Connect3D.m (17)1. 课程设计要求一,按照附件模板填写,要求有封面和目录,除签名处不能有手写。
二,主要内容包括下面几个部分,1,设计一款六自由度机器人,要求2,3,4,5关节中有一个是滑动关节,其余关节应为转动关节。
试构想该机器人的功能,并根据功能设定机器人的介绍参数(杆件长度及关节极限)2,建立机器人的正运动学模型,进行Matlab 运动仿真。
(分析机器人的工作空间,制作机器人各个运动的动画。
)注意事项:1)要求画出机器人的关节坐标系,列出DH 参数表,以及各个关节间的齐次变换矩阵。
2)Matlab仿真应画出工作空间的立体图和剖面图。
采用机器人产品的同学应与实际说明书的工作空间做对比。
自行设计的同学要做简单的分析讨论。
3)直接采用例程里面的三自由度机器人该部分得0 分。
3,实现逆运动学轨迹规划注意事项:1)这里特指机器人末端的轨迹规划,不是关节空间的轨迹规划。
2)要实现控制机器人末端在空间中完成某种轨迹。
(如直线,圆弧,心型,写字等)3)可以采用求解逆运动的方程或者是利用微分运动。
基于Matlab的空间描点机器人建模与仿真报告
课程设计课程名称机器人学题目名称空间描点机器人建模仿真学生学院专业班级学号学生姓名指导教师目录1.课程设计要求 (1)2.空间描点机器人的设计 (2)2.1机器人构型及坐标 (2)2.2D-H参数表 (4)3.正运动学 (5)3.1齐次变换矩阵 (5)3.2 空间描点机器人工作空间 (6)4.几何法求逆解 (7)5.程序流程图 (8)6.总结分析 (9)7.Matlab程序附录 (10)7.1 Mov_6DOF_Rob_Lnya.m (10)7.2 DHfk6Dof_Lnya.m (12)7.3 IK_6DOF_Rob_Lnya.m (13)7.4 Build_6DOFRobot_Lnya.m (14)7.5 Erzhihua.m (14)7.6 draw_Workplace.m (15)7.7 Matrix_DH_Ln.m (16)7.8 Connect3D.m (17)1. 课程设计要求一,按照附件模板填写,要求有封面和目录,除签名处不能有手写。
二,主要内容包括下面几个部分,1,设计一款六自由度机器人,要求2,3,4,5关节中有一个是滑动关节,其余关节应为转动关节。
试构想该机器人的功能,并根据功能设定机器人的介绍参数(杆件长度及关节极限)2,建立机器人的正运动学模型,进行Matlab 运动仿真。
(分析机器人的工作空间,制作机器人各个运动的动画。
)注意事项:1)要求画出机器人的关节坐标系,列出DH 参数表,以及各个关节间的齐次变换矩阵。
2)Matlab仿真应画出工作空间的立体图和剖面图。
采用机器人产品的同学应与实际说明书的工作空间做对比。
自行设计的同学要做简单的分析讨论。
3)直接采用例程里面的三自由度机器人该部分得0 分。
3,实现逆运动学轨迹规划注意事项:1)这里特指机器人末端的轨迹规划,不是关节空间的轨迹规划。
2)要实现控制机器人末端在空间中完成某种轨迹。
(如直线,圆弧,心型,写字等)3)可以采用求解逆运动的方程或者是利用微分运动。
基于MATLAB的机器人运动学仿真与轨迹规划
基于MATLAB的机器人运动学仿真与轨迹规划王晓明;宋吉;庞浩帅【摘要】为研究机器人的轨迹规划,在MATLAB环境下,建立了机器人坐标系并显示其D-H矩阵,确定机器人的连杆运动参数,对机器人的正、逆运动学问题进行分析.通过对机器人的轨迹规划仿真,分析了机器人运动过程中的关节稳定性,如位移、速度、加速度变化等直观地显示了机器人关节的运动,得到了连续平滑的机器人关节角度轨迹曲线与末端位姿规划曲线.仿真实验表明,所设计的运动学参数是正确的,从而达到了预定的目标.【期刊名称】《电子设计工程》【年(卷),期】2019(027)007【总页数】5页(P109-112,117)【关键词】机器人;轨迹规划;MATLAB;仿真【作者】王晓明;宋吉;庞浩帅【作者单位】兰州理工大学电气工程与信息工程学院,甘肃兰州730050;兰州理工大学电气工程与信息工程学院,甘肃兰州730050;兰州理工大学电气工程与信息工程学院,甘肃兰州730050【正文语种】中文【中图分类】TN242.2分析机器人运动学是研究机器人的重要前提,其中包括机器人相对于固定坐标系运动的几何学,在特定工作环境下对机器人进行动力学分析、轨迹规划和控制机器人的任务执行。
所有不同机构的机器人实质上是由一系列关节和连杆连接的[1]。
根据相邻关节与连杆间的旋转、平移变换可以推导机器人运动学建模的过程[2],求解运动学的逆解[3]。
机器人的逆解表明了末端位姿在可达工作空间的运动情况,但是逆解数目与关节数目、连杆参数、关节变量息息相关,涉及十分繁琐复杂的数学运算[4]。
为了提高效率,更加直观理解关节速度对末端线速度与角速度的影响,采用了MATLAB中Robotics Toolbox的机器人函数[5],对机器人进行正逆运动学仿真和求解给定机器人的雅可比矩阵,并进行解的轨迹规划实现最优解[6]。
1 运动学分析1.1 六自由度机器人D-H坐标系为描述机器人和机器人的相对运动关系,通常采用的建模方法是由Denavit和Hartenberg提出的D-H参数法[7]。
基于V-REP和MATLAB的机器人建模及轨迹规划仿真验证
θ2 的解为
式中:
2
2
2
2
臂的运动学验证仿真ꎮ
3.2 V -REP 中建立虚拟样机模型
V-REP 软件自身三维建模效率较低ꎬ只能建立已知
空间三维坐标的一些简单形状ꎬ故采用 UG 三维模型导入
的方法ꎬ同时为了保证三维模型导入 V-REP 后模型方便
处理ꎬ需要先将 UG 中建立的 AUBO -i5 模型各个关节位
pz ÷ i = 1
÷
1ø
(1)
109
孙凌云ꎬ等基于 V-REP 和 MATLAB 的机器人建模及轨迹规划仿真验证
信息技术
求解 θ i ꎬ满足 θ i ∈ [ -175°ꎬ175° ] ꎮ 经推导各个关节
接口ꎬ可满足机器人在各种环境下的仿真ꎮ 其使用和搭建
θ1 = arctan2( d4 ꎬ±
manipulator is established by importing it into the cross platform open source simulation software V-REP through the interface. The
motion trajectory planning is completed by MATLABꎬ and the kinematics simulation and collision detection are completed by
合ꎮ 详细步骤如下:将 UG 模型文件保存为 STL 文件ꎬ导
入 V-REP 场景中ꎻ分解模型并删除大量多余的形状ꎬ以
此减轻运动学以及动力学仿真的计算量ꎻ组合各个形状ꎬ
添加机械臂动力学参数ꎬ调整各个形状之间的继承关系并
使用关节连接各个连杆ꎻ最后添加装卸物件的末端夹具ꎬ
基于MATLAB的焊接机器人工作空问及轨迹规划仿真
p
z
d1+a2s2-d4 2 c2c3-s2s3 2 +a3c2s3+a3c3s2
(2)根据机器人关节变量取值范围(表1),在MATLAB中
生成各关节变量随机值。
θi=θimin+(θimax-θimin)×RAND(N,1) 式中,θimax和θimin表示关节i转角范围内的最大、最小值。
Sheji yu Fenxi◆设计与分析
基于MATLAB的焊接机器人工作空间及轨迹规划仿真
孙光亚 岳建锋 钟 蒲
(天津工业大学,天津 300387)
摘 要:以六自由度关节式机器人为研究对象,基于D-H坐标系理论讨论机器人的运动学问题,提出采用随机抽样生成机器人关节 变量的蒙特卡洛法对机器人的工作空间进行仿真计算,利用MATLAB机器人工具箱Robotics Toolbox对机器人在关节空间和笛卡尔空间 的轨迹规划进行仿真分析。 仿真结果表明,机器人工作空间求解正确,机器人轨迹规划可靠,能够高效地到达预定位姿,仿真生成的数据 文件为机器人的离线编程和复杂空间轨迹规划的研究提供了重要的数据支持。
(1)在机器人正运动学方程中,可以得到末端执行器在参
考坐标系中相对基坐标系的位置向量:
p
x
a1c1+d4
2 c1c2s3+c1c3s2
+a2c1c2-a3c1s2s3+a3c1c2c3
p
y
=
a1s1+d4
2 c2s1s3+c3s1s2
2 +a2c2s1-a3s1s2s3+a3c2c3s1
s23-ozc23
论MATLAB仿真与移动机器人轨迹跟踪控制
论MATLAB仿真与移动机器人轨迹跟踪控制随着德国工业4.0和中国制造2025发展战略的提出,自动化技术正广泛应用服务于各领域,代替部分人工劳动力的同时也降低了生产成本,提高了劳动效率。
轮式移动机器人因在物流等领域的广泛应用而成为智能控制、自动化控制和运动控制的重要研究平台,然而轮式移动机器人是一个非线性的非完整系统,具有非完整约束条件特性,使其在轨迹跟踪控制时带来了很大的难度,传统的PID控制算法在轮式移动机器人轨迹跟踪控制的研究上取得了一定成果,但是随着环境的复杂化和不确定性,使得传统的控制方法达不到需要的控制效果。
近年来,随着现代控制方法的不断发展,非完整移动机器人轨迹跟踪控制也取得了很多的控制方法,主流的方法有自适应控制、反演控制、滑膜结构控制和智能控制。
本文通过对轮式移动机器人应用机械原理的方法描述其运动学模型并得到模型中各物理量之间的数学关系。
再通过设计合理的控制器,使得移动机器人能够快速稳定跟踪目标路径轨迹。
1 轮式移动机器人运动学模型1.1 建立运动学模型如图1所示,将后轮驱动前轮转向四轮移动机器人简化成双轮自行车模型(图1中阴影部分),其后輪为驱动轮,前轮为转向轮,可以在水平轴上自由转动,实现车辆转向,图1中各个参数如下:为全局坐标系;为移动机器人局部坐标;为移动机器人旋转中心;为转向轮转角;为运动速度;为移动机器人姿态;为前后轴距;为后轮转向半径;为前轮转向半径。
根据移动机器人运动学模型三个公式,利用Matlab/Simulink模块搭建运动模型并描述其参数变量之间的关系,本次仿真实验使用的工具是MathWorks公司的产品Matlab2015a版本,在Matlab/Simulink环境中搭建模块。
其搭建结果可以表示为如图2所示。
由图2可知,移动机器人有两个输入,分别为车的速度和车轮转角,三个输出,图中添加了轮式移动机器人速度限制模块(vel limit)、加速度限制模块(acceleration limit)、转向角限制器(streering angle limit)、手动中断模块(handbrake)等,确保移动机器人在运动过程中速度、加速度和转向角在一定范围内,保证其在突发情况下的安全性。
基于Matlab的教学型机器人空间运动轨迹仿真
基于Matlab的教学型机器人空间运动轨迹仿真
王鲁敏;李艳文
【期刊名称】《机械与电子》
【年(卷),期】2005(000)009
【摘要】根据教学型机器人的实际结构特点,利用Matlab中SimMechanics工具箱建立了运动学仿真模型.并进行机器人关节空间和直角坐标系下的运动仿真.仿真结果表明利用仿真模型可以准确、有效地得到机器人的运动参数和运动轨迹,为机器人分析设计提供了可靠依据.
【总页数】3页(P55-57)
【作者】王鲁敏;李艳文
【作者单位】燕山大学,河北,秦皇岛,066004;燕山大学,河北,秦皇岛,066004
【正文语种】中文
【中图分类】TP391.9
【相关文献】
1.基于MATLAB的六自由度机器人越障轨迹仿真 [J], 张明;王奕棋;张旭;于天彪;王贵和
2.基于Adams和Matlab的复合驱动弹跳筛运动轨迹仿真分析 [J], 刘新宇;罗卫平;孙学斌
3.基于MATLAB Robtics Toolbox的机械臂轨迹仿真研究 [J], 夏伟; 吴玉文
4.基于Matlab的机器人轨迹仿真及关节控制 [J], 张文典; 黄家才; 胡凯
5.基于MATLAB Robotics Toolbox的四足机器人轨迹仿真与优化 [J], 陈明方;张凯翔;陈久朋;熊彬洲;李奇;姚国一;李鹏宇
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Matlab的七轴机器人工件搬运{路径规划}建模及仿真报告
机器人学课程设计课程名称机器人学_______________ 题目名称七轴分拣机器人系统设计学生学院_______________________________ 专业班级_______________________________ 学号__________________________________ 学生姓名_______________________________指导教师_______________________________目录1 机器人简介 (3)2 系统结构 (3)2.1 机器人的基本构型设计 (3)3 正运动学实现与工作空间 (3)3.1 机器人DH 表建立 (3)3.2 齐次变换矩阵推导 (4)3.3 仿真绘制工作空间 (5)3.4 分拣范围要求测试 (6)4 机器人逆运动 (6)4.1 微分运动 (7)4.2 数值解法 (8)4.3 轨迹规划 (10)5 流程图 (13)6 总结 (14)附录 (16)1机器人简介随着科学技术不断的发展,机器人技术在军事、航空航天、工农业生产及医疗等领域迅猛进步。
机器人按技术层次可以分为:固定程序控制机器人、示教再现机器人和智能机器人等。
目前机器人研究涉及到机构学、运动学、控制技术、传感技术等领域。
由于机器人的研究涉及到庞大数学运算,计算工作繁琐复杂,常利用一些工具软件来提高对其分析的工作效率,并且可以增加运算的灵活性和准确性。
现利用MATLAB软件通用性好、计算绘图功能强大等特点,自主设计一款七自由度机器人,并对其进行运动空间及轨迹的仿真分析。
2系统结构2.1机器人的基本构型设计本系统设计的机器人共有七个自由度,其中机器人末端(即第七个关节)为伸缩关节,其余关节均为旋转关节(第1、5、7为过轴旋转关节)。
关节与关节之间的长度为L,为与后续坐标系的建立统一,这里4和5、6和7两组关节是结合在一起的,关节间长度L仁250,L2=550,L3=850,L4=820,由于关节7是滑动关节,L5的运动范围这是设置的是170到500。
MATLAB机器人仿真程序
MATLAB机器人仿真程序随着机器人技术的不断发展,机器人仿真技术变得越来越重要。
MATLAB是一款强大的数学计算软件,也被广泛应用于机器人仿真领域。
本文将介绍MATLAB在机器人仿真程序中的应用。
一、MATLAB简介MATLAB是MathWorks公司开发的一款商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算等。
MATLAB具有丰富的工具箱,包括信号处理、控制系统、神经网络、图像处理等,可以方便地实现各种复杂的计算和分析。
二、MATLAB机器人仿真程序在机器人仿真领域,MATLAB可以通过Robotics System Toolbox实现各种机器人的仿真。
该工具箱包含了机器人运动学、动力学、控制等方面的函数库,可以方便地实现机器人的建模、控制和可视化。
下面是一个简单的MATLAB机器人仿真程序示例:1、建立机器人模型首先需要定义机器人的几何参数、连杆长度、质量等参数,并使用Robotics System Toolbox中的函数建立机器人的运动学模型。
例如,可以使用robotics.RigidBodyTree函数来建立机器人的刚体模型。
2、机器人运动学仿真在建立机器人模型后,可以使用Robotics System Toolbox中的函数进行机器人的运动学仿真。
例如,可以使用robotics.Kinematics函数计算机器人的位姿,并使用robotics.Plot函数将机器人的运动轨迹可视化。
3、机器人动力学仿真除了运动学仿真外,还可以使用Robotics System Toolbox中的函数进行机器人的动力学仿真。
例如,可以使用robotics.Dynamic函数计算机器人在给定速度下的加速度和力矩,并使用robotics.Plot函数将机器人的运动轨迹可视化。
4、机器人控制仿真可以使用Robotics System Toolbox中的函数进行机器人的控制仿真。
例如,可以使用robotics.Controller函数设计机器人的控制器,并使用robotics.Plot函数将机器人的运动轨迹可视化。
基于Matlab强化学习路径寻优机器人建模与仿真
差分进化算法
• 算法思想:
适应度(fi)程序上的编程思路
1.求取当前粒子的变换矩阵 2.根据当前粒子进行正运动学计算得出对应的
位姿 3.计算当前粒子的位姿与期望位姿的误差 4.取误差的倒数(由此可见误差越小适应度fi
越大)
差分进化算法辨识效果
基于Q-learning机器人路径寻优
Q表及observation、action及一些编 程想法
observation
0 1 2 3 4 5
Hale Waihona Puke opt-action (0,4) down (1,5) right (2,3) down (3,1) right (4,5) left
//
Action 上(right) 下(down) 左( left) 右(right)
Random_pro3演示视频
编号 1 2 3 4
寻优算法流程
寻优视频
Random_pro1:随机点在dot-2,其最优路径为 2-3-1-5
Random_pro2:随机点在dot-4,其最优路径为 4-1
Random_pro3:随机点在dot-3,其最优路径为 3-1-5
Random_pro1演示视频
Random_pro2演示视频
基于MATLAB教学型机器人空间轨迹仿真
基于MATLAB教学型机器人空间轨迹仿真robotic toolbox for matlab工具箱1. PUMA560的MATLAB仿真要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:L = LINK([alpha A theta D])L =LINK([alpha A theta D sigma])L =LINK([alpha A theta D sigma offset])L =LINK([alpha A theta D], CONVENTION)L =LINK([alpha A theta D sigma], CONVENTION)L =LINK([alpha A theta D sigma offset], CONVENTION)参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:LINK.alpha%返回扭转角LINK.A%返回杆件长度LINK.theta%返回关节角LINK.D%返回横距LINK.sigma%返回关节类型LINK.RP%返回‘R’(旋转)或‘P’(移动)LINK.mdh%若为标准D-H参数返回0,否则返回1LINK.offset%返回关节变量偏移LINK.qlim%返回关节变量的上下限[min max]LINK.islimit(q)%如果关节变量超限,返回-1, 0, +1LINK.I%返回一个3×3 对称惯性矩阵LINK.m%返回关节质量LINK.r%返回3×1的关节齿轮向量LINK.G%返回齿轮的传动比LINK.Jm%返回电机惯性LINK.B%返回粘性摩擦LINK.Tc%返回库仑摩擦LINK.dhreturn legacy DH rowLINK.dynreturn legacy DYN row其中robot函数的调用格式:ROBOT%创建一个空的机器人对象ROBOT(robot)%创建robot的一个副本ROBOT(robot, LINK)%用LINK来创建新机器人对象来代替robotROBOT(LINK, ...)%用LINK来创建一个机器人对象ROBOT(DH, ...)%用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...)%用DYN矩阵来创建一个机器人对象2.变换矩阵利用MA TLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
基于MATLABRoboticsToolbox的机器人学仿真实验教学-精品文档
基于MATLAB Robotics Toolbox 的机器人学仿真实验教学机器人学是一门高度交叉的前沿学科方向, 也是自动化和机电工程等相关专业的一门重要专业基础课。
在机器人学的教学和培训中, 实验内容一直是授课的重点和难点。
实物机器人通常是比较昂贵的设备, 这就决定了在实验教学中不可能运用许多实际的机器人来作为教学和培训的试验设备。
由于操作不方便、体积庞大等原因, 往往也限制了实物机器人在课堂授课时的应用。
此外, 由于计算量、空间结构等问题,当前大多数机器人教材只能以简单的两连杆机械手为例进行讲解,而对于更加实际的 6 连杆机械手通常无法讲解得很清楚。
因此, 各式各样的机器人仿真系统应运而生。
经过反复的比较,我们选择了MATLAB RoboticsToolbox [1] 来进行机器人学的仿真实验教学。
MATLABRobotics Toolbox 是由澳大利亚科学家Peter Corke开发和维护的一套基于MATLAB勺机器人学工具箱,当前最新版本为第8版,可在该工具箱的主页上免费下载提供了机器人学研究(petercorke/robot/) 。
Robotics Toolbox中的许多重要功能函数, 包括机器人运动学、动力学、轨迹规划等。
该工具箱可以对机器人进行图形仿真, 并能分析真实机器人控制时的实验数据结果, 因此非常适宜于机器人学的教学和研究。
本文简要介绍了Robotics Toolbox 在机器人学仿真实验教学中的一些应用, 具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。
1坐标变换机器人学中关于运动学和动力学最常用的描述方法是矩阵法, 这种数学描述是以四阶方阵变换三维空间点的齐次坐标为基础的[2] 。
如已知直角坐标系{A} 中的某点坐标,那么该点在另一直角坐标系{B} 中的坐标可通过齐次坐标变换求得。
一般而言齐次变换矩阵是4X4的方阵,具有如下形式: 和分别表示{A}{B} 两坐标系之间的旋转变换和平移变换。
基于Matlab强化学习路径寻优机器人建模与仿真报告
课程设计课程名称机器人学题目名称基于Matlab的强化学习路径寻优学生学院专业班级学号学生姓名指导教师目录1 课程设计要求 (3)2 六自由度机器人设计 (3)2.1 机器人构型及其坐标系 (3)2.2 机器人dh参数表 (4)2.3 机器人关节运动范围 (4)3 正运动学 (4)3.1 机器人工作空间 (5)4 逆运动学 (5)4.1 微分运动 (5)4.2 算法流程 (5)4.3 实验结果 (6)5 有关机器人一些其他的工作 (6)5.1 差分进化算法辨识逆运动学解 (6)5.2 关于本次报告中使用差分算法的一些理解与想法 (7)5.3 基于强化学习的路径寻优及程序流程图 (9)6 有关程序以及视频资料、其余文件的说明 (11)1课程设计要求一,按照附件模板填写,要求有封面和目录,除签名处不能有手写。
二,主要内容包括下面几个部分,1,设计一款六自由度机器人,要求2,3,4,5关节中有一个是滑动关节,其余关节应为转动关节。
试构想该机器人的功能,并根据功能设定机器人的介绍参数(杆件长度及关节极限)2,建立机器人的正运动学模型,进行Matlab运动仿真。
(分析机器人的工作空间,制作机器人各个运动的动画。
)注意事项:1)要求画出机器人的关节坐标系,列出DH参数表,以及各个关节间的齐次变换矩阵。
2)Matlab仿真应画出工作空间的立体图和剖面图。
采用机器人产品的同学应与实际说明书的工作空间做对比。
自行设计的同学要做简单的分析讨论。
3)直接采用例程里面的三自由度机器人该部分得0分。
3,实现逆运动学轨迹规划注意事项:1)这里特指机器人末端的轨迹规划,不是关节空间的轨迹规划。
2)要实现控制机器人末端在空间中完成某种轨迹。
(如直线,圆弧,心型,写字等)3)可以采用求解逆运动的方程或者是利用微分运动。
4)写出详细的推导过程(公式)。
5)要求有仿真截图及动画。
6)只能使用matlab及本课程提供的例程,不能使用工具箱。
基于MATLAB的PUMA560机器人运动仿真与轨迹规划5
The movement simulation and trajectory planning ofPUMA560 robotShibo zhaoAbstract: In this essay, we adopt modeling method to study PUMA560 robot in the use of Robotics Toolbox based on MATLAB. We mai nly focus on three problems in elude: the forward kin ematies, in verse kin ematies and trajectory pla nning. At the same time, we simulate each problem above, observe the moveme nt of each joint and expla in the reas on for the selecti on of some parameters. Fin ally, we verify the feasibility of the modeli ng method.Key words: PUMA560 robot; kinematics; Robotics Toolbox; The simulation;I. IntroductionAs automati on becomes more prevale nt in peop'life, robot beg ins more further to cha nge peoplesworld. Therefore, we are obliged to study the mecha nism of robot. How to move, how to determine the position of target and the robot itself, and how to determ ine the an gles of each point n eeded to obta in the positi on. In order to study robot more validly, we adopt robot simulati on and object-orie nted method to simulate the robot kin ematic characteristics. We help researchers un dersta nd the con figurati on and limit of the robot s vvorki ng space and reveal the mecha nism of reas on able moveme nt and control algorithm. We can let the user to see the effect of the design, and timely find out the shortco mings and the in sufficie ncy, which help us avoid the accide nt and unn ecessary losses on operat ing en tity. This paper establishes a model for Robot PUMA560 by using Robotics Toolbox, and study the forward kinematics and inverse kinematics of the robot and trajectory pla nning problem.II. The introduction of the parameters for the PUMA560 robot PUMA560 robot is produced by Un imatio n Compa ny and is defi ned as 6 degrees of freedom robot. It consists 6 degrees of freedom rotary joints (The structure diagram is shown in figure 1). Referring to the human body structure, the first join( J1) called waist joints. The second join( J2) called shoulder joint. The third joint (J3) called elbow joints. The joi nts J4 J5, J6, are called wrist joi nts. Where, the first three joi nts determ ine the positi on of wrist refere nee point. The latter three joi nts determ ine the orie ntati on of the wrist. The axis of the joi nt J1 located vertical directi on. The axis directi on of joi nt J2, J3 is horizontal and parallel, a3 meters apart. Joint J1, J2 axis are vertical intersection and joi nt J3, J4 axis are vertical crisscross, dista nee of a4. The latter three join tsaxes have an intersection point which is also origin point for {4}, {5}, {6} coordinate. (Each link coordi nate system is show n in figure 2)【4】Figi the structure of puma560When PUMA560 Robot is in the initial state, the corresponding link parameters are showed in table 1. a2 = 0.4381m,a3 = 0.0203m,d2 = 0.1491m, d40.4331mThe expressi on of parameters:Let length of the bar : = represent the distanee between z i 4and z i along x i 4.Torsion angle : i 4denote the angle revolving x^from to z i.The measuring distanee between x iJt and x i along z i is d i.Joint angle^ is the angle revoIving from % 4 to X i along Z i.⑷Table 1 the parameters of puma560link:ij/() a/() R/() di /(m) Range10 0 90 0 -160~1602-90 0 0 0.1491 -225~4530 0.4318 -90 0 -45~2254-90 -0.0213 0 0.4331 -110~170590 0 0 0 -100~1006-90 0 0 0 -266~266III .The movement analysis of Puma560 robot3.1 Forward kinematicDefinition: Forward kinematics problem is to solve the pose of end-effecter coordi nate relative to the base coord in ate whe n give n the geometric parameters of link and the tran slatio n of jo int. Let make things clearlyWhat you are given: the len gth of each link and the an gle of each jointWhat you can find: the positi on of any point (i.e. it s( x, y, z/ , 1, ) coord in ate)3.2 The solution of forward kinematicsMethod: Algebraic solutionPrincipal: x = k(q) The kinematic model of a robot can be written like this, where q denotes the vector of joint variable, x denotes the vector of task variable, k() is the direct kin ematic fun cti on that can be derived for any robot structure .The origin of k(q)Each joint is assigneda coordinate frame. Using the Denavit-Hartenberg notation, you need 4 parameters 咚,a,日,d ) to describe how a frame () relates to a previous frame (i -1)i :T . For two frames positioned in space, the first can be moved into coincidenee with the sec ond by a seque nee of 4 operati ons:1. Rotate around the X i j axis by an angle i」.2. Tran slate along the X i』axis by a dista nee i^.3. Rotate around the new z axis by an angle.4. Tran slate along the new z axis by a dista nce .3.3lnverse kinematicDefinition : Robot inv erse kin ematiCS problem is that resolve each joi nt variables ofthe robot based on give n the positi on and direct ion of the en d-effecter or of the link (It can show as position matrix T). As for PUMA560 Robot, variable 円 二6 need to be resolved.Let make things clearly :What you are given: The length of each link and the position of some point on the robot.What you can find: The angles of each joint needed to obtain that position.3.4 The solution of inverse kinematicsMethod: Algebraic solution Principal: x=j (q )qWhere J 二 fk/:q is the robot Jacobian. Jacobian can be seen as a mapping fromJoint velocity space to Operational velocity space.3.5 The trajectory planning of robot kinematicsThe trajectory pla nning of robot kin ematics mai nly studies the moveme nt of robot. Our goal is to let robot moves along give n path. We can divide the trajectory of robots into two kin ds. One is point to point while the other is trajectory tracki ng. The former is only focus on specific location point. The latter cares the whole path.Trajectory track ing is based on point to point, but the route is not determ in ed. So, trajectory tracking only can ensure the robots arrives the desired pose in the end position, but can not ensure in the whole trajectory. In order to let the end-effecter arriving desired path, we try to let the distance between two paths as small as possible when we plan Cartesia n space path. In additi on, in order to elim in ate pose and positi on uncerta inty betwee n two path poi nts, we usually do motivati on pla n among every joi nts un der gang con trol. I n a word, let each joint has same run duratio n whe n we do trajectory pla nning in joint space.i :T 二 Rotx(x, :c®SV j C 〉i J SRC 〉i J 0:-i JTransl(x, : i j)Rotz(z,m )Transl (z,dj-:id—djSa i 1d j sot i 」1 一 above the final homogeneous transform -S 3 C V i C 、; i 1CRC> i二-s :"i 1C 〉i 」Therefore, according to the theorycorresp onding to the last link of the mani pulator: |ny「°S x S y S z 0 a x ay a z 0 P x〕 P yP z1(1.1)(1.2)(1.3)At same time, in order to make the trajectory pla nning more smoothly, we n eed to apply the in terpolati ng method.Method: polyno mial in terpolati ng [1] Given: boundary condition飞(0)6g9 (t f )9 f(0)0J ,( t f ) =0 LOutput : joint space trajectory t between two points23r t = a 。
基于MATLAB与V-REP的机器人加工轨迹生成与运动仿真
第57卷 第5期厦门大学学报(自然科学版)V o l .57 N o .5 2018年9月J o u r n a l o fX i a m e nU n i v e r s i t y (N a t u r a l S c i e n c e )S e p.2018 h t t p :ʊjx m u .x m u .e d u .c n d o i :10.6043/j.i s s n .0438-0479.201710018基于M A T L A B 与V -R E P 的机器人加工轨迹生成与运动仿真刘 宇*,张世超,龚集响(厦门大学航空航天学院,福建厦门361102)摘要:提出了联合MA T L A B 和V -R E P 进行机器人加工轨迹生成和运动仿真的方法.该方法首先在MA T L A B 中,计算机器人操作空间中刀具的轨迹,并通过逆运动学计算获得刀具轨迹对应的关节参数.然后在V -R E P 中,采用基于关节和连杆统一坐标系的建模方法,建立与刀轨文件一致的机器人及其加工环境的三维模型.最后通过MA T L A B 中的外部控制程序和V -R E P 中的控制脚本㊁MA T L A B 和V -R E P 之间的通信接口,使V -R E P 中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.采用所提出的方法对密胺脂餐具盘的机器人铣边过程进行了仿真,仿真结果表明该方法能够生成无干涉加工轨迹和正确的机器人关节运动参数.关键词:MA T L A B ;V -R E P ;联合仿真;机器人建模;刀具轨迹生成;机器人运动仿真中图分类号:T P242 文献标识码:A 文章编号:0438-0479(2018)05-0715-07收稿日期:2017-10-27 录用日期:2018-07-16基金项目:国家自然科学基金(51205332);福建省科技重大专项(2016H Z 0001-6)*通信作者:m s e l i u yu @x m u .e d u .c n 引文格式:刘宇,张世超,龚集响.基于MA T L A B 与V -R E P 的机器人加工轨迹生成与运动仿真[J ].厦门大学学报(自然科学版),2018,57(5):715-721. C i t a t i o n :L I U Y ,Z H A N GSC ,G O N GJX.M a c h i n i n gpa t h g e n e r a t i o na n dm o t i o ns i m u l a t i o no f r ob o t sb a s e do n MA T L A Ba n d V -R E P [J ].X i a m e nU n i vN a t Sc i ,2018,57(5):715-721.(i nC h i n e s e) 机器人建模和仿真是当前开展机器人任务规划和实际应用的必要手段.目前国内外对机器人的建模和仿真主要是基于通用计算机辅助设计/计算机辅助制造(C A D /C AM )软件㊁MA T L A B ㊁O pe n G L 图形库㊁专用软件(如R o b o t S t u d i o ㊁R o b o G u i d e 等)[1-2].U G ㊁P R O /E 等C A D /C AM 软件适用于产品设计与分析,可通过仿真进行虚拟加工和制造,但其功能的扩展性和开放性较差[3-4].MA T L A B 凭借其丰富的数学计算工具在机器人领域应用较为广泛[5].但是MA T -L A B 不擅长三维图形显示,难以有效进行机器人及其工作环境的三维仿真.O p e n G L 图形库功能强大,用于机器人建模和仿真时需大量软件开发工作,对操作人员的编程能力和机器人相关知识的要求较高[6-7].而专用软件适用于特定品牌的机器人,难以进行扩展开发.本研究提出了机器人建模和仿真的集成方法.该方法结合C A D 软件在三维建模㊁MA T L A B 在数值计算㊁V -R E P 在运动仿真方面的优势,解决了不同系统集成时机器人约束模型的建立㊁从工件模型生成机器人刀具轨迹(简称刀轨)㊁M A T L A B 和V -R E P 联合仿真等问题,实现了机器人加工轨迹生成和运动仿真.其中V -R E P 作为三维运动仿真平台,具有开源性和包含丰富的应用程序编程接口(A P I )等优点[8-9].MA T L A B 则作为外部控制程序进行轨迹计算和提供通信接口.本研究所提出的机器人建模和仿真方法主要包含以下步骤:首先在三维软件中生成工件坐标系下的加工刀具位置(简称刀位)文件;接着在M A T L A B 中计算机器人操作空间中末端刀具的轨迹,并通过逆运动学计算获得刀具轨迹对应的关节参数[10-11];然后在V -R E P 中建立与刀轨文件一致的机器人及其加工环境的三维模型;最后通过MA T L A B 中的外部控制程序和V -R E P 中的控制脚本㊁MA T L A B 和V -R E P 之间的通信接口,使V -R E P 中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.下文将详细介绍上述步骤中涉及到的机器人建模方法㊁机器人刀具轨迹生成方法㊁M A T L A B 和V -R E P 之间的任务分工及通信控制方法.Copyright©博看网 . All Rights Reserved.厦门大学学报(自然科学版)2018年h t t p :ʊjx m u .x m u .e d u .c n 1 基于关节和连杆统一坐标系的机器人建模方法关节和连杆的统一坐标系是指关节i 的坐标系与连杆i 的坐标系始终保持一致重合,而关节和连杆的运动由对应的坐标系的运动表示,故关节i 的运动与连杆i 的运动相同.1.1 关节和连杆的建模工业机器人常用的关节有旋转㊁移动和球关节,分别用圆柱㊁长方体和球来表示3种关节的三维模型.其中旋转关节有1个绕圆柱的轴线转动的自由度,移动关节有1个沿与长方体长边平行的中心轴移动的自由度,球关节有3个绕球心转动的自由度.为了描述关节的位姿,在每个关节上定义关节坐标系,各关节坐标系的原点均为其几何中心.旋转关节坐标系的z 轴是其旋转轴,x 轴和y 轴是在与z 轴垂直的平面内互相正交的任意两个方向.移动关节坐标系的z 轴是其移动轴,x 轴和y 轴是在与z 轴垂直的平面内互相正交的任意两个方向.球关节坐标系的x 轴㊁y 轴和z 轴是任意3个组成右手正交坐标系的方向.连杆采用文献[12]中的定义.如图1所示,轴i -1和轴i 分别是关节i -1和关节i 的轴线,连杆i -1的连杆坐标系为x i -1yi -1z i -1,连杆i 的连杆坐标系为x i yi z i .连杆i -1由连杆长度a i -1㊁连杆扭角αi -1㊁关节i 处的关节角θi 和偏置距离d i 来描述.图1 连杆坐标系的定义F i g .1D e f i n i t i o n s o f t h e l i n k -p o l e c o o r d i n a t e s ys t e m s 根据连杆长度和扭角是否为零可将连杆形式分成4类;再根据关节偏置或者关节角是否为零,连杆形式进一步各被分成8种类型.当关节i 是旋转关节时,根据关节偏置d i =0和d i ʂ0的2种情况,连杆i -1有8种可能的形式,表1给出了表示这8种L 1~L 8的连杆形式,此时关节变量为关节角θi .当关节i 是移动关节时,根据关节角θi =0和θi ʂ0的2种情况,连杆i -1也有8种形式,其关节变量为关节偏置d i .表1 旋转关节对应的8种连杆形式T a b .1 8t y p e s o f l i n k -p o l e s c o r r e s p o n d i n gt o r o t a t i o n a l jo i n t s 连杆参数L 1L 2L 3L 4L 5L 6L 7L 8a i -1ʂ00ʂ00ʂ00ʂ00αi -1ʂ0ʂ000ʂ0ʂ00d iʂ0ʂ0ʂ0ʂ0根据连杆的不同形式来建立连杆的简化三维模型.下面以旋转关节对应的8种形式的连杆的建模为例进行说明.首先定义连杆坐标系x i -1yi -1z i -1和x i yi z i .注意x i -1轴应同时与z i -1轴和z i 轴垂直.然后以连杆坐标系的原点为球心生成三维球体,分别构造长度为a i -1(a i -1ʂ0)㊁轴线方向为x i -1的圆柱连杆i -1和长度为d i (d i ʂ0)㊁轴线方向为z i 的圆柱连杆i 将球体连接起来.最后组合连杆坐标系㊁球体和圆柱体得到如图2所示的连杆i -1的简化三维模型.注意连杆坐标系x i -1y i -1z i -1相对连杆i -1是固定的.坐标系x i y i z i 相对连杆i -1的位姿是随关节变量θi 的值变化的.1.2 机器人的建模常见的工业机器人是由一系列连杆通过关节交替连接而成的开式链.文献[12]中已经给出不同连杆坐标系之间的坐标变换关系.基于关节和连杆的统一坐标系按如下步骤进行机器人的建模:1)根据机器人的尺寸和规格,建立机器人的连杆坐标系,获得机器人的连杆参数.2)根据关节坐标系与连杆坐标系重合计算各关节在世界坐标系中的位姿,并在同一场景中建立所有关节的三维模型.3)确定关节的相互运动关系.从与基座相连的关节1开始,依次令前一关节为后一关节的父节点,而后一关节为前一关节的子节点.父关节的运动将叠加在子关节的运动上.4)依次建立连杆的三维模型,并通过连杆坐标系与关节坐标系重合的约束依次将连杆依附到对应的关节上,使连杆的运动等于对应关节的运动,从而完成机器人的建模.基座没有对应的关节.在建立基座的三维模型,确定基座相对世界坐标系的位姿后,基座就作为根节点成为其他所有关节和连杆的父节点.图3所示为在V -R E P 中进行机器人建模时连接起来的2个连杆的简化模型及其模型树.上述机器人的建模方法不仅适用于从连杆的简化模型快速建立机器人的简化模型,也适用于从连杆的精确模型建立机器人的精确模型.但V -R E P 的三㊃617㊃Copyright©博看网 . All Rights Reserved.第5期刘 宇等:基于MA T L A B 与V -R E P 的机器人加工轨迹生成与运动仿真h t t p :ʊjx m u .x m u .e d u .cn 图2 旋转关节对应的8种连杆的简化三维模型F i g .2S i m p l i f i e d3D m o d e l o f t h e 8t y p e s o f l i n k -p o l e s c o r r e s p o n d i n g t o r o t a t i o n a l jo i n ts 图3 相邻两连杆的简化模型及其模型树F i g .3S i m p l i f i e dm o d e l o f t w o a d j a c e n t l i n k -p o l e s a n d c o r r e s p o n d i n g mo d e l t r e e 维建模能力较弱,难以建立连杆的精确模型.可以在U G ㊁P R O /E 等三维建模软件中建立机器人的精确模型,然后由V -R E P 提供的接口(V -R E P 支持导入的格式为o b j ㊁s t l ㊁d x f ㊁3d s 等)将精确模型导入到V -R E P 中.但导入的过程中会丢失各个连杆模型的坐标系的信息.V -R E P 会根据每个导入模型的最小包围盒重新定义其坐标系.在基于关节和连杆的统一坐标系的机器人建模方法中,连杆的运动由关节的运动决定,因而V -R E P 的导入模型的坐标系的设定不会影响机器人模型的运动.但连杆模型相对关节模型的位姿需与实际机器人一致,才能准确进行机器人的运动仿真和碰撞检测等.V -R E P 会通过使导入模型的世界坐标系与V -R E P 的世界坐标系重合来确定导入模型在V -R E P 场景中的位置.在三维建模软件中建立机器人的精确模型时,需保证精确模型与对应的连杆坐标系之间的正确位姿,且调整精确模型的连杆坐标系相对世界坐标系的位姿,使之与V -R E P 中所建立的连杆坐标系之间的位姿一致.这样就能根据导入到V -R E P 的模型来建立准确的机器人模型.2 基于工件三维模型的机器人加工轨迹生成机器人末端刀具轨迹的生成过程分为2个步骤:1)基于工件三维模型生成轨迹的A P T 文件;2)将A P T 轨迹文件转换为机器人的轨迹文件.以密胺脂餐盘的去毛边和打磨操作为例,密胺脂餐盘的生产采用热压成型,成型后需打磨去除餐盘外边缘和把手孔边缘处形成的毛边,以保证边缘的光滑.目前去毛边和打磨操作均由工人手工操作,工作效率不高,且产生的粉尘危害工人健康.若机器人配备圆柱铣刀或立铣刀沿餐盘边缘铣削,则可在去除毛边的同时,获得较好的加工表面光滑度,提高生产效率,改善工人工作环境.㊃717㊃Copyright©博看网 . All Rights Reserved.厦门大学学报(自然科学版)2018年h t t p :ʊjx m u .x m u .e d u .c n 首先在C A D /C AM 软件中生成刀轨及其A P T 文件.以图4餐盘为例,图4(a)中餐盘边缘的粗线条为C A D /C AM 软件中生成的刀位轨迹,线条的宽度等于所采用的刀具的直径.图4(b )为刀轨所对应的A P T 文件.在A P T 文件中,刀轨由线段和弧线段组成.其次,为了使刀具沿给定的轨迹运动,需将A P T 轨迹文件转换为机器人的轨迹文件使机器人可以控制刀具的位置和姿态(主要是刀轴矢量).而文件转换的关键在于将表示刀具的位置和姿态的刀具坐标系{T }与表示刀具运动到目标点的位置与姿态的目标坐标系{G }重合.刀具坐标系的z 轴与刀轴矢量共线,而x 轴和y 轴在与刀轴矢量垂直的平面内选取,一般取与机器人末端连杆的连杆坐标系的坐标轴平行的方向矢量.刀具轨迹点处的目标坐标系{G }一般根据加工要求来确定.如图4(a )所示的密胺脂餐盘在热压成型中的分模面与工件坐标系的z 轴是垂直的,因而选择与工件坐标系的z 轴平行的刀轴方向能够获得较好的铣边效果.对图4(a )所示的密胺脂餐盘,目标坐标系{G }的x 轴和y 轴的方向矢量可设置为常矢量.这样在整个铣边过程中,刀具除了绕刀轴旋转外,只需做平移运动.图4(a )中所示的工件坐标系与C A D /C AM 软件的世界坐标系重合,因而A P T 文件中给出的刀具轨迹是定义在工件坐标系中的.刀轨点处的目标坐标系{G }也是相对工件坐标系来描述的,即用齐次变换矩阵PG T 来描述,其中左上标P 表示工件坐标系{P }.如图5(a )所示,将A P T 轨迹文件转换为机器人的轨迹文件还需知道工件坐标系{P }㊁目标坐标系{G }㊁机器人基坐标系{B }㊁机器人末端连杆坐标系{6}㊁刀具坐标系{T }之间的变换关系.这些坐标系之间的位姿关系形成了图5(b)所示的封闭环,即BPT P G T =B 6T 6T T TG T .(1)从式(1)可得机器人末端刀具沿给定轨迹运动时,机器人的运动学方程:B 6T =B PT P G T G T T T 6T ,(2)图4 通过C A D /C AM 软件获取的刀轨和A P T 文件F i g .4T o o l p a t h s a n dA P Tf i l e s o b t a i n e d t h r o u ghC A D /C AMs o f t w a r es 图5 机器人和工件的相互位姿关系F i g .5T h e p o s e r e l a t i o n s h i p b e t w e e na r o b o t a n daw o r k pi e c e ㊃817㊃Copyright©博看网 . All Rights Reserved.第5期刘 宇等:基于MA T L A B 与V -R E P 的机器人加工轨迹生成与运动仿真h t t p :ʊjx m u .x m u .e d u .c n 其中,G T T 为单位矩阵,B P T 和T 6T 为常数矩阵,PG T 沿轨迹变化,B 6T 为机器人末端连杆6相对其基座的位姿矩阵.图6 F A N U C -M 10I 机器人的连杆坐标系F i g .6L i n k -p o l e c o o r d i n a t e s ys t e m s o fF A N U C -M 10I r o b o t 位姿矩阵B6T 还可通过机器人的连杆变换获得,即B6T =B 1T 12T 56T .(3)在每个轨迹点处由式(2)求得B6T ,然后根据式(3)求机器人的运动学反解[12],从而给出刀具到达轨迹上某一点时机器人的关节变量的取值.求得的运动学反解往往不唯一,须根据机器人的各项参数和工作环境选择最合适的解.首先每组解对应关节角度值应该符合机器人手册里面规定的关节角的取值范围.其次从满足关节角运动范围的解集中选择关节角绝对值之和最小的解作为最合适的解.3 M A T L A B 与V -R E P 联合仿真结合MA T L A B 和V -R E P 的优势进行机器人的运动仿真和碰撞检测.MA T L A B 读取A P T 轨迹文件,进行轨迹插值和采样,计算不同坐标系之间的位姿变换矩阵,求取机器人运动学的正解和反解.另外,在MA T L A B 中编写控制程序,通过MA T L A B 和V -R E P 之间的通信连接,使得V -R E P 中模型能够响应MA T L A B 中编写的控制程序进行运动仿真.V -R E P 则用来建立机器人加工的三维场景,根据MA T L A B 提供的关节参数等的控制值进行机器人运动仿真和碰撞检测.在V -R E P 中创建的机器人控制模型包括机器人及其加工环境的三维模型㊁机器人的控制代码和通信接口.在V -R E P 的控制脚本中为机器人编写控制代码和连接通信接口.V -R E P 的控制脚本分为线程脚本和非线程脚本2种.线程脚本在运动模拟时能够从通信接口不断接受外部指令进行运动.因此选择线程脚本,以便V -R E P 能不断接受MA T -L A B 控制程序发出的控制指令.V -R E P 中的机器人控制模型和MA T L A B 控制程序之间需要可靠地数据通信服务.通信体系选择常见的客户端-服务器模式,以V -R E P 为客户端,MA T -L A B 控制程序为服务器端,具体的过程可以参考V -R E P 中的帮助文件.仿真开始时,先点击V -R E P 中的仿真按键,然后在MA T L A B 中运行控制程序,V -R E P 中的机器人就会按照MA T L A B 控制程序生成的控制值进行运动.4 仿真实验以F A N U C -M 10I 机器人对密胺脂餐盘进行铣边加工为例,对机器人加工过程进行运动仿真和碰撞检测.4.1 F A N U C -M 10I 机器人建模根据机器人尺寸规格等相关技术资料获得表2所示的F A N U C -M 10I 型机器人的连杆参数,建立图6所示的连杆坐标系.根据表2中关节变量的取值和连杆参数定义连杆坐标系在世界坐标系中的位置,并采用前文所述关节和连杆统一坐标系的建模方法在V -R E P 中建立关节模型㊁连杆模型㊁机器人模型.㊃917㊃Copyright©博看网 . All Rights Reserved.厦门大学学报(自然科学版)2018年h t t p :ʊjx m u .x m u .e d u .c n 表2 F A N U C -M 10I 型机器人的连杆参数T a b .2 L i n k -po l e p a r a m e t e r s o fF A N U C -M 10I r o b o t i a i -1/m m αi -1/(ʎ)d i /m m θi /(ʎ)关节变量范围/(ʎ)1 00-180~1802150-900-90-90~160360018000-180~264.54200-90-6400-190~190509000-140~14060-9000-270~27071801000考虑实际加工的需要,选择铣刀的型号为U T E B 9014,其刃径为4m m ,切削长度为20m m ,总长为60m m.根据铣刀的参数,在V -R E P 中建立末端刀具和工作台的简化模型,并通过V -R E P 导入餐盘三维模型.最终建立了图5(a )所示的机器人及其加工环境的三维模型.在建模过程中,确定了工件坐标系和机器人基坐标系之间㊁刀具坐标系和机器人末端连杆坐标系之间的位姿关系.图7 F A N U C -M 10I 机器人铣边过程的运动仿真F i g .7M o t i o n s i m u l a t i o no fm i l l i n gpr o c e s s o fF A N U C -M 10I r o b o t 4.2 运动仿真和碰撞检测借助C A D /C AM 软件生成密胺脂餐盘的刀轨迹及其A P T 文件.然后在MA T L A B 中读取A P T 文件,重新计算轨迹点,定义轨迹点处的目标坐标系,由式(2)和式(3)计算刀具沿轨迹运动时机器人的关节变量的取值.对于密胺脂餐盘,除去进刀退刀的轨迹点,共获得了均匀分布的4570个轨迹点,轨迹点之间的间距约为0.4m m ,其中外边缘有3590个轨迹点,左右把手的孔边缘各有501个和479个轨迹点.最后结合MA T L A B 和V -R E P 对铣边过程进行运动仿真.图7是运动过程中4个时刻的截图.V -R E P 可在运动仿真中实时计算刀具与工件之间的最短距离,进行碰撞检测.如果发生碰撞,则改变工件的颜色.在整个仿真过程中,均未出现工件改变颜色的情况,因而刀具沿所生成的轨迹运动时没有与工件发生干涉.为了对碰撞情况进行定量分析,获取刀具在每个轨迹点时与工件的最短距离d .对于外边缘轨迹,d 的均值为0.05m m ,均方差为0.03m m ,d 的最大值为0.15m m.对于其中一个把手的孔边缘轨迹,d 的均值为0.08m m ,均方差为0.03m m ,d 的最大值为0.18m m.对于另一个把手的孔边缘轨迹,d 的均值为0.07m m ,均方差为0.03m m ,d 的最大值为0.12m m.由此可见刀具沿给定轨迹运动时,刀具到工件的最短距离并没有达到理想的零值.这是因为工件模型是以网格模型导入到V -R E P 中的,存在模型近似和导入误差.另外轨迹的提取和计算㊁坐标系的建立和变换等还存在舍入误差.这些误差的积累导致刀具到工件的最短距离不为零.通过前述定量分析得到刀具到工件的最短距离保持在0.06m m 左右,均方差约为0.03m m ,满足餐具盘铣边加工的精度要求.5 结 论本文中提出了联合MA T L A B 和V -R E P 进行机器人加工轨迹生成和运动仿真的方法.在MA T L A B中计算刀具轨迹和机器人运动学的正解和反解;在V -R E P 中建立机器人及其加工环境的三维模型;通过MA T L A B 中的外部控制程序和V -R E P 中的控制脚本㊁MA T L A B 和V -R E P 之间的通信接口,使V -R E P 中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.在机器人建模方面,定义了不同关节和连杆的简化模型,提出了基于关节和连杆统一坐标系的建模方法,给出了机器人简化模型和精确模型的2种建模方㊃027㊃Copyright©博看网 . All Rights Reserved.第5期刘 宇等:基于MA T L A B 与V -R E P 的机器人加工轨迹生成与运动仿真h t t p :ʊjx m u .x m u .e d u .c n 式;在机器人轨迹生成方面,给出了从工件三维模型生成机器人刀具轨迹的方法,包括刀轨的A P T 文件获取方式和A P T 文件到机器人轨迹的转换方法.采用本文中的方法对密胺脂餐盘的机器人铣边过程进行了仿真.建立了机器人及餐盘铣边加工环境的三维模型,获取了餐盘外轮廓和把手孔的铣边轨迹,对铣边过程进行了运动仿真和干涉检查.仿真结果表明所提出的方法能够生成无干涉加工轨迹和正确的机器人关节运动参数.下一步的工作包括对其他工件的加工过程进行仿真,开展机器人加工实验等.参考文献:[1] X I A O X ,L IY ,T A N G H.K i n e m a t i c s a n d i n t e r a c t i v e s i m -u l a t i o ns y s t e m m o d e l i n g f o rr o b o t m a n i pu l a t o r s [C ]ʊI E E EI n t e r n a t i o n a l C o n f e r e n c eo n I n f o r m a t i o na n dA u t o -m a t i o n .Y i n c h u a n :I E E E ,2014:1177-1182.[2] S O S A -M ÉN D E Z D ,L U G O -G O N Z ÁL E Z E ,A R I A S -MO N T I E L M ,e ta l .A D AM S -MA T L A B c o -s i m u l a t i o n f o rk i n e m a t i c s ,d y n a m i c s ,a n dc o n t r o lo ft h eS t e w a r t –G o u gh p l a t f o r m [J ].I n t e r n a t i o n a lJ o u r n a lo f A d v a n c e d R o b o t i c sS y s t e m s ,2017,14(4):1-10.[3] 周金强.基于U G 的工业机器人离线编程系统[D ].武汉:华中科技大学,2013:1-7.[4] 张海洋.叶片砂带磨削机器人轨迹规划与离线编程[D ].武汉:华中科技大学,2014:4-8.[5] H OWA R D L ,S I MO N X Y ,MA E LS .N e u r a l -n e t w o r k -b a s e d p a t h p l a n n i n g f o r am u l t i r o b o t s s y s t e m w i t hm o v i n go b s t a c l e s [J ].I E E E T r a n s a c t i o n so nS y s t e m s ,M a n ,a n d C yb e r n e t ic s ,P a r tC ,2009,39(4):410-419.[6] 唐涛宇.机器人离线编程系统的研究[D ].哈尔滨:哈尔滨工业大学,2013:2-4.[7] 张政.工业机器人离线编程系统研究[D ].杭州:浙江大学,2016:1-2.[8] R O HM E RE ,S i n ghSPN ,F R E E S E M.V -R E P :av e r s a -t i l e a n d s c a l a b l e r o b o t s i m u l a t i o n f r a m e w o r k [C ]ʊI E E E /R S JI n t e r n a t i o n a lC o n f e r e n c eo nI n t e l l i g e n t R o b o t sa n d S y s t e m s .T o k yo :I E E E ,2013:1321-1326.[9] F R E E S E M ,S I N G H S ,O Z A K IF ,e t a l .V i r t u a l r o b o t e x -pe r i m e n t a t i o n p l a tf o r m V -R E P :a v e r s a t i l e 3Dr o b o t s i m u -l a t o r [M ].B e r l i nH e i d e l b e rg :S p r i n g e r ,2010:51-62.[10] X I O N G G ,D I N G Y ,Z HU L M.Af e e d -d i r e c t i o ns t i f f -n e s sb a s e dt r a j e c t o r y o p t i m i z a t i o n m e th o df o ra mi l l i n gr o b o t [C ]ʊI n t e r n a t i o n a lC o n f e r e n c eo nI n t e l l i g e n tR o -b o t i c sa n d A p p l i c a t i o n s .W u h a n :S p r i n ge r ,2017:184-195.[11] N A G A T A F ,O K A D A Y ,K U S A N O T ,e ta l .R e v e r s ea n d f o r w a r d p o s t p r o c e s s o r s f o r a r ob o tm ac h i n i n g s ys -t e m [C ]ʊI n t e r n a t i o n a l C o n f e r e n c eo n I n t e l l i g e n tR o b o t -i c s a n dA p p l i c a t i o n s .W u h a n :S p r i n ge r ,2017:70-78.[12] 熊有伦.机器人技术基础[M ].武汉:华中科技大学,1996:32-35.M a c h i n i n g Pa t hG e n e r a t i o na n dM o t i o nS i m u l a t i o no f R ob o t sB a s e d o n M A T L A Ba n dV -R E PL I U Y u *,Z H A N GS h i c h a o ,G O N GJ i x i a n g(S c h o o l o fA e r o s p a c eE n g i n e e r i n g ,X i a m e nU n i v e r s i t y,X i a m e n361102,C h i n a )A b s t r a c t :A m e t h o do fm a c h i n i n gp a t h g e n e r a t i o na n d m o t i o ns i m u l a t i o no f r o b o t s i s p r e s e n t e db y i n t e g r a t i n g MAT L A Ba n d V -R E P .F i r s t ,i n MA T L A B ,t h e t o o l p a t h i n t h e r o b o t o p e r a t i n g s p a c e i s c a l c u l a t e d ,a n d t h e j o i n t p a r a m e t e r s c o r r e s p o n d i n g to t h e t o o l p a t ha r e o b t a i n e db y i n v e r s ek i n e m a t i c sc a l c u l a t i o n s .T h e n ,i nV -R E P ,t h em o d e l i n g m e t h o db a s e do nu n i f i e dc o o r d i n a t es ys t e m so f j o i n t s a n d l i n k s i s u s e d t o b u i l d 3Dm o d e l s o f r o b o t a n d i t sm a c h i n i n g e n v i r o n m e n tw h i c h i s c o n s i s t e n tw i t h t h e t o o l p a t h f i l e .F i n a l l y ,t h r o u g h t h e e x t e r n a l c o n t r o l p r o g r a mi nMA T L A Ba n d t h e c o n t r o l s c r i p t i nV -R E P ,a n d t h e c o m m u n i c a t i o n i n t e r f a c e b e t w e e nMA T -L A Ba n dV -R E P ,t h e r o b o tm o d e l i nV -R E Pr e s p o n d s t o t h e e x t e r n a l c o n t r o l p r o gr a mf o rm o t i o n s i m u l a t i o n a n d c o l l i s i o nd e t e c t i o n .A f t e r t h e e d g em i l l i n g p r o c e s s o f am e l a m i n e t a b l e w a r e b y a r o b o t i s s i m u l a t e d b y o u rm e t h o d ,s i m u l a t i o n r e s u l t s s h o wt h a t o u rm e t h -o d c a n g e n e r a t e i n t e r f e r e n c e f r e e t o o l pa t h s a n d c o r r e c tm o t i o n p a r a m e t e r s o f r ob o t s .K e y wo r d s :MA T L A B ;V -R E P ;c o -s i m u l a t i o n ;r o b o tm o d e l i n g ;t o o l p a t h g e n e r a t i o n ;r o b o tm o t i o n s i m u l a t i o n ㊃127㊃Copyright©博看网 . All Rights Reserved.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB教学型机器人空间轨迹仿真
robotic toolbox for matlab工具箱
1. PUMA560的MATLAB仿真
要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:
L = LINK([alpha A theta D])
L =LINK([alpha A theta D sigma])
L =LINK([alpha A theta D sigma offset])
L =LINK([alpha A theta D], CONVENTION)
L =LINK([alpha A theta D sigma], CONVENTION)
L =LINK([alpha A theta D sigma offset], CONVENTION)
参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角
,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:
LINK.alpha
%返回扭转角
LINK.A
%返回杆件长度
LINK.theta
%返回关节角
LINK.D
%返回横距
LINK.sigma
%返回关节类型
LINK.RP
%返回‘R’(旋转)或‘P’(移动)
LINK.mdh
%若为标准D-H参数返回0,否则返回1
LINK.offset
%返回关节变量偏移
LINK.qlim
%返回关节变量的上下限[min max]
LINK.islimit(q)
%如果关节变量超限,返回-1, 0, +1
LINK.I
%返回一个3×3 对称惯性矩阵
LINK.m
%返回关节质量
LINK.r
%返回3×1的关节齿轮向量
LINK.G
%返回齿轮的传动比
LINK.Jm
%返回电机惯性
LINK.B
%返回粘性摩擦
LINK.Tc
%返回库仑摩擦
LINK.dh
return legacy DH row
LINK.dyn
return legacy DYN row
其中robot函数的调用格式:
ROBOT
%创建一个空的机器人对象
ROBOT(robot)
%创建robot的一个副本
ROBOT(robot, LINK)
%用LINK来创建新机器人对象来代替robot
ROBOT(LINK, ...)
%用LINK来创建一个机器人对象
ROBOT(DH, ...)
%用D-H矩阵来创建一个机器人对象
ROBOT(DYN, ...)
%用DYN矩阵来创建一个机器人对象
2.变换矩阵
利用MA TLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
下面举例来说明:
A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:
>> transl(0.5,0,0)
ans =
1.0000
0.5000
1.0000
1.0000
1.0000
B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:>> rotx(pi/4)
ans =
1.0000
0.7071
-0.7071
0.7071
0.7071
1.0000
C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:>> roty(pi/2)
ans =
0.0000
1.0000
1.0000
-1.0000
0.0000
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
当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。
另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。
3 轨迹规划
利用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的加速度。
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中的plot函数来实现对规划路径的仿真。
puma560;T=0:0.056:2; q=jtraj(qz,qr,T); plot(p560,q);
当然,我们也可以来调节PUMA560的六个旋转角,来实现动画演示。
drivebot(p560)。