ROS2学习(1)-------安装ROS2
- 操作系统:ubuntu22.04
- IDE:Visual Studio Code
- 编程语言:C++11
- ROS版本:2
准备工作
1.确保支持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
出现以下错误,可以忽略
*** update-locale: Warning: LANGUAGE (“zh_CN:zh”) is not compatible with LC_ALL (en_US.UTF-8). Disabling it.
2.设置软件源:确保Universe仓库已经启用,并添加ROS 2的官方GPG密钥和软件源。
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl
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
安装ROS 2
- 更新并安装:
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
这里ros-humble-desktop包括了ROS 2的核心组件以及一些常用的GUI工具。
- 初始化rosdep:如果你打算开发或运行ROS 2应用,rosdep是一个有用的工具。
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
- 环境配置:为了自动设置环境变量,你可以将以下命令添加到你的.bashrc文件中
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证安装
打开一个新的终端窗口,并尝试运行以下命令来验证安装是否成功:
ros2 topic list
如果没有错误信息出现,则说明ROS 2已正确安装并且可以正常使用
错误处理
错误1:
执行以下指令:
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
出现以下错误:
curl: symbol lookup error: curl: undefined symbol: curl_easy_header
说明你的 curl 命令出现了二进制兼容性问题,通常是由于以下原因导致的:
错误原因分析
- 手动替换了系统 curl 可执行文件
- 你可能从源码编译安装了 curl,并覆盖了系统的版本。
- 新版本 curl 动态链接库与当前运行环境不兼容。
- 系统中存在多个 curl 版本冲突
- 某些第三方仓库或软件包可能引入了不同版本的 libcurl,造成动态链接库冲突。
- 系统依赖损坏(如 libcurl3 / libcurl4 混用)
- Ubuntu 22.04 默认使用 libcurl4,如果你手动安装了 libcurl3 或其他版本,可能导致兼容性问题。
✅ 解决方案一:卸载自定义安装的 curl(推荐)
如果你之前从源码或非官方源安装过 curl,请卸载它:
# 查看 curl 安装路径
which curl
# 如果输出类似 /usr/local/bin/curl,说明是手动安装的# 删除手动安装的 curl
sudo rm -f /usr/local/bin/curl
sudo rm -f /usr/local/lib/libcurl.so*
然后确保使用的是系统默认的 curl:
# 安装系统原生 curl(Ubuntu 22.04 默认)
sudo apt install --reinstall curl
✅ 解决方案二:修复 libcurl 库依赖
运行以下命令修复 libcurl 的依赖关系:
# 查看当前 libcurl 安装情况
dpkg -l | grep libcurl# 确保安装的是 libcurl4(Ubuntu 22.04 推荐)
sudo apt install --reinstall libcurl4
# 移除旧版本(如果有)
sudo apt remove libcurl3
✅ 解决方案三:清理缓存和重新安装 curl
sudo apt purge curl
sudo apt autoremove
sudo apt install curl
✅ 验证是否修复成功
curl --version
# 应该正常输出 curl 的版本信息,比如:
# curl 7.81.0 or similar
然后再运行你原来的命令:
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
应该不会再报错