跳到主要内容

Win11 WSL2 Ubuntu20.04 Install ROS2

WSL2 安装 Ubuntu20.04

ROS2 安装

设置语言环境

Ubuntu20.04 默认的语言环境是 C.UTF-8 ,是 C 语言默认的语言环境,字符集排序使用的是传统的字典序

locale

ROS2 需要将语言环境设置为 en-US.UTF-8 ,字符排序使用的是根据 Unicode 规范的字符排序

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale

添加 apt 软件源

  • 启用 Ubuntu Universe 存储库
sudo apt install software-properties-common
sudo add-apt-repository universe
  • 添加 ROS2 GPG 密钥
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

这里会出现链接不上 raw.githubusercontent.com 的问题

到下面的链接,搜索框中输入 raw.githubusercontent.com ,会查询出一组地址

  • 修改 hosts 文件,添加上面查到的地址和域名
sudo gedit /etc/hosts

再次执行

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
  • 添加存储库到软件源列表
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

安装 ROS2

sudo apt update
sudo apt upgrade
备注

Ubuntu20.04 不能从源安装 ros-humble,需要从源码编译,如果要安装 Humble,建议升级为 Ubuntu22.04

  • 安装 ROS2 Foxy Desktop(ROS, RViz, Demo, tutorials)
sudo apt install ros-foxy-desktop python3-argcomplete

测试例程

talker & listener

  • 设置运行环境
source /opt/ros/foxy/setup.bash
  • 执行 C++ 的示例节点 talker
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
  • 再打开一个终端执行 Python 的示例节点 listener
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener

turtlesim

打开终端输入

source /opt/ros/foxy/setup.bash
ros2 run turtlesim turtlesim_node

打开第二个终端输入

source /opt/ros/foxy/setup.bash
ros2 run turtlesim turtle_teleop_key

启动了一个小海龟仿真器,并且可以通过键盘输入操作它的方向

设置 .bashrc

每次打开新终端都需要重新激活 ROS 的环境

  • source /opt/ros/foxy/setup.bash

可以把这一行命令写入 .bashrc 文件中,这样启动终端的时候就会自动加载环境了

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

这样重新打开新的终端,就会自动激活 ROS 环境了

参考