基于V-REP的关节机器人运动仿真

  • 格式:pdf
  • 大小:1.67 MB
  • 文档页数:4

a叶菝2017年第30卷第4期 Electronic Sci.&Tech./Apr.15.2017 协议・算法及仿真 

doi:10.16180/j.cnki.issnl007—7820.2017.04.013 

基于V.REP的关节机器人运动仿真 赵海林,钱炜,孙福佳 (上海理工大学机械工程学院,上海200093) 摘要提出了一种在V—REP平台下实现机器人虚拟运动控制及运动仿真方法。在V—REP中创建了机器人控 制模型,并使用Lua编写了控制脚本及通信接口,使用Visual Studio 2010编写了外部控制程序。通过Socket通信实现机 器人模型与外部控制程序的连接。以广泛应用的IRB4600六轴机器人模型为实验对象,通过外部控制程序实现机器人 运动仿真的步骤。实验中机器人准确响应外部控制指令到达相应位置,验证了本方法的有效性。 关键词V—REP;关节机器人;运动仿真;Lua 中图分类号TP242.2 文献标识码A 文章编号1007—7820(2017)04—053—04 

Research of Articulated Robot Motion Simulation Based on V—REP ZHA0 Hailin,QIAN Wei,SUN Fujia (School of Mechanical Engineering,University of Shanghai for Science&Technology,Shanghai 200093,China) Abstract An efficient method is presented to realize the virtual robot motion control and motion simulation based on V—REP platform.In V—REP robot control model is created and control script and the communication inter- face iS developed with the Lua.and the external control pmgram iS written in Visual Studio 2010.Connection between robot model and external control program is realized through the Socket communication.Taking the widely used six— axis robot model IRB4600 as experimental object,this paper steps through the procedure of realizing the robot motion simulation with external control program.Robot responsed to external control instruction to reach the corresponding po— sition in the experiment,whichveri—fled the effectiveness of this method. Keywords V—REP;articulated robot;motion simulation;Lua 

离线编程系统对工业机器人发挥着重要作用,而 控制机器人的动作模拟,实现机器人模型的运动仿真 便是离线编程系统中的重要一环_1 J。现在国内科研机 构对于离线编程系统中的运动仿真模块,多是采用 Open GL图形绘制引擎以及WTK虚拟环境开发包工 具独立开发,在虚拟环境中建模、根据计算的位置驱动 模型仿真运动 J,这样做的缺点就是建模能力差,不 适应科研人员对不同机器人运动学控制研究的需要。 本文针对机器人模型运动仿真提出一种新的方法,即 将机器人运动仿真界面和运动学计算及控制分开,选 择V—REP为运动仿真平台,利用其开源性、接受多种 语言编程以及丰富的API来做界面仿真,把后台的计 算过程放在外部控制程序中_4-5]。文中运动仿真实验 收稿日期:2016—04.24 基金项目:上海市经信委重大技术装备研制专项基金资助项目 (ZB—ZBYZ一03—1l一1709) 作者简介:赵海林(1988一),男,硕士研究生。研究方向:工业 机器人运动控制。钱炜(1964一),男,硕士,副教授。研究方 向:机器人机构学等。 证实了此方法可行,为未来机器人理想编程系统的开 发提供了一定的参考。 

1 运动仿真平台及脚本语言 1.1 运动仿真平台V.REP 本文选择V—REP作为机器人运动仿真的实验平 台,虚拟机器人实验平台(Virtual Robot Experiment Platform,V—REP),其是国外一款开源的有自身IDE 的机器人仿真软件。其支持嵌人脚本、插件、ROS、re— mote API clients、Add—on等控制方式,以及C/C++, Python、Java、Lua、Matlab等编程语言。另外还支持机 器人运动学正解和逆解、碰撞检测、路径规划、定制 uI、视觉计算、三维建模、距离感应计算 。在开发集 编程仿真于一体的离线编程软件时,可选择嵌入V— REP,将其当作一个独立的仿真模拟环境。 1.2 Lua语言及Luasoclet Lua是一个小巧的脚本语言,在所有操作系统和 平台上都能够编译运行,其设计目的是为了嵌入应用 程序中,为应用程序提供灵活的扩展和定制功能。在 

www.dianzikeJi.org—— 协议・算法及仿真 赵海林,等:基于v—REP的关节机器入运动仿真 目前所有脚本引擎中,Lua的速度是最快的,这决定了 Lua是作为嵌入式脚本的最佳选择 。而LuaSocket 是Lua的网络模块库,其提供TCP、UDP、DNS、FTrP、 HrITI 、SMTP等多种网络协议的访问操作,本文使用 Luasocket中的socket.tcp()这一函数 。 

2在V.REP中创建机器人控制模型 在V—REP中创建机器人控制模型分为两部分: (I)建立机器人三维模型、添加关节约束;(2)为模型 编写控制脚本代码和通信接口。 2.1 建立机器人三维模型 建立机器人模型可在V—REP中完成,也可在外 部的CAD软件中完成然后导人V—REP;但是前者建 模能力较弱且较为繁琐,远不如现在已经商用化的三 维软件便捷。本文选择在SolidWorks中设计机器人三 维模型,然后转换成V—REP能够读取的标准CAD格 式(如stl,dxf,3ds等)导入到V—REP中 。 不管是内部建模还是外部导人,由于机器人零件 众多,为了在进行机器人运动仿真时V—REP减少延 迟及提高运行效率,需要将同一个连杆的各个零件合 并成一个部件。本文以IRB4600六轴工业机器人为 例,其最终的优化结果是7个部件,部件之间以6个关 节连接。其原始三维模型以及优化后的模型如图1所 示,图1(a)为原始模型;图1(b)为优化后的模型。 

(b) 图1机器人优化前后的模型图 在运控仿真时图1(b)的模型被标示在不可见的 图层中。根据IRB4600机器人的D一日参数,如表1 为其添加关节约束,添加关节时需要考虑到各连杆的 长度及扭转角,各关节变量及偏置量。 表1 IRB4600机器人D一 参数表 

6个关节分别连接着7个部件(连杆),其层级结 构如图2所示。 

B。0 T 鸟岫 舶・『R日d500— 8lu0 

口 - “ 日 圆』【I=f|¨ ” 

IF ̄B46Q0Jink1_ ̄sible 0 ---・; ■ U i-一、{l 幽IRB4609_link2 ̄sillle 日 矿: - - U ■ r¨l IPLB460o_link3 日 5 ? j函f, ’ :0 - O 1 ̄4E00 1ink4_ ̄sible 

.1l¨・ .t ● --, 

IIq ̄4GOO—linkS_visible 

j 一一 一 H U:。。。- IRB4600hnk6 ̄sible 

图2连杆和关节的层级关系图 2.2编写控制脚本与通讯接口设计 V—REP中控制脚本分为线程脚本和非线程脚本 两种,和非线程脚本相比,线程脚本常规动作部分是循 环执行的,且运行模拟时机器人能够持续接受外部指 令进行动作,因此本文选择线程脚本来编写控制代码 和通信接口程序。 V—REP中的机器人控制模型和外部控制程序 之间需要可靠地数据通信服务,因此本文选择TCP 协议中的流式套接字来传输指令,通信体系结构选 择常见的客户端一服务器模式,以V—REP为客户 端,外部控制程序为服务器端。编写脚本代码使用 Lua语言,和外部控制程序通信使用Luasocket模块 中的相关函数。 在控制脚本中,使用socket=require(”socket”)来 加载Socket通信模块,使用函数client=socket.tcp() 和client:connect()来和外部控制程序建立连接,使用 jointHandles[i]=simGet0bjectHandle(IRB4600一joint 

..i)给各关节添加控制句柄。使用函数client:receive (‘ l’)来接收外部控制指令字符串,其参数’ l’表 示接收一行字符串,以换行符”\n”作为作为一次指令 读取结束的标志。使用simRMLMoveToJointPositions() 函数来控制机器人的动作,此函数可以在同一时间控 制机器人的各个关节动作(包括各关节转速,加速度 以及转动角度等参数)以达到控制机器人运动的 目的[ 。。。 V—REP端要设计控制接口,以解析外部控制程 序发来的运动指令。外部控制程序发出一串特定格式 的字符,V—REP端通过string.find()、string.sub()、 tonumber()等函数解析出各个关节的目标角度值,然 后把设定好的各个参数值赋给simRMLMoveToJoint— Positions()函数,控制机器人的各个关节以一定的速 度和加速度转动设定的角度。以实现对机器人的运动 控制。本文采用线程脚本编写控制代码,其常规动作 部分循环执行,因此外部控制程序和V—REP成功连 接后,通过发送一系列的控制指令便可实现对机器人 动作的连续控制。 

WWW.di ̄nzikeji.oru