OS: Win10 x64
Matlab: R2016b
V-REP: V-REP PRO EDU v3.5.0
下载、安装和支持
V-REP操作基础
V-REP仿真基础
Matlab环境准备
一个简单的例子
对V-REP有一定了解的读者可以直接跳到第三节Matlab环境准备。
下载、安装和支持
V-REP提供Windows、Linux和MacOS三个平台的应用程序支持,任何平台都提供两个版本的教育版本和专业版本。教育版本是免费的,所以我们都以教育版本为例。安装方法也很简单,Windows按照正常的安装流程,Linux只需解压缩版本。
目前来说,V-REP虽然它的功能非常强大,但它是一种相对较小的模拟工具。目前唯一的技术支持是V-REP官方论坛。V-REP提供的技术手册可以解决大部分问题,功能细节也非常详细。
V-REP操作基础
打开V-REP,V-REP新场景将自动生成(Scene),场景是空白的。然后你要做的就是添加你的模拟对象。V-REP自带的Tutorial如果你有机械臂,它会引导你一步一步地从零开始添加机械臂。CAD模型。
添加自定义模拟对象是基本教程中的内容,尽管大多数用户实际上不需要自己做机械臂。但读完后,你会V-REP有必要对模拟原理有一个初步的了解。
V-REP根据动态性能,中间的形状可以分为动态(dynamic)和静态(static)两者也可分为可响应性(respondable)和不响应(non-respondable)两种:
dynamic 形状会下降,受外力/扭矩的影响;static 形状只会跟着它parent移动。
respondable 如果它们是形状之间的碰撞响应dynamic是的,这种反应会表现在运动上;而且 non-respondable 即使形状相遇,也没有碰撞响应。
respondable模拟时形状越简单越好,物理引擎在模拟时会根据五种不同类型的形状进行区分:
pure shapes:物理引擎对这种形状的模拟效果是最稳定、最有效的。然而,这种类型的形状受到几何限制,只能是简单的几何形状。通过添加这形状 [Menu bar –> Add –> Primitive shape] 。
pure compound shapes:一个group的pure shapes,性质与pure shapes类似地,这种形状可以通过创建来创建 [Menu bar –> Edit –> Grouping/Merging –> Group selected shapes]。
convex shapes:相比之下,物理引擎处理这种形状的速度稍慢,稳定性稍差。但是,这种类型可以设置为凸几何形状。这种形状可以通过添加来添加 [Menu bar –> Add –> Convex hull of selection] 或 [Menu bar –> Edit –> Morph selection into convex shapes]实现。
compound convex shapes / convex decomposed shapes:一个group的convex shape。这种类型可以通过添加来添加 [Menu bar –> Edit –> Grouping/Merging –> Group selected shapes], with [Menu bar –> Add –> Convex decomposition of selection…], 或 [Menu bar –> Edit –> Morph selection into its convex decomposition…]实现。
random shapes:这种类型可以设置为非凸几何结构复杂的形状。物理引擎处理这种形状最慢、最不稳定。
在大多数情况下,你需要的模拟模型可以是V-REP在自带模型浏览器中找到。
找到后,你只需要拖到工作空间,你可以通过调整位置和方向的按钮来调整位置和姿势。
V-REP操作界面非常简单,默认添加了部分用户交互按钮。您可以在不使用菜单栏的情况下完成大多数常用的操作。您可以体验其他按钮的使用方法,并在手册中详细说明。
V-REP仿真基础
最简单的模拟方法是使用 embedded scripts ,当然,这种方式只支持Lua语言。也可以通过 plugin 、remote API client、ROS node、BlueZero node 和 add-on模拟。此外,还有许多其他接口。官方给出了使用这些接口的例子。
这里我们只介绍一下 remote API 方式,不对别的API介绍。官方手册提供了三个重要说明:
远程API使用方法;
远程API服务器端(V-REP)使能方法;
远程API用户端(Matlab)使能方法。
强烈建议先阅读以上三篇文章。手册还提供了所有内容Matlab API的列表。
官方手册还对模拟环境的设置提出了一些建议。
Matlab环境准备
V-REP与Matlab通信可以通过 shareMemoryCommunicationPlugin ,也可通过 socket,这里我们只介绍使用 Sockets的方法。
Step 1:新建你的Matlab项目文件夹,这是我的习惯,比如新建一个名字 vrep api的文件夹。
Step 2:在V-REP找到安装文件夹 \programming\remoteApiBindings\matlab\matlab 文件夹将文件夹下的所有文件复制到项目文件夹中 vrep api下。其实只有remApi.m 和 rempteApiProto.m 有用,其他可供参考。
Step 3:在V-REP找到安装文件夹 \programming\remoteApiBindings\lib\lib\Windows\64Bit 文件夹将文件夹下的所有文件复制到项目文件夹中 vrep api当然,只有一份文件。完成后,您的项目文件夹将有以下文件:
(readMe那个可以删除)
如此,Matlab环境准备好了。很简单吗?
一个简单的例子
下面用一个简单的例子来测试一下V-REP与Matlab能否重新通信。
Step 1:打开V-REP,该系统将自动创建新系统scence。将UR5拖拽到工作空间。
Step 2:打开Matlab,定位工作空间vrep api并打开文件夹simpleTest.m文件。
Step 3:如simpleTest.m文件注释说,打开V-REP中UR将5的脚本文件插入顶部
simRemoteApi.start(19999)
UR5脚本文件中有一个例子可以删除或保留。
Step 4:运行V-REP模拟,再操作Matlab仿真,观测Matlab输出结果V-REP移动界面的鼠标可以看到Matlab Command窗口输出的变化,直到Matlab完成程序执行。
V-REP 与 Matlab 关键脚本代码如下:
% V-REP脚本:
simExtRemoteApiStart(19999)
% MATLAB端:
vrep=remApi('remoteApi'); % using the prototype file (remoteApiProto.m)
vrep.simxFinish(-1); % just in case, close all opened connections
clientID=vrep.simxStart('127.0.0.1',19999,true,true,5000,5);
好了,基本介绍到此结束。