版权信息
省级大型综合性科技类期刊
主管部门:自治区科技厅
主办单位:自治区科学技术信息研究院 
协办单位:自治区科学技术情报学会
编辑出版:科技期刊编译室
刊社地址:内蒙古呼和浩特新城西街149号本刊杂志社
邮政编码:100010
电      话:0471-2536371

E-mail  :

nmgkjzz@vip.163.com 

网站地址:www.nmgkjzz.com


往期杂志
当前位置: 首页>往期杂志>详细介绍

一种机器人仿真软件V-REP及其应用

时间:2016-10-27来源: 作者: 点击: 125次

宋泰

丹东市第二中学辽宁,118001

摘要

  机器人是一个强大的系统,集成了驱动、传感器、控制等,这使得其仿真变得复杂论文介绍了一种新兴的机器人仿真软件V-REP相较于现今的其他同类软件,具有通用性强、操作便捷、准确可靠等特点。其框架特点、控制方法进行了总结,在此基础上给出仿真实例,并对仿真结果进行分析。最后,总结了其优缺点,展望了其发展前景。

关键词:机器人系统,V-REP软件,仿真平台

V-REPa kind of robot simulation software and its application

Abstract

Since robot is a complex system that integrates actuators, sensors, and controllers, it is hard to simulate its actions.This paper introduces a new robot simulation framework which is more versatile and scalable compared with other similar software. Its framework features and control methodology are summarized, then a case study is provided and analyzed. Its advantages and disadvantages are summed up and development prospect is expected finally.

Keywordsrobot system, V-REP software, simulation platform

1 引言

机器人技术是当今世界公认的高新产业技术之一,国内外都非常重视机器人技术的发展[1]“中国制造2025”的提出,又将机器人推向了一个新高潮。机器人本身是一个较为复杂的系统,在研制、开发过程中,仿真是一种必不可少的手段。对于机器人仿真而言,不仅要求其具备可靠性、准确性,而且可以实现模块化(即易操作性)、可扩展。近些年,计算机处理能力的快速增长,动力学库、物理学库等的出现及更快的3D图像硬件,极大的改善了机器人领域的仿真技术[2]。目前,国外比较流行的机器人仿真平台有Open HRP[3]Gazebo[4]Webots[5]等,这些软件具有一定的模拟计算功能,但无法提供扩展性的编程平台,且其仿真模型、控制器及其他功能是相对独立的,需要分别进行操作,这使得仿真过程十分复杂,且难以保证仿真结果的准确性和鲁棒性。

V-REP[6]The Virtual Robot Experimentation Platform)作为一款近年开发的机器人仿真软件,在保持传统机器人仿真软件功能的基础上,增加了一些新的方法和功能,具有很好的通用性及可扩展性。论文尝试对这种新的机器人仿真软件进行介绍,并给出实例,指出目前存在的问题及其发展前景。具体来讲:首先对V-REP进行概述,介绍了其独特的控制结构、应用领域、丰富的编程语言和API接口等,举例并介绍了一个典型场景及其仿真元素。其次,介绍了V-REP框架结构的主要特点,包括仿真模型实体及计算模块,详述了其中各元素的特点及应用范围。再次,总结了V-REP的控制框架,及其所支持的六种编程语言。然后,在上述基础上给出了机器人仿真实例,并对仿真结果进行分析。最后,总结了V-REP的优缺点,展望了其应用前景。   

2  V-REP概述

在现今的机器人及自动化模拟软件平台中,V-REP可以说是最具活力、最有发展前景的,被称为机器人仿真领域“瑞士军刀”[7]。V-REP基于分布式的控制结构,集成开发环境,每个仿真对象(模型)可以通过嵌入式脚本、插件、ROS节点、远程API客户端、用户定制解决方案等实现单独控制,这极大程度上扩展了V-REP的功能,使其成为多机器人系统应用仿真的理想选择。V-REP可以模拟整个机器人系统及其子系统(如机械结构、传感器等),支持多达七种的编程语言C/C++PythonJavaLuaMatlabOctaveUrbi。其主要应用领域有:工厂自动化系统仿真、远程监控、硬件控制、快速原型验证、安全性检查、控制算法开发、机器人教学、产品展示等。

此外V-REP既可以作为一个独立的应用程序,亦可以嵌入到一个主客户端程序中。且V-REP的内存占用率小,API接口丰富,使其成为可以嵌入到更高级别的应用程序的理想选择。集成的Lua脚本编译工具,使得用户可以在结合低级和高级功能的基础上获得新的高级功能。

如图1所示为V-REP的一个典型场景,主要由控制窗口、应用窗口、对话框等多种元素构成。控制窗口在V-REP启动时便自动生成,但系统默认会直接隐藏,这可以通“设置”对话框进行更改。应用窗口是V-REP的主窗口,主要功能是呈现、编辑、仿真某个场景。应用窗口附近的一些对话框,通过改变其参数设置亦可实现对场景的编辑和交互。如图2所示为V-REP主要的仿真元素:场景和模型,模型是场景中的元素,一个场景可以包括多个模型,当然也包括环境、主脚本等元素。

 

1 V-REP场景元素

 

2 场景和模型

3  V-REP框架的主要特点

V-REP具备其他仿真软件不具备的优势,框架特点密不可分。V-REP可以实现多种仿真功能,且这些功能相对独立,没有主次之分,可根据模型需要取舍。而这些功能的实现与特定的场景物体、计算模块等息息相关,下面对其介绍。

3.1 实体

V-REP中的实体指的是场景物体或它的集合,其关系如图3所示。下面分别对场景物体及其集合进行介绍。

 

3 实体、场景物体及其集合关系

3.1.1 场景物体

场景物体是V-REP中建立仿真场景的主要元素之一,详见于场景层级或场景视图中,场景视图中呈现的场景物体是三维立体结构,如图4所示。场景物体间可相互结合,与控制及计算模块结合可生成较为复杂的系统。每种场景物体的功能描述如下:

(1) 相机  属于可视物体,可呈现出所观察到的视图。根据需要,在场景中可以放置任意多个相机,每个相机提供场景中的不同视图。

(2) 灯光  用来照亮一个场景,若场景中无灯光,物体则呈现出无阴影的颜色,对相机及视觉传感器有直接的影响。

(3) 图形  由三角面片组成的刚体,可被用于碰撞检测、最小距离计算等,可被距离传感器、视觉传感器等检测,可被铣削(仅限于简单的非纯正图形)。在计算方面,其他场景物体或计算模块很大程度上依赖图形。

(4) 关节  用来连接两个或多个场景物体,至少具有一个自由度,关节数据可以通过图表物体来记录。

(5) 虚拟  有方向的一个点,可看做一个参考坐标系,基本不单独使用,当被用在与其他物体或计算模块结合中,具有十分重要的作用,可被当做一个助手

(6) 图表  可以记录、呈现、导出仿真中的数据,可用三种方式呈现数据流:时间图表、X/Y图表、3D曲线。

(7) 距离传感器  可对任何类型的距离传感器(超声波、红外线等)进行建模,进行实体检测,如图5所示为采用距离传感器进行仿真。比射线检测更为简单,具备可配置的检测体积、最小距离快速计算,相较于射线传感器,仿真效果更为真实。

(8) 视觉传感器  与相机类似,集成图像处理,通过插件机制可进行功能拓展。

(9) /力矩传感器  可进行图形连接间力/力矩的检测。

(10) 铣削  可自定义切削体积,对图形进行切削。

(11) 路径  在空间中可进行复杂的运动定义,例如,通过预先定义好的路径控制焊接机器人末端点的运动、传送带的运动等。

(12) 镜像  两种功能:作为镜子反射灯光/图像,用作辅助的剪裁平面。

(13) 八叉树  代表了一个空间分区,由一个树型数据结构组成,其中每个节点均具备八个子树型数据结构。可被用作图形或点云的简化表示,亦可作为占用网格/空间。

(14) 点云  用作基于八叉树的点集合。

 

4 场景物体

 

5 距离传感器仿真

3.1.2 集合

一个集合至少包含一个物体,当涉及若干物体时(如机器人系统)集合才有用。V-REP支持的计算不仅基于物体,还包括集合比如:碰撞检测模块会对集合A和物体B进行记录,然后采用碰撞检测算法计算集合A和物体B是否发生了碰撞。

3.2 计算模块

V-REP提供了强大的计算模块,这些计算模块并没有直接封装于物体中(如距离传感器、视觉传感器等),而是作用于一个或多个物体上。下面对各模块进行介绍:

(1) 碰撞检测模块  以一种柔性的方式进行两实体间的碰撞检测,并严格进行干涉计算,但并不会直接反映结果(如碰撞响应,在动力学模块中查看)。如图6所示。

(2) 最小距离计算模块  以一种柔性的方式进行两实体间最小距离检测,但并不会直接反映结果,与碰撞检测模块使用相同的数据结构。如图7所示。

(3) 逆运动学计算模块  可进行任何机构类型(支链、封闭、冗余等)的正/逆运动学计算,支持加权、条件、阻尼(或无阻尼)运动学逆/反解。

(4) 几何约束求解器模块  逆运动学计算模块可快速、准确的解决机器人运动学正/逆解的问题,但有时候限于使用者在机器人运动学方面的知识水平,会使得该模块的使用变得繁杂和困难。在机器人运动学求解方面,几何约束求解器模块相对较慢,且精度不高,但相对更加简单,容易上手。

(5) 动力学模块  目前支持四种物理引擎:BulletODEVortexNewton,根据仿真需要,使用者可随时切换物理引擎。物理仿真模拟是一项复杂的工作,使用不同的物理引擎,仿真结果会不尽相同。如图8所示。

(6) 路径及动作规划模块  该模块通过封装有OMPL数据库的插件来实现,基于RRT算法可进行全局/局部路径规划。

 

6 两机器人间的碰撞检测

 

7 两机器人间的最小距离检测

 

8 动力学仿真

4  V-REP的控制方法

V-REP是一款高度自定义的仿真软件,仿真的每个部分都可以实现用户自定义,这通过应用程序界面(APIApplication Program Interface)来实现。V-REP支持种不同的编程控制方法,每种都各自有其优缺点,但他们是相互兼容的,也就是说可以同时使用,甚至是并行使用。如图9所示为V-REP的控制结构,及种编程控制方法的作用原理。下面对V-REP的编程控制方法进行介绍。

 

9 V-REP的控制结构

(1) 嵌入式脚本  通过脚本自定义仿真场景或仿真模型,使用的脚本语言为Lua,这种方法允许自定义某个特定仿真、某个仿真场景,在一定程度上还可以自定义仿真器本身。这是最简单、使用最多的编程方法。

(2) 插件  通过插件来定义仿真器或某个仿真。很多时候它用来提供自定义Lua命令的仿真,常与第一种方法结合使用。此外,还用来实现V-REP的某项特定功能,如快速计算能力、与某硬件设备的特点接口、与外界的通信接口等。

(3) 扩展  与插件类似,使用Lua脚本,可快速自定义仿真器,自动启动并后台运行。

(4) 远程API客户端  允许外部应用(位于机器人或其他设备上等)使用远程API命令很容易的实现与V-REP的连接,这样可以拥有与机器人中相同的代码,以此来控制V-REP中的虚拟仿真。

(5) ROS节点  允许外部应用(位于机器人或其他设备上等)通过ROSRobot Operating System)连接到V-REP

(6) 自定义客户端  通过外部应用(客户端或服务器)自定义仿真器或某个仿真,需要与脚本或插件并行工作。

5 基于V-REP搬运机器人协同作业仿真

基于上述对V-REP软件的介绍论文尝试对搬运机器人协同作业进行仿真,以说明V-REP软件在机器人仿真领域的易用性、通用性。简化仿真步骤,本文采用V-REP自带的仿真模型具体过程如下:

5.1 建立仿真场景

首先调出搬运机器人模型位置角度调整合适位置,如图10所示接着依次建立另一机器人模型及传动辊台,如图11所示然后,安装机械手,加载相机,最终建立仿真场景,如图12所示

 

10 搬运机器人模型

 

11 建立机器人及传动辊台模型

 

12 机械手安装及加载相机

5.2 设置计算模块

仿真场景建立完成之后,需要设置计算模块如图13所示,进行两机器人间最小距离计算的设置呈现计算结果所需的图表。

 

13 最小距离设置

5.3 设置控制方法

基于Lua语言,各场景物体编写子脚本,并将子脚本嵌入到V-REP,如图14所示

 

14 局部子脚本程序及嵌入

5.4 搬运机器人协同作业仿真

最终建立起搬运机器人协同作业仿真模型,如图15所示接着进行仿真模拟,如图16所示,其中,图(a为两机器人间最小距离检测图(b为两机器人间的协同作业,图(c仿真结束机器人归位

 

15 搬运机器人协同作业仿真模型

 

a

 

b

 

(c

16搬运机器人协同作业仿真

结论

V-REP集成了建模、编程、物理引擎等开发环境。其在建模方面稍显薄弱,对于结构简单的模型,可直接在V-REP中进行建模、仿真,而对于结构较为复杂的模型,建议在专业的建模软件中完成后,再导入到V-REP中。V-REP具有四款物理引擎,且其本身也是开源的,允许使用Lua语言进行编程,且Lua集成了 C库、PythonMatlab等主流语言,使得软件使用者非常容易上手。

V-REP是一款新兴的机器人仿真软件,目前不可避免的会存在一些缺点和不足,例如,由于一个程序里面的代码页的执行顺序都是未知的,可能会引起输入、输出变量的先后顺序错位,而导致计算错误。V-REP还是一“小软件”,需要不断的改进和完善,但它代表了未来机器人仿真软件的发展趋势,具有广阔的发展前景。

参考文献

[1] 谭民, 王硕. 机器人技术研究进[J]. 自动化学报, 2013, 39(7): 963-972.

[2] Rohmer, E., S.P.N. Singh and M. Freese. V-REP: A versatile and scalable robot simulation framework[C]. in IEEE/RSJ International Conference on Intelligent Robots & Systems, 2013: Tokyo, Japan: 1321-1326.

[3] Hirukawa, H.. Open HRP: Open Architecture Humanoid Robot Platform[J]. Proc.of Int.symp.on Robotics Research, 2001. 23: 155-165.

[4] Koenig, N. and A. Howard. Design and use paradigms for Gazebo, an open-source multi-robot simulator[C]. in Ieee/rsj International Conference on Intelligent Robots and Systems. 2004: Sendai, Japan: 2149-2154.

[5] Michel, O.. Webots: Professional Mobile Robot Simulation[J]. International Journal of Advanced Robotic Systems, 2004. 1(1): 39-42.

[6] http://www.coppeliarobotics.com/index.html.

[7] http://www.forum.coppeliarobotics.com/

本刊创刊于1982年,是由自治区科技厅主管、自治区科技信息研究院主办,由自治区科技情报学会协办、国内外公开发行的省级综合性科技刊物,是反映内蒙古自治区科技与经济发展的窗口。杂志入选《中国期刊全文数据(CJFD)》全文收录期刊和《中国学术期刊综合评价数据(CAJCED)统计刊源期刊,《中国核心期刊(遴选)数据库》收录。本刊是公开发行的综合性科技期刊,为月刊,大16开本。本刊坚持以科技创新为目标,融科技、经济、信息、产业、市场为一体,是促进科技成果转化、推动科技进步、加强技术创新,促进经济发展的专业性期刊。