当前位置: 首页 > news >正文

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 命令出现了二进制兼容性问题,通常是由于以下原因导致的:
错误原因分析

  1. 手动替换了系统 curl 可执行文件
  • 你可能从源码编译安装了 curl,并覆盖了系统的版本。
  • 新版本 curl 动态链接库与当前运行环境不兼容。
  1. 系统中存在多个 curl 版本冲突
  • 某些第三方仓库或软件包可能引入了不同版本的 libcurl,造成动态链接库冲突。
  1. 系统依赖损坏(如 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

应该不会再报错

相关文章:

  • 电脑开机提示按f1原因分析及解决方法(6种解决方法)
  • docker-compose——安装redis
  • C语言—再学习(指针)
  • AI 产业化浪潮:从生成智能到星载计算,中国如何重塑全球竞争格局
  • 力扣算法ing(70 / 100 )
  • Python爬虫实战:研究进制流数据,实现逆向解密
  • Protocol Buffers 全流程通俗讲解
  • DHCP协议
  • 基于 NanoDet 的工厂巡检机器人目标识别系统研究与实现​
  • 基于RFSOC ZU28DR+DSP 6U VPX处理板
  • CPS联盟+小程序聚合平台分销返利系统开发|小红书番茄网盘CPA拉新推广全解析
  • 使用matlab进行数据拟合
  • 【操作系统期末速成】①操作系统概述
  • 紫光同创FPGA实现AD9280数据采集转UDP网络传输,分享PDS工程源码和技术支持和QT上位机
  • 基于IMX429-IMX430-IMX432-IMX437等sensor的SLVS桥MIPI透传模组方案
  • DA14531如何在固件中生成与时间相关的mac和版本号
  • 半成品的开源双系统VLA模型,OpenHelix-发表于2025.5.6
  • 【Vue.js 的核心魅力:深入理解声明式渲染】
  • AG-UI:AI 用户交互协议,解决了Agent与前端应用连接和通信的问题
  • 数学复习笔记 8
  • 人民网评:守护健康证的“健康”,才有舌尖上的安全
  • 科学家用AI寻找外星生命
  • 观察|天空之外的战场:官方叙事、新闻与社交平台中的印巴冲突
  • 印度最新发声:对所有敌对行动均予以反击和回应,不会升级冲突
  • 重庆大学:对学术不端行为“零容忍”,发现一例、查处一例
  • 新村回响:一周城市生活