【导读】

V-REP自学笔记是一个系列教程,主要帮助读者从零开始逐步深入的学习和使用V-REP软件,以及在这个平台的基础上,学习一些机器人感知和控制规划相关的知识。这个系列的教程将持续更新和发布在专栏:AI与机器人

整个项目涉及到的代码都开源并发布到github上,欢迎大家Mark和下载使用:https://link.zhihu.com/?target=https%3A//github.com/chauby/V-REP-YouBot-Demo.git

 常用的机器人物理仿真软件有ROS/Gazebo、V-REP、Webots、Adams等,有的收费,有的开源,提供的功能也不同。V-REP是一个跨平台的机器人仿真软件,提供多种机器人模型和控制接口,便于开发者快速验证算法和低成本开发,主要特性包括:

  • 跨平台 (Windows、MacOS、Linux);
  • 多种编程方法 (嵌入式脚本、插件、附加组件、ROS节点等);
  • 多种编程语言 (C/C++、Python、Java、Lua、Matlab、Octave等);
  • 超过400种不同的应用编程接口函数;
  • 100项ROS服务、30个发布类型、25个ROS订户类型、可拓展;
  • 4个物理引擎 (ODE,、Bullet,、Vortex、Newton);
  • 完整的运动学解算器 (对于任何机构的逆运动学和正运动学);
  • 嵌入图像处理的视觉传感器 (完全可拓展);
  • 数据记录与可视化 (时距图、X/Y图或三维曲线);
  • 支持水/气体喷射的动态颗粒仿真;

1. Gazebo上的机器人模型

​ 因为研究和工作需要,我曾经花了许多时间研究Gazebo和ROS,包括使用Gazebo本身提供的C++接口进行模型的控制、使用Matlab通过ROS提供的通信接口与Gazebo通信来进行远程控制、使用Python通过ROS提供的通信接口与Gazebo通信来进行远程控制等。总的来说,Gazebo给我们提供了非常丰富的控制接口,自由度比较大,是一个值得学习的平台,但缺点也比较明显,只能在Linux系统下使用,入门的门槛比较高,当年也是学了好久才搞明白应该如何使用Gazebo软件做仿真。Gazebo在调试方面的功能不是很好,如果想要可视化数据得结合ROS提供的插件才可以,这方面我没有做太深入的研究,总的感觉就是这方面的接口不是很友好。

​ 下面是我做研究过程中自己定义和设计的一个仿人双足机器人模型和一个Demo(有点简陋,请忽略模型的颜值)。我用它来仿真双足仿人机器人步行的过程,只实现了在Sagittal平面内的步行运动过程。这个模型的运动学模型的构建参考了Kajita教授编写的《仿人机器人》一书,步行过程的控制理论也是参考书中的有关倒立摆模型的内容和Capture Point理论等。

【V-REP自学笔记(一)】平台介绍和软件安装 - 知乎 (zhihu.com)

基于Gazebo的仿人双足机器人

​ 模型的构建过程中,首先自己设计好模型的尺寸、关节等信息,通过编写URDF文件一步一步搭建出来的,过程比较麻烦,也不直观。模型控制过程使用的是Gazebo提供的C++接口,使用C++语言编写的传感信息感知和运动控制代码。虽然后来也扩展了使用Python来进行远程控制,但是在使用的过程中发现,Gazebo的可视化以及数据观测、代码调试等做得不够人性化,以后有时间再分享基于Gazebo平台的模型搭建过程和控制代码开发过程。

附:《仿人机器人》一书的电子版下载地址,请扫码:

2. V-REP简介

​ V-REP(Virtual Robot Experimentation Platform)是一个跨平台的仿真软件(最新版本已经更名为CoppeliaSim,不过本教程还是用旧名称V-REP),在Windows和Linux下都可以很稳定的运行,而且软件体积较小。在官方的介绍中可以发现,其入门的门槛比较低,而且仿真软件原生提供大量的模型,并提供Demo程序和控制接口。VREP对用户友好很多,文档齐全,EDU版本也没有功能限制,同时还是跨平台的,所以初学者可以选择自己熟悉的平台上手,本文选择了Windows 10系统。下图是一些官方提供的机器人模型。

​ V-REP默认的开发语言是Lua,语法与C语言接近,所以有C/C++基础的读者是非常容易上手的。当然,我们也可以使用Java、Python、Matlab等语言进行开发。在后续的教程中我们将教大家如何一步一步通过代码来控制自己的机器人模型。放一个官方的宣传视频,更多视频请访问:coppeliarobotics.com/vi

【V-REP自学笔记(一)】平台介绍和软件安装 - 知乎 (zhihu.com)

4. V-REP的安装

​ 本教程将基于Windows 10平台,使用V-REP的教育免费版(EDU版)进行学习和开发。EDU版本的V-REP可以直接从从官网下载:下载地址

注意,V-REP的最新版已经更名为CoppeliaSim,下载的时候要注意名称和选择Windows平台,选择点击进去以后,直接点击CoppeliaSim Edu, Installer就可以获取安装板的下载链接了,Binaries版本是免安装版,我没有使用这个版本。

下载完成后直接双击安装文件运行即可,可以自定义安装路径,与在Windows平台安装其他软件无异。

5. V-REP的简单使用

​ 按照上述过程安装完成以后,双击打开软件进入首页,可以看到如下界面,与大多数三维软件类似,V-REP也包括了一些基本的物理环境:

左边的菜单栏都是一些常用的平移、旋转等操作按钮,鼠标单击以后可以对模型进行平移和旋转等,与普通的三维软件并无而异,大家可以探索一下菜单栏,随便点。左边的Model browser就是V-REP官方提供给我们的机器人模型了,包含许多现成的机器人模型,可以选择对应的模型,鼠标单击直接拉入右边的仿真环境即可。

​ 有了机器人模型以后左边的面板会显示一些机器人的基本组件,包括连杆和关节等,点击左边的条目时,仿真环境中的机器人会自动标注所点击的条目的位置,方便大家进行查看和调整。在菜单栏有几个按钮,可以点击菜单栏的按钮来运行V-REP内置的该机器人模型的Demo控制代码,大家可以尝试多个机器人模型,点击该运行按钮来尝试运行。

这里录制了一个使用YouBot机器人演示的Demo视频:

【V-REP自学笔记(一)】平台介绍和软件安装 - 知乎 (zhihu.com)

​ 此外,双击机器人模型旁边的文件按钮可以打开该机器人模型的Demo控制代码,默认的控制代码是使用Lua语言编写的,用户可以方便地更改,并基于这些基础接口来开发自己的机器人控制代码。

到此为止,V-REP的安装和基本使用就告一段落,更高级的用法将在后续其他教程中进行学习。

6. 定个小目标

​ 最后,我们介绍一下这一系列自学笔记中,我们给自己定的一个小目标,完成一个Demo。我们的小目标是要使用官方提供的KUKA公司的YouBot机器人模型来实验机器人的感知和控制过程,控制机器人从A点抓取物品,然后移动到B点将物品放置在B点的工作台上,这其中就涉及到V-REP中的各种感知和控制过程,包括被抓取物品的感知、机械臂运动规划和控制、小车的路径规划和控制等。

后记

​ 本文是自学笔记的第1篇,介绍了V-REP环境的安装和简单使用过程,更高级的用法将在后续的文章中逐步介绍,本项目涉及到的代码都将发布在Github上的V-REP-YouBot-Demo项目。作者知识有限,有不正确和不合理的地方还望读者能够指出来,大家共同学习和进步,不胜感激!

本项目Github地址:

更多交流,欢迎关注公众号:博士的沙漏。