APP下载

基于WebGL的双机器人运动仿真实验平台

2017-09-03翟敬梅郭培森

实验室研究与探索 2017年8期
关键词:鼠标障碍物编程

翟敬梅, 郭培森, 徐 晓

(华南理工大学 机械与汽车工程学院, 广州 510640)

基于WebGL的双机器人运动仿真实验平台

翟敬梅, 郭培森, 徐 晓

(华南理工大学 机械与汽车工程学院, 广州 510640)

结合当前工业机器人技术和发展,共享实验教育资源,开发了基于B/S模式的双机器人运动仿真实验平台。采用WebGL技术构建虚拟现实环境下机器人的三维模型,JavaScript语言实现机器人运动控制及事件响应等功能,HTML和CSS语言搭建了人机交互界面。仿真平台包含了运动仿真模块、障碍物生成模块、运动状态显示模块及运动控制模块。可采用快捷指令、编程和机器人插补点3种控制方式,实现单机器人运动规划、双机器人协作运动优化及机器人避障规划等多种仿真任务。平台发布于远程实验教学网站,解决了当前设备资源不足等问题,在教学应用中达到了预期效果,获得了学生的好评和认可。

工业机器人; 运动仿真; 实验平台

0 引 言

机器人是现代一种典型的光机电一体化产品,是机械学、计算机科学、电子学、自动控制、传感器和人工智能等多学科新兴技术的融合。目前我国已成为全球工业机器人最大市场,然而却面临着机器人领域巨大的人才缺口,其中一个主要原因是机器人的成本较高,在设备采购等方面不能满足教学需求[1]。另一方面,为避免工程作业中操作不当引发机器人损坏或人员安全事故,需要一个可调试控制程序并在虚拟现实环境下模拟机器人真实作业的仿真平台。为此,本文研发了一款基于WebGL的双机器人运动仿真实验平台,可以实现机器人运动控制、避碰轨迹优化和双机器人协同作业等各种仿真任务,满足不同的需求。

国内外在机器人仿真上已取得不少研究成果,其中有部分是借助商业软件进行仿真,如SolidWorks二次开发[2-3]、RobotStudio仿真[4]、VRML和LabVIEW[5]以及ADAMS和Matlab[6-7]联合仿真等。这些仿真平台功能丰富、用户界面友好,然而其运行依赖相应的软件,可移植性不高,而且购买软件也提高了成本。

OpenGL作为一个跨平台的图形接口,渲染三维图形无需借助第三方软件或插件。因此,基于OpenGL开发的仿真平台[8]较好地解决了上述问题。然而,OpenGL无法在网页上运行,不利于资源的广泛共享。

WebGL允许使用JavaScript语言在网页创建各种三维图形,其内嵌于浏览器中[9],无需安装其他软件或插件,有效解决了网络的共享。目前基于WebGL的机器人仿真平台研究较少,现有文献[10-12]大多运用WebGL技术在网页中加载了机器人的三维模型,实现了单机器人Jog运动、直线插补等简单运动仿真。

本文开发了一款基于B/S模式的双机器人运动仿真实验平台。其中,服务器端存放机器人的STL模型文件和工作场景的贴图文件,浏览器端的网页使用WebGL进行实验环境和机器人三维模型的绘制和渲染,模拟真实的机器人作业环境;JavaScript语言实现机器人运动控制、障碍物生成及浏览器事件响应等功能,实现机器人运动控制仿真;HTML和CSS语言开发人机交互界面,集成各功能模块,实现双机器人运动仿真网络实验平台。

1 仿真平台功能设计

SCARA机器人和6自由度机器人是工业上应用广泛的机器人类型。平台选取4自由度固高SCARA机器人和6自由度的ABB IRB120机器人作为仿真对象。针对机器人运动控制和轨迹规划这些核心技术,设计平台主要功能如下:① 单机器人(SCARA或ABB)运动控制及轨迹规划;② 机器人避碰路径规划及优化;③ 双机器人协同作业运动控制。

基于上述的功能要求,仿真平台设计了如图1所示的四大模块——运动仿真模块、障碍物生成模块、运动状态显示模块及运动控制模块。运动仿真模块实时显示机器人的运动过程;障碍物生成模块可在作业环境中添加静态或运动障碍物;运动状态显示模块可实时更新机器人各关节及末端的运动状态参数;运动控制模块包含了快捷指令控制和编程控制两种方式。

图1 双机器人运动仿真平台功能模块关系图

2 机器人运动仿真

2.1 机器人运动学模型

图2 ABB IRB120机器人D-H坐标系

(1)

其中,αi-1表示连杆转角,ai-1表示连杆长度,θi表示关节角,di表示连杆偏距。

2.2 机器人运动状态显示

(2)

2.3 机器人运动控制

为了适应不同的需求,平台为运动控制模块开发了快捷指令控制和编程控制两种方式。快捷指令控制是通过输入运动参数,并点击按钮发送运动指令进行。这种控制方式每次调用一个运动函数,可以完成机器人Jog运动、两点间的直线插补或圆弧插补等简单的运动。

建立机器人运动模型、轨迹优化和避碰路径优化等算法,通过编程可实现机器人各种简单或复杂的运动控制。编程控制提供了输入运动指令和输入插补点两种控制方式。运动指令控制模拟了离线编程,需按照格式输入一系列的运动控制函数,使机器人或障碍物连续完成多个点间的插补运动。

考虑到平台所使用运动控制函数的局限性,设计了更加灵活的插补点控制方式,用户可根据运动规划算法,使用自己熟悉的编程语言生成机器人一系列插补点对应的关节变量(障碍物插补点则对应其位姿),并输入平台对应的运动控制文本框,实现预期的运动仿真。编程控制的流程如图3所示。

图3 编程控制流程图

3 WebGL仿真界面开发

由于WebGL的原生API开发效率低,故使用WebGL的第三方库Three.js框架进行开发,提高开发效率[13]。要将物体渲染到网页中,Three.js程序至少要包括场景(Scene)、摄像机(Camera)和渲染器(Renderer)[14]。构建WebGL场景的流程如图4所示。

图4 WebGL场景构建流程图

3.1 机器人及实验场景建模

对于工作台、坐标系等场景模型,由于形状较规则,可直接调用Three.js自带的函数绘制。

由于机器人的零部件形状复杂,直接调用Three.js的函数进行绘制将使过程变得繁琐。因此,首先使用SolidWorks软件建立机器人各零部件模型并另存为STL文件,然后使用Three.js框架中STLLoader.js库的load函数加载到WebGL场景中,最后根据机器人的连杆参数设置各模型对象的rotation和position属性值,将各零部件装配成机器人。

3.2 障碍物建模

为了实现仿真平台的避碰仿真功能,开发了障碍物仿真模块。该模块支持添加圆柱(正n棱柱)、圆锥(正n棱锥)及球体这3种形状的障碍物,同时允许设置不同的颜色、几何尺寸及初始位姿参数,最后调用Three.js的函数绘制障碍物并添加到场景中。

3.3 鼠标交互设计

为了能从多角度、多尺度观察仿真场景以及便捷地操作障碍物,在WebGL窗口开发了鼠标交互的功能。

(1) 场景的变换。场景的变换包括旋转场景和缩放场景,分别由鼠标光标的移动和滚轮控制。在WebGL窗口所在的HTML元素添加鼠标移动事件onMouseMove、鼠标滚轮事件onmousewheel(适用于IE等浏览器)及DOMMouseScroll(适用于Firefox浏览器),分别记录光标位移量和滚轮变化量,然后乘上适当的比例系数转换为旋转角度和缩放的倍数,传入模型对象的rotation和scale属性,实现场景的变换。

(2) 障碍物的拾取。当场景中存在不止一个障碍物时,如果根据障碍物的ID或者索引选择操作障碍物,会使过程变得复杂。这里使用基于鼠标拾取操作障碍物的方法,用户可通过鼠标点击目标障碍物,进行删除或者运动控制操作,使该过程更为方便快捷。

Three.js将对象拾取的代码进行封装,只需使用THREE.Projector类和THREE.Raycaster类,便可返回鼠标点击对象的信息。障碍物的拾取操作如图5所示(以删除障碍物为例)。若点选运动控制,则会将编程控制的选项卡切换到当前选择的障碍物,以便控制该障碍物运动。

图5 障碍物的拾取操作图

4 仿真平台的应用

为了将上述各模块集成到网页中,在HTML文件中使用语句“”引用各模块对应的JavaScript程序文件。另外,在HTML文件上添加按钮、文本框等控件,并使用CSS语言对控件样式进行修饰。图6显示了仿真平台主界面及其相应的功能。图7显示了双机器人避碰仿真的部分作业过程,机器人末端和障碍物运动轨迹如图8所示。

图6 仿真平台主界面

(a) t=0 s

(b) t=5 s

(c) t=10 s

(d) t=20 s

(e) t=25 s

(f) t=30 s

(g) t=35 s

(h) t=46 s

图7 双机器人避碰仿真过程

ABB机器人和SCARA机器人设置在一个有重叠的工作空间,有一个静止障碍物(半径40 mm,高180 mm的绿色圆柱体)和一个移动障碍物(半径70 mm,高200 mm的红色圆柱体)。世界坐标系O-XY设定于SCARA的基坐标上,ABB机器人末端以10 mm/s的速度从点A(480,240)向点B(380,-240)运动,SCARA机器人末端以20 mm/s的速度从点C(100,400)向点D(400,0)运动,静止障碍物位于点E(200,180),移动障碍物以20 mm/s的速度从点F(400,350)沿着Y轴负方向开始运动。

使用插补点控制方式进行机器人运动仿真。红色曲线表示SCARA机器人末端轨迹,蓝色曲线表示ABB机器人末端轨迹。图7(a)、(b)表示在没有遇到障碍物时,两机器人向各自的目标点运动;图7(c)、(d)表示SCARA机器人正避开静止障碍物,ABB机器人正避开移动障碍物;图7(e)~(g)表示两机器人在相互避障;图7(h)表示两机器人都成功地运动到各自的目标点。

图8 机器人末端和障碍物运动轨迹图

该仿真实验环境及避碰轨迹规划算法均与文献[15]的双机器人避碰实验相同,仿真实验结果也与其实验结果一致,验证了双机器人运动仿真实验平台的可靠性。

5 结 语

为实现共享机器人教育资源的需求,利用WebGL和JavaScript语言开发了运动仿真模块、障碍物生成模块、运动状态显示模块及运动控制模块四大模块,并集成到利用HTML和CSS语言开发的用户界面,建立了基于B/S模式的双机器人运动仿真实验平台,可完成单机器人运动规划、双机器人协作运动及机器人避障轨迹规划等仿真任务。该仿真平台在华南理工大学机械基础远程实验教学平台发布,实现教学资源的全社会共享,有效解决当前设备资源不足问题,把实验的“时间、空间、深度、广度”最大限度延伸,在教学应用中达到预期效果,获得了学生的好评。

[1] 杨 薇, 叶 晖, 胡 威. 仿真教学应用在工业机器人技术课程教学中的必要性[J]. 科技视界, 2014(32):18-36.

[2] 黄晓辰, 张明路, 李满宏, 等. 基于SolidWorks二次开发的三维实时运动仿真方法[J]. 机械设计, 2014(12):12-15.

[3] Baizid K, Meddahi A, Yousnadj A,etal. Industrial robotics platform for simulation design[J]. Planning and Optimization based on Off-line CAD Programming. 2016, 68:03002.

[4] Xiao X, Li Y, Tang H. Kinematics and interactive simulation system modeling for robot manipulators[C]// IEEE International Conference on Information and Automation. IEEE, 2013:1177-1182.

[5] Yu D, Ding K. Dynamic Simulation and Analyzation of Arc Welding Robot[C]// International Workshop on Intelligent Systems and Applications. IEEE, 2011:1-4.

[6] Wen G, Xu L, He F. Offline Kinematics Simulation of 6-DOF Welding Robot[M]. IEEE Computer Society, 2009.

[7] Wang Y S, Gai Y X, Wu F Y. A robot kinematics simulation system based on OpenGL.[C]// IEEE, International Conference on Robotics, Automation and Mechatronics, Ram 2011. Qingdao, China, September DBLP, 2011:158-161.

[8] Matsuda K. WebGL Programming Guide[M]. 2013.

[9] Demin A, Dai Y X, Xin L I,etal. 3D VR kinematic robot simulation based on HTML5 and WebGL[J]. Journal of Northeastern University, 2014,35(4):564-568.

[10] 周思远. 机器人学虚拟实验系统的设计与实现[D]. 北京: 北京邮电大学, 2014.

[11] Li L, Zhang K, Yang X. A Cloud-based framework for robot simulation using WebGL[C]// Sixth International Conference on Intelligent Systems Design and Engineering Applications. IEEE Computer Society, 2015:5-8.

[12] Parisi T. WebGL: Up and Running[M]. O’Reilly Media, Inc., 2012.

[13] 顿儒源. 基于WebGL的织物三维展示系统[D]. 杭州: 浙江大学, 2016.

[14] 李连中. 融合M2M的多机器人智能协作方法研究[D]. 广州: 华南理工大学, 2016.

[15] 翟敬梅, 徐 晓, 黄 平, 等. 机械基础远程实验教学平台的设计与建设[J]. 实验技术与管理, 2012(4):84-89.

Motion Simulation Experimental Platform of Dual Robots Based on WebGL

ZHAI Jingmei, GUO Peisen, XU Xiao

(School of Mechanical and Automotive Engineering, South China University of Technology, Guangzhou 510640, China)

Combined with present technology and development of industrial robot, the motion simulation experimental platform of dual robots based on B/S pattern is developed to share resources of experimental education. WebGL technology is used to build a 3D model of robots in virtual reality environment. JavaScript language is used to realize robot motion control, event response and so on. HTML and CSS languages are used to build man-machine interface. The platform includes motion simulation module, obstacles generation module, display module and motion control module. There are three ways of shortcuts, programming or interpolation points to control robot motion and realize many kinds of simulation tasks, such as motion planning of single robot, coordinated motion optimization of dual robot and obstacle avoidance planning of robot. The platform solves the current problems such as insufficient equipment resources, achieves the desired results in teaching application and gets good comment and recognition from students after it is published on the remote experimental platform.

industrial robot; motion simulation; experimental platform

2016-12-10

2014年度广东教育教学成果奖培育项目(Y1162460),2015年华南理工大学“探索性实验”教学项目(Y1150300),2016年广东省教研教改项目,2017年教育部本科深改工程项目(Y9170290)

翟敬梅(1967-),女,辽宁海城人,博士,教授,主要研究方向:机械设计理论教学和实验教学、机器人技术与人工智能。

Tel.:15360541562 ; E-mail:mejmzhai@scut.edu.cn

G 642.423

A

1006-7167(2017)08-0112-05

猜你喜欢

鼠标障碍物编程
编程,是一种态度
元征X-431实测:奔驰发动机编程
Progress in Neural NLP: Modeling, Learning, and Reasoning
编程小能手
高低翻越
纺织机上诞生的编程
SelTrac®CBTC系统中非通信障碍物的设计和处理
土钉墙在近障碍物的地下车行通道工程中的应用
45岁的鼠标
超能力鼠标