Ubuntu20.04安装ROS2教程

Ubuntu20.04安装ROS2教程

  • ROS 2 安装指南
    • 支持的ROS 2 版本
    • 设置语言环境(Set locale)
    • 设置源(Setup Sources)
    • 设置密钥
    • 安装 ROS 2 包(Install ROS 2 packages)
    • 环境设置(Environment setup)
      • 源设置脚本(Sourcing the setup script)
      • 测试示例(Try some examples)
    • 安装后的下一步(Next steps after installing)
    • 卸载 ROS 2(Uninstall)

在这里插入图片描述

ROS 2 安装指南

支持的ROS 2 版本

Ubuntu20.04所对应的ROS2版本有:foxy、galactic,这里准备安装galactic.

设置语言环境(Set locale)

确保你的系统支持 UTF-8 编码的语言环境。如果你在一个最小化的环境中(例如 Docker 容器),语言环境可能是像 POSIX 这样的最小化设置。我们测试时使用的是以下设置。不过,如果你使用的是其他支持 UTF-8 的语言环境,也应该没有问题。

locale  # 检查 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-8locale  # 验证设置

locale输出:默认环境为en_US.UTF-8默认为en_US.UTF-8,不需要重复设置.

设置源(Setup Sources)

你需要将 ROS 2 的 apt 仓库添加到你的系统中。

通常可以采用两种方式进行设置:软件更新或者手动修改source.list

此处采用软件更新方法:
首先确保 Ubuntu Universe 仓库是启用的。

sudo apt install software-properties-common
sudo add-apt-repository universe

设置最佳服务器,这里设置为aliyun服务器
在这里插入图片描述
更新完成后,执行:

sudo apt-get update

设置密钥

现在使用 apt 添加 ROS 2 的 GPG 密钥。

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 包(Install ROS 2 packages)

在设置仓库之后,更新你的 apt 仓库缓存。

sudo apt update

ROS 2 包是在频繁更新的 Ubuntu 系统上构建的。在安装新包之前,始终建议确保你的系统是最新的。

sudo apt upgrade

桌面安装(推荐):ROS、RViz、演示、教程。

sudo apt install ros-galactic-desktop

ROS-基础安装(精简版,可以上面的版本二选一):通信库、消息包、命令行工具。不包含 GUI 工具。

sudo apt install ros-galactic-ros-base

开发工具:编译器和其他构建 ROS 包的工具。

sudo apt install ros-dev-tools

环境设置(Environment setup)

源设置脚本(Sourcing the setup script)

通过源设置以下文件来设置你的环境。

# 如果你使用的不是 bash,用你的 shell 替换 ".bash"
# 可能的值有:setup.bash, setup.sh, setup.zsh
source /opt/ros/galactic/setup.bash

上述配置,每次开启终端都需运行,或者给当前用户配置永久的环境:

echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc
source ~/.bashrc

测试示例(Try some examples)

如果你上面安装了 ros-galactic-desktop,你可以尝试一些示例。

在一个终端中,源设置文件然后运行一个 C++ talker:

source /opt/ros/galactic/setup.bash # 如果永久配置不需运行
ros2 run demo_nodes_cpp talker

在另一个终端中源设置文件然后运行一个 Python listener:

source /opt/ros/galactic/setup.bash # 如果永久配置不需运行
ros2 run demo_nodes_py listener

你应该看到 talker 表示它正在发布消息,listener 表示它听到了这些消息。这验证了 C++ 和 Python API 都正常工作。太棒了!
在这里插入图片描述

安装后的下一步(Next steps after installing)

继续通过教程和演示来配置你的环境,创建你自己的工作空间和包,并学习 ROS 2 的核心概念。
ROS 2 说明文档:Galactic.

卸载 ROS 2(Uninstall)

如果你需要卸载 ROS 2 或在已经从二进制文件安装后切换到基于源码的安装,请运行以下命令:

sudo apt remove ~nros-galactic-* && sudo apt autoremove

你可能还想移除仓库:

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

以上步骤将帮助你从系统中移除 ROS 2 及其相关的依赖包,并清理不再需要的包。如果你之前添加了 ROS 2 的仓库,还需要删除仓库配置文件并更新系统包列表,以确保系统保持最新状态。

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

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

相关文章

java--反射(reflection)

一、反射机制 Java Reflection (1)反射机制允许程序在执行期借助 Reflection API 取得任何类的内部信息(比如成员变量、构造器、成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到。&#x…

时间序列预测(九)——门控循环单元网络(GRU)

目录 一、GRU结构 二、GRU核心思想 1、更新门(Update Gate):决定了当前时刻隐藏状态中旧状态和新候选状态的混合比例。 2、重置门(Reset Gate):用于控制前一时刻隐藏状态对当前候选隐藏状态的影响程度。…

Java项目-基于springboot框架的智慧外贸系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

小新学习K8s第一天之K8s基础概念

目录 一、Kubernetes(K8s)概述 1.1、什么是K8s 1.2、K8s的作用 1.3、K8s的功能 二、K8s的特性 2.1、弹性伸缩 2.2、自我修复 2.3、服务发现和负载均衡 2.4、自动发布(默认滚动发布模式)和回滚 2.5、集中化配置管理和密钥…

高效改进!防止DataX从HDFS导入关系型数据库丢数据

高效改进!防止DataX从HDFS导入关系型数据库丢数据 针对DataX在从HDFS导入数据到关系型数据库过程中的数据丢失问题,优化了分片处理代码。改动包括将之前单一分片处理逻辑重构为循环处理所有分片,确保了每个分片数据都得到全面读取和传输&…

Python 实现 excel 数据过滤

一、场景分析 假设有如下一份 excel 数据 shop.xlsx, 写一段 python 程序,实现对于车牌的分组数据过滤。 并以车牌为文件名,把店名输出到 车牌.txt 文件中。 比如 闽A.txt 文件内容为: 小林书店福州店1 小林书店福州店2 二、依赖安装 程序依…

TBWeb正式稳定版V3.4.0+AI+MJ绘画+免授权无后门+详细安装教程

TBWeb正式稳定版V3.4.0AIMJ绘画免授权无后门详细安装教程; 运行环境 Nginx1.22 PHP5.7 MySQL7.4 Redis7.0 Node.js(16.19.1) PM2管理器5.6 TBWeb系统是基于 NineAI 二开的可商业化 TB Web 应用(免授权,无后门&a…

【隐私计算】隐语HEU同态加密算法解读

HEU: 一个高性能的同态加密算法库,提供了多种 PHE 算法, 包括ZPaillier、FPaillier、IPCL、Damgard Jurik、DGK、OU、EC ElGamal 以及基于FPGA和GPU硬件加速版本的Paillier版本。 本文我们会基于GPU运行HEU Docker容器,编译打包GPaillier并测…

算法的学习笔记—两个链表的第一个公共结点(牛客JZ52)

😀前言 在链表问题中,寻找两个链表的第一个公共结点是一个经典问题。这个问题的本质是在两个单链表中找到它们的相交点,或者说它们开始共享相同节点的地方。本文将详细讲解这个问题的解题思路,并提供一种高效的解决方法。 &#x…

蓝牙资讯|iOS 18.1 正式版下周推送,AirPods Pro 2耳机将带来助听器功能

苹果公司宣布将在下周发布 iOS 18.1 正式版,同时确认该更新将为 AirPods Pro 2 耳机带来新增“临床级”助听器功能。在启用功能后,用户首先需要使用 AirPods 和 iPhone 进行简短的听力测试,如果检测到听力损失,系统将创建一项“个…

docker run 命令解析

docker run 命令解析 docker run 命令用于从给定的镜像启动一个新的容器。这个命令可以包含许多选项,下面是一些常用的选项: -d:后台运行容器,并返回容器ID;-i:以交互模式运行容器,通常与 -t …

【C++】string类 (模拟实现详解 下)

我们接着上一篇【C】string类 (模拟实现详解 上)-CSDN博客继续对string模拟实现。从这篇内容开始,string相关函数的实现就要声明和定义分离了。 1.reserve、push_back和append 在string.h的string类里进行函数的声明。 void reserve(size_…

JVM(HotSpot):GC之垃圾回收器的分类

文章目录 前言一、串行二、吞吐量优先三、响应时间优先四、常见垃圾回收器使用组合 前言 上一篇,我们学习了分代回收机制 它的主要内容是对JVM内存的一个划分,以及垃圾回收器工作时,区域运作顺序的一个规定。 所以,它是一个规范。…

Spring Boot论坛网站:开发、部署与管理

3系统分析 3.1可行性分析 通过对本论坛网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本论坛网站采用SSM框架,JAVA作为开发语言,是…

智慧楼宇平台,构筑未来智慧城市的基石

随着城市化进程的加速,城市面临着前所未有的挑战。人口密度的增加、资源的紧张、环境的恶化以及对高效能源管理的需求,都在推动着我们寻找更加智能、可持续的城市解决方案。智慧楼宇作为智慧城市建设的重要组成部分,正逐渐成为推动城市可持续…

MATLAB电化学特性评估石墨和锂电

🎯要点 模拟对比石墨电池的放电电压曲线与实验数据定性差异。对比双箔、多相多孔电极理论和锂电有限体积模型实现。通过孔隙电极理论模型了解粗粒平均质量和电荷传输以及孔隙率的表征意义。锂电中锂离子正向和逆向反应速率与驱动力的指数以及电解质和电极表面的锂浓…

Docker 部署 EMQX 一分钟极速部署

部署 EMQX ( Docker ) [Step 1] : 拉取 EMQX 镜像 docker pull emqx/emqx:latest[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器 # 创建目录 mkdir -p /data/emqx/{etc,data,log}# 创建容器 docker run -d --name emqx -p 1883:1883 -p 1808…

「Qt Widget中文示例指南」如何实现半透明背景?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将为大家展示如…

《Linux从小白到高手》综合应用篇:深入理解Linux常用关键内核参数及其调优

1. 题记 有关Linux关键内核参数的调整,我前面的调优文章其实就有涉及到,只是比较零散,本篇集中深入介绍Linux常用关键内核参数及其调优,Linux调优80%以上都涉及到内核的这些参数的调整。 2. 文件系统相关参数 fs.file-max 参数…

Excel 对数据进行脱敏

身份证号脱敏:LEFT(A2,6)&REPT("*",6)&RIGHT(A2,6) 手机号脱敏:LEFT(B2,3)&REPT("*",5)&RIGHT(B2,3) 姓名脱敏:LEFT(C2,1)&REPT("*",1)&RIGHT(C2,1) 参考: excel匹配替换…