前言
本文涉及的环境为:Win10 1809+WSL+Ubuntu 18.03。
问题:从shell启动gazebo,可以打开窗口,可以看到菜单及左边栏。但是visual视口中是黑屏的。
查询并尝试了网上的大多数做法都没解决,最后卸载了ROS自带的gazebo9,重新安装gazebo11,解决了该问题。
为了验证这个方法,我又重新安装了整个ROS与gazebo,并将全过程记录如下:
- 如果您只是想从gazebo9升级至11版本,可以跳转到卸载gazebo9开始阅读。
卸载gazebo11
为进行实验,卸载gazebo11和相关组件。
sudo apt-get remove gazebo11 gazebo11-*
卸载ROS
为进行实验,卸载ROS。
sudo apt-get purge ros-*
安装ROS
添加源,这里我选用中科大提供的ROS源。
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
再添加key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
更新apt
sudo apt-get update
安装ros本体,我用的是完整安装的Desktop版,即desktop-full
sudo apt-get install ros-melodic-desktop-full
desktop-full将安装以下组件:
- ROS
- rqt
- rviz
- robot-generic libraries
- 2D/3D simulators
- navigation and 2D/3D perception
如果使用的是国外的源,则在安装过程中大概率遇到包下载失败的情况,可以尝试下修复丢失包的指令:
sudo apt-get update --fix-missing
安装完成后初始化依赖项
sudo rosdep init
rosdep update
设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
启动ros core验证安装结果
roscore
出现上述的信息代表ros安装成功。按下Ctrl+C键以停止roscore
- 选装包:rosinstall,其实我没装。
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
卸载由ROS安装的gazebo9
卸载gazebo9
sudo apt-get remove gazebo9 gazebo9-common gazebo9-plugin-base libgazebo9:amd64 libgazebo9-dev:amd64 ros-melodic-gazebo-*
卸载完成后用dpkg命令查看gazebo是否已经完成卸载:
dpkg -l | grep gazebo
没卸载干净的话可以尝试使用dpkg --purge清理残余的包:
sudo dpkg --purge gazebo9
安装gazebo11
配置电脑使电脑接受packages.osrfoundation.org,即配置镜像
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
设置key
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
安装gazebo11:
sudo apt-get install gazebo11 -y
- 选装,对于想要在gazebo上进行2次开发的话可以再安装libgazebo11-dev包
sudo apt-get install libgazebo11-dev
运行gazebo验证安装情况(需要先在win10中启动VcXsrv):
gazebo
出现如下画面代表安装成功:
总结
对于gazebo9如何在wsl-ubuntu环境中运行的问题,我尚未找到方法。通过重装gazebo9到11版本则可以绕过上述的问题来使用gazebo。本文的流程对于想卸载、升级或降级到其他版本的gazebo版本在方法上应是相通的只是在命令中的版本号上存在细小的差别。
参考
Github Issue 3368
apt-get –fix-missing做什么以及什么时候有用?
Ubuntu16.04下E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?