许浩燕,ABBA Gabriel,满庆丰,夏继强
(1.北京航空航天大学 机械工程及自动化学院 工业测控网络技术研究室,北京 100191; 2.法国国立高等工程技术学校 LCFC实验室,法国 梅兹 57070)
随着计算机处理能力的迅速增长、高速3D图形硬件的出现以及大量开放的软件和硬件标准的发布,使得3D机器人仿真领域的格局发生了很大改变[1-2]。这为我们提供了硬件在环实时仿真(用实际控制器来控制虚拟对象)的可能,或是通过仿真框架来控制移动/嵌入式系统。
V-REP(Virtual Robot Experimentation Platform)是由瑞士Coppelia公司开发的一款机器人仿真软件,支持Windows、MacOS和Linux系统。它集成开发环境,基于分布式控制结构,每个仿真对象或模型可分别由嵌入式脚本、插件、ROS(Robot Operating System,机器人操作系统)节点、远程API(Application Programming Interface,应用程序接口)客户端或者自定义的解决方案来单独控制。V-REP提供了多种机器人模型,大大便捷了机器人仿真。通过该软件我们可以进行工厂自动化系统模拟、远程监控、硬件控制、安全性检查和控制算法开发等[3]。
本文的第一部分描述了V-REP的整体框架,其模块化和分布式框架有助于实现复杂的场景,各种传感器和执行器可以根据自己的速率和特性同时异步地运行。第二部分概述机器人或模型的控制方法。第三部分介绍机器人关节的控制方法,即位置、速度和力矩控制,并通过仿真实例介绍V-REP与MATLAB的通信方式。
V-REP是围绕着多功能框架而设计的,具有各种相对独立的功能,可以根据用户的需要来启用或禁用。
我们想象一个仿真场景,一个工业机器人要拿起盒子并将它们移动到另一个地方。在这种情况下,V-REP对抓取并握住盒子这一行为进行动力学运算,而对其他可忽略力学效应的部分进行运动学仿真。这种方法可以快速、精确地计算工业机器人的运动。
V-REP中的实体包括场景对象(scene object)和集合(collection)。场景对象是V-REP中用于搭建仿真场景的主要元素,主要包括形状、关节、图、光、摄像机、镜子、路径、视觉传感器和力传感器等。下面简要介绍其中几个对象及其作用。
(1) 关节:是用于连接两个或多个场景对象的运动低副,其至少有一个自由度。
(2) 力传感器:是两个对象之间的刚性连接,用于测量传递力和力矩。
(3) 路径:用于定义空间中的轨迹,可以用于路径规划、传送带输送仿真和机器人末端臂的导引等。
场景对象通常不会单独出现,而是由多个对象同时出现、协同作用。V-REP拥有强大的计算功能,并作用在这些对象上。V-REP中包含能实现快速干涉检测的冲突检测模块、用于测量两个实体间最短路径的最短距离计算模块、运动学解算模块、几何约束求解模块、路径和运动规划模块[4]以及动力学模块。
动力学模块可用于动态地模拟对象或模型的运动来实现它们之间的相互作用(如碰撞反应、物体的抓取等),这由V-REP中的4个物理引擎(Bullet、ODE、Vortex和Newton)来实现。选择合适的物理引擎有助于提高仿真的速度和精度。这些计算模块使我们能够模拟真实的物理环境,为位置求解、路径设计等提供了方便。
V-REP支持多种编程方法来控制仿真,并且这些方法相互兼容,可以同时使用。
ROS节点的执行机制和远程API类似,不过ROS节点可以连接多个进程,而且有大量的可兼容的库可使用。我们也可以通过编写外部应用程序来控制仿真,通过套接字或者串口等方式与V-REP脚本或插件实现通信。
我们选择MATLAB作为外部应用程序来进行机器人仿真。该方法便于操作,仿真速度快,利用V-REP的内部函数和MATLAB的功能可以完全实现我们的仿真需求,获得直观的仿真结果。
关节是人形机器人中的重要组成部分,本文使用富士通公司的小型人形机器人HOAP3来进行仿真,该机器人共有28个旋转关节,共28个自由度。我们通过力矩或力模式对关节进行控制并仿真。
在对机器人HOAP3建模后将其导入V-REP场景中,如图1所示。
图1 人形机器人HOAP3建模
我们分别使用位置、速度和力矩来控制关节的运动,通过MATLAB编程来实现仿真。
首先启用关节电机和控制环,选用PID控制器。然后通过MATLAB编程来给定头部俯仰关节的位置,以获得预期的角度变化。
我们将角度设置为从-45°~+15°变化,每次增加5°。每次给V-REP仿真场景中的HOAP3机器人发出运动指令后,读取当前的角度值,仿真结果如图2所示。
启用关节电机,禁用控制环,关节会从0开始加速直到达到给定的速度为止。将右臂肘关节的目标速度设为-10°/s,最大力矩为10 N·m。力矩始终为正值,因此需要通过改变速度的正负来控制关节运动的方向。设定了4 s的仿真时间,从36.7 s~40.7 s,不断读取速度和力矩的瞬间值。速度控制下的角度变化如图3所示,右臂肘关节从36.7 s起逐渐加速,约经历0.4 s后达到目标速度-10°/s,而后角度保持匀速增加,表示其以恒定速度运动直到仿真结束。速度控制下的力矩变化如图4所示,从仿真开始,力矩一直维持在设定的值10 N·m,直到肘关节达到目标速度,也即0.4 s后,力矩开始变小,降至0.2 N·m左右。力矩在0.4 N·m的范围内略有波动,但幅度不大。
图2位置控制下的头部府仰关节角度变化图3速度控制下的角度变化
要使关节在恒定的力矩下运动,也需要启用关节电机,禁用控制环。由于在该模式下,关节会保持恒定力矩直到达到目标速度为止,因此需要给关节设定一个极大的目标速度值以使其运行在给定的力矩下。此次仿真中我们用力矩控制左臂的抬起,设定力矩为3 N·m,目标速度为-99 999°/s。仿真得到的力矩变化如图5所示,在仿真的4 s内,力矩始终维持在3 N·m;仿真得到的角度变化如图6所示,转动速度越来越快,直至仿真结束。
图4速度控制下的力矩变化图5力矩控制下的力矩变化图6力矩控制下的角度变化
V-REP的模块化结构和分布式控制方式符合当前复杂机器人系统的仿真需求,它提供了多种控制方式和编程语言,选择合适的仿真方式可以降低任务的复杂度,提高仿真效率。在对人形机器人的仿真中,可以根据需要对各个关节采用不同的控制方法,以达到对位置、速度或力矩控制的预期效果。
参考文献:
[1] Freese M,Singh S,Ozaki F,et al.Virtual robot experimentation platform V-REP:A versatile 3D robot simulator[C]//Simulation,Modeling,and Programming for Autonomous Robots-Second International Conference,SIMPAR 2010.Darmstadt:[s.n.], 2010:51-62.
[2] Rohmer E,Singh S P N,Freese M.V-REP:A versatile and scalable robot simulation framework[C]// Ieee/rsj International Conference on Intelligent Robots and Systems.[s.l.]:IEEE,2013:1321-1326.
[3] Coppelia Robotics.V-REP[EB/OL].2014-02-10.http://www.coppeliarobotics.com.
[4] Reddy K K,Praveen K.Path planning using VREP[J].International Journal of Research in Engineering and Technology,2013,2(9):94-97.