基于Java3D的重载机器人运动学建模
《工业控制计算机》2017年第30卷第2期
77
基于Java3D的重载机器人运动学建模与仿真软件开发*
HeavyPayloadRobotKinematicsModelingandSimulationSoftwareBasedonJava3D
卢张俊
马旭东
钱
堃(东南大学,江苏南京210096)
摘要:建模与仿真是重载机器人自主研发
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
、优化和快速系统开发的重要基础和手段。从系统开发需求出发,针对国产150kg重载机器人特点,论述了基于Java3D平台手段的机器人运动学建模与仿真软件的开发方法。采用D-H参数法建立重载机器人运动学模型,通过引入关节属性来唯一确定逆解,避免了在逆解计算中复杂的多解择优过程,从而提高了机器人逆解算法效率。利用Java3D提供的三维模型载入接口和JavaSwing轻量级组件进行仿真软件的开发。详细论述了系统建模算法原理和3D仿真过程模型导入、显示和人机交互的实现,并给出了基于仿真软件的运动学算法验证
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
。
关键词:重载机器人,运动学方程,Java3D
Abstract:ThispaperaddressestheissueofrobotkinematicsmodelingandsimulationsoftwaredevelopmentbasedonJava3Dplatform,accordingtothecharacteristicsofa150kgheavypayloadrobot.TherobotkinematicsisestablishedusingD-Htransformationmatrix.Byintroducingjointpropertiesintherobotinversesolution,theuniquesolutioninrobotinversekinematicsisdetermined.Inthispaper,theprincipleofsystemmodelingalgorithmand3Dsimulationprocessmodelintro-duction,displayandhuman-computerinteractionarediscussed.
Keywords:heavyloadrobot,kinematicsequation,Java3D
重载机器人是工业应用中腕部有效载荷在100kg以上,机器人负载自重比在1:8到1:2之间的机器人。国外的重载机器人研究起步较早,技术较为成熟,典型的是德国KUKA公司和美国ABB公司的1300kg负荷能力的重载机器人,已经广泛用于装配、搬运、焊接等工业领域[1],我国的重载机器人研究自上世纪80年末开始,起步较晚,技术积累不够。相对于小负载机器人,重载机器人的大负载、高自重的特点在机器人的本体结构设计和动态性能等方面具有更高的要求,故重载机器人建模仿真具有重要意义[2]。
通过对重载机器人建模仿真,可以为重载机器人的机构设计提供一定的理论依据。在其人运动学求解中,如何避免逆解的重解是必须解决的重要问题。对于六关节串联机器人,当满足P
ieper准则时,逆解多达8组解,须根据不同实际
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
应用场合,
选择不同的择优方式,例如最短行程法、最小功率法等等[3-4]。本文通过引入机器人关节属性,实现在机器人逆解算法中确定唯一解。重载机器人的仿真软件也对通用性、开放性提出了更高的要求。Java3D可以充分利用Java语言的强大功能,实现复杂的交互功能,并且Java3D提供了碰撞检测功能,为机器人工作空间设计提供一定的依据。以某150kg重载机器人为对象,形成了基于Java3D实现系统快速建模与仿真过程与方法。
图2
150kg重载机器人及连杆机构图
坐标系i与坐标系i-1原点共线;
2)绕Zi-1轴旋转θi角度,使得Zi-1轴与Zi轴重合;
3)沿Xi轴移动ai距离,使得坐标系i与坐标系i-1原点重合;4)绕Xi轴旋转αi角度,使得Xi-1轴与Xi轴重合。
用齐次变换矩阵
i-1i
1机器人运动分析与建模本文以150kg重载机器人为
T来
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示连杆i-1与连杆i之间的坐标
6
系相对关系。由连杆与连杆之间的相对关系则可求出机器人基坐标系相对于机器人末端的齐次变换矩阵0T,即机器人正运动学解公式。
nx00ny0123450
T6=T1T2T3T4T5T6=0
nz000
图1
对象,三维模型如图1所示,采用
D-H参数法对六关节机器人进行
运动学建模,首先建立150kg机器人连杆机构图,如图2所示。
利用D-H参数法建立相邻两
连杆之间的相对位置关系:
oxaxpx0oyaypy0ozazpz000
10
1)沿Zi-1轴移动di距离,使得
150kg机器人三维模型
*江苏省科技成果转化专项资金项目(BA2014044、BA2015004)
78
矩阵两边对应元素相等。当六关节机器人满足Pieper准则,即①三个相邻的轴相交与一点;②三个相邻的轴平行,则机器人的逆运动学解存在封闭解,求逆过程如下:
基于Java3D的重载机器人运动学建模与仿真软件开发
异位置将机器人分为8种关节状态[5]。
图4(2)中所示位置,当机器人手腕中心位于关节1的转动轴线上时,无论1关节旋转多少角度,手腕中心的位置保持不变,因此机器人丢失一个自由度,这个位置定义为位置奇异点,则根据这个位置奇异点来划分机器人的前后属性;图4(5)所示位置,当机器人大臂(连杆
1)求解θ1(由于4、5、6坐标系均建立在同一点,所以按一下方法计算θ1)。
θ1=arctan2(py,px)-arctan2(0,±姨px+py)2)求解θ3。
2)与小臂(连杆3)在同一
条直线上时,手腕中心只能沿着切向运动,丢失径向自由度,这个位置定义为速度奇异点,则根据这个位置奇异点来划分机器人的上下属性;图4(8)中所示位置,当关节4与关节6的转动轴线重合时,它们的运动相互抵消,机器人因此也会丢失一个自由度,这个位置定义为姿态奇异点,则根据这个位置奇异点来划分机器人的俯仰属性。这三个关节的关节属性可以组合为前上俯、前下仰、前下俯、前上仰、后上俯、后下仰、后下图4
机器人三种奇异位置及八种状态
姨
c1px+s1py-a2=a4c23-d4s23+a3c2d1-pz=a4s23+d4c23+a3s2
θ3=arctan2(a4,d4)-arctan2(k,±姨a4+d4-k)
3)求解θ2。
θ1+θ2=arctan2(s23,c23),由第一步求出的θ1则可得θ2:
θ2=arctan2(s23,c23)-θ1
4)求解θ4。由T3T6=T4T5T6的(1,3)和(3,3)元素分别相
对,得:
0-1345
姨
180°。
-c4s5=c1c23ax+s1c23ay-s23azs4s5=-s1ax+c1ay
当S5≠0时,
θ4=arctan2(-s1ax+c1ay,-c1c23ax-s1c23ay+s23az)
根据机器人手腕部位的反转,可以得到另外一个解θ4=θ4+
5)求解θ5。矩阵两边同乘T4,T4T6=T5T6,矩阵方程两
边(1,3)和(3,3)元素分别相等,可得:
0-10-145
俯、后上仰,恰好与逆解中的八组解一一对应[6]。
为机器人关节添加关节属性有如下特点:①若没有关节处于关节零界点,则关节属性将逆解组合平分,即两个状态中有相同数目的逆解组合;②两个不同机器人位姿下的逆解计算,处于关节属性相同状态下的机器人关节移动量最少。根据以上两个特点,可以得出结论:若指定机器人的关节属性,在机器人逆解计算中能够唯一确定一组解。
对于150kg重载机器人,当a4c23-d4s23+a3c2-a2=0时,机器人位于位置奇异点;当tanθ3=d4/a4时,机器人位于速度奇异点;当θ5=0时,机器人处于姿态奇异点。定义如下关节属性:
1a4c23-d4s23+a3c2-a2≥0f=
0a4c23-d4s23+a3c2-a2<0
u=y=
姨
s5=-ax(c1c23c4+s1s4)-ay(s1c23c4-c1s4)+azs23c4c5=-axc1s23-ays1s23-azc23
则:θ5=arctan2(s3,c5)
根据机器人手腕部位的反转,可以得到另外一个解θ5=-θ5。
6)求解θ6。由T4T6=T5T6的(2,1)和(2,2)元素分别相
对,得:
0-145
姨
s6=-nx(c1c23s4-s1c4)-ny(s1c23s4+c1c4)+nzs23s4c6=-ox(c1c23s4-s1c4)-oy(s1c23s4+c1c4)+ozs23s4
则:θ6=arctan2(s6,c6)
根据机器人手腕部位的反转,可以得到另外一个解θ6=θ6+
180°。由于θ1有两组解,所以θ3有四组解,同样θ2也有四组解,
依次类推,对于六关节机器人,逆运动学求解可以得到八组解。在运动学逆解中需要在八组解中选择一组最合适的解,八组解分别代表了机器人的八种关节状态,图3为逆解的八组解的形式,因此,这里引入机器人的关节属性来区分机器人不同的关节状态。对于六关节串联型机器人,有三种奇异位置,如图4,若以每个奇异位置为零界点,则可以把机器人分为两种状态,三种奇
姨姨姨
(1)
1tanθ3≥d4/a40tanθ3<d4/a4
(2)
1-2π<θ5<000≤θ5<2π
(3)
f、u、y分别代表三种关节属性,等于1时表示为前、上、俯属性,等于0时表示后、下、仰属性。2仿真系统界面环境搭建
仿真系统的整体框架采用经典的MVC(Model-View-Con-troller)设计模式,针对重载机器人的三维仿真的特殊要求,将仿真系统划分为三个子系统,整体框架如图5所示:
1)模型子系统:主要实现仿真系统数据的建立,包括机器人
的三维模型建立,周围工作环境建立以及机器人运动建模分析;
2)视图子系统:实现仿真系统的GUI界面,包括Java3D场
景创建,机器人三维模型显示,多视角浏览。视图子系统将机器人的运动情况以及机器人的位姿参数显示给用户,在本文中,视图子系统还提供给用户机器人正逆运动学建模结果测试的功能;
3)控制子系统:实现各种方式来控制机器人和场景图,
即界
图3
8组解
《工业控制计算机》2017年第30卷第2期面组件控制机器人运动和鼠标控制场景变换。
79
象的setRotation方法即可驱动每个关节的运动,图6分别为
setRotation方法设置不同关节角的两个机器人位姿。2.2人机交互实现
人机交互包括鼠标控制场景和界面组件控制机器人运动。鼠标控制场景包括旋转视图、移动视图以及放大缩小视图,通过实现Java3D提供的鼠标事件接口即可实现鼠标控制场景的功能;界面组件控制机器人运动包括正逆解对应的机器人位姿,以及在关节坐标系或笛卡尔坐标系下的机器人运动,通过使用轻量级组件Javaswing完成界面组件的开发,软件界面效果如图7所示:
图5三维仿真软件整体
架构
酒店人事架构图下载公司架构图下载企业应用架构模式pdf监理组织架构图免费下载银行管理与it架构pdf
图
2.1三维模型显示窗口
Java程序调用Java3D提供的应用程序接口Canvas3D
创建一个三维场景,该三维场景中可以对场景的观察角度,光照以及背景色进行设置。调用接口VrmlLoder()就可将.wrl格式的机器人模型导入到Java3D绘制的场景中,部分导入程序如下:VrmlLoaderloader=newVrmlLoader();Scenescene=null;
try邀scene=loader.load(″D:\\robot.wrl″);妖catch(FileNotFoundExceptione)邀
e.printStackTrace();
妖
catch(IncorrectFormatExceptione)邀
System.exit(1);
妖
robot.addChild(scene.getSceneGroup());
Hashtablerobot=scene.getNamedObjects();
vrml_tg_j0=(TransformGroup)robot.get(″LINK0″);vrml_tg_j1=(TransformGroup)robot.get(″LINK1″);vrml_tg_j2=(TransformGroup)robot.get(″LINK2″);vrml_tg_j3=(TransformGroup)robot.get(″LINK3″);vrml_tg_j4=(TransformGroup)robot.get(″LINK4″);vrml_tg_j5=(TransformGroup)robot.get(″LINK5″);vrml_tg_j6=(TransformGroup)robot.get(″LINK6″);
在SolidWorks中导出VRML机器人模型是对机器人整体进行建模得到的模型,在Java3D导入到场景时不能获取每个关节的节点,并且机器人关节正确的运动是绕关节轴线转动,因此解决了以下两个问题:
图7仿真软件界面
3实验测试
通过给定一系列的机器人各个关节的旋转量,由正解运动
算法可计算出机器人末端位姿以及机器人在仿真软件显示对应的姿态和各关节属性的值,如表1所示;再将正解运动算法的结果代入逆解算法中,根据正解得到的末端姿态与关节属性的值来进行逆解计算,如表2所示。
表1给定角度值,机器人正解
表2给定末端位置及关节属性,机器人逆解
1)对机器人各个关节进行建模,根据D-H法建立的坐标系为每个关节建立坐标系,坐标系的Z轴方向是沿关节轴线方向;
2)在创建机器人三维模型时,为每个关节单独创建模型并到处为Vrml97格式的形体文件,利用Java3D可以识别VRML语言中“DEF”关键字定义的节点的特点,新建VRML文件用于组装整个机器人,并为每个关节添加“DEF”关键字节点。在导入模型时,Java3D识别每个“DEF”节点并为每个节点定义TransformGroup和Transform3D对象,调用Transform3D对
由表1和表2数据可以看出,正解与逆解最大误差为0.0083,说明本文的逆解正逆解算法的精度很高,符合实际工程需求。
参考文献
[1]徐方.工业机器人产业现状与发展[J].机器人技术与应用,2008(5):
2-4
[2]张小光.重载焊接机器人系统建模与仿真研究[D].沈阳:沈阳大学机
械工程学院,2015
[3]蔡自兴.机器人学[M].北京:清华大学出版社,2000
[4]宋伟刚.机器人学:运动学、动力学与控制[M].北京:高等教育出版
社,2007
[5]杨达毅.6R型工业机器人的运动学研究[D].长春:吉林大学机械科
学与工程学院,2005
[6]叶伯生.计及关节属性的6轴工业机器人反解算法[J].华中科技大
图6
不同关节角的机器人模型
学学报,2013,41(68-72)
[收稿日期:2016.10.25]