前言:

前端时间,老师给我们分派任务,我领到了ros与stm32通信,在找资料的,逛论坛的过程中,我有几个小发现,结合上上周,GitHub上排名第二的Windows Terminal,我有想法在Windows上直接使用ROs,Windows已经支持了。然后又看到wsl2预览版也是在6月发布,真正的linux内核,我就想在Windows子系统上玩ros。

1、像安装软件一样安装Ubuntu

因为我们现在在学kinetic,所以我安装Ubuntu16.04版本。
打开Windows商店,搜素Ubuntu,选择Ubuntu16.04版本下载,完成之后,启动,不出意外的话,我们出现问题,博主目前碰到了两个,附解决办法。注意看错误代码。

问题一 error: 0x8007019e

Installing, this may take a few minutes.
WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional corrponent is not enabled.
See https://aka.ms/wslinstall for details.
Press any key to continue.
Please enable it and try again.

解决:控制面板--程序与功能--启动或关闭Windows功能勾选适用于Linux的Windows子系统,重启

问题二 error: 0x80070003

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070003
Error: 0x80070003 ???????????

win+x,应用和功能,找到Ubuntu16.04移动到C盘。就可以正常安装了
设置完用户名和密码,就可以看到,和Ubuntu终端差不多的东西。
Windows10子系统安装Ros(ubuntu16.04)-Awacky

2、安装ros

  1. 我们先换源,中科大的源也不错,阿里源也不错,如果想用的话,你们也可以去找找。
    先备份原文件,后面会有用到。
    sudo cp /etc/apt/sources.list sources.list.bak.bak
    然后修改,这个文件文件里的内容。
    sudo vi /etc/apt/sources.list
    删掉之前的,复制粘贴进去这个。

    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

更新一下

sudo apt-get update

  1. 安装ros
    不知道为啥,使用国内镜子,如果不对的话,请到官网上找。ros官网
    1、)设置你的电脑可以从packages.ros.org接收软件。
    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'
    2、)添加键
    sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
    如果这个error,去ros官网复制最新的键
    3、)安装
    sudo apt-get update
    4、)我默认直接安装的是桌面完整版
    sudo apt-get install ros-kinetic-desktop-full
    5、)初始化rosdep
    因为之前换源的原因,我这块老有问题,更新不上。所以在这儿我们以防万一,备份当前的sources.list,恢复最初的。
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    sudo rm sources.list
    sudo cp /etc/apt/sources.list.bak.bak /etc/apt/sources.list
    接下来继续初始化
    sudo rosdep init
    rosdep update
    6、)环境变量配置
    如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便很多:
    echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    7、)测试安装完成
    roscore
    如果你出现这个,则说明安装到目前为止,已经没有问题了。
    Windows10子系统安装Ros(ubuntu16.04)-Awacky

3、配置图形化页面(通过远程桌面)

咳咳,我们再把源换为阿里。
sudo rm sources.list
sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list

  1. 安装xfce4
    sudo apt-get install xfce4
  2. 安装并配置xrdp
    sudo apt-get install xrdp1.
  3. 设置端口
    sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
  4. 写入会话
    sudo echo xfce4-session >~/.xsession
  5. 重启服务
    sudo service xrdp restart
    好了,接下来我们可以通过远程桌面来访问我们的小Ubuntu了
    首先ifconfig找到ip地址,
    Windows10子系统安装Ros(ubuntu16.04)-Awacky
    win+r 输入 mstsc打开远程桌面连接,计算机 ip:3390 用户名你的Ubuntu名字
    Windows10子系统安装Ros(ubuntu16.04)-Awacky
    点击连接。进入输入密码就成功了。
    Windows10子系统安装Ros(ubuntu16.04)-Awacky