3.VREP简介
-
VREP简介
VREP已改名为CoppeliaSim,但是功能并没有变化。CoppeliaSim有三种证书CoppeliaSim Player、CoppeliaSim Edu、CoppeliaSim Pro。
VREP是一款支持机器人运动学及动力学仿真的软件。该软件采用分布式控制架构,场景中每个对象都可以通过嵌入式脚本、插件、ROS节点、BluezZero节点、API客户端控制。所以它不仅可以用于机器人原型机的开发及算法验证,也可以应用于多机器人协作场景。VREP还可以用于硬件控制,让仿真场景与实物相互交互。
VREP支持的API客户端包含C/C++、Python、MATLAB、Java、Octave或者Urbi。VREP场景中的对象的嵌入式脚本采用Lua编写。VREP还支持在Windows、MasOS、Linux中使用。
VREP官网中给出的所有支持的功能。
· 跨平台 (Windows、MacOS、Linux)
· 六种编程方法 (嵌入式脚本、插件、附加组件、ROS节点、远程客户端应用编程接口、BlueZero节点)
· 6种编程语言 (C/C++、Python、Java、Lua、Matlab、和Octave)
· 超过400种不同的应用编程接口函数
· 4个物理引擎 (ODE, Bullet, Vortex, Newton)
· Integrated ray-tracer (POV-Ray)
· 完整的运动学解算器 (对于任何机构的逆运动学和正运动学)
· Mesh, OC tree, point cloud-网孔干扰检测
· Mesh, OC tree, point cloud-网孔最短距离计算
· 路径规划 (在2到6维中的完整约束、对于车式车辆的非完整约束)
· 嵌入图像处理的视觉传感器 (完全可拓展)
· 现实的接近传感器 (在检测区域中的最短距离计算)
· 嵌入式的定制用户接口、包括编辑器
· 完全集成的第四类Reflexxes运动库 + RRS-1 interface specifications
· 数据记录与可视化 (时距图、X/Y图或三维曲线)
· 整合图形编辑模式
· 支持水/气体喷射的动态颗粒仿真
· 带有拖放功能的模型浏览器 (在仿真中依旧可行)
· 多层 取消/重做、影像记录、油漆的仿真、详尽的文档等
关键词: 机器人、机器人学、仿真器、仿真、运动学、动力学、路径规划、最短距离计算、碰撞检测、视觉传感器、图像处理、接近传感器、油漆分散仿真.
-
-
基本元素
-
VREP中的场景是机器人仿真时所在的环境,一切仿真过程都在场景中发生。采用不同的物理引擎时,场景中的重力、摩擦力、空气等都会发生变化。对象包含相机、光线、几何体、关节、图像、各类传感器、路径、OC树以及点云。由这些对象就能够组合出所需的机器人外形,若是对机器人的外形不满意,还可以采用三维建模软件绘制再将其存为STL文件,之后再导入至VREP中使用。
1.1.1 场景(scene)
场景如下图两部分组成。标1部分作为场景中的资源管理窗口,添加一个对象至标2中,同样会在左侧添加对象的名称类型等信息,供后续操作。右侧标2部分作为仿真时的视觉场景,可供研究人员操作和观察。
![](https://img-blog.csdnimg.cn/20201219160015567.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWhlX3JpZ2h0,size_16,color_FFFFFF,t_70)
场景中的UR5机械臂资源树如下图。根据各对象的依附关系,可整理成树形结构。UR5资源树中可以看到存在关节、几何体、dummy和传感器。这些资源放置的位置存在约束。关节和关节不能直接相连,需要在两者之间加入一个几何体,一般为了外形好看会加入两个几何体,其中一个作为连接体,将其动力学属性激活;另外一个仅仅作为外观显示,将其动力学属性关闭。在对象的可以添加嵌入式脚本<分为线程和非线程:多机器人协作时采用多线程运行>。
![](https://img-blog.csdnimg.cn/20201219160041516.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWhlX3JpZ2h0,size_16,color_FFFFFF,t_70)
1.1.2 对象(object)
对象包含相机、光线、几何体、关节、图像、各类传感器、路径、OC树以及点云。采用这些对象可以组合出符合预期的机器人。例如六足机器人。
其资源树如下图所示。
![](https://img-blog.csdnimg.cn/20201219160128655.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWhlX3JpZ2h0,size_16,color_FFFFFF,t_70)
在资源树中可以看到,六个腿分别采用六个子资源树构成。一条腿包含三个旋转关节,每一条腿的结构一样,区别在放置的位置不同。图中六条箭头红线表示IK group的连接位置。每条腿的逆运动学求解采用VREP自带的逆运动学解算器完成。当然,也可以自己编写代码求解单条腿逆运动学。
![](https://img-blog.csdnimg.cn/2020121916014159.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWhlX3JpZ2h0,size_16,color_FFFFFF,t_70)
在六足机器人的上平台上添加如视觉传感器,可为机器人的路径规划于路径导航提供相关数据。
![](https://img-blog.csdnimg.cn/20201219160148562.png)
![](https://img-blog.csdnimg.cn/20201219160158162.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWhlX3JpZ2h0,size_16,color_FFFFFF,t_70)