赞
踩
此篇是基于《ROS机器人编程与SLAM算法解析指南》一书以及结合自身操作时所出现问题来解决。
V-rep是一个强大的机器人三维集成开发环境,号称机器人仿真器里的瑞士军刀。它是基于分布式控制架构的、免费的、完善的开发环境,内部集成工业串联机械臂、并联机械臂、多足机器人、移动机器人模型,同时也可以根据用户需要导入对应的SolidWorks模型。
V-rep具有丰富的API,这些接口或基于C/C++语言,或基于Lua脚本。作为快速原型验证、远程监控、快速算法开发、机器人相关教育和工厂自动化系统仿真的工具,V-rep具有以下优点。
1.跨平台(Windows、macOS、Linux)
2.支持多种编程方法(嵌入式脚本、插件、附加组件、ROS节点、远程客户端应用编程接口或自定义的解决方案)
3.多种编程开发语言(C/C++、Python、Java、Lua、Matlab、Octave和Urbi)
4.丰富应用编程接口函数。
5.提供ROS服务、发布类型、ROS订户类型、可拓展性好
6.完整的运动学解算器(对于任何机构的逆运动学和正运动学)
7.路径规划
8.多种图像处理的视觉传感器
9.数据记录与可视化(时距图、X/Y图或三维曲线)
Gazebo的优势在于完全兼容ROS,但是构建机器人仿真环境较复杂。相比与Gazebo,V-rep有丰富的场景(各种机器人、传感器、移动平台等)可供使用,这可以使学习者省去大量模型搭建的时间,从而将更多的精力投入到算法研究。
ROS和V-rep之间可以通过多种方式进行通信,主要有以下3种:
1.The RosInterface(官方The RosInterface通信)
2.The ROS plugin skeleton(ROS skeleton插件通信)
3.ROS interfaces developed by others(第三方开发的ROS interfaces通信)
其中,第一种是官方提供并推荐的方式,第二种在github中可以找到,最后一种是ros_wiki上提供的。目前,还有ROS2这种更新型的方式。
http://www.v-rep.eu/downloads.html.
官网:
任何一款软件或插件我们一开始尽量不选择最新或最旧版本,找个中间的一般兼容性以及性能会更好。
书上使用的环境要求(系统版本+ROS版本+V-rep版本)Ubuntu14.04+indjgo+V-rep 3.4.0 EDU
最初我使用的时Ubuntu16.04+kinetic+CoppeliaSim 4.0 EDU(在3.6.2 versions后V-REP改名为CoppeliaSim),按照书上源码编译仿真都可以执行,但联合实验时就发生odom没有接受到仿真模型所发送的数据。通过对比CoppeliaSim4.0与V-rep 3.5.0两者场景模型上的Lua程序,发现所对应ROSInterface接口的函数都已经更换,猜想可能就是因为版本的问题。之后更换过3.6.0和3.6.1版本,发现安装路径下没有compiledRosPlugins文件夹,就需要自己编译libv_repExtRosInterface.so库,果断更换3.5.0版本。结果不出所料,直接运行即可模拟。
另外需注意的:每个版本都有EDU、Play版本,Play版本是简介版的里面只有两个机器人例子,除此之外要自己添加,而EDU里有完整的场景和模型。
下载后得到gz、xz等压缩格式,使用tar -Jxf xxx.xz解压 进入解压后文件使用./coppeliasim.sh指令即可进入GUI界面。
接下来可能在终端会发现RosInterface没有load成功,这时就需要将 /VREP/compiledRosPlugins 中的libv_repExtRosInterface.so库复制到/VREP下后,先执行roscore命令再执行./vrep.sh或./coppliasim.sh即可。
参考博文:
https://blog.csdn.net/qq_37994458/article/details/83932155.
https://blog.csdn.net/qq_30637919/article/details/88604372.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。