目录
- 前言
- 安装步骤
- 1 设置编码
- 2 添加ROS2软件源(从哪去下载ros2相关软件)
- 报错
- 解决方法
- 3 安装
- 报错
- 解决方法1
- 解决方法2
- 报错
- 4 设置环境变量
- 5 Ros2 测试
- Hello World 发送和监听
- 小海龟键盘控制
- 成功 Hello World 发送和监听界面
- 成功控制小海龟界面
前言
本人也是初学者,此文章配合B站视频使用,视频链接:【古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统】,为了方便自己做笔记和大家复制命令,写下此文。
官方安装文档: Ubuntu 安装 ROS2 指南
安装步骤
1 设置编码
#查看编码
locale
# 更新软件源
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
2 添加ROS2软件源(从哪去下载ros2相关软件)
# 下载软件源和密钥的指令
sudo apt update && sudo apt install curl gnupg lsb-release
# 设置下载软件源的密钥(有该密钥才可以访问ros2的软件源)
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 配置ros2软件源,把ros2软件源添加入系统列表
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
报错
第二步可能会报错 CurL: Failed to connect to raw.githubusercontent.com port 443 after 48 MS: Connection refused 或者 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
解决方法
原因是ip地址的问题,需要进行重新映射,参考文章:完美解决 Failed to connect to raw.githubusercontent.com port 443 …
3 安装
# 扫描软件源地址
sudo apt update
# 更新软件包
sudo apt upgrade
# 桌面软件安装,上位机可视化软件等
sudo apt install ros-humble-desktop
报错
第三步报错 E: Unable to locate package ros-humble-desktop,
解决方法1
需要参考官方文档执行下方的两行命令,重新进行第2步添加ROS2软件源的所有步骤
sudo apt install software-properties-common
sudo add-apt-repository universe
解决方法2
把下面的镜像源手动加入 sources.list,重启再试试
# 用 gedit 打开 sources.list 文件
sudo gedit /etc/apt/sources.list
# 重启虚拟机
reboot
复制下方的镜像源
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc,edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-back
报错
ros-humble-desktop安装最后输出如下,有个包启动失败,但是貌似没啥影响
..
Setting up ros-humble-ros-core (0.10.0-1jammy.20240728.225838) ...
Setting up ros-humble-ros-base (0.10.0-1jammy.20240730.154319) ...
Setting up ros-humble-desktop (0.10.0-1jammy.20240730.174502) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
W: Tried to start delayed item http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 python3-toml all 0.10.2-1, but failed
4 设置环境变量
# 只在当前终端生效,对新开的终端无效
source /opt/ros/humble/setup.bash
# 对多终端生效,重启不会失效
echo"source /opt/ros/humble/setup.bash">> ~/.bashrc
5 Ros2 测试
Hello World 发送和监听
# 发送命令(终端1)
ros2 run demo_nodes_cpp talker
# 监听命令(终端2)
ros2 run demo_nodes_cpp listener
小海龟键盘控制
# 开启界面命令(终端1)
ros2 run turtlesim turtlesim_node
# 控制窗口命令(终端2)
ros2 run turtlesim turtle_teleop_key