因为工作调整,所以需要调研机器人常用的仿真软件,并且选出一款能够与ROS进行通信的仿真软件,用于与move_base等对接测试轮式移动机器人导航算法,后期用于软件的回归测试。以前从未接触过仿真相关的东西,要说能凑合沾上边有点意思的可能也就rviz可视化一下,接下来作为小白对这段学习中的一点一滴进行记录,不足之处还望不吝赐教!
下图为早期从wiki[2]上扒下来的仿真软件的一些参数对比图片:(最新编辑的wiki上仿真软件少了很多,现在只有五款。不管怎么着我还是按老的图片来)
根据实际需求采用排除法对以上列表中的仿真软件进行筛选,首先从图1中排除已经不在维护开发状态(Development status
为Inactive
)的 ARS
的软件;其次从物理引擎(Physics engine
)越多越好的角度来说,同等条件下会偏向于选择 Gazebo 和 V-Rep 软件;由图1支持平台角度对Gazebo、V-Rep两款软件对比,更倾向于V-Rep;最终从图3中支持的不同类别机器人角度来说,Gazebo 、V-Rep 和 Webots 会优先选择。(先说明一下,老的V-Rep就是新的CoppeliaSim)
因此最终筛选出 Gazebo 、V-Rep 和 Webots三款软件。其中,Webots是在2018年12月开源的,考虑到资料可能不多而且网上大多比较推崇Gazebo和V-Rep的原因对其未进行深入研究,详见博客[3]。接下来详细对比 Gazebo 和 V-REP 优缺点[1]:
- 与ROS的集成度。Gazebo与ROS完全兼容,是ROS的默认仿真环境,有相应的gazebo_ros节点,而V-REP兼容ROS需要bridge将ros与V-REP连接通信;(个人感觉,V-Rep编译完bridge系统消息服务以及自定义的消息服务都支持,两者目前没发现啥差别)
- 场景模型方面,V-REP集成了大量的常见模型,建模更加简单,且可以直接导入URDF文件,而Gazebo还差很远,没有提供足够的场景模型;(这个确实V-REP很占优势,使得V-REP相对较容易上手,不挫败学习的信心)
- 机器人模型修改方面,V-REP更友好、直观,修改方便;Gazebo无界面化修改方法,需要修改xml相关文件;(一个是GUI修改,一个是xml文件修改,一般人会喜欢GUI多一些)
- CPU占用率方面,Gazebo比V-REP对硬件的要求更高,CPU占用率更高;(目前跑过最低配置的电脑就是阿里服务器吧,4核CPU,8G内存,外加跑自己的代码,没任何问题)
- 系统兼容方面,Gazebo仅支持Linux;V-REP支持Linux、macOS、Windows。
起初因为ROS官网上提到的都是Gazebo,而无V-Rep的影子,所以计划先使用Gazebo进行仿真探索一下,但由于Gazebo在本机上安装升级之后,运行报出各种各样的错误,网上有好些人建议直接重装系统,导致一时半会儿如果想用起来还挺麻烦的(PS: 到现在一直未重装系统,但Gazebo已经正常使用了,感觉应该是有些库依赖,版本不对,Gazebo当时从7升级到8之后就一直报错,版本回归到7还是一样错误。建议安装ros-<rosdistro>-desktop-full之后不要单独随便升级Gazebo)。考虑到V-Rep相对来说要更好上手一些,所以先选择V-Rep搞起来,废话不多说,接下来先介绍V-Rep的安装以及与ROS之间的通信配置。
参考资料:
[1] Nogueira L. Comparative analysis between gazebo and v-rep robotic simulators[J]. Seminario Interno de Cognicao Artificial-SICA, 2014, 2014: 5. 提取码: wdr9
[2] https://en.wikipedia.org/wiki/Robotics_simulator
[3] https://blog.csdn.net/ZhangRelay/article/details/85230140