ubuntu22.04-ROS2-humble安装

前期准备

  1. 修改Ubuntu Hosts文件:这项工作非常重要,如果不修改,ROS 2 GPG key无法安装,无法进行ROS2的安装。(可能跟网络限制有关,也许哪天就不用添加这个hosts了)

sudo gedit /etc/hosts

在打开的gedit上添加hosts如下,记得保存:

185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com

安装步骤

1. 区域设置

打开终端, 输入:

locale

显示当前系统的区域设置 为保证顺利安装,需要进行区域设置:在终端中执行

sudo apt update && sudo apt install locales # 更新软件包列表并安装区域设置包

sudo locale-gen en_US en_US.UTF-8 # 生成en_US.UTF-8的区域设置包

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 # 强制设定区域设置为en_US.UTF-8,默认设定区域设置为en_US.UTF-8

export LANG=en_US.UTF-8 # 设置环境变量LANG=en_US.UTF-8

2. 添加源

源是指可以获取软件的地址。安装ROS2之前添加源的目的是告诉Ubuntu系统在哪里下载ROS2。ROS2官方提供的添加源的终端操作步骤如下,打开终端,输入以下指令:

sudo apt install software-properties-common # 安装添加源的工具

sudo add-apt-repository universe # 添加universe源仓库

sudo apt update && sudo apt install curl gnupg lsb-release #更新软件包列表并安装curl,pnupg,lsb-release

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg # 授权GPG密钥

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 # 添加ros2 apt 存储库到源列表中

注释:curl是利用资源地址进行数据或者文件传输的工具。pnupg是加密文件工具。lsb-release是Linux 标准基础版本报告工具,可以帮助识别正在使用的 Linux 发行版以及它们对 Linux 标准基础的兼容性。 echo指令用于向终端设备上输出字符串,ehco的重定向:echo " "> 文件路径,将双引号中的内容覆盖到对应的文件中。Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件

出现错误:

W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654 E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.

有可能ROS 2 GPG key安装有问题,或者上面说的hosts文件修改有问题,检查hosts文件,确保hosts已经添加相关映射,然后再在终端上执行以下命令:

提示:如果上述命令执行失败,通常是由于 DNS 解析失败导致的, 你可以使用 nslookup 命令查询 raw.githubusercontent.com 的域名信息, 并将域名及其 IP 地址填到 /etc/hosts 文件进行手动解析。(参考 GitHub 无法读取远程仓库) [[https://getiot.tech/zh/github/github-errata-port-443-connection-refused/|无法读取远程仓库]]

然后将存储库添加到系统的软件源列表中。

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 sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

3. 执行安装指令

以上步骤进行完后,就可以进行安装了。打开终端,输入以下指令:

sudo apt update # 更新软件包列表

sudo apt upgrade # 将软件包升级到最新版本

sudo apt install ros-humble-desktop # 安装ros2的humble桌面版本

sudo apt install ros-humble-ros-base # 安装ros2 humble基础的通信库、消息包、指令工具

sudo apt install ros-dev-tools

ROS2安装的默认目录在/opt/ros/下,根据版本的名字进行区分。我们安装的是Humble版本的ROS2,所以安装目录在/opt/ros/humble下。

4. 设置环境变量

为了让ROS2能够找到功能包,还需要设置环境变量。打开终端,输入以下指令:

echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc# 设置始终执行该脚本文件,使ros2的软件包可在所有打开的新终端中使用

注释:

shell是命令语言解释器,终端程序执行时会自动调用shell程序,在提示符下输入的每个命令都由shell先解释然后传给Linux内核。shell有多种,bash是Ubuntu系统默认的shell,而.bash文件就是bash的脚本文件。source指令用于执行setup.bash文件。 echo "" >> 文件路径,将双引号中的内容追加到对应的文件中。~ 是指当前用户的home目录,.bashrc是home目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

安装 vscode

sudo apt install snap # 安装snap工具 sudo snap install --classic code # 安装VS Code

卸载

sudo apt remove ~nros-humble-* && sudo apt autoremovesudo rm /etc/apt/sources.list.d/ros2.list

sudo apt update

sudo apt autoremove

sudo apt upgrade

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

武汉星起航:无锡跨境电商加速“出海”,物流升级助品牌全球布局

随着全球化的不断深入,跨境电商作为数字外贸的新业态,正逐渐成为无锡企业拓展海外市场的重要渠道。武汉星起航关注到,近年来,无锡市通过积极推进国际物流枢纽建设,完善海外仓布局,以及各特色产业带的积极参…

19184 传球游戏

这是一个经典的动态规划问题,我们可以定义一个二维数组dp[i][j],其中i表示传球的次数,j表示球当前在哪个同学手里。我们需要找到的是dp[m][1],即球传了m次后又回到1号同学手里的方法数。 我们可以从1次开始,逐次计算每…

老师怎样一键发布期末考试成绩?

期末考试的钟声一响,老师们便开始了紧张的阅卷工作。成绩出来后,他们又面临着一项繁琐的任务——将成绩单逐一私信给每位学生的家长。这不仅耗费了大量时间,也让老师们在繁忙的期末工作中倍感压力。期末老师的工作已经够多够繁琐,…

10款优秀的企业防泄密软件推荐 (干货必看)

在当今日益数字化的商业环境中,企业数据的安全性和保密性显得尤为重要。随着网络攻击和数据泄露事件的频发,越来越多的企业开始关注并投入资源于防泄密软件的使用。本文旨在为读者推荐10款优秀的企业防泄密软件,帮助企业在保护敏感信息方面做…

LabVIEW风机跑合监控系统

开发了一种基于LabVIEW的风机跑合监控系统,提高风机测试的效率和安全性。系统通过自动控制风机的启停、实时监控电流和功率数据,并具有过流保护功能,有效减少了人工操作和安全隐患,提升了工业设备测试的自动化和智能化水平。 项目…

轻松创建对象——简单工厂模式(Python实现)

1. 引言 大家好,又见面了!今天我们要聊的是设计模式中的“万能钥匙”——简单工厂模式。想象一下,如果每次你都得亲自动手创建各种对象,不仅累得像个陀螺,还可能搞得一团糟。别怕,简单工厂模式来拯救你&am…

SciencePub学术刊源 | 7月SCI/SSCI/EI/CNKI刊源表已更新!(内含TOP及CCF推荐)

【SciencePub学术】我处SciencePub学术2024年7月SCI/SSCI/EI/CNKI刊源表已更新!内含多本中科院TOP、CCF推荐以及进展超顺的优质期刊,最快1-3个月录用! 计算机领域重点SCI 环境地质化学领域重点SCI 生物医学领域重点SCI 数学材料领域重点SCI 各…

grpc学习golang版( 二、入门示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写Clie…

不用找了!这个软件自带各行业话术,客服效率飞跃

有一款客服工具软件,不但能吸附聊天窗口,实现图文视频话术的一键发送,还内置了多行业的优质客服话术模板,允许用户直接下载使用,快速构建起适合自身企业的专业客服知识库。 前言 在今天的快节奏商业环境中&#xff0c…

同星TTS系列产品全新亮相:让开发测试变得更简单!

TTS系列产品 如果需要完整地测试 ECU,不仅需要将通信网络连接到测试系统,还需要连接 I/O 接口。同星的TTS测试系统将连接 I/O 通道所需的所有电路组件集成在一个模块中,可以极大地简化测试台架和HIL测试系统的设置,提高搭建和测试…

使用工业自动化的功能块实现大语言模型应用

大语言模型无所不能? 以chatGPT为代表的大语言模型横空出世,在世界范围内掀起了一场AI革命。给人的感觉似乎大模型语言无所不能。它不仅能够生成文章,图片和视频,能够翻译文章,分析科学和医疗数据,甚至可以…

当下环境下如何提升自己以拥抱未来的机会-程序员的自我提升

一、前言 看看今年的行情,无论是国内还是国外,仿佛都没有什么活力,经济下行压力越来越大,企业经营越来越困难。对于程序员的工作机会越来越少。这可能是现阶段乃至几年内的现象。现在是现金为王,拥有其他资产仿佛没有多大的增值空间,经济一片惨淡,消费不活跃,我看到的…

nextTick实现原理及使用场景

1.定义: nextTick是一个在Vue.js中常见的异步更新DOM的机制,它利用JavaScript的事件循环机制以及浏览器的渲染流程来实现延迟执行DOM更新操作。nextTick方法能够将回调函数延迟到下一个DOM更新循环之后执行,确保在DOM更新完成后执行某些操作…

为什么要学习大模型应用开发?原因80%的人都不知道

0 prompt engineer 就是prompt工程师它的底层透视。 1 学习大模型的重要性 底层逻辑 人工智能大潮已来,不加入就可能被淘汰。就好像现在职场里谁不会用PPT和excel一样,基本上你见不到。你问任何一个人问他会不会用PPT,他都会说会用&#x…

已解决java.security.acl.NotOwnerException:在ACL中尝试执行非所有者的操作的正确解决方法,亲测有效!!!

已解决java.security.acl.NotOwnerException:在ACL中尝试执行非所有者的操作的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 用户类和ACL初始化 报错原因 解决思路 解决方法 1. 验证所有者身份 示…

CID引流电商:助力传统电商突破重围实现持续增长

摘要:面临流量成本攀升和市场份额被挤压的挑战,传统电商急需突破重围。CID引流电商通过跨平台引流和精准定位,助力商家实现持续增长,丰富营销手段,创新商业模式。CID引流电商为传统电商的长远发展注入新动力。 在电商…

Navicat报错码:2002 - Can‘t connect to server on localhost‘ (10061)如何解决?

许久没打开数据库,今天一看,怎么数据库连接失败了,网上查找资料后,解决了! 希望能帮到你。 报错码:2002 - Cant connect to server on localhost (10061) 报错场景:Navicat连接数据库时报错 …

[图解] 向量数据库之何谓乘积量化器?

Product Quantization 在前面一节讲解了向量数据库索引相关的内容,那么本节将会讲解其中压缩方法的量化手段:乘积量化器。 简单来说将向量的所有维度划分为多个子空间,每个子空间一部分维度,然后每个子空间独立去找最近距离。例如…

LeetCode-刷题记录-二分法合集(本篇blog会持续更新哦~)

一、二分查找概述 二分查找(Binary Search)是一种高效的查找算法,适用于有序数组或列表。(但其实只要满足二段性,就可以使用二分法,本篇博客后面博主会持续更新一些题,来破除一下人们对“只有有…

【Linux系统】CUDA的安装

今天在安装环境时遇到报错: The detected CUDA version (10.1) mismatches the version that was used to compile PyTorch (11.8). Please make sure to use the same CUDA versions. 报错原因:安装的cuda版本不对应,我需要安装cuda的版本…
最新文章