WSL (Ubuntu 18.04 LTS) 安装ROS,可运行Rviz和Gazebo

2 篇文章 0 订阅

WSL (Windows Subsystem for Linux) 非常好用,但是如何在里面安装ROS并成功使用呢?这篇博客会详细告诉你。

WSL (Ubuntu 18.04 LTS) 安装ROS,可运行Rviz和Gazebo

1. 安装WSL(若没有安装)

可以根据这篇教程安装,提醒下如果是国内用户最好换一下镜像源,更新和安装速度更快,该教程也有讲到:https://blog.csdn.net/kidcad/article/details/99445957?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase

因为现在Ubuntu已经更新到20.04 LTS focal版本了,Windows Store里面默认安装的Ubuntu是最新版也即20.04 LTS版本,如果想要安装以前的版本,那么就可以安装带版本号的版本,如下图的Ubuntu 18.04 LTS。

这是我目前的WSL版本:

顺便推荐用Windows Store里面的Terminal,很好看很好用,我目前用的就是这个。然后可以根据这个教程,把Windows Terminal添加都右键菜单,并cd到指定位置:https://blog.csdn.net/Jioho_chen/article/details/101159291

2. 安装ROS

因为这个WSL是Ubuntu 18.04 LTS,所以安装ROS的过程跟在Ubuntu 18.04 LTS上面安装是一样的,可以根据官方ROSWIKI的教程:http://wiki.ros.org/melodic/Installation/Ubuntu.,如果熟悉ROS的安装,安装完成后可以直接跳到第三节.。

2.1 确定版本

注意不同Ubuntu版本对应不同的ROS版本,18.04 bionic对应的是melodic,其他的版本对应如下(图片截取自http://wiki.ros.org/Distributions):
在这里插入图片描述
不过不用太在意,因为添加源的时候是用宏根据Ubuntu版本自动添加的。

2.2 添加源

如果是国内用户可以按照以下方法,替换国内镜像源再进行安装。

具体就是当在执行这个语句的时候(添加官方源的时候):

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

改为国内的源,比如中科大的镜像源:

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'

或者清华的镜像源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

其余都一样了。

2.3 设置密匙Key

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

2.4 安装

首先进行一次更新,然后一般都安装桌面完整版(Desktop-Full),除了包含ROS的基础功能(核心功能包、构建工具和通信机制)外,还包含丰富的机器人通用函数库、功能包(2D/3D感知功能、机器人地图建模、自主导航等)以及工具(rviz可视化工具、gazebo仿真环境、rqt工具箱等):

sudo apt-get update
sudo apt-get install ros-melodic-desktop-full

如果你是其他版本的Ubuntu,那么就需要替换 melodic 为其他对应版本号。

2.5 环境配置

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

2.6 安装依赖以及初始化rosdep

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo rosdep init
rosdep update

如果你在执行 rosdep init 过程中出现以下错误

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

这是由于raw.githubusercontent.com被墙,程序无法下载相应的文件导致的。解决方法就是要使得raw.githubusercontent.com能够被正常访问。由于这个网站被墙的方式是DNS污染,所以我们只要能够找到这个网站的正确ip就可以了。我们可以去https://site.ip138.com/raw.githubusercontent.com/查询IP,比如最近raw.githubusercontent.com在日本的IP就是151.101.108.133.

我们把

151.101.108.133 raw.githubusercontent.com

添加到自己电脑的hosts文件里面就行,文件路径为 /etc/hosts

20210809 更新

现在上面这个方法好像不可用了,有一个很稳定的方法:可以试一下连接手机热点下载或者连接手机USB用手机当路由器

2.7 检测

roscore 指令试一试是否安装成功,若出现如下则成功:

$ roscore
... logging to /home/def/.ros/log/f75f215c-b854-11ea-8eb4-54e1ad5912f7/roslaunch-DESKTOP-7MMULM3-419.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://DESKTOP-7MMULM3:54367/
ros_comm version 1.14.5


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.5

NODES

auto-starting new master
process[master]: started with pid [429]
ROS_MASTER_URI=http://DESKTOP-7MMULM3:11311/

setting /run_id to f75f215c-b854-11ea-8eb4-54e1ad5912f7
process[rosout-1]: started with pid [440]
started core service [/rosout]

3. 安装Xserver,用于WSL的图形化显示

如果要在WSL上面运行图像化程序,需要安装一个Xserver,可以安装VcXsrv,链接:https://sourceforge.net/projects/vcxsrv/

安装完成后,需要在WSL里面config一下:

sudo vim ~/.bashrc

在末尾添加以下内容

export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=
export LIBGL_ALWASY_SOFTWARE=1

添加 LIBGL_ALWAYS_INDIRECT= 这个很奇怪的操作是我在这个论坛讨论上看到的,很玄学的问题,不加上去就不能正常显示ROS的图形化输出。

完成后ESC再输入:wq保存退出,然后记住 source

source ~/.bashrc

在Windows下面运行XLanuch,将 Display Number 改为0
image-20200612160041639
Native OpenGL 取消掉

其他就一路默认然后结束。

4. 运行例程

4.1 运行小乌龟

现在我们可以运行图形化程序了,所以就试一试经典的小乌龟。

首先确保运行了第三节的XLaunch且配置正确。

依次在不同的terminal窗口运行:

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key

然后在 turtlesim turtle_teleop_key 的窗口按方向键,小乌龟顺利跑起来了:

4.2 运行Rviz

完美运行,虽然稍微有点延迟和卡顿,或许是我电脑有点垃圾的原因。

4.3 运行Gazebo

完美运行
在这里插入图片描述

5. 其他问题

关于ROS找不到package的问题:
~/.bashrc 里面添加相应路径

source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src

然后记得source一下,摘自https://blog.csdn.net/hanhanmaimai/article/details/78705672.

6. 参考

本文部分内容参考自https://janbernloehr.de/2017/06/10/ros-windows.

  • 18
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值