基于万维网使用vrml机器人仿真系统

上传人:小** 文档编号:89507145 上传时间:2019-05-26 格式:DOC 页数:6 大小:196KB
返回 下载 相关 举报
基于万维网使用vrml机器人仿真系统_第1页
第1页 / 共6页
基于万维网使用vrml机器人仿真系统_第2页
第2页 / 共6页
基于万维网使用vrml机器人仿真系统_第3页
第3页 / 共6页
基于万维网使用vrml机器人仿真系统_第4页
第4页 / 共6页
基于万维网使用vrml机器人仿真系统_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于万维网使用vrml机器人仿真系统》由会员分享,可在线阅读,更多相关《基于万维网使用vrml机器人仿真系统(6页珍藏版)》请在金锄头文库上搜索。

1、科研导航http:/基于万维网使用VRML的机器人仿真系统摘要虚拟现实建模语言(简称VRML)使交互的三维图形融入到万维网中(WWW)。在德国航空中心,从一开始,我们就已经在机器人应用领域中使用了这种新的建模语言。这一展示项目便是在基于万维网的仿真系统中成功使用VRML的例子。无须专业且昂贵的计算机硬件或软件,只要在常用的万维网浏览器中通过VRML浏览器就都可以运行这种程序,这就使VRML的应用从基本的硬件平台中独立出来。建立一个有效并且方便的标准特定设备接口的技术引起了网络界的特别关注。因为三维图形用户界面(3D GUI)提供的功能,因其明显的标识的使用代替了文字语言而使之在使用中更方便且易

2、于网络化。仿真系统结合Java和外部编程接口(EAI),还可用于显示和远程操纵真实机器人,这样便是这项技术发展的最初目的。1 简介当我们提到仿真系统软件时,人们通常认为是在工作台上用于运行单机的庞大且独立的程序包。然而,当更加灵活的VRML2.0取代VRML1.0之后,便首次提供了构建能在网络环境中运行、文件小且完整的三维场景的虚拟技术。基于此,我们开始展开讨论评估完全基于网络的仿真系统和工业机器人的远程操纵环境的可能性。 这一仿真系统利用VRML所有强大的功能。这就是一个完全在网络浏览器后台运行的独立的软件平台。因此,要求文件大小足够小来满足每次浏览它时在网络服务器下载的需要。此外,除了VR

3、ML插件外无须安装其他程序。由于仿真系统完整的用户接口也是集成于可视区域,所以必须利用额外的自由度和比现有接口更加直观。由于一个机器人应用程序的严格限制,所以在VRML世界里面,唯一可能实现的用户接口只有鼠标的使用。因为不能使用6个自用度的输入设备,所以只有建立用二维坐标设备输入的平移量和旋转量的方法来实现。 对于工业机器人的远程操纵,必须在控制工作站和操纵者之间建立联系。在一个VRML场景中传输数值的最通畅的途径是通过一个Java小程序(Java Applet)来实现。因此,我们可以用外部编程接口(EAI),它能够在特定事件发生的时候向一个applet发出指示,并能产生相应的响应事件 ,同时

4、发送到现实世界中。2 执行在这一章节中,我们会介绍执行的具体细节。首先,我们会对要仿真的机器人进行理想的描述,使之足够理想化地运用于不同的类型的工业机器人。在这样描述的基础上,我们就可以操作一个VRML的机器人对象了,它包括了全部仿真的功能。最后,我们就可以连接进入这个仿真系统,并建立可以远程操纵的用户接口。2.1 机器人对象的定义为了定义一个理想化的对象,我们需要确定对象的输入和输出的参数,还有它的属性,用于描述这个对象的实例。为了达到这个目的,我们这里先来了解一下机器人的相关理论。 一个工业机器人是在一定的工作范围内搬放物体的工具。这个末端执行件是安装在机器人可自由运动的手臂末端。还有我们

5、总是以工件坐标系的原点作为参考来读取工件或机器人的位置。一个机械手包括一个直线平移或与手臂部分连接的旋转关节。这些不同的关节得使向不同方向运动的多个自由度在三维的工作空间内达到任意位置点。 在空间中,需要三个自由度实现任何的平面移动,而旋转也需要三个自由度,因此,要在三维洞见中自由的平移,机器人至少需要六个关节。因为平移关节不能改变方向,所以至少有三个关节必须使旋转关节。在这个项目里面,我们只研究六旋转自由度的机器人,也称作6-R机器人。其他类型的机器人也是类似的。机器人可以由D-H参数描述。这一套参数描述了各关节的关系,还有这是建立所有机器人运动学方程的基础。每个关节需要由4个参数值:a、d

6、、和。此外我们要限定关节旋转的最小值和最大值:min和max。为了更详细地介绍机器人学,我们建议阅读相关的文献资料。这些参数不会随着不同的机器人对象而改变,我们可以在VRML中定义一个六个单精型的域对应每个参数。 这个机器人对象可以由一系列事件控制。使机械手平移到新的位置由两种不同的方法可以实现。一种使直接设置关节的量,这可以改变机械手各关节的位置和姿态;另一种可能是我们给出一个目标位置或姿态,并计算出对象和设置相应的关节量。一组六维的向量代表这个关节的状态;还有我们用VRML的数据类型3FVecf和SFRotation分别表示位置和转动量来代替34的矩阵。当eventIn连接到数据后,改变量

7、将会再次有eventOut发送出去。因此,这个对象的动作有:1.接受事件(IN)set_position 发出(OUT)joint_changed 2.接受事件(IN)set_rotation 发出(OUT)joint_changed3.接受事件(IN)set_joint 发出(OUT)position_changed 发出(OUT)rotation_changed在VRML语法中机器人Prototype用户原型能像下面的定义方法。另外,机械手包括一个资源定址(URL)链接其每一杆件的VRML文件。PROTO Robot eventIn SFVec3f set_position eventIn

8、 SFRotation set_rotation eventIn MFFloat set_joint eventOut SFVec3f position_changed eventOut SFRotation rotation_changed eventOut MFFloat joint_changed field MFFloat a 0,0,0,0,0,0 field MFFloat d 0,0,0,0,0,0 field MFFloat alpha 0,0,0,0,0,0 field MFFloat theta 0,0,0,0,0,0 field MFFloat min 0,0,0,0,0

9、,0 field MFFloat max 0,0,0,0,0,0 field MFString arm 2.2 操纵VRML机器人对象操作任务可以分解成三个独立的问题:在屏幕上显示机器人模型的可视化对象,能将位置和转角转换成关节量(包括逆运动和逆向量)的计算对象。最后使一个接口,它使用户可以利用一个默认的二维点击装置(如鼠标)区操纵这个6自由度的机器人。数据使如何在模型间进行传递的,如图1所示:用户接口用户接口逆运动平移转动关节量图1:部件间的数据传输执行这三个部件就是像三个不同的VRML对象。实际上,虽然一个完整的机器人人对象包括了三个以上的部件,当时这三个使最重要的并且可以由他们构建起功能

10、完整交互式机器人模型。现在,我们从最有趣的部件可视化部分,开始讲述这三个模型。2.2.1 可视化 这一节介绍如何在VRML中构件机器人的三维模型。机械手臂每个连杆部分在坐标系中的运动是决定于前一连杆部件的位置。这个关系链可以有一个节点树型来描述,在这个节点树型中每个杆件的节点都是前一杆件节点的子节点。建立起这个链的位姿是由D-H参考坐标系中获得的。D-H坐标系也必须建立在该可视化模型中。如图1所示,向VRML原型rob_geo输入一组六个关节量的MFFloat类型的数组(域)。当模型接受到这个eventIn输入事件后script node会响应这个事件并在各部分中分配这些量。此后就会产生SFR

11、otation类型的EventOut输出事件并向相应的关节发送。在图2中输入箭头就是这一过程。Jointi Transform Translation T(0,0,di) rotation R(z,i) CylinderSensor Transform Rotation R(z,min.max) Transform Translation T(ai,0,0) rotation R(x,i) inline Jointi+1 . rotation图2 在VRML中关节手臂的结构我们可以看到在数据传输模型中仍然有阻碍。通过改变任意部分手臂和转动相应的关节(这应该是用户接口的任务)来实现关节量的控制可

12、以更好地直接包括在这个可视化模型中,因为这里已经存在这个关系节点树型中。所产生的事件可以直接有路由发送到这个连杆模型,并可以发送到script节点中,重新在数组中写入相应的量。这个数组就是rob_geo原型的输出量。下面定义了这个原型PROTO rob_geo eventIn MFFloat set_joint eventOut MFFloat joint_changed field MFFloat a 0,0,0,0,0,0 field MFFloat d 0,0,0,0,0,0 field MFFloat alpha 0,0,0,0,0,0 field MFFloat theta 0,0,

13、0,0,0,0 field MFFloat min 0,0,0,0,0,0 field MFFloat max 0,0,0,0,0,0 2.2.2模型的每一次运动都会产生这个杆件所完成的大量运算数据。至于其作用的具体细节,请参见相关的文献。虽然每一动作看起来很简单,当数学建模却非常复杂。单关节的旋转和平移运动必须转换成各关节的量,而同时各关节的量又必须转换成各关节的旋转和平移。因此,这个在VRML中就包含两个script节点:一个是对正向运动和反向运动的。另一个节点是接受VRML模型发出的eventIn输入事件并响应相应 的路由器产生路由。所有这些算法都是基于D-H坐标系的。因此这个模型的Pr

14、ototype类型的节点:rob_kin需要用VRML去描述这个机器人对象的全部信息,同时就有近乎一致的定义。PROTO rob_kin eventIn SFVec3f set_position eventIn SFRotation set_rotation eventIn MFFloat set_joint eventOut SFVec3f position_changed eventOut SFRotation rotation_changed eventOut MFFloat joint_changed field MFFloat a 0,0,0,0,0,0 field MFFloat d 0,0,0,0,0,0 field MFFloat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号