windows使用wsl2+ubuntu20.04安装ROS1的步骤
1.首先确保电脑CPU能虚拟化并且打开如下功能


2.安装wsl2与ubuntu20.04
2.1安装WSL2
- 在power shell里输入wsl–install,安装完成后显示`适用于 Linux 的 Windows 子系统已安装
- 输入wsl.exe –update,进度条完成后即可
1 | wsl --install |

2.2安装Ubuntu20.04
- 直接在store安装,选择20.04版本

- 安装完成后,打开终端输入
1 | wsl -l -v |
看是否有如下输出
注意:如果VERSION显示的是1.那么输入以下命令将wsl1切换成wsl2
1 | wsl --set-version Ubuntu-20.04 2 |
- 切换成功后,在终端打开Ubuntu20.04

首次登录要输入用户和密码,打开后显示
安装完成
3.安装ROS
3.1必要准备
- 在命令行输入以下命令,修改镜像
1 | sudo vim etc/apt/sources.list |
- 输入ggdG删除原本镜像源

- 粘贴中科大镜像源
1 | deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse |

- 输入wq保存退出
- 在终端输入中科大的安装镜像源
1 | sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' |
**
- 设置key
1 | sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 |

- 更新apt
1 | sudo apt update |
这里出现网络问题
解决办法
- 1.在ubuntu中执行
1 | sudo vim /etc/wsl.conf |
在wsl.config文件中另外加入
1 | [network] |
- 2.删除并手动创建 /etc/resolv.conf
1 | sudo rm /etc/resolv.conf |
- 3.写入
1 | nameserver 223.5.5.5 |
- 4.重启wsl,在powershell里输入wsl – shutdown重启
更新成功
3.2安装ROS
- 输入命令,安装可能费时
1 | sudo apt install ros-noetic-desktop-full |
- 注意,笔者并没有遇到安装不上问题,不知道是运气好还是啥,测试过很多次,都是一次成功

- 配置环境变量
1 | echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc |
- 安装依赖
1 | sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential |

3.3初始化
1 | sudo rosdep init |
如下输出则安装成功

4.测试ROS
- 打开三个终端

- 每个终端分别输入
1 | roscore(启动核心) |
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key:
将光标移动到执行key的终端,通过方向键控制小乌龟的行动
测试完成