Ubuntu 22.04 安装 ROS2 Humble

前言

经过2次安装测试,下面的步骤可行,其中有一些指令还不理解,希望日后能明白。

以下的指令均在 terminal 中执行。

第一步:设置 UTF-8

locale # check for UTF-8

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 # verify settings

可以一行一行复制粘贴执行,也可以整段一起执行。

第二步:下载 ROS2 的 GPG Key

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

下载完就可以在 /usr/share/keyrings/目录下看到 ros-archive-keyring.gpg

第三步:设置源

下面3个源,选择一个即可,建议选择阿里源:

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 # 官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.aliyun.com/ros2/ubuntu/ jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null # 阿里源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null # 清华源

第四步:更新软件表

sudo apt update
sudo apt upgrade

第五步:安装 ROS2

sudo apt install ros-humble-desktop

这一步会需要较长的时间。

第六步:设置环境变量

source /opt/ros/humble/setup.bash  # 只能让当前 ternimal 认识 ROS2 指令
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc  # 添加到shell启动脚本,任意开启 ternimal 都可认识 ROS2 指令

到这里 ROS2 就安装完成了。


下面运行 ROS2 的 2 个经典 demo,验证一下安装是否完成。

第一个:消息的订阅、发布

1,打开一个 terminal ,执行

ros2 run demo_nodes_py listener # 开启一个订阅者

2,再打开一个 terminal,执行

ros2 run demo_nodes_cpp talker # 开启一个发布者

然后就能看到两个terminal 的通讯了:

第二个:小乌龟的轨迹

1,打开一个 terminal ,执行

ros2 run turtlesim turtlesim_node # 打开一个乌龟模拟节点

2,再打开一个 terminal,执行

ros2 run turtlesim turtle_teleop_key # 开启一个按键控制器

鼠标焦点落在第二个 terminal 上,按键盘的上下左右或者G/B/V/C/D/E/R/T,发现可以控制模拟器里小乌龟运动。

猜测这个原理跟第一个 demo 类似,就是一个节点发数据,另外一个节点接收数据。

发表评论

Powered by WordPress | Theme Revised from Doo

苏ICP备18047621号

Copyright © 2017-2024 追光者博客