ROS中使用Gazebo的两个天坑

ROS中使用Gazebo的两个天坑

自从离职后就没再写笔记,最近学了很多matlab的东西有空还是应该记录一下。

今天在使用gazebo运行turtlebot_gazebo的playground的时候出现了两个比较严重的问题,在这里记录一下相关信息和解决方案。

报错1:

现象:Gazebo无法加载机器人模型,报错如下:
报错1
然后仔细观察了一下发现是/opt/ros/kinetic/lib/gazebo_ros/spawn_model这个程序跪在yaml上了。明显是Python版本不和导致的问题。
解决方法:升级rosdep,如果是默认安装的kinetic,自带的rosdep是0.12.0之类的,而ros和Python的版本问题在rosdep 0.13.0里有做出过对应修改。
命令:

rosdep update
sudo pip install -U rosdep

报错2:

现象:在虚拟机中运行gazebo后,任何开启仿真深度相机的操作都会导致报错并使gazebo崩溃。报错截图如下:
ROS中使用Gazebo的两个天坑_第1张图片
解决方法:
这是个大坑,首先说这个问题只会在用VMware虚拟环境下运行gazebo7.0才会产生。原因似乎是gazebo7.0使用的openni的版本与虚拟机默认使用的不兼容之类的。。。想详细了解的亲可以从这个帖子进去了解一下,然后里面提供了两种解决思路,一种是下载gazebo的源码,修改gazebo/rendering/Camera.cc文件中Camera::CreateRenderTexture里的fsaa设置,把fsaa设为0,然后重新编译。确实是管用,不过不推荐这种方法。
正确做法在刚刚那个帖子后面一个回复里

TL;DR: I can confirm that installing Gazebo 7.4.0 solves the issue.

操作方法请参照:Gazebo官方安装教程
如此安装上gazebo7的最新版本,也就是7.4.0+的版本,就能够完全解决这个bug了。

结语

这两个bug花了我一天的功夫,事实证明,保持软件更新到最新的版本是有好处的。。。

你可能感兴趣的:(ROS,ROS,报错,Gazebo,虚拟机,VMware)