无需重装,一个命令解决Gazebo 无法启动(非首次安装)问题
环境声明
系统:ubuntu 16.04 双系统,非虚拟机
Gazebo版本:gazebo 7.0.0
Ros版本:kinetic
问题描述
主要表现为上一次Gazebo运行结束,并关闭终端之后,gazebo无法通过以下命令启动
1: gazebo
2:sudo gazebo
3: rosrun gazebo_ros gazebo
问题分析
排除项:
1:上一次还能使用,且没有改变系统环境或引入其它肯能导致冲突的软件包
2: 未改变路径设置
3: 非models 问题导致的gazebo启动慢
所以我们不能简单地按照其它教程卸载重装
可考虑项
1: gazebo 类似于仿真引擎,例如UE4
2: gazebo运行需要clien和server 进行消息互通
解决方案
由以上分析,得出是由于clien 和server 不匹配导致的gazebo无法启动,大概率是上次的sever没有在终端关闭之后随之关闭,而gazebo不允许同时存在多个server。
所以我们的解决方案就是:
1: sudo top 查看当前所有进程
2:找到是否有名为 gzserver的进程,并记下该进程所在行的第一列PID中的数字,此处代号为 a
3:使用 sudo kill a 关闭server,之后,我们会发现Gazebo又能向往常一样运行了。
总结
遇到类似问题,不要急于采取重装的办法,一是费事费力,二是不小心破坏了系统环境变得不偿失。重装治标不治本。此次解决的虽是一个很小的问题,而大多数博客都在翻译外文博客或者直接选择重装,却没有自己的思考。善于思考,不急不躁才能找到最佳的解决方案