基于MATLABRoboticsToolbox的机器人学仿真实验教学-精品文档

合集下载

利用matlab的机器人试验仿真

利用matlab的机器人试验仿真

选择MATLAB2016a版,高版本不能安装。

安装好按照下面的操作做出来,然后截图做成Word文档发给我。

MATLAB2016a版同学们网上下载安装,安装方法网上随便可找到。

机器人工具箱我发给你们。

一、将文件夹放到MATLAB安装文件夹指定目录下放到安装目录的toolbox文件夹下,如下图是笔者的电脑的位置,其中那个installation address是我自己取得名字,英语不好,不要见怪。

三、打开MATLAB软件,进行手动启动(1)打开matlab,依次点击file(文件)-setpath(设置路径)-add with subfolder (添加子文件夹),然后选择这个rvctools文件夹就好了,然后save(保存)-close (关闭)(2)在命令行窗口输入startup_rvc,回车,如图,显示了一段英语,我恩可以看到,版本是9.10。

本文主要是给大家一个系统的概念,如何用Matlab实现六轴机器人的建模和实现轨迹规划。

以后将会给大家讲解如何手写正逆解以及轨迹插补的程序。

程序是基于Matlab2016a,工具箱版本为Robotic Toolbox 9.10。

1.D-H建模三个两两相互垂直的XYZ轴构成欧几里得空间,存在六个自由度:沿XYZ 平移的三个自由度,绕XYZ旋转的三个自由度。

在欧几里得空间中任意线性变换都可以通过这六个自由度完成。

Denavit-Hartenberg提出的D-H参数模型能满足机器人学中的最小线性表示约定,用4个参数就能描述坐标变换:绕X轴平移距离a;绕X轴旋转角度alpha;绕Z轴平移距离d;绕Z轴旋转角度theta。

2.标准D-H模型和改进D-H模型对比来看参数并没有改变,标准的D-H 模型是将连杆的坐标系固定在该连杆的输出端(下一关节),也即坐标系i-1与关节i对齐;改进的D-H模型则是将坐标系固定在该连杆的输入端(上一关节),也即坐标系i-1与关节对齐i-1。

matlab中robotics toolbox的应用

matlab中robotics toolbox的应用

matlab中robotics toolbox的函数解说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.dh return legacy DH rowLINK.dyn return legacy DYN row其中robot函数的调用格式:ROBOT %创建一个空的机器人对象ROBOT(robot) %创建robot的一个副本ROBOT(robot, LINK) %用LINK来创建新机器人对象来代替robotROBOT(LINK, ...) %用LINK来创建一个机器人对象ROBOT(DH, ...) %用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...) %用DYN矩阵来创建一个机器人对象2.变换矩阵利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。

MatlabRoboticToolbox工具箱学习笔记

MatlabRoboticToolbox工具箱学习笔记

MatlabRoboticToolbox⼯具箱学习笔记Matlab Robotic Toolbox⼯具箱学习笔记(⼀)软件:matlab2013a⼯具箱:Matlab Robotic Toolbox v9.8Matlab Robotic Toolbox⼯具箱学习笔记根据Robot Toolbox demonstrations⽬录,将分三⼤部分阐述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarw kinematics,Inversekinematics,Jacobians,Inverse dynamics,Forward dynamics,Symbolic,Code generation)3、Mobile(Driving to apose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter) General/Rotations%绕x轴旋转pi/2得到的旋转矩阵(1)r = rotx(pi/2);%matlab默认的⾓度单位为弧度,这⾥可以⽤度数作为单位(2)R = rotx(30, 'deg') * roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋转变换的旋转轴⽮量vec和转⾓theta(3)[theta,vec] = tr2angvec(R);%旋转矩阵⽤欧拉⾓表⽰,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋转矩阵⽤roll-pitch-yaw⾓表⽰,R = rotx(r)*roty(p)*rotz(y) (5)rpy = tr2rpy(R);%旋转矩阵⽤四元数表⽰(6)q = Quaternion(R);%将四元数转化为旋转矩阵(7)q.R;%界⾯,可以是“rpy”,“eluer”⾓度单位为度。

基于MATLAB Robotics Tools的机械臂仿真

基于MATLAB Robotics Tools的机械臂仿真

基于MATLAB Robotics Tools的机械臂仿真【摘要】在MATLAB环境下,对puma560机器人进行运动学仿真研究,利用Robotics Toolbox工具箱编制了简单的程序语句,建立机器人运动学模型,与可视化图形界面,利用D-H参数法对机器人的正运动学、逆运动学进行了仿真,通过仿真,很直观的显示了机器人的运动特性,达到了预定的目标,对机器人的研究与开发具有较高的利用价值。

【关键词】机器人;运动学正解;运动学逆解Abstract:For the purpose of making trajectory plan research on puma560 robot,in the MATLAB environment,the kinematic parameters of the robot were designed. Kinematic model was established by Robotics Toolbox compiled the simple programming statements,the difference was discussed between the standard D-H parameters,and the trajectory planning was simulated,the joints trajectory curve were smooth and continuous,Simulation shows the designed parameters are correct,thus achieved the goal. The tool has higher economic and practical value for the research and development of robot.Key words:robot;trajectory planning;MTALAB;simulation1.前言机器人是当代新科技的代表产物,随着计算机技术的发展,机器人科学与技术得到了迅猛的发展,在机器人的研究中,由于其价格较昂贵,进行普及型实验难度较大,隐刺机器人仿真实验变得十分重要。

MATLAB在机器人虚拟仿真实验教学中的应用

MATLAB在机器人虚拟仿真实验教学中的应用

表1PUMA560机器人的连杆参数MATLAB 在机器人虚拟仿真实验教学中的应用收稿日期:2017-09-05资助项目:北京信息科技大学2017年度教学改革立项资助(2017JGYB01);北京信息科技大学2017年促进高校内涵发展-研究生教育质量工程类项目(5121723103)作者简介:刘相权(1972-),男(汉族),河北辛集人,北京信息科技大学机电工程学院,副教授,主要从事机械设计、机电控制方面的研究。

在机器人学课程的实验教学中,一方面由于机器人价格比较昂贵,不可能用许多实际的机器人来作为教学实验设备,另一方面,由于机器人的教学涉及大量数学运算,手工计算烦琐,采用虚拟仿真技术可以有效地提高教学的质量和效率,在实验教学中的作用越来越明显[1]。

本文以PUMA560机器人为研究对象,采用改进的D-H 法分析其结构和连杆参数,运用Robotics Toolbox 构建运动学模型并进行运动学仿真。

一、PUMA560机器人的结构及连杆参数PUMA560机器人是美国Unimation 公司生产的6自由度串联结构机器人,本文采用改进的D-H 法建立6个杆件的固接坐标系,如图1所示。

PUMA560机器人的杆件参数如表1所示,其中连杆扭角αi-1表示关节轴线i-1和关节轴线i 之间的夹角;连杆长度a i-1表示关节轴线i-1和关节轴线i 之间的公垂线长度;连杆转角θi 表示两公垂线a i-1和a i 之间的夹角;连杆距离d i 表示两公垂线a i-1和a i 之间的距离,对于旋转关节,θi 是关节变量[2]。

表1中a 2=0.4381,a 4=0.0203,d 2=0.1491,d 4=0.4331。

二、PUMA560机器人的运动学仿真1.机器人模型的建立。

在Robotics Toolbox 中,构建机器人模型关键在于构建各个杆件和关节,Link 函数用来创建一个杆件,其一般形式为:L=Link ([theta d a alpha sigma],CONVENTION )Link 函数的前4个参数依次为连杆转角θi ,连杆距离d i ,连杆长度a i-1,连杆扭角αi-1,第5个参数sigma 代表关节类型:0代表旋转关节,1代表平动关节,第6个参数CONVENTION 可以取'standard'或'modified',其中'standard'代表采用标准的D-H 方法,'modified'代表采用改进的D-H 方法[3]。

基于MATLABRoboticsToolbox的可重构模块化机器人运动仿真分析

基于MATLABRoboticsToolbox的可重构模块化机器人运动仿真分析

基于MATLABRoboticsToolbox的可重构模块化机器人运动仿真分析作者:卢佳佳来源:《阜阳职业技术学院学报》2019年第02期模块化机器人的仿真模型,设计各关节的运动角度,模拟机器人的末端手爪运动轨迹以及每个关节的角位移、角速度、角加速度随时间变化曲线。

检验机器人运动性能,为后续的动力学和控制研究奠定基础。

关键词:可重构模块化机器人;Robotics Toolbox;轨迹规划;变化曲线中图分类号:TP242;;;;;;;;; 文献标识码:A;;;;;;;;;; 文章编号:1672-4437(2019)02-0057-04在Matlab软件中使用Robotics Toolbox[1-2]对机器人进行仿真研究目前已十分普遍。

谢斌、蔡自兴[3]运用Robotics Toolbox对puma560型机器人进行了仿真实验教学,左富勇、刘长柱[4-5]等人对SCARA机器人进行了轨迹规划与仿真研究;王林军,陆佳皓[6-7]等人对六轴关节机器人进行了运动仿真研究,周际[8]对双臂工业机器人进行了运动仿真分析。

以上研究都是针对某种特定类型的机器人,相比而言,可重构模块化机器人具有更加丰富的构型。

本文以EV-MRobot机器人基本构件为基础,针对其某一构型进行运动学仿真分析。

1 EV-MRobot模块化机器人运动学1.1 EV-MRobot模块化机器人结构参数本文以EV-MRobot系列模块化机器人为研究对象,其模块库包含四种运动单元模块,分别为:93旋转模块、85旋转模块、手爪模块以及两自由度云台模块。

还包含有不同尺寸的连接件,如直角连杆和圆柱连杆等。

这些单元模块通过连杆进行组合,可形成适用于不同工作任务的各种构型。

本文以由85旋转模块、手爪模塊、两自由度云台模块以及相关连接件组成的四自由度模块化机器人为研究对象,其结构组合如图1,连杆参数和关节变量见表1。

1.2 机器人正运动问题分析1.3 机器人逆运动问题分析机器人的逆运动学分析就是使末端执行器达到期望位姿时各关节的角度值。

基于matlab平台的机器人学仿真软件实验报告

基于matlab平台的机器人学仿真软件实验报告

关节型机器人仿真软件
杨涛(sc11010039)2011.12.10
一、开发环境:matlab2008及以上版本(要求带机器人学工具箱)
二、功能:
1.按照DH矩阵建立图形化的关节型机器人对象
2.对生成的机器人进行正逆运动学的位置和速度进行分析和图形仿真
3.对机器人进行轨迹规划,并在轨迹规划的基础上对其做出动力学的分析。

计算机器人在负载情况下的各个关机所需提供
的力向量。

三、本软件的使用方法:
1.启动:如下图在将matlab的工作目录调整为本软件所在的
work目录,在matlab命令界面中输入maininterface命令;
的参数点击完成并返回即可生成相应机器人对象
3.点击文件菜单的显示子菜单即可显示如下的机器人对象
4.点击运动学分析菜单即可弹出如下运动学分析界面
5.在运动学位置分析的基础上选择进行运动学速度分析即可
弹出以下界面,利用雅克比矩阵对当前位置的速度向量进行正逆分析
6.点击轨迹规划菜单即可弹出以下界面,分别输入初始位置的
空间参数(位置参数和RPY参数)点击轨迹规划即可查看关机空间的轨迹规划的结果曲线和方程(五次多项式插值法)
7.在轨迹规划得到一系列位置、速度、加速度向量的基础上可
以对机器人进行动力学分析,计算完成以下动作机器人各个关节所需提供的力向量;。

[原创]强大的MATLAB机器人工具箱Matlab

[原创]强大的MATLAB机器人工具箱Matlab

[原创]强大的MATLAB机器人工具箱Matlab
强大的MATLAB机器人工具箱Matlab_Robotic_Toolbox_v9.10及教程
下载地址:
Matlab_Robotic_T oolbox_v9.10是一个功能强大的机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中的可视化仿真使得学习抽象的机器人学变得相对直观、好理解。

学习这个工具箱,对理解机器人学很有帮助。

工具箱的安装:将Matlab_Robotic_T oolbox_v9.10.rar解压后,放在matlab的安装目录下,最好是放在toolbox文件夹里,利用matlab的工具栏的setpath,将文件夹Matlab_Robotic_T oolbox_v9.10\rvctools设置为matlab的搜索目录,在command window输入“startup_rvc”,安装工具箱。

最后,你可以在command window输入“ver”,查看机器人工具箱是否已经安装成功了。

command window会列出所有的工具箱,其中Robotics Toolbox已经包含在里面。

安装成功!!。

基于MATLAB—Robotics的工业机器人运动学仿真研究

基于MATLAB—Robotics的工业机器人运动学仿真研究

基于MATLAB—Robotics的工业机器人运动学仿真研究工业机器人是现代化工业生产中不可缺少的元素。

机器人模型的手动控制与轨迹规划仿真可以让机器人运动的研究过程呈现出直观化的特点。

本文主要对基于MATLAB-Robotics的工业机器人运动学仿真问题进行了探究。

标签:工业机器人;运动学轨迹;仿真分析0 前言工业机器人是机电一体化技术发展进步的产物。

现阶段工业机器人实物研发工作具有着成本高、周期长的特点。

工业机器人运动学仿真技术是利用系统模型对实际或设想的工业机器人系统进行试验研究的技术,根据工业机器人制备工艺的发展现状,仿真研究已经贯穿于工业机器人产品的各个研制环节之中MATLAB语言是机电工业领域较为常用的一种编程语言,这一编程语言具有着较为强大的矩阵计算能力,它可以应用于工业机器人的方案论证、设计分析和生产制造等各个阶段。

它也可以在工业研究、产品开发及数值分析等多个领域得到应用。

D-H坐标系法是建立机器人连杆模型的有效方法。

1 D-H坐标系的建立工业机器人是现代化工业生产中不可缺少的元素。

机器人模型的手动控制与轨迹规划仿真可以让机器人运动的研究过程呈现出直观化的特点。

基于MATLAB-Robotics机器人工具箱建立的工业机器人三维模型的应用,可以让人们借助编程形式对机器人模型进行检验。

坐标系在机器人模型的检验过程中发挥着较为重要的作用。

根据机器人的运动学原理与齐次变换的相关知识,在空间中的任意坐标系相对于某个参考坐标系但是位置和姿态的获取方式为两个坐标系之间的变换。

在坐标系建构完成以后,研究者需要在求取工业机器人运动学方程结果的基础上,对求解结果与滑块控制图的设定数值进行比较,为保证运动学方程求解结果的精确性,研究者可以将D-H坐标系应用于工业机器人运动学仿真分析过程之中。

根据工业机器人的实际情况,工业机器人运动学仿真研究工作的开展,要求研究者关注工业机器人的每一个连杆,在为不同连杆构建不同的坐标系以后,齐次变换会成为描述坐标系间的相对位置与姿态的工具。

基于MATLAB_Simulink的机器人运动学仿真

基于MATLAB_Simulink的机器人运动学仿真

基于MAT LAB ΠSimulink 的机器人运动学仿真张晓超 董玉红(哈尔滨理工大学,哈尔滨150080)摘要 利用M AT LAB ΠS imulink 仿真软件对机器人的运动学仿真进行研究,提出基于机构仿真工具S imMechanics 的运动学仿真和基于M AT LAB 函数的运动学仿真,并以平面两关节机器人为例比较了各自的特点。

这两种仿真方法对于复杂多关节机器人也同样适用。

关键词:MAT LAB ΠSimulink SimMech anics 运动学 仿真中图分类号:TP 39119 文献标识码:A 文章编号:1671—3133(2005)增—0061—02K inematics simulation of robots based on MAT LAB ΠSimulinkZhang Xiaochao ,Dong Yuhong(College of Mechanical and Pow er E ngineering ,H aerbin U niversity ofScience and T echnology ,H aerbin 150080,CHN )Abstract K inematics simulations of robots were studied by M AT LAB ΠS imulink simulation s oftware.K inematics simulations based on mechanism simulation tool S imMechanics and on M AT LAB function were put forward ,and their features compared for tw o joints robot as an example.The tw o methods can als o be used in application to multiple joints robots.K ey w ords :MAT LAB ΠSimulink SimMech anics K inem atics Simulation 本文利用M AT LAB ΠSimulink 仿真软件对机器人的运动学仿真进行研究,提出基于机构仿真工具Sim Me 2chanics 的运动学仿真和基于M A T LAB 的函数的运动学仿真,并以平面两关节机器人为例比较了各自的特点。

对于在matlab中的robotics工具箱几个指令的使用文档

对于在matlab中的robotics工具箱几个指令的使用文档

机器人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.dh return legacy DH rowLINK.dyn return legacy DYN row其中robot 函数的调用格式:ROBOT %创建一个空的机器人对象ROBOT(robot) %创建robot 的一个副本ROBOT(robot, LINK) %用LINK 来创建新机器人对象来代替robotROBOT(LINK, ...) %用LINK 来创建一个机器人对象ROBOT(DH, ...) %用D-H 矩阵来创建一个机器人对象ROBOT(DYN, ...) %用DYN 矩阵来创建一个机器人对象利用MATLAB 中Robotics Toolbox 工具箱中的transl、rotx、roty 和rotz 可以实现用齐次变换矩阵表示平移变换和旋转变换。

RoboticsToolbox_电子版说明文档

RoboticsToolbox_电子版说明文档
1. 三维位姿描述 2. 机器人运动学 3. 机器人轨迹规划 4. 机器人动力学
3 机器人轨迹规划
25
关节空间轨迹规划:
经过时间 ,机器人关节向量由 运动到 的轨迹规划 例3.1:
从0到4秒,每50ms采样一次
3 机器人轨迹规划
26
6个关节的角度、角速度、角加速度
第3关节的角度、角速度、角加速度
:沿 从 移动到 的距离 :绕 从 旋转到 的角度 :沿 从 移动到 的距离 :绕 从 旋转到 的角度
2 机器人运动学
14
建立机器人模型
机器人构建:
由机械臂Links组成名字为name的机器人
列出D-H参数表 画出变量为q1 … qn时的状态 动画GUI
2 机器人运动学
例2.1:
1
0
2
3
.
.
15
也可对轨迹操作,计算整个运动过程所需力矩矩阵 可考察各关节所需力矩
3 机器人轨迹规划
27
笛卡尔空间轨迹规划:
经过 个节点,机器人位姿由 运动到 的轨迹规划 例3.2:
笛卡尔空间
关节空间
效果比较
3 机器人轨迹规划
例3.3:
28
关节空间规划
笛卡尔空间规划 puma560 奇异位形
笛卡尔空间规划 广义逆 / 数值解法
11
建立机器人模型
机械臂的定义:
: 标准D-H参数(默认) : 改进D-H参数
本课采用改进D-H参数(
)
2 机器人运动学
12
改进D-H参数: 坐标系定义在 连杆前端关节
:沿 从 移动到 的距离 :绕 从 旋转到 的角度 :沿 从 移动到 的距离 :绕 从 旋转到 的角度

基于MATLAB Robotics Toolbox的机器人学仿真实验教学

基于MATLAB Robotics Toolbox的机器人学仿真实验教学

基于MATLAB Robotics Toolbox的机器人学仿真实验教

谢斌;蔡自兴
【期刊名称】《计算机教育》
【年(卷),期】2010(000)019
【摘要】简要介绍MATLAB Robotics Toolbox在机器人学仿真实验教学中的基本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等.该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究.
【总页数】4页(P140-143)
【作者】谢斌;蔡自兴
【作者单位】中南大学,信息科学与工程学院,智能所,湖南,长沙,410083;中南大学,信息科学与工程学院,智能所,湖南,长沙,410083
【正文语种】中文
【中图分类】G642
【相关文献】
1.基于MATLAB Robotic Toolbox的关节型机器人运动仿真研究 [J], 陆佳皓;平雪良;李朝阳
2.基于MATLAB/Robotics Toolbox的PUMA560机械臂仿真研究 [J], 王娜
3.基于MATLAB Robotics Toolbox的UR5机器人轨迹规划与仿真 [J], WANG
Jun;CHEN Di;CHEN Hongjie;REN Jun;YOU Ying;WEI Qiong;WANG Quan 4.基于MATLAB Robotics Toolbox的可重构模块化\r机器人运动仿真分析 [J], 卢佳佳;毛芳芳;李梅;李雅琼
5.基于MATLAB Robotics Toolbox的四足机器人轨迹仿真与优化 [J], 陈明方;张凯翔;陈久朋;熊彬洲;李奇;姚国一;李鹏宇
因版权原因,仅展示原文概要,查看原文内容请购买。

matlab机器人工具箱matlabrobotics_toolbox_demo(共5则范文)

matlab机器人工具箱matlabrobotics_toolbox_demo(共5则范文)

matlab机器人工具箱matlabrobotics_toolbox_demo(共5则范文)第一篇:matlab机器人工具箱matlabrobotics_toolbox_demo (共)MATLAB ROBOTTOOLrtdemo演示目录一、rtdemo机器人工具箱演示 (2)二、transfermations坐标转换 (2)三、Trajectory齐次方程 (8)四、forward kinematics 运动学正解 (12)四、Animation 动画 (18)五、Inverse Kinematics运动学逆解 (23)六、Jacobians雅可比---矩阵与速度 (32)七、Inverse Dynamics逆向动力学 (45)八、Forward Dynamics正向动力学 (52)一、rtdemo机器人工具箱演示 >> rtdemo %二、transfermations坐标转换% In the field of robotics there are many possible ways of representing% positions and orientations, but the homogeneous transformation is well% matched to MATLABs powerful tools for matrix manipulation.% % Homogeneous transformations describe the relationships between Cartesian% coordinate frames in terms of translation and orientation.% A pure translation of 0.5m in the X direction is represented bytransl(0.5, 0.0, 0.0)ans =1.00000.50001.00001.00001.0000 % % a rotation of 90degrees about the Y axis by roty(pi/2)ans =0.00001.00001.0000-1.00000.00001.0000 % % and a rotation of-90degrees about the Z axis by rotz(-pi/2)ans =0.00001.0000-1.00000.00001.00001.0000 % % these may be concatenated by multiplication t = transl(0.5, 0.0, 0.0)* roty(pi/2)* rotz(-pi/2)t =0.00000.00001.00000.5000-1.00000.0000-0.0000-1.00000.00001.0000% % If this transformation represented the origin of a new coordinate frame with respect % to the world frame origin(0, 0, 0), that new origin would be given byt * [0 0 0 1]' ans =0.50001.0000pause % any key to continue % % the orientation of the new coordinate frame may be expressed in terms of % Euler angles tr2eul(t)ans =1.5708-1.5708 % % or roll/pitch/yaw anglestr2rpy(t)ans =-1.57080.0000-1.5708pause % any key to continue % % It is important to note that tranform multiplication is in general not% commutative as shown by the following examplerotx(pi/2)* rotz(-pi/8)ans =0.92390.3827-0.00000.0000-1.0000-0.38270.92390.0000rotz(-pi/8)* rotx(pi/2)ans =0.92390.0000-0.3827-0.38270.0000-0.92391.00000.0000% % pause % any key to continue echo off 1.00000 1.0000三、Trajectory齐次方程% The path will move the robot from its zero angle pose to the upright(or % READY)pose.% % First create a time vector, completing the motion in 2 seconds with a % sample interval of 56ms.t = [0:.056:2];pause % hit any key to continue % % A polynomial trajectory between the 2 poses is computed using jtraj()%q = jtraj(qz, qr, t);pause % hit any key to continue % % For this particular trajectory most of the motion is done by joints 2 and 3, % and this can be conveniently plotted using standard MATLAB operationssubplot(2,1,1)plot(t,q(:,2))title('Theta')xlabel('Time(s)');ylabel('Joint 2(rad)')subplot(2,1,2)plot(t,q(:,3))xlabel('Time(s)');ylabel('Joint 3(rad)')pause % hit any key to continue% % We can also look at the velocity and acceleration profiles.We could% differentiate the angle trajectory using diff(), but more accurate results% can be obtained by requesting that jtraj()return angular velocity and% acceleration as follows[q,qd,qdd] = jtraj(qz, qr, t);% % which can then be plotted asbeforesubplot(2,1,1)plot(t,qd(:,2))title('Velocity')xlabel('Time(s)');ylabel('Joint 2 vel(rad/s)')subplot(2,1,2)plot(t,qd(:,3))xlabel('Time(s)');ylabel('Joint 3 vel(rad/s)')pause(2)% and the joint acceleration profilessubplot(2,1,1)plot(t,qdd(:,2))title('Acceleration')xlabel('Time(s)');ylabel('Joint 2 accel(rad/s2)')subplot(2,1,2)plot(t,qdd(:,3))xlabel('Time(s)');ylabel('Joint 3 accel(rad/s2)')pause % any key to continueecho off四、forward kinematics 运动学正解% Forward kinematics is the problem of solving the Cartesian position and% orientation of a mechanism given knowledge of the kinematic structure and % the joint coordinates.% % Consider the Puma 560 example again, and the joint coordinates of zero, % which are defined by qzqz qz =0 % % The forward kinematics may be computed using fkine()with an appropropriate% kinematic description, in this case, the matrix p560 which defines% kinematics for the 6-axis Puma 560.fkine(p560, qz)ans =1.00000.45211.0000-0.15001.00000.43181.0000 % % returns the homogeneous transform corresponding to the last link of the % manipulator pause % any key to continue % % fkine()can also be used with a time sequence of joint coordinates, or% trajectory, which is generated by jtraj()%t = [0:.056:2];% generate a time vectorq = jtraj(qz, qr, t);% compute the joint coordinate trajectory % % then the homogeneous transform for each set of joint coordinates is given byT = fkine(p560, q);% % where T is a 3-dimensional matrix, the first two dimensions are a 4x4% homogeneous transformation and the third dimension is time.% % For example, the first point isT(:,:,1)ans =1.00001.00000 % % and the tenth point isT(:,:,10)ans =1.0000-0.0000-0.00001.00000 0.4521-0.1500 0.43181.0000 0.4455-0.1500 0.50681.00001.00001.0000pause % any key to continue % % Elements(1:3,4)correspond to the X, Y and Z coordinates respectively, and% may be plotted against timesubplot(3,1,1)plot(t, squeeze(T(1,4,:)))xlabel('Time(s)');ylabel('X(m)')subplot(3,1,2)plot(t, squeeze(T(2,4,:)))xlabel('Time(s)');ylabel('Y(m)')subplot(3,1,3)plot(t, squeeze(T(3,4,:)))xlabel('Time(s)');ylabel('Z(m)')pause % any key to continue %% or we could plot X against Z to get some idea of the Cartesian path followed % by the manipulator.%subplot(1,1,1)plot(squeeze(T(1,4,:)), squeeze(T(3,4,:)));xlabel('X(m)')ylabel('Z(m)')grid pause % any key to continueecho off四、Animation 动画 clf % % The trajectory demonstration has shown how a joint coordinate trajectory % may be generatedt = [0:.056:2]';% generate a time vectorq = jtraj(qz, qr, t);% generate joint coordinate trajectory % % the overloaded function plot()animates a stick figure robot moving% along a trajectory.plot(p560, q);% The drawn line segments do not necessarily correspond to robot links, but % join the origins of sequential link coordinate frames.% % A small right-angle coordinate frame is drawn on the end of the robot to show % the wrist orientation.% % A shadow appears on the ground which helps to give some better idea of the % 3D object.pause % any key to continue% % We can also place additional robots into a figure.% % Let's make a clone of the Puma robot, but change its name and base locationp560_2 = p560;p560_ = 'another Puma';p560_2.base = transl(-0.5, 0.5, 0);hold onplot(p560_2, q);pause % any key to continue% We can also have multiple views of the same robotclfplot(p560, qr);figureplot(p560, qr);view(40,50)plot(p560, q)pause % any key to continue% % Sometimes it's useful to be able to manually drive the robot around to % get an understanding of how it works.drivebot(p560)%% use the sliders to control the robot(in fact both views).Hitthe red quit % button when you are done.echo off五、Inverse Kinematics运动学逆解% % Inverse kinematics is the problem of finding the robot joint coordinates, % given a homogeneous transform representing the last link of the manipulator.% It is very useful when the path is planned in Cartesian space, for instance % a straight line path as shown in the trajectory demonstration.% % First generate the transform corresponding to a particular joint coordinate,q = [0-pi/4-pi/4 0 pi/8 0] q =-0.7854-0.78540.3927T = fkine(p560, q);% % Now the inverse kinematic procedure for any specific robot can be derived% symbolically and in general an efficient closed-form solution can be% obtained.However we are given only a generalized description of the% manipulator in terms of kinematic parameters so an iterative solution will% be used.The procedure is slow, and the choice of starting value affects% search time and the solution found, since in general a manipulator may% have several poses which result in the same transform for the last % link.The starting point for the first point may be specified, or else it % defaults to zero(which is not a particularlygood choice in this case)qi = ikine(p560, T);qi' ans =-0.0000-0.7854-0.7854-0.00000.39270.0000 % % Compared with the original valueq q =-0.7854-0.78540.39270 % % A solution is not always possible, for instance if the specified transform% describes a point out of reach of the manipulator.As mentioned above% the solutions are not necessarily unique, and there are singularities% at which the manipulator loses degrees of freedom and joint coordinates% become linearly dependent.pause % any key to continue % % T o examine the effect at a singularity lets repeat the last example but for a % different pose.At the `ready' position two of the Puma's wrist axes are% aligned resulting in the loss of one degree of freedom.T = fkine(p560, qr);qi = ikine(p560, T);qi' ans =-0.00001.5238-1.4768-0.0000-0.04700.0000 % % which is not the same as the original joint angleqr qr =1.5708-1.5708pause % any key to continue % % However both result in the same end-effector positionfkine(p560, qi)-fkine(p560, qr)ans =1.0e-015 *-0.0000-0.0902-0.06940.0000-0.00000.09020.00000.1110pause % any key to continue% Inverse kinematics may also be computed for a trajectory.% If we take a Cartesian straight line patht = [0:.056:2];% create a time vectorT1 = transl(0.6,-0.5, 0.0)% define the start point T1 =1.00000.60001.0000-0.50001.00001.0000T2 = transl(0.4, 0.5, 0.2)% and destination T2 =1.00000.40001.00000.50001.00000.20001.0000T = ctraj(T1, T2, length(t));% compute a Cartesian path % % now solve the inverse kinematics.When solving for a trajectory, the% starting joint coordinates for each point is taken as the result of the% previous inverse solution.%ticq = ikine(p560, T);toc Elapsed time is 0.315656 seconds.% % Clearly this approach is slow, and not suitable for a real robot controller % where an inverse kinematic solution would be required in a few milliseconds.% % Let's examine the joint space trajectory that results in straightline % Cartesian motionsubplot(3,1,1)plot(t,q(:,1))xlabel('Time(s)');ylabel('Joint 1(rad)')subplot(3,1,2)plot(t,q(:,2))xlabel('Time(s)');ylabel('Joint 2(rad)')subplot(3,1,3)plot(t,q(:,3))xlabel('Time(s)');ylabel('Joint 3(rad)')pause % hit any key to continue% This joint space trajectory can now be animatedplot(p560, q)pause % any key to continueecho off %六、Jacobians雅可比---矩阵与速度% Jacobian and differential motion demonstration % % A differential motion can be represented by a 6-element vector with elements % [dx dy dz drx dry drz] % % where the first 3 elements are a differential translation, and the last 3 % are a differential rotation.When dealing with infinitisimal rotations,% the order becomes unimportant.The differential motion could be written% in terms of compounded transforms % % transl(dx,dy,dz)* rotx(drx)* roty(dry)* rotz(drz)% % but a more direct approach is to use the function diff2tr()%D = [.1.2 0-.2.1.1]';diff2tr(D)ans =-0.10000.10000.10000.10000.20000.2000-0.1000-0.2000pause % any key to continue % % More commonly it is useful to know how a differential motion in one% coordinate frame appears in another frame.If the second frame is% represented by the transformT = transl(100, 200, 300)* roty(pi/8)* rotz(-pi/4);% % then the differential motion in the second frame would be given by DT = tr2jac(T)* D;DT' ans =-29.510969.7669-42.3289-0.2284-0.08700.0159 % % tr2jac()has computed a 6x6 Jacobian matrix which transforms the differential% changes from the first frame to the next.% pause % any key to continue% The manipulator's Jacobian matrix relates differential joint coordinate% motion to differential Cartesian motion;% % dX = J(q)dQ % % For an n-joint manipulator the manipulator Jacobian is a 6 x n matrix and % is used is many manipulator control schemes.For a 6-axis manipulator like % the Puma 560 the Jacobian is square % % Two Jacobians are frequently used, which express the Cartesian velocity in % the world coordinate frame,q = [0.1 0.75-2.25 0.75 0] q =0.10000.7500-2.25000.7500J = jacob0(p560, q)J =0.0746-0.3031-0.0102 00.7593-0.0304-0.0010 00.74810.4322 00.00000.09980.0998 0.6782-0.9950-0.9950 0.06811.00000.00000.0000 0.7317 % % or the T6 coordinate frame J = jacobn(p560, q)0 0.9925 0.0996 0.07070 0.0998-0.9950 0.0000J =0.1098-0.7328-0.30210.74810.00000.00000.10230.33970.3092-0.68160.6816-0.0000-1.0000-1.0000-0.0000-1.00000.73170.00000.00000.73170.00001.0000 % % Note the top right 3x3 block is all zero.This indicates, correctly, that % motion of joints 4-6 does not cause any translational motion of the robot's % end-effector.pause % any key to continue % % Many control schemes require the inverse of the Jacobian.The Jacobian % in this example is not singulardet(J)ans =-0.0632 % % and may be invertedJi = inv(J)Ji =0.00001.3367-0.0000 0-2.49460.6993-2.4374 00.0000-0.0000 0.0000-0.00002.7410-1.21065.91250.00000.00000.00001.3367-0.00001.4671-0.0000-0.24640.5113-3.4751-0.0000-1.0000-0.0000-1.95610.0000-1.07340.00001.0000pause % any key to continue % % A classic control technique is Whitney's resolved rate motion control % % dQ/dt = J(q)^-1 dX/dt % % where dX/dt is the desired Cartesian velocity, and dQ/dt is the required % joint velocity to achieve this.vel = [1 0 0 0 0 0]';% translational motion in the X directionqvel = Ji * vel;qvel' ans =0.0000-2.49462.74100.0000-0.2464-0.0000 % % This is an alternative strategy to computing a Cartesian trajectory% and solving the inverse kinematics.However like that other scheme, this % strategy also runs into difficulty at a manipulator singularity where % the Jacobian is singular.pause % any key to continue % % As already stated this Jacobian relates joint velocity to end-effector% velocity expressed in the end-effector reference frame.We may wish% instead to specify the velocity in base or world coordinates.% % We have already seen how differential motions in one frame can be translated% to another.Consider the velocity as a differential in the world frame, that % is, d0X.We can write % d6X = Jac(T6)d0X % T6 = fkine(p560, q);% compute the end-effector transform d6X = tr2jac(T6)* vel;% translate world frame velocity to T6 frameqvel = Ji * d6X;% compute required joint velocity as before qvel' ans =-0.1334-3.53916.1265-0.1334-2.58740.1953 % % Note that this value of joint velocity is quite different to that calculated % above, which was for motion in the T6 X-axis direction.pause % any key to continue % % At a manipulator singularity or degeneracy the Jacobian becomes singular.% At the Puma's `ready' position for instance, two of the wrist joints are % aligned resulting in the loss of one degree of freedom.This is revealed by % the rank of the Jacobian rank(jacobn(p560, qr))ans = % % and the singular values are svd(jacobn(p560, qr))ans =1.90661.73210.56600.01660.00810.0000pause % any key to continue % % When not actually at a singularity the Jacobian can provide information% about how `well-conditioned' the manipulator is for making certain motions, % and is referred to as `manipulability'.% % A number of scalar manipulability measures have been proposed.One by % Yoshikawamaniplty(p560, q, 'yoshikawa')ans =[] % % is based purely on kinematic parameters of the manipulator.% % Another by Asada takes into account the inertia of the manipulator which% affects the acceleration achievable in different directions.This measure% varies from 0 to 1, where 1 indicates uniformity of acceleration in all % directionsmaniplty(p560, q, 'asada')ans =[] % % Both of these measures would indicate that this particular pose is not well % conditioned.pause % any key to continue% An interesting class of manipulators are those that are redundant, that is, % they have more than 6 degrees of puting the joint motion for % such a manipulator is not straightforward.Approaches have been suggested % based on the pseudo-inverse of the Jacobian(which will not be square)or % singular value decomposition of the Jacobian.% echo off七、Inverse Dynamics逆向动力学% % Inverse dynamics computes the joint torques required to achieve the specified % state of joint position, velocity and acceleration.% The recursive Newton-Euler formulation is an efficient matrix oriented % algorithm for computing the inverse dynamics, and is implemented in the % function rne().% % Inverse dynamics requires inertial and mass parameters of each link, as well % as the kinematic parameters.This is achieved by augmenting the kinematic% description matrix with additional columns for the inertial and mass% parameters for each link.% % For example, for a Puma 560 in the zero angle pose, with all joint velocities % of 5rad/s and accelerations of 1rad/s/s, the joint torques required are % tau = rne(p560, qz, 5*ones(1,6), ones(1,6))tau =-79.404837.169413.54551.07280.93990.5119pause % any key to continue% As with other functions the inverse dynamics can be computed for each point% on a trajectory.Create a joint coordinate trajectory and compute velocity % and acceleration as wellt = [0:.056:2];% create time vector[q,qd,qdd] = jtraj(qz, qr, t);% compute joint coordinate trajectorytau = rne(p560, q, qd, qdd);% compute inverse dynamics % % Now the joint torques can be plotted as a function of time plot(t, tau(:,1:3))xlabel('Time(s)');ylabel('Joint torque(Nm)')pause % any key to continue% % Much of the torque on joints 2 and 3 of a Puma 560(mounted conventionally)is % due to gravity.That component can be computed using gravload()taug = gravload(p560, q);plot(t, taug(:,1:3))xlabel('Time(s)');ylabel('Gravity torque(Nm)')pause % any key to continue% Now lets plot that as a fraction of the total torque required over the % trajectorysubplot(2,1,1)plot(t,[tau(:,2)taug(:,2)])xlabel('Time(s)');ylabel('Torque on joint 2(Nm)')subplot(2,1,2)plot(t,[tau(:,3)taug(:,3)])xlabel('Time(s)');ylabel('Torque on joint 3(Nm)')pause % any key to continue% % The inertia seen by the waist(joint 1)motor changes markedly with robot% configuration.The function inertia()computes the manipulator inertia matrix % for any given configuration.% % Let's compute the variation in joint 1 inertia, that is M(1,1), as the % manipulator moves along the trajectory(this may take a few minutes)M = inertia(p560, q);M11 = squeeze(M(1,1,:));plot(t, M11);xlabel('Time(s)');第二篇:matlab的nntool工具箱小结拟合以及插值还有逼近是数值分析的三大基础工具,通俗意义上它们的区别在于:拟合是已知点列,从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是已知曲线,或者点列,通过逼近使得构造的函数无限靠近它们。

MATLAB机器人仿真程序

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函数将机器人的运动轨迹可视化。

工业机器人机器人工具箱的使用实验报告

工业机器人机器人工具箱的使用实验报告

工业机器人机器人工具箱的使用实验报告一、引言工业机器人是现代工业生产中不可或缺的重要设备之一。

机器人工具箱是工业机器人应用中的重要组成部分,它可以提供丰富的功能和算法库,帮助开发者快速搭建自己的控制系统。

本文将介绍机器人工具箱在工业机器人应用中的使用实验。

二、实验环境本次实验使用了一台ABB IRB 1200-5/0.9工业机器人。

该机器人采用了ABB公司独有的TrueMove技术,可以实现高精度运动控制。

同时,我们使用了MATLAB Robotics System Toolbox作为开发平台来进行本次实验。

三、实验内容及步骤1. 建立机器人模型首先,我们需要建立机器人模型。

在MATLAB Robotics System Toolbox中,可以通过Robotics System Toolbox Interface for ABB Robots(简称ABB接口)来连接ABB工业机器人,并获取其运动学参数和状态信息。

在获取到这些信息后,我们就可以通过Robotics System Toolbox自带的urdf模型导入功能来建立虚拟模型。

2. 运动规划接下来,我们需要进行运动规划。

在MATLAB Robotics System Toolbox中,有多种运动规划算法可供选择,如RRT、PRM等。

我们选择了基于优化的运动规划算法OMPL来进行本次实验。

在运动规划过程中,我们需要指定机器人的起始点和目标点,并设置一些运动约束条件。

通过OMPL算法,我们可以得到一条优化后的路径。

3. 控制机器人最后,我们需要将优化后的路径转换成机器人可以执行的控制指令。

在MATLAB Robotics System Toolbox中,有多种控制方法可供选择,如PID控制、模型预测控制等。

我们选择了基于PID控制的方法来进行本次实验。

四、实验结果及分析经过以上步骤,我们成功地建立了机器人模型、进行了运动规划并控制了机器人运动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于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} 两坐标系之间的旋转变换和平移变换。

其中矩阵法、齐次变换等概念是机器人学研究中最为重要的数学基础。

由于旋转变换通常会带来大量的正余弦计算, 复合变换带来的多个矩阵相乘就更加难以手工计算, 因此我们建议在仿真教学中通过计算机进行相应的坐标变换计算。

利用MATLABRobotics Toolbox 工具箱中的transl 、rotx 、roty 和rotz 函数可以非常容易的实现用齐次变换矩阵表示平移变换和旋转变换。

例如机器人在X 轴方向平移了0.5 米的齐次坐标变换可以表示为: 2构建机器人对象要用计算机对机器人运动进行仿真, 首先需要构建相应的机器人对象。

在机器人学的教学中通常把机械手看作是由一系列关节连接起来的连杆构成。

为描述相邻杆件间平移和转动的关系,Denavit和Hartenberg提出了一种为关节链中的每一杆件建立附属坐标系的矩阵方法,通常称为D-H参数法⑶。

D-H参数法是为每个连杆坐标系建立4X4的齐次变换矩阵,表示它与前一杆件坐标系的关系。

在Robotics Toolbox 中, 构建机器人对象主要在于构建各个关节,而构建关节时,会用到LINK函数,其一般形式为:L =LINK([alpha A theta D sigma], CONVENTION)参数CONVENTIO可以取‘ standard '和‘ modified ',其中‘ standard '代表采用标准的D-H 参数[4], ‘modified '代表采用改进的D-H参数⑸。

参数‘ alp ha '代表扭转角,参数'A代表连杆长度,参数‘ theta '代表关节角,参数‘ D代表0代表平偏距,参数‘ sigma'代表关节类型:0代表旋转关节,非动关节。

例如, 通过如下的语句即可构建一个简单的两连杆旋转机器人(图1), 命名为2R:>> L1 = link([0 1 0 0 0],'standard');>> L2 = link([0 1 0 0 0],'standard');>> r = robot({L1 L2},'2R');这样,只需指定相应的D-H参数,我们便可以对任意种类的机械手进行建模。

通过Robotics Toolbox 扩展了的plot 函数还可将创建好的机器人在三维空间中显示出来>> plot(r,[0 0])图 1 两连杆机械手的三维模型除了用户自己构建机器人连杆外,Robotics Toolbox 也自带了一些常见的机器人对象, 如教学中最为常见的puma560,standford 等。

通过如下的语句即可调用工具箱已构建好的puma560机器人,并显示在三维空间中(图2):>> puma560;>> plot(p560,qz)图2puma560型机械手的三维模型注意到机械手的末端附有一个小的右手坐标系, 分别用红、绿、蓝色箭头代表机械手腕关节处的X,Y,Z 轴方向。

并且在XY平面用黑色直线表示整个机械手的垂直投影。

更进一步的, 我们可以通过drivebot 函数来驱使机器人运动, 就像实际在操作机器人一样。

具体驱动方式是为机器人每个自由度生成一个变化范围的滑动条, 以手动的方式来驱动机器人的各个关节, 以达到驱动机器人末端执行器的目的(图3)。

这种方式对于实际的多连杆机械手的运动演示非常有益, 同学们普遍反映对于机械手的关节、变量等概念有了更深入的理解。

图3puma560型机械手的滑动控制框3机器人运动学求解机器人运动学主要是研究关节变量空间和机器人末端执行器位置和姿态之间的关系。

常见的机器人运动学问题可归纳为两类:1)运动学正问题(又称为直接问题): 对一给定的机器人, 已知杆件几何参数和关节角矢量, 求机器人末端执行器相对于参考坐标系的位置和姿态;2)运动学逆问题(又称为解臂形问题): 已知机器人杆件的几何参数, 给定机器人末端执行器相对于参考坐标系的期望位置和姿态(位姿), 机器人能否使其末端执行器达到这个预期的位姿?与第 2 节介绍过的坐标变换的情况类似, 手工进行机器人运动学的求解非常繁琐甚至于无法得到最终的数值结果, 这对于实际机器人的设计非常不利。

因此在仿真实验教学中, 我们希望能通过计算机编程的形式来进行机器人运动学的求解, 把学生从繁琐的数值计算中解脱出来。

下面以教学中最常用的puma560型机器人为例, 演示如何运用Robotics Toolbox 进行正运动学与逆运动学的求解。

如第2节方法,先定义puma560型机器人,注意系统同时还定义了puma560型机器人两个特殊的位姿配置:所有关节变量为0 的qz 状态, 以及表示“ READ”Y 状态的qr 状态。

如我们要求解所有关节变量为0 时的末端机械手状态, 则相应的正运动学可由下述语句求解:得到的即为末端机械手位姿所对应的齐次变换矩阵。

逆运动学问题则是通过一个给定的齐次变换矩阵, 求解对应的关节变量。

例如, 假定机械手需运动到[0, ?Cpi/4, ?Cpi/4, 0,pi/8, 0] 姿态, 则此时末端机械手位姿所对应的齐次变换矩阵为:0 -0.7854 -0.7854 00.3927 0>> T = fkine(p560,q)0.38270.00000.92390.7371-0.00001.0000 -0.0000 -0.1501>> q = [0 -pi/4 -pi/4 0 pi/8 0]-0.9239 -0.00000.3827 -0.32560 0 01.0000现在假定已知上述的齐次变换矩阵T, 则可以通过ikine 函数求解对应的关节转角:>> qi=ikine(p560,T)qi=-0.0000 -0.7854 -0.7854 -0.00000.3927 0.0000发现与原始的关节转角数值相同。

值得指出的是, 这样的逆运动学求解在手工计算中几乎是无法完成的。

4轨迹规划机器人轨迹规划的任务就是根据机器人手臂要完成的一定任务,例如要求机械手从一点运动到另一点或沿一条连续轨迹运动, 来设计机器人各关节的运动函数。

目前进行轨迹规划的方案主要有两种: 基于关节空间方案和基于直角坐标方案。

出于实际运用考虑,在教学中以讲解关节空间求解为主, 本文也只演示关节空间的求解方案。

假设puma560型机器人要在 2 秒内从初始状态qz(所有关节转角为0)平稳地运动到朝上的“R EAD”Y 状态qr, 则在关节空间进行轨迹规划的过程如下:首先创建一个运动时间向量,假定采样时间为56毫秒, 则有:>> t=[0:.056:2]';在关节空间中插值可以得到>> [q, qd,qdd] = jtraj(qz,qr,t);q是一个矩阵,其中每行代表一个时间采样点上各关节的转动角度,qd和qdd分别是对应的关节速度向量以及关节加速度向量。

jtraj 函数采用的是7次多项式插值,默认的初始和终止速度为0。

对于上面的运动轨迹, 主要的运动发生在第 2 个及第 3个关节,通过MATLAB^准的绘图函数可以清楚的看到这两个关节随时间的变化过程(图4)。

我们还可以通过Robotics Toolbox扩展了的plot 函数以三维动画的形式图4由jtraj 函数生成的关节轨迹演示整个运动过程(文中无法演示), 调用语句为:>> plot(p560,q);5结语本文简要介绍了MATLABRobotics Toolbox 在机器人学实验教学中的应用。

该工具箱提供了机器人学中关于建模与仿真的许多重要的函数,能够用一种规范的形式(标准的或改进的DH参数法)对任意的连杆机器人进行描述, 并提供了三维图像/ 动画演示及手动关节变量调节等功能。

基于MATLABRobotics Toolbox 的仿真实验教学, 把学生从繁琐的数值计算中解脱出来, 能够专注于机器人学本身的重要概念的理解与应用, 获得了良好的教学效果。

鉴于学生的接受能力, 在给本科生授课时主要练习了坐标变换、机器人对象构建、正运动学、逆运动学求解和轨迹规划等方面的内容。

事实上,Robotics Toolbox 是一个功能非常强大的工具箱, 还可以对机器人动力学、基于simulink 的机器人动态仿真等许多其他机器人学的相关内容进行仿真与分析,这些功能可以在给研究生授课或机器人学相关科学研究中得到充分的应用。

更多的关于Robotics Toolbox 的使用说明可以参见工具箱文件夹中的用户说明文档(robot.pdf) 。

相关文档
最新文档