• 21
•
ELECTRONICS WORLD ・探索与观察
机器人仿真技术是机器人研究中不可或缺的一个重要组成部分。基于three.js 、node.js 等技术,本文介绍了实现了一个B/S 架构的机器人仿真平台的方法,并分析研究了其关键技术,取得了良好的效果。
机器人仿真技术是机器人研究领域中的一个重要部分。国内外进行了大量的研究。如清华大学的THROBSM 机器人仿真系统、美国的UOBSM 系统、ADAM 系统,Matlab 的系统动态仿真工具箱Simulink 等。但总的说来目前国外的仿真软件占主流地位,引领着仿真软件的仿真方向。而我国仿真技术研究起步较晚,还处于初级的发展阶段。另外也有一些开源的机器人仿真软件,如V-REP ,ROS 等。但这些系统要不就是商业软件,成本高昂;要不就是安装、使用复杂,而且一般都限定于某一特定平台,如只能在windows 操作系统或Linux 操作系统下运行。
本文介绍了利用B/S 架构,采用three.js 、node.js 等技术,实现的一种机器人仿真平台的开发方法及关键技术,实现了机器人仿真平台的跨平台,系统易于使用和部署,且实现了系统的自主和可控。
1 系统架构
本系统采用B/S 架构,以通用的网络浏览器为客户端,通过web 服务器等对机器人进行仿真。系统架构如图1
所示:
图1系统架构
系统采用B/S 架构实现,将系统功能的实现进行合理的划分,简化了系统开发、维护和使用的成本。客户机上只要安装有浏览器,系统即可运行,而这个客户机可以是PC 机,也可以是智能手机,使用简单、维护方便,大大降低了用户的成本;同时客户机上
nodejs工作流引擎开源操作系统可以是windows 系统,也可以是linux(包括Android)都可以使用,真正实现了跨平台。
为实现机器人开发三维虚拟场景显示,本系统采用了threejs 开源架构,服务器端采用nodejs 技术搭建。threejs 和nodejs 都采用javascript 语言开发,这样系统的前后端开发得到了统一,也减低了开发难度。
2 关键技术
本文采用的关键技术包括新一代web 标准HTML5,开源的浏览器端3D 引擎three.js,以及基于Chrome V8引擎的JavaScript 运行环境nodejs 。其中HTML 具体可以分为HTML 、CSS 和javaScript 技术,致力于打造一个个系统平台无法连接、根据交互功能的开放式环境,创建一种更加丰富、轻便、独立的免插件、跨平台产品。前后端的开发都统一采用JavaScript 语言。2.1 threejs
机器人模型的展示是机器人仿真系统中非常重要的功能。本系统采用threejs 开源架构展示三维虚拟场景。Three.js 是基于原生
WebGL 封装运行的三维引擎,在所有WebGL 引擎中,Three.js 是国内文资料最多、使用最广泛的三维引擎。
Three.js 支持多种渲染器( renderer) 进行场景绘制,提供了点、线、面、向量、矩阵等三维创建时所需的基本要素,并可以简单快速地将建镜头( Cameras) 、物体( objects) 、光 线 ( lights) 等 对 象 添 加 到 场 景 ( Scene ) 中。2.2 nodejs
Node.js ,或者 Node ,是一个可以让JavaScript 运行在服务器端的平台。Node.js 内建了HTTP 服务器支持,也就是说你可以轻而易举地实现一个网站和服务器组合。
3 工作流程
根据前文所述,系统主要可以分为客户端(浏览器端)和服务器端两部分。客户端主要进行机器人模型的展示、仿真等工作;服务器端主要是进行数据存储、接收客户端的请求等等工作,任务相对简单。
系统的任务,尤其是仿真工作主要在客户端运行的,这样服务器端的工作压力相对较小,也有利于系
统的整体性能的提升。因此
本系统设计的重点在前端,主要涉及的工作有建立场景的建立、模型的导入、渲染及控制等工作。其中渲染的工作主要由three.js 来实现的,而因为一般的技术人员的关注点主要是研究机器人的控制算法等,本系统引入web worker 线程,将模型的展示与机器人的控制分开。流程图如图2所示。
基于three.js的机器人仿真平台的研究
南京信息职业技术学院 吴学功 袁迎春 刘 馨 周长志鹏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论