平面机械程序库 AMESim仿真软件

平面机械程序库 AMESim仿真软件
平面机械程序库 AMESim仿真软件

附件1:外文资料翻译译文

平面机械程序库 AMESim仿真软件

第一部分制定动力学方程

威尔弗里德侯爵,法夫尔埃里克Bideaux ,塞尔日Scavarda

工业自动化实验室,里昂国立科学应用研究所,法国

投稿:2003年3月25日;修订稿:2004年12月17日;录用稿:2005年2月8日网上提供:2005年3月17日

摘要:

本文介绍了应用于AMESim仿真工具的平面机械库的数学开发,刚体与运动副是该库的基本组件。由于AMESim平面机械库设计原则的要求,数学模型部分需要一个基于通用矢量演算的约束公式的方程。该方程使用非独立广义坐标。这种动力学方程组是应用乔丹的原则结合拉格朗日因子而获得的,刚体组件的数学模型包括以非独立广义坐标表达的微分方程,运动副组件的数学模型是基于应用几何,运动和加速度约束方程的Baumgarte稳定式。拉格朗日因子是这些Baumgarte稳定式的隐含解,本文的第一个主要成果是矢量形式的集合约束的表达及其开发,第二个重要成果是使已有的方程适用于AMESim设计原则。

2005年Elsevier B.V.版权所有

关键词:AMESim;平面力学;动力学方程;约束方程;拉格朗日因子;Baumgarte 稳定

1. 导言

本文分为两部分,为仿真工具AMESim(2)提出了一种新模型库。第一部分主要是模型库的理论开发,第二部分模型库的组成因为它初次用于AMESim,并以七刚体刚体应用实例给予演示。改库组件属于平面机械域。其目的不是与更适应该域多体系统软件工具竞争,而是扩大能够被处理AMESim的工业应用的范围,从理论的

角度看来,应用该库的难度主要是将已有的机械方程的以适用于AMESim设计原则的内在要求。该解可由将用乔丹原则和拉格朗日乘法相结合表示的动力学方程用于Baumgarte的稳定式而得出。同时研究了关于库组件(刚体和运动副)的该方程的通用特性,这也是本文一个关键成果。本质上,该方程包括与运动副相关的几何约束矢量表达以及她们的开发执行。结果是为运动和加速度的限制建立适合库中每个运动副的唯一表达。

该通用方程的特性使运动副约束的推导系统化。运用所提出的方程,可以想象一个新的运动副向量约束并直接导出其相应的数学模型。同时,在预定义的组件模型上下文中,已给公式使用输入,输出清楚地表明了不同数学模型的边界,因此它同时可帮助定义在各模型中必须使用的输出公式。同时,该公式提出了本质上可以处理闭环结构。

AMESim(用于高级建模的执行仿真环境)被用于组件库内。组件,用技术图标的符号表达,完全可以像下面研究的系统一样联结。AMESim最初应用于简单的一维运动的约束驱动二维机械程序库的发展。

第2节概述了一些多刚体表达和面向对象的工具,以及AMESim的环境要求。这些要求就如何建立二维程序库有些影响,第3节详细说明了建立库组件的数学模型的理论发展。第4节总结了第一部分。

2. AMESim设计原则的约束

在简要概述了多刚体表达原则和一些面向对象工具后,给出了AMESim的需求表达。

关于多刚体表达的现状在文献[23]中已给出。细节在此不再敷述,更深入的描述读者可参照这本书。虽然已经过去10年,某些工具已不在发展并且其他工具已经发生了变化,但该书给出了关于可以用来作为多刚体表达的基础的主要原则的一个好方法,同时它的综述使库的提出定位于这些表达。写出动力学方程方法的有不同的方法,多刚体表达中用的最多的是适用于单个刚体的牛顿-欧拉方程。多组刚体的牛顿-欧拉方程,拉格朗日方程和凯恩方程[13,14]。动力学方程中的变量不是绝对坐标就是相对坐标。同时使用补充方法减少微分代数方程的次数。主要的是坐标分区法,投影矩阵法,Baumgarte稳定式和惩罚方程[9]。前两个方法的目的是在一套独立的广义坐标下工作,而允许引入约束,加上微分方程,去处理Baumgarte 稳定式和通过引入额外的动力学模型里处罚方程增加了微分系统的阶数。

在AMESim所使用的面向对象工具的域中,多刚体表达采用不同的方法来建模。例如像AMESim一样,在多学科关联下基于易识别技术组件的Dymola[21],它采用不同的方法建立数学模型。本质上,每个组件模型由即不面向变量分配也不事先组织的方程组成。然后,在组件连接阶段,所有的数学模型以一个隐含的形式聚集,编译程序完成变量分配和公式一致化。因此,全面减少了整个模型的次数,许多约束被事先用符号表达排除了。同样的,基于键合图的工具(如20Sim[1]或MS1[18])可以处理多学科关联下的多刚体系统,(如[4。7])。键合图语言的基本特点是在不受因果支配的水平下描述能量拓扑的能力。这使所有的模型变量在全局内分配,所有方程在全局内组织,同时还能消除多余的多刚体依赖。

通过展示AMESim的主要特点说明平面机械程序库如何实施的现在是重要的。它面向工程系统的功能和其用户友好使AMESim可以与已确定技术组件一起运行,通过图标象征性地操纵。在所研究工程的系统架构下这些图标是相互关联的。图1显示的的一个门锁系统例子,使用在AMESim中对永久磁铁建模,图标属于磁力库、机械库和信号图,该例子给出了在一个回路中机械域和磁力域间的耦合作用。该回路由永久磁铁反馈(右手电路),它按照另一无源电路(左手电路)运动。主要组成部分包括一个永久磁铁(矩形罗盘针),3名磁路部分的特点是某些不愿意(正方形式的矩形对角线交叉与内),两个空气间隙变量(垂直双矩形),2个机械节点(双方气隙组成部分),一个信号位移转换器的信号发生器(在该中心的右手边电路),和一个组成部分的一套磁介质特性(圆圈中的BH图)。每个部件都有一个可以与之兼容的数学模型。模型一旦被选定,部件就保存这个数学模型。

与因果工具相反,AMESim使用组件模型所用的等式兼具优先面向变量分配和组织。这项功能要求预定义的数学演算方案在一个新的模式下实施。同样这个组件的数学模型必须有组织,以便纳入其他潜在的组成部分。因此每个组件相关的数学模型都有一套固定的输入和输出变量。因此可以看成是一种因果模型。方面的组成部分可以交流这些变量的出路问题的一个组成部分的变量,这个方程能够使得这些变量的换算结果以这种方式从方程中输出,这个方程使得这些变量以数学模型输出,同时这个方程能够使得这些变量的换算结果以这种方式从方程中输入,这个方程使得这些变量以数学模型输入。当执行新的组件时,这一因果特性的AMESim原理是主要的限制。这不同于其他的面向对象的工具,基于因果关系的组件模型,就好象Dymola ,或以键合图输入的工具(如20-Sim或MS1)。

图2 给出了一个例子,两个组件的机械(一个平移的质量)和液压(双路液压泵)域。组件的连接部分显示这些变量的相互交换,特别是输出('向外'箭头)传递给连接部件的组件和来自这些连接组件的输入('进入'箭头)。这些连接部件是密切相关的电源接口,因为这两个变量在电源变量中相互交换。

图2例子说明了两个关键的特征程序库定位模拟工具。第一个是域的端口概念。它说明AMESim可以处理多学科系统。第二个特征是连接端口的限制。从一个组件的数学模型需要对其计算,然后计算出其状态和产出,并非所有的组合都能连接起来。例如,图2的例子不能连接其他任何端口。不管怎样大部分的组件都可以连接到一个弹簧组件或阻尼器组件。

库的另一个重要特点是定位模拟工具模块化概念。这种结果往往考虑到其连接端口的对称性。这种对称性还不能推广到所有的AMESim组件中,在已通过的平面机械程序库。当这个程序库的组件存在时,会出现明显的结果。

在平面机械化的环境下程序库不仅限于任何机械域的用途。还接受闭环结构。尽管相对坐标通常能制定动力学方程,但AMESim原理只使用绝对坐标。绝对坐标中心的质量已选定为每个主要部分。然而,平面功能的机械库并不需要任何特定变量的定位。因此绝对角位置也被选定为每个刚体。一旦再次使用,由于AMESim 原理,当这部分连接的时候,方程的组成部分不能在全域范围内重组,这样就禁止使用协调分区方法或投影法在该指数下降的微分代数方程系统。由于这个原因,Baumgarte的稳定性也被用在程序库。

3.库模型的理论发展

正如已经解释了前一节的库必须是以确定技术部分组织的一样。这已决定将平面机械程序库的基础是刚体和运动副部分。这部分组件与假定刚性材料项目的机械装置连在一起。它的行为基本上是其动力学状态决定的。运动副部分是有关与抽象的项目一起,代表依附在机械装置上的刚体。他们假设是理想的,他们的数学模型基于强加相关联的刚体的约束。

3.1刚体部件数学模型

数学模型的主要部分是根据乔丹的原则制定(例如,[5,23]):

A*=P*

其中A*是由质量加速度产生的虚拟力, P*是由刚体动作产生的虚拟力。

在库原则中在广义坐标中没有优先权。如对于平面运动,广义坐标中,是绝对的质心坐标投影到绝对参照系(坐标)和绝对角位置(图3)。这一选择可以处理使更多的一般情况下一个刚体的运动。如后面所示,刚体的限制将取决于运动副的制约。

附件2:外文原文(复印件)

Matlab robot tool 学习

Matlab robot tool 学习 一、Robottool的下载地址: https://www.360docs.net/doc/4813718344.html,/share/link?shareid=1167669811&uk=940448808&app= zd 二、网上的介绍: 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 %创建一个空的机器人对象

基于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;simulation 1.前言 机器人是当代新科技的代表产物,随着计算机技术的发展,机器人科学与技术得到了迅猛的发展,在机器人的研究中,由于其价格较昂贵,进行普及型实验难度较大,隐刺机器人仿真实验变得十分重要。对机器人进行软件仿真,从运动图像和动态曲线表,可以模拟机器人的动态特性,更加直观的显示了机器人的运动状况,从而可以分析许多重要的信息。 对机器人的运动学仿真,很多学者都进行了研究。文献2以一个死自由度机器人为例,利用MATLAB软件绘制了其三维运动轨迹;文献4对一种柱面机械手为对象,对机械手模型的手动控制和轨迹规划进行了仿真;但上述各种方法建立的机器人模型只适合特定的机械臂模型。一种通用的,经过简单修改便可用于任何一种机械臂的仿真方法显得尤为重要。 2.机器人运动学简介 机器人学中关于运动学和动力学最常用的描述方法是矩阵法,这种数学描述是以四阶方阵变换三维空间的齐次坐标为基础的。矩阵法、齐次变换等概念是机器人学研究中最重要的数学基础。利用MATLAB Robotics Toolbox工具箱中的transl、rotx、roty和rotz函数可以非常容易的实现用其次变换矩阵表示平移变换和旋转变换。例如机器人在X轴方向平移了0.5米的其次坐标变换可表示为:

基于Simulink和VR工具箱的机器人行驶控制系统计算机仿真

想查找更多的学术资料以下资源论坛: 点击这里进入鸭绿江论坛 点击这里进入萍萍家园 免费帐号密码: IEEE EZ CNKI 维普 万方 Science Direct Proquest 等等 文献检索互助 免费科研资料 ——读书人、学术人的乐园

第32卷 第3期2003年 6月 常州工业大学学报(自然科学版) JOURNAL OF GUIZHOU UNIVERSITY OF TECHNOLOGY (Natural Science Edition) Vol.32No.3 June.2003 文章编号:100920193(2003)0320054205Ξ 基于Simulink和VR工具箱的机器人 行驶控制系统计算机仿真 胡光艳,田会方 (武汉理工大学机电学院,湖北武汉430070) 摘 要:建立机器人行驶控制系统的数学模型,由此获得系统的Simulink模型(仿真模型),进 行仿真分析,然后使用VR工具箱建立了一个相关的虚拟场景,并通过该工具箱的Simulink接 口将机器人行驶控制系统Simulink模型与该虚拟世界建立关联,从而利用Simulink模型产生 的信号数据控制和操纵虚拟世界中机器人的运动。 关键词:Simulink;VR工具箱;机器人;行驶控制系统 中图分类号:TP242.6;TN911.73 文献标识码:A 1 引 言 1.1 机器人导航技术及虚拟现实 国内外专家在移动机器人控制方面已做了大量的研究工作,与70年代的机器人相比,现在的机器人研究有两个特点:一是对机器人智能的定位有了更加符合实际的标准,也就是不要求机器人具有像人类一样的高智能,而只是要求机器人在某种程度上具有自主处理问题的能力;另一个特点是许多新技术及控制方法被引入到机器人研究中,给研究工作带来突破性进展。 将VR技术应用到移动机器人导航研究中是一种可行的方法:随着系统的日益复杂和运算量的日益增加,对计算设备能力的要求也日益提高,而多数轻便灵活型的机器人难以携带大量的计算设备,因此,将计算机和机器人分开,机器人把观察到的视觉信号和传感器信号按照制定的标准合成,然后传送到远方计算机上,由功能强大的远方计算机进行分解和处理,并发出控制信号给机器人的传动机构,以控制机器人行为,或者由机器人完成一些行走、避障类的低层操作,而高层操作则由远方高性能机器、或人工在虚拟环境中遥控完成。 本文的仿真对象是一台半自主式移动机器人,其运动和各种服务功能的实现,可以由后方的操作者利用虚拟现实技术操纵控制,所有命令均由操纵面板上的按钮和操纵杆控制发出。 1.2 Simulink及VR工具箱 Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它和MA TLAB的无缝结合使得用户可以利用MA TLAB丰富的资源,建立仿真模型,监控仿真过程,分析仿真结果。新出现的基于MA TLAB的VR工具箱允许MA TLAB/Simulink使用虚拟现实的图形技术,使得用户能直接将仿真结果以虚拟现实的形式显示出来。可以说,对虚拟现实技术的支持使得MA TLAB/Simulink在系统仿真领域的应用上了一个新的台阶[1]。 1.3 机器人行驶控制系统的工作原理 (1)机器人的速度设置通过改变遥控操作面板上操纵杆的位置来实现,即操纵杆的不同位置对应着不同的速度。 (2)测量机器人的当前速度,并求取它与指定速度的差值。 Ξ收稿日期:2003-03-03 基金项目:国家863计划资助 作者简介:胡光艳,女,硕士研究生;田会方,男,副教授,硕士生导师.

MTALAB机器人工具箱

Robotic tool提供了一些如运动学,动力学和生成机器人轨迹的许多有用功能。用这个工具箱进行仿真以及分析与真正的机器人得到实验结果是非常有用。工具箱的优点是代码是一个相当成熟的算法,对于教学源代码是免费的。该工具箱提供了机器人动力学正解和逆解,其次坐标转换所必需的三维位置和方向。 该工具箱可以计算任意结构机器人的正反运动学(用数值积分的方法,不是给出解析解)、正反动力学(反运动学采用的是递归牛顿欧拉方法,效率很高)、路径规划等;里面还有Puma560和Stanford机器人的实例。 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

机器人系统常用仿真软件介绍

1 主要介绍以下七种仿真平台(侧重移动机器人仿真而非机械臂等工业机器人仿真): 1.1 USARSim-Unified System for Automation and Robot Simulation USARSim是一个基于虚拟竞技场引擎设计高保真多机器人环境仿真平台。主要针对地面机器人,可以被用于研究和教学,除此之外,USARSim是RoboCup救援虚拟机器人竞赛和虚拟制造自动化竞赛的基础平台。使用开放动力学引擎ODE(Open Dynamics Engine),支持三维的渲染和物理模拟,较高可配置性和可扩展性,与Player兼容,采用分层控制系统,开放接口结构模拟功能和工具框架模块。机器人控制可以通过虚拟脚本编程或网络连接使用UDP协议实现。被广泛应用于机器人仿真、训练军队新兵、消防及搜寻和营救任务的研究。机器人和环境可以通过第三方软件进行生成。软件遵循免费GPL条款,多平台支持可以安装并运行在Linux、Windows和MacOS操作系统上。 1.2 Simbad Simbad是基于Java3D的用于科研和教育目的多机器人仿真平台。主要专注于研究人员和编程人员热衷的多机器人系统中人工智能、机器学习和更多通用的人工智能算法一些简单的基本问题。它拥有可编程机器人控制器,可定制环境和自定义配置传感器模块等功能,采用3D虚拟传感技术,支持单或多机器人仿真,提供神经网络和进化算法等工具箱。软件开发容易,开源,基于GNU协议,不支持物理计算,可以运行在任何支持包含Java3D库的Java客户端系统上。 1.3 Webots Webots是一个具备建模、编程和仿真移动机器人开发平台,主要用于地面机器人仿真。用户可以在一个共享的环境中设计多种复杂的异构机器人,可以自定义环境大小,环境中所有物体的属性包括形状、颜色、文字、质量、功能等也都可由用户来进行自由配置,它使用ODE检测物体碰撞和模拟刚性结构的动力学特性,可以精确的模拟物体速度、惯性和摩擦力等物理属性。每个机器人可以装配大量可供选择的仿真传感器和驱动器,机器人的控制器可以通过内部集成化开发环境或者第三方开发环境进行编程,控制器程序可以用C,C++等编写,机器人每个行为都可以在真实世界中测试。支持大量机器人模型如khepera、pioneer2、aibo等,也可以导入自己定义的机器人。全球有超过750个高校和研究中心使用该仿真软件,但需要付费,支持各主流操作系统包括Linux, Windows和MacOS。 1.4 MRDS-Microsoft Robotics Developer Studio MRDS是微软开发的一款基于Windows环境、网络化、基于服务框架结构的机器人控制仿真平台,使用PhysX物理引擎,是目前保真度最高的仿真引擎之一,主要针对学术、爱好者和商业开发,支持大量的机器人软硬件。MRDS是基于实时并发协调同步CCR(Concurrency and Coordination Runtime)和分布式软件服务DSS(Decentralized Software Services),进行异步并行任务管理并允许多种服务协调管理获得复杂的行为,提供可视化编程语言(VPL)和可视化仿真环境(VSE)。支持主流的商业机器人,主要编程语言为C#,非商业应用免费,但只支持在Windows操作系统下进行开发。 1.5 PSG-Player/Stage/Gazebo

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

基于MATLAB Robotics Toolbox的机器人学仿真实验教学 摘要:简要介绍MATLAB Robotics Toolbox在机器人学仿真实验教学中的基本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。 关键词:机器人学;仿真实验教学;MATLAB;Robotics Toolbox 机器人学是一门高度交叉的前沿学科方向,也是自动化和机电工程等相关专业的一门重要专业基础课。在机器人学的教学和培训中,实验内容一直是授课的重点和难点。实物机器人通常是比较昂贵的设备,这就决定了在实验教学中不可能运用许多实际的机器人来作为教学和培训的试验设备。由于操作不方便、体积庞大等原因,往往也限制了实物机器人在课堂授课时的应用。此外,由于计算量、空间结构等问题,当前大多数机器人教材只能以简单的两连杆机械手为例进行讲解,而对于更加实际的6连杆机械手通常无法讲解得很清楚。因此,各式各样的机器人仿真系统应运而生。经过反复的比较,我们选择了MATLAB Robotics Toolbox [1]来进行机器人学的仿真实验教学。 MATLAB Robotics Toolbox是由澳大利亚科学家Peter Corke开发和维护的一套基于MATLAB的机器人学工具箱,当前最新版本为第8版,可在该工具箱的主页上免费下载(https://www.360docs.net/doc/4813718344.html,/robot/)。Robotics Toolbox提供了机器人学研究中的许多重要功能函数,包括机器人运动学、动力学、轨迹规划等。该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。 本文简要介绍了Robotics Toolbox在机器人学仿真实验教学中的一些应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。 1坐标变换 机器人学中关于运动学和动力学最常用的描述方法是矩阵法,这种数学描述是以四阶方阵变换三维空间点的齐次坐标为基础的[2]。如已知直角坐标系{A}中的某点坐标,那么该点在另一直角坐标系{B}中的坐标可通过齐次坐标变换求得。一般而言,齐次变换矩阵是4×4的方阵,具有如下形式: 其中和分别表示{A}{B}两坐标系之间的旋转变换和平移变换。

基于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’(移动)

机器人系统常用仿真软件介绍概要

1 主要介绍以下七种仿真平台 (侧重移动机器人仿真而非机械臂等工业机器人仿真 : 1.1 USARSim-Unified System for Automation and Robot Simulation USARSim 是一个基于虚拟竞技场引擎设计高保真多机器人环境仿真平台。主要针对地面机器人, 可以被用于研究和教学, 除此之外, USARSim 是 RoboCup 救援虚拟机器人竞赛和虚拟制造自动化竞赛的基础平台。使用开放动力学引擎 ODE(Open Dynamics Engine,支持三维的渲染和物理模拟,较高可配置性和可扩展性,与 Player 兼容,采用分层控制系统, 开放接口结构模拟功能和工具框架模块。机器人控制可以通过虚拟脚本编程或网络连接使用 UDP 协议实现。被广泛应用于机器人仿真、训练军队新兵、消防及搜寻和营救任务的研究。机器人和环境可以通过第三方软件进行生成。软件遵循免费 GPL 条款, 多平台支持可以安装并运行在Linux 、 Windows 和 MacOS 操作系统上。 1.2 Simbad Simbad 是基于 Java3D 的用于科研和教育目的多机器人仿真平台。主要专注于研究人员和编程人员热衷的多机器人系统中人工智能、机器学习和更多通用的人工智能算法一些简单的基本问题。它拥有可编程机器人控制器, 可定制环境和自定义配置传感器模块等功能, 采用 3D 虚拟传感技术, 支持单或多机器人仿真,提供神经网络和进化算法等工具箱。软件开发容易,开源,基于 GNU 协议,不支持物理计算,可以运行在任何支持包含 Java3D 库的 Java 客户端系统上。 1.3 Webots Webots 是一个具备建模、编程和仿真移动机器人开发平台, 主要用于地面机器人仿真。用户可以在一个共享的环境中设计多种复杂的异构机器人, 可以自定义环境大小, 环境中所有物体的属性包括形状、颜色、文字、质量、功能等也都可由用户来进行自由配置,它使用 ODE 检测物体碰撞和模拟刚性结构的动力学特性, 可以精确的模拟物体速度、惯性和摩擦力等物理属性。每个机器人可以装配大量可

完整word版MATLAB机器人仿真程序

附录MATLAB 机器人工具箱仿真程序: 1)运动学仿真模型程序(Rob1.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,='MOTOMAN-UP6' % 模型的名称 >>drivebot(r) 2)正运动学仿真程序(Rob2.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,='MOTOMAN-UP6' t=[0:0.01:10];%产生时间向量 qA=[0 0 0 0 0 0 ]; %机械手初始关节角度 qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹 正向运动学仿真函数T=fkine(r,q);%. plot(r,q);%生成机器人的运动 figure('Name','up6机器人末端位移图') subplot(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,:)));

电气控制模拟仿真新工具-PLECS工具箱

提纲 引言 (1) 绪论 (1) PLECS工具箱 (4) 优势 (6) 应用领域 (7) 客户 (8) 竞争产品 (9) 使用许可 (10) 升级维护 (11) 交货 (12) 未来产品 (13)

引言 电气系统的仿真通常采用MATLAB或者SPICE软件,但他们都有各自的缺点。PLECS是一个运行于Simulink环境下的工具箱,适用于电气系统的仿真。当被仿真的系统既含有电路部分,又含有复杂的控制技术方案时,PLECS提供了一个简便的仿真手段。 绪论 随着科学技术、仿真理论及计算机的不断发展,仿真技术在不断的提高,在如今的科学研究中,仿真技术大大提高了科学研究水平,缩短了科学研究周期、降低了科学研究成本及风险、促进了各不同领域学科间的融合、加速了科研成果转化为生产力。 现在,越来越多的技术人员采用计算机来对电气系统来进行仿真。当前适用于电气系统的仿真软件广义上可以分为两大类:电路仿真软件和系统仿真软件。 电路仿真软件以SPICE和SABER为代表。当技术人员使用这类仿真软件来对电气系统进行仿真时,必须在仿真环境中描述各个电气元件和各个元件之间的电气连接。对此,人们通常采用网络表(net list)来描述电气系统,或者在仿真软件中绘制电路图来描述电气系统。仿真软件将以等效的数学模型对电路进行仿真。虽然使用这类软件可以很方便地对只包含电子电路的电气系统进行仿真,但是这类软件不适用于仿真含有复杂控制结构的电气系统。 系统仿真软件以MA TLAB为代表。它在科学研究特别是电子信息科学中有着极为广泛的应用。它的典型使用包括:(1) 数学和计算;(2) 运算法则;(3) 建模、仿真;(4) 数据分析、研究等等。它的特点在于其强大的矩阵计算能力和丰富的工具箱。使用系统仿真软件时,电气系统必须采用相应的微分方程或代数方程来描述。当已知系统的传递函数时,使用系统仿真软件进行仿真是十分方便的。但是当被仿真的系统含有电路部分,仿真就变得十分困难。因为如果电路部分以简化的传递函数来表示,则很多细节会被忽略。如果采用Simulink提供的基本模块(如开关和触发器)来构造模型,则相当费时费力。

MATLAB机器人仿真程序

附录 MATLAB 机器人工具箱仿真程序: 1)运动学仿真模型程序(Rob1.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,=’MOTOMAN-UP6’ % 模型的名称 >>drivebot(r) 2)正运动学仿真程序(Rob2.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,=’MOTOMAN-UP6’ t=[0:0.01:10];%产生时间向量 qA=[0 0 0 0 0 0 ]; %机械手初始关节角度 qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹 T=fkine(r,q);%正向运动学仿真函数 plot(r,q);%生成机器人的运动

figure('Name','up6机器人末端位移图')subplot(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)'); x=squeeze(T(1,4,:)); y=squeeze(T(2,4,:)); z=squeeze(T(3,4,:)); figure('Name','up6机器人末端轨迹图'); plot3(x,y,z); 3)机器人各关节转动角度仿真程序:(Rob3.m)L1=link([pi/2 150 0 0 ]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0 ]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,='motoman-up6' t=[0:0.01:10]; qA=[0 0 0 0 0 0 ];

MTALAB机器人工具箱知识分享

M T A L A B机器人工具箱

Robotic tool提供了一些如运动学,动力学和生成机器人轨迹的许多有用功能。用这个工具箱进行仿真以及分析与真正的机器人得到实验结果是非常有用。工具箱的优点是代码是一个相当成熟的算法,对于教学源代码是免费的。该工具箱提供了机器人动力学正解和逆解,其次坐标转换所必需的三维位置和方向。 该工具箱可以计算任意结构机器人的正反运动学(用数值积分的方法,不是给出解析解)、正反动力学(反运动学采用的是递归牛顿欧拉方法,效率很高)、路径规划等;里面还有Puma560和Stanford机器人的实例。 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 %返回关节角

机器人工具箱仿真程序-Matlab

附录 MATLAB 机器人工具箱仿真程序: 1)运动学仿真模型程序(Rob1.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,=’MOTOMAN-UP6’ % 模型的名称 >>drivebot(r) 2)正运动学仿真程序(Rob2.m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,= ’MOTOMAN-UP6’ t=[0:0.01:10];%产生时间向量 qA=[0 0 0 0 0 0 ]; %机械手初始关节角度 qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度 figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹 T=fkine(r,q);%正向运动学仿真函数 plot(r,q);%生成机器人的运动

figure('Name','up6机器人末端位移图') subplot(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)'); x=squeeze(T(1,4,:)); y=squeeze(T(2,4,:)); z=squeeze(T(3,4,:)); figure('Name','up6机器人末端轨迹图'); plot3(x,y,z); 3)机器人各关节转动角度仿真程序:(Rob3.m) L1=link([pi/2 150 0 0 ]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0 ]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) https://www.360docs.net/doc/4813718344.html,='motoman-up6' t=[0:0.01:10]; qA=[0 0 0 0 0 0 ]; qAB=[ pi/6 pi/6 pi/6 pi/6 pi/6 pi/6]; q=jtraj(qA,qAB,t); Plot(r,q); subplot(6,1,1); plot(t,q(:,1)); title('转动关节1'); xlabel('时间/s'); ylabel('角度/rad'); subplot(6,1,2); plot(t,q(:,2)); title('转动关节2'); xlabel('时间/s'); ylabel('角度/rad'); subplot(6,1,3); plot(t,q(:,3)); title('转动关节3'); xlabel('时间/s'); ylabel('角度/rad'); subplot(6,1,4); plot(t,q(:,4)); title('转动关节4'); xlabel('时间/s'); ylabel('角度/rad' ); subplot(6,1,5); plot(t,q(:,5)); title('转动关节5'); xlabel('时间/s'); ylabel('角度/rad'); subplot(6,1,6); plot(t,q(:,6)); title('转动关节6'); xlabel('时间/s'); ylabel('角度/rad'); 4)机器人各关节转动角速度仿真程序:(Rob4.m) t=[0:0.01:10]; qA=[0 0 0 0 0 0 ];%机械手初始关节量 qAB=[ 1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t); Plot(r,q); subplot(6,1,1); plot(t,qd(:,1)); title('转动关节1'); xlabel('时间/s'); ylabel('rad/s');

MATLAB机器人仿真程序

附录 MATLAB 机器人工具箱仿真程序: 1)运动学仿真模型程序(Rob1、m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) r、name=’MOTOMAN-UP6’ % 模型的名称 >>drivebot(r) 2)正运动学仿真程序(Rob2、m) L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) r、name=’MOTOMAN-UP6’ t=[0:0、01:10];%产生时间向量 qA=[0 0 0 0 0 0 ]; %机械手初始关节角度 qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹 T=fkine(r,q);%正向运动学仿真函数 plot(r,q);%生成机器人的运动 figure('Name','up6机器人末端位移图')

subplot(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)'); x=squeeze(T(1,4,:)); y=squeeze(T(2,4,:)); z=squeeze(T(3,4,:)); figure('Name','up6机器人末端轨迹图'); plot3(x,y,z); 3)机器人各关节转动角度仿真程序:(Rob3、m) L1=link([pi/2 150 0 0 ]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0 ]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) r、name='motoman-up6' t=[0:0、01:10]; qA=[0 0 0 0 0 0 ]; qAB=[ pi/6 pi/6 pi/6 pi/6 pi/6 pi/6]; q=jtraj(qA,qAB,t);

MATLAB机器人仿真程序

MATLAB 机器人工具箱仿真程序: 1)运动学仿真模型程序() L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) =’MOTOMAN-UP6’ % 模型的名称 >>drivebot(r) 2)正运动学仿真程序() L1=link([pi/2 150 0 0]) L2=link([0 570 0 0]) L3=link([pi/2 130 0 0]) L4=link([-pi/2 0 0 640]) L5=link([pi/2 0 0 0]) L6=link([0 0 0 95]) r=robot({L1 L2 L3 L4 L5 L6}) =’MOTOMAN-UP6’ t=[0::10];%产生时间向量 qA=[0 0 0 0 0 0 ]; %机械手初始关节角度 qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹 T=fkine(r,q);%正向运动学仿真函数 plot(r,q);%生成机器人的运动 figure('Name','up6机器人末端位移图') subplot(3,1,1); plot(t, squeeze(T(1,4,:)));

matlab机器人工具箱matlabrobotics_toolbox_demo

MATLAB ROBOTTOOL rtdemo演示 目录 一、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 by transl(0.5, 0.0, 0.0) ans = 1.0000 0 0 0.5000 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 % % a rotation of 90degrees about the Y axis by roty(pi/2) ans = 0.0000 0 1.0000 0 0 1.0000 0 0

相关文档
最新文档