将Kinetic中的Gazebo7升级为Gazebo9
官方教程 http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install
一、查看所有gazebo7的相关包
$ dpkg -l | grep gazebo7
二、卸载当前已安装的gazebo相关包
$ sudo apt-get remove ros-kinetic-gazebo*
$ sudo apt-get remove libgazebo*
$ sudo apt-get remove gazebo*
参考:http://www.luyixian.cn/news_show_302748.aspx
三、添加源
$ sudo sh -c ‘echo “deb http://packages.osrfoundation.org/gazebo/ubuntu-stable lsb_release -cs
main” > /etc/apt/sources.list.d/gazebo-stable.list’
$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
参考:https://www.linuxidc.com/Linux/2017-03/141505.htm
四、安装新版本gazebo
$ sudo apt-get update
$ sudo apt-get install gazebo9
$ sudo apt-get install libgazebo9-dev
出现以下错误:
无法修正错误,因为您要求某些软件包保持现状
依赖: XXX 但是它将不会被安装
解决方法:
$ sudo apt-get install aptitude
$ sudo aptitude install XXX
给出的解决方案中选择“n”,降级软件包。
参考:https://www.jianshu.com/p/2fe69e76364f
Check your installation
$ gazebo
五、安装gazebo_ros_pkgs
$ sudo apt-get install ros-kinetic-gazebo9-*
以下软件包将被安装:
ros-kinetic-gazebo9-dev ros-kinetic-gazebo9-msgs ros-kinetic-gazebo9-plugins ros-kinetic-gazebo9-ros ros-kinetic-gazebo9-ros-control ros-kinetic-gazebo9-ros-pkgs
其中:
gazebo-ros-pkgs包含用于将ROS和Gazebo连接的封装和工具;
gazebo-msgs包含ROS和Gazebo交互的消息和服务的数据结构;
gazebo-plugins包含用于传感器、执行结构的Gazebo插件;
gazebo-ros-control包含用于在ROS和Gazebo之间通信的标准控制器。
测试
$ roscore #启动 ros master
$ rosrun gazebo_ros gazebo #用rosrun方式启动gazebo
参考:https://blog.csdn.net/SPiriTPIX/article/details/103108073
六、后记
需要注意的是,gazebo升级后,all other software (such as turtlebot_gazebo) must be built from source. 参见:
Which combination of ROS/Gazebo versions to use
Gazebo9 - ROS Kinetic - packages?
重新安装gazebo7
$ gazebo
出现如下错误:
gzserver: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsdformat.so.4: undefined symbol
解决方案:
$ sudo apt-get --reinstall install libignition-math2*