安装2

software & update

选择其它 

安装

一、前提准备

  1. 检查操作系统版本

    • 确保你的系统版本是Ubuntu 24.04。你可以通过运行lsb_release -a命令来检查当前的系统版本。
  2. 设置UTF-8支持

    • ROS 2需要UTF-8编码支持。你可以通过以下命令来检查和设置UTF-8编码:
    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  
    locale  # 验证配置
    
  3. 启用Universe存储库

    • Ubuntu 24.04通常会默认启用Universe存储库,但你可以通过以下命令来确认并启用它:
    sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update
    

二、安装ROS 2 Jazzy

  1. 安装所需依赖

    • 运行以下命令来安装curl、gnupg和lsb-release等依赖包:
    sudo apt install curl gnupg lsb-release -y
    
  2. 设置ROS 2软件源

    • 下载ROS 2的GPG密钥并添加到系统中,下载软件源的秘钥:
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    
    • 将ROS 2的软件源添加到系统的源列表中:
    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
    
  3. 更新并安装ROS 2 Jazzy

    • 更新系统的apt存储库信息:
    sudo apt update
    
    • 根据需要选择安装不同的ROS 2版本:
      • ros-jazzy-desktop-full:完整安装,包括所有开发工具和图形界面。
      • ros-jazzy-desktop:较为简化的桌面版本,适合大多数桌面开发。
      • ros-jazzy-ros-base:基本的安装版本,只包含核心功能,适合基础开发。
    • 例如,安装桌面版本:
    sudo apt install ros-jazzy-desktop -y
    

三、配置环境变量

  • 每次打开终端时,都需要设置ROS 2的环境变量。你可以通过以下命令手动设置:
source /opt/ros/jazzy/setup.bash
  • 为了避免每次都要手动设置,可以将此命令添加到~/.bashrc文件中:
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc

四、安装其他开发工具(可选)

  • 更新系统并安装开发工具:
sudo apt update && sudo apt install ros-dev-tools
  • 安装自动补全功能:
sudo apt install python3-argcomplete
  • 安装colcon和pip:
sudo apt install python3-pip python3-colcon-common-extensions

五、测试ROS 2安装

  1. 运行ROS 2示例程序

    • 打开一个新的终端,设置环境变量并运行一个C++发布者节点(talker):
    source /opt/ros/jazzy/setup.bash
    ros2 run demo_nodes_cpp talker
    
    • 打开另一个新的终端,设置环境变量并运行一个Python订阅者节点(listener):
    source /opt/ros/jazzy/setup.bash
    ros2 run demo_nodes_py listener
    
    • 如果talker节点不断发布消息,并且listener节点能够显示接收到的消息,则说明ROS 2安装成功。

问题

E: 软件源 http://packages.ros.org/ros2/ubuntu/ noble 的选项 Signed-By 中含有互相冲突的值:/usr/share/keyrings/ros-archive-keyring.gpg != -----BEGIN PGP PUBLIC KEY BLOCK-----

sudo rm  /etc/apt/sources.list.d/ros2.list

sudo rm /etc/apt/sources.list.d/ros2.list.save

sudo rm  /etc/apt/sources.list.d/ros2.sources 

sudo rm /usr/share/keyrings/ros-archive-keyring.gpg

登录www.ipaddress.com

https://www.ipaddress.com/

往下滚动,查看ip地址

域名和ip地址的映射

sudo vim /etc/hosts

添加以下 

185.199.108.133 raw.githubusercontent.com

gpg Ubuntu 22.04 ros2 humble installing error GPG, libc-bin - ROS Answers archive

sudo apt install ros-jazzy-desktop

下列软件包有未满足的依赖关系:
 libbz2-dev : 依赖: libbz2-1.0 (= 1.0.8-5.1) 但是 1.0.8-5.1build0.1 正要被安装
              推荐: bzip2-doc 但是它将不会被安装
 libdbus-1-dev : 依赖: libdbus-1-3 (= 1.14.10-4ubuntu4) 但是 1.14.10-4ubuntu4.1 正要被安装
 libdeflate-dev : 依赖: libdeflate0 (= 1.19-1build1) 但是 1.19-1build1.1 正要被安装
 libdrm-dev : 依赖: libdrm2 (= 2.4.120-2build1) 但是 2.4.122-1~ubuntu0.24.04.1 正要被安装
              依赖: libdrm-intel1 (= 2.4.120-2build1) 但是 2.4.122-1~ubuntu0.24.04.1 正要被安装
              依赖: libdrm-radeon1 (= 2.4.120-2build1) 但是 2.4.122-1~ubuntu0.24.04.1 正要被安装
              依赖: libdrm-nouveau2 (= 2.4.120-2build1) 但是 2.4.122-1~ubuntu0.24.04.1 正要被安装
              依赖: libdrm-amdgpu1 (= 2.4.120-2build1) 但是 2.4.122-1~ubuntu0.24.04.1 正要被安装
 libgbm-dev : 依赖: libgbm1 (= 24.0.5-1ubuntu1) 但是 24.2.8-1ubuntu1~24.04.1 正要被安装
 libicu-dev : 依赖: libicu74 (= 74.2-1ubuntu3) 但是 74.2-1ubuntu3.1 正要被安装
 liblz4-dev : 依赖: liblz4-1 (= 1.9.4-1build1) 但是 1.9.4-1build1.1 正要被安装
 libmount-dev : 依赖: libblkid-dev 但是它将不会被安装
                依赖: libmount1 (= 2.39.3-9ubuntu6) 但是 2.39.3-9ubuntu6.2 正要被安装
 libnl-3-dev : 依赖: libnl-3-200 (= 3.7.0-0.3build1) 但是 3.7.0-0.3build1.1 正要被安装
 libnl-route-3-dev : 依赖: libnl-route-3-200 (= 3.7.0-0.3build1) 但是 3.7.0-0.3build1.1 正要被安装
 libpcre2-dev : 依赖: libpcre2-8-0 (= 10.42-4ubuntu2) 但是 10.42-4ubuntu2.1 正要被安装
                依赖: libpcre2-16-0 (= 10.42-4ubuntu2) 但是 10.42-4ubuntu2.1 正要被安装
                依赖: libpcre2-32-0 (= 10.42-4ubuntu2) 但是 10.42-4ubuntu2.1 正要被安装
 libpulse-dev : 依赖: libpulse0 (= 1:16.1+dfsg1-2ubuntu10) 但是 1:16.1+dfsg1-2ubuntu10.1 正要被安装
                依赖: libpulse-mainloop-glib0 (= 1:16.1+dfsg1-2ubuntu10) 但是 1:16.1+dfsg1-2ubuntu10.1 正要被安装
 libselinux1-dev : 依赖: libselinux1 (= 3.5-2ubuntu2) 但是 3.5-2ubuntu2.1 正要被安装
 libxft-dev : 依赖: libfontconfig1-dev
 libzstd-dev : 依赖: libzstd1 (= 1.5.5+dfsg2-2build1) 但是 1.5.5+dfsg2-2build1.1 正要被安装
 python3-dev : 依赖: python3 (= 3.12.3-0ubuntu1) 但是 3.12.3-0ubuntu2 正要被安装
 ros-jazzy-demo-nodes-cpp-native : 依赖: ros-jazzy-rmw-fastrtps-cpp 但无法安装它
 ros-jazzy-rcl : 依赖: ros-jazzy-tracetools 但无法安装它
 ros-jazzy-rcl-lifecycle : 依赖: ros-jazzy-tracetools 但无法安装它
 ros-jazzy-rclcpp : 依赖: ros-jazzy-tracetools 但无法安装它
 ros-jazzy-rmw-implementation : 依赖: ros-jazzy-rmw-fastrtps-cpp 但无法安装它 或
                                        ros-jazzy-rmw-cyclonedds-cpp 但无法安装它 或
                                        ros-jazzy-rmw-connextdds 但无法安装它
 zlib1g-dev : 依赖: zlib1g (= 1:1.3.dfsg-3.1ubuntu2) 但是 1:1.3.dfsg-3.1ubuntu2.1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

sudo apt install aptitude
sudo aptitude install ros-jazzy-desktop

交互操作说明

  • 首次提示 “是否接受当前解决方案(不安装)” 时,输入n(不接受)。
  • 后续会显示降级冲突包的方案(如 “降级 libbz2-1.0 从 1.0.8-5.1build0.1 到 1.0.8-5.1”),输入y(接受)。
  • 全程按提示选择 “降级” 相关选项,直到开始安装。

参考

官方教程

Ubuntu (deb packages) — ROS 2 Documentation: Jazzy documentationhttps://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html#system-setup

Ubuntu24.04 + ROS2 Jazzy + Gazebo Harmonic安装教程_ubuntu24.04安装gazebo-CSDN博客文章浏览阅读3.9k次,点赞27次,收藏28次。2025.2.13自用。Ubuntu安装见上篇。目前已无须修改为清华镜像源。如有任何问题,本文在国内亲测,不是镜像源的原因。_ubuntu24.04安装gazebo https://blog.csdn.net/qq_48187848/article/details/145621442?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ECtr-7-145621442-blog-141285787.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ECtr-7-145621442-blog-141285787.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=8

如何在ubuntu24.04安裝jazzy | 鱼香ROS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90216.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90216.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90216.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备虚拟化技术

设备虚拟化技术概述设备虚拟化技术通过软件模拟物理硬件设备,使多个操作系统或应用程序能够共享同一台物理设备。它广泛应用于云计算、服务器整合和测试环境等领域。核心目标是提高资源利用率、隔离性和灵活性。•当接入的用户数增加到原交换机端口密度不能满足接入…

开发避坑短篇(3):解决@vitejs plugin-vue@5.0.5对Vite^5.0.0的依赖冲突

异常信息 # npm resolution error reportWhile resolving:system3.8.8 Found: vite6.2.3 node_modules/vitedev vite"6.2.3" from the root projectCould not resolve dependency: peer vite"^5.0.0" from vitejs/plugin-vue5.0.5 node_modules/vitejs/plu…

k8s快速部署(亲测无坑)

文章目录k8s快速部署(亲测无坑)一、网络划分二、CentOS7设置 标题固定IP和阿里云YUM源三、主机环境配置四、虚拟机的拷贝五、安装docker(每台主机都需要安装)六、安装kubelet,kubeadm,kubectl(每台机器都需要执行)遇到的问题参考文档k8s快速部署&#xf…

简易RAG问答引擎的构建与体验

RAG(检索增强生成)是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息,再将其作为上下文输入大模型生成回答。技术上依赖检索引擎(如向量数据库、BM25)、大语言模型(如 GPT、LLa…

C++11特性学习 Day1

nullptr对于c中null (void*)0,所以在为函数传参传入0时,无法清楚地分辨是int类型的0还是指的是空指针null在C11中清晰的将空指针变为了nullptr,0专指int型的数字0override关键字在子类中对父类的函数的覆写之后加上override关键字&#xff0…

微算法科技(NASDAQ: MLGO)探索优化量子纠错算法,提升量子算法准确性

随着量子计算技术的飞速发展,量子计算机在解决复杂计算问题上的潜力日益显现。然而,量子计算面临的一个重大挑战是量子比特的脆弱性,即量子比特容易受到环境噪声和干扰的影响,导致量子态的塌缩和计算结果的错误。微算法科技&#…

MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉

MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉由于老产品即时通讯私有化软件就是采用MongoDB ,但是版本实在太低,要做大更新,其次针对10年前完美运营的项目来到10年后的现在就不一定行,优雅…

Kotlin 中的单例模式(Singleton)与对象声明

在 Kotlin 中,类描述的是一种通用结构,可以多次实例化,也可以用多种方式实例化。但有时我们只需要单个实例,不多不少。单例模式能帮你更好地组织代码,把相关的方法聚合在一起。 单例模式是什么? 单例模式是…

Shell 编程基础入门从认识到实战

对于刚接触 Linux 或 Unix 系统的开发者来说,Shell 脚本往往是自动化操作的第一道门槛。它不像 Python 那样语法简洁,也不像 Java 那样有完善的面向对象体系,但却能以极少的代码实现强大的系统管理功能。本文将从 Shell 的基本概念讲起&#…

混合遗传粒子群算法在光伏系统MPPT中的应用研究

混合遗传粒子群算法在光伏系统MPPT中的应用研究 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 摘要 本文针对光伏系统最大功率点跟踪(MPPT)问题&#xff0…

机器视觉的布料丝印应用

在纺织印染行业,布料丝印工艺的精度直接决定产品外观质量与市场竞争力。传统丝印设备依赖机械定位与人工校准,面对高密度图案、柔性面料或复杂纹理时,易出现套色偏移、油墨渗透不均等问题,导致良品率波动与生产成本攀升。 随着机…

前端常用类库

常用类库 类库作用 类库可以帮助我们快速实现项目业务的开发与功能的实现, 帮助我们解放劳动力提高生产效率, 前端中的类库与框架都是由原生javascript编写, 提供给其他开发者应用于某一业务环境或者需求。一般有开发者/团队开源维护. 优秀的类库需要具备高度封装可用, 稳定, …

通俗易懂循环神经网络(RNN)指南

本文用直观类比、图表和代码,带你轻松理解RNN及其变体(LSTM、GRU、双向RNN)的原理和应用。什么是循环神经网络 循环神经网络(Recurrent Neural Network, RNN)是一类专门用于处理序列数据的神经网络。与前馈神经网络不同…

【SVM】支持向量机实例合集

基于Java的SVM(支持向量机)实例合集 以下是一个基于Java的SVM(支持向量机)实例合集,包含核心代码示例和应用场景说明。这些例子基于流行的机器学习库(如LIBSVM、Weka、JSAT)实现。 数据准备与加载 使用LIBSVM格式加载数据集: // 加载LIBSVM格式数据 svm_problem pr…

Python100个库分享第38个—lxml(爬虫篇)

目录专栏导读📚 库简介🎯 主要特点🛠️ 安装方法Windows安装Linux/macOS安装验证安装🚀 快速入门基本使用流程HTML vs XML解析🔍 核心功能详解1. XPath选择器2. CSS选择器支持3. 元素操作🕷️ 实战爬虫案例…

imx6ull-系统移植篇17——linux顶层 Makefile(上)

目录 前言 顶层 Makefile 源码简析 版本号 MAKEFLAGS 变量 命令输出 静默输出 设置编译结果输出目录 代码检查 模块编译 设置目标架构和交叉编译器 调用 scripts/Kbuild.include 文件 交叉编译工具变量设置 头文件路径变量 导出变量 make xxx_defconfig 过程 …

OpenCV 官翻6 - Computational Photography

文章目录图像去噪目标理论OpenCV中的图像去噪1、cv.fastNlMeansDenoisingColored()2、cv.fastNlMeansDenoisingMulti()附加资源图像修复目标基础概念代码补充资源练习高动态范围成像(HDR)目标理论基础曝光序列HDR1、将曝光图像加载到列表中2、将曝光序列…

APT32F1732RBT8爱普特微电子 32位MCU国产芯片 智能家居/工业控制 首选

APT32F1732RBT8 爱普特微电子,32位MCU国产芯片一、产品简介APT32F1732RBT8 是爱普特微电子(APT)推出的高性能32位ARM Cortex-M0内核MCU,主频高达48MHz,内置64KB Flash8KB RAM,专为智能家居、工业控制、消费…

Smart Tomcat

本篇博客的内容是教你借助idea中的插件,把tomcat集成到idea中安装 Smart Tomcat 插件搜索下载 ,如果一直处于加载界面,就尝试一下科学上网配置 Smart Tomcat 插件 点击右上角的 "Add Configuration"选择左侧的 "Smart Tomcat" 在 Name 这一栏填写一个名字(…

Linux_shell编写

title: Linux_4 shell编写 shell pwd (/root/A/2025_7/19/myshell) 首先需要设计命令行提示 (MakeCommandLine()) 首先获取相关信息 getenv(“name”) // 获取用户名 const char* GetUserName() {const char* name getenv("USER");if (name …