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

【ROS】Ubuntu22.04安装ROS2(Humble Hawksbill)

0、版本说明

Ubuntu22.04对应的ROS2的版本为Humble Hawksbill(ros-humble)
如果不是在Ubuntu22.04中安装ROS,请参考下面Ubuntu和ROS的版本对应关系
在这里插入图片描述

1、更新apt包列表

$ sudo apt update

2、设置编码

将ubuntu环境语言编码设置为en_US en_US.UTF-8(疑问:不设置会咋样?)
安装locales用来配置ubuntu语言环境
locale-gen:配置语言环境并生效
update-locale:将更新语言环境配置

$ 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

3、设置DNS

首先设置DNS,否则报错

curl: Failed to connect to raw.githubusercontent.com port 443 after 1000 ms: Connection refused

1)登录网站:https://www.ipaddress.com
2)在打开的网站中将“raw.githubusercontent.com”复制到查询栏中进行搜索,可以看到域名对应的IP地址信息
3)修改i/etc/hosts

~$ cat /etc/hosts
127.0.0.1	localhost
185.199.108.133 raw.githubusercontent.com

4)重启电脑,使DNS生效

4、添加ROS2的下载源

$ sudo apt update && sudo apt install curl gnupg lsb-release 
$ 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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

5、安装ROS2

大约需要2G空间

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ros-humble-desktop

6、配置环境变量

执行ros的环境脚本

$ source /opt/ros/humble/setup.bash

将上述命令写入~/.bashrc,这样每次打开终端就会自动执行配置ROS2环境的脚本,不需要手动执行了

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

7、测试

7.1 Hello World

测试目的:测试ROS2最为重要的底层通信系统DDS是否正常
终端1中执行如下命令:

$ ros2 run demo_nodes_cpp talker

打印信息如下:

[INFO] [1684480670.409470994] [talker]: Publishing: 'Hello World: 1'
[INFO] [1684480671.409418842] [talker]: Publishing: 'Hello World: 2'	
[INFO] [1684480672.409424762] [talker]: Publishing: 'Hello World: 3'
……

终端2中输入:

$ ros2 run demo_nodes_py listener

打印信息如下:

[INFO] [1684480681.849102662] [listener]: I heard: [Hello World: 12]
[INFO] [1684480682.410752673] [listener]: I heard: [Hello World: 13]
[INFO] [1684480683.410712416] [listener]: I heard: [Hello World: 14]
……

如果系统正常,将会在终端2中看到“I heard: [Hello World: xx]”

7.2 小海龟

终端1中输入:

$ ros2 run turtlesim turtlesim_node

令将启动一个蓝色背景的海龟仿真器

终端2中输入:

$ ros2 run turtlesim turtle_teleop_key

将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动了
在这里插入图片描述

相关文章:

【ROS】Ubuntu22.04安装ROS2(Humble Hawksbill)

0、版本说明 Ubuntu22.04对应的ROS2的版本为Humble Hawksbill(ros-humble) 如果不是在Ubuntu22.04中安装ROS,请参考下面Ubuntu和ROS的版本对应关系 1、更新apt包列表 $ sudo apt update2、设置编码 将ubuntu环境语言编码设置为en_US en_…...

【ChatGPT】体验一下ChatGPT

体验一下ChatGPT 可以帮你写代码、写邮件、编故事的神器 最近OpenAI 发布了备受期待的原型通用 ChatGPT,这是一种基于对话的 AI 聊天界面,算是GPT-3(Generative Pre-trained Transformer 3)的继承者,今天记录一下体验的过程,以前…...

Android 串口通信

可以使用开源usb-serial-for-android 库进行串口通信 添加 usb-serial-for-android 依赖项到项目中。在项目的 build.gradle 文件中添加以下内容: dependencies {// 其他依赖项...implementation com.github.mik3y:usb-serial-for-android:3.5.1// 其他依赖项... …...

Python3 日期和时间

Python 3 提供了强大的日期和时间处理模块,名为 datetime。它可以用于执行日期和时间的各种操作,包括创建、格式化、比较和计算等。 下面是一些常用的日期和时间操作的示例: ### 获取当前日期和时间 要获取当前日期和时间,可以使…...

Go 爬虫三种框架的基本使用介绍

目录 Go 爬虫三种框架的基本使用介绍1. Colly2. Golang.org/x/net/html3. GoQuery Go 爬虫示例使用Go中的http包进行爬虫Step 1:导入包Step 2:发送请求Step 3:读取响应Step 4:解析HTMLStep 5:总结 使用Colley爬虫 结语…...

python实现斐波那契数列详解(黄金分割)

今天给各位分享一个常见的题目:求斐波那契数列前n项分别是什么(也称为黄金分割数列),整个数列需满足一个条件即第三项的值等于前两项相加的和,如第一项是1、第二项是1、第三项是2、第四项是 3、第五项是5... 满足公式…...

整合营销和内容营销哪个好,有什么区别

如果想做自媒体运营,不管是品牌还是个体从业者,其实都要学会如何去营销。这个也分为很多种方式,比如整合营销和内容营销。今天,来和大家谈谈整合营销和内容营销哪个好,如何才能将他们应用好? 要想回答这个问题&#x…...

C# | [二进制字符串] 与 [字节数组] 互相转换,一行代码就搞定! - CodePlus系列

C#二进制字符串与字节数组互相转换 文章目录 C#二进制字符串与字节数组互相转换前言示例代码实现思路扩展方法说明引用CodePlus库结束语 前言 开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库,但是它们的使用有时候会比…...

Java 细节汇总(5)-Comparator#compare() 升降序确定

文章目录 1. Comparator#compare() 升降序确定升序分析 1. Comparator#compare() 升降序确定 Java 语言中 Comparator#compare(T o1, T o2) 方法的实现可以决定排序元素的升序降序,但是许多人对升降序如何确定完全没有概念。要理解升降序是如何确定的,首…...

湖北棒球发展报告·棒球5号位

湖北棒球的发展报告与办法应该考虑以下几个因素: 1. 借助政策支持。湖北棒球要想发展,政策支持是必不可少的。政府需要提供足够的资金和政策支持,以帮助俱乐部提高运营能力和加强比赛的组织。获得政府的政策支持,可以促进湖北棒球…...

使用Eclipse 进行远程 Debug 调试

Eclipse远程调试 Java自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。 由于部署环境的差异性&am…...

记第一次出差得出的经验

文章目录 1:背景2:过程3:心得 1:背景 由于上家公司的某种原因,离职来到了新公司,内中原因不足道也。新公司业务方向暂且不说,入职后,个人看着以前的产品视频学习了不到两周&#xf…...

第12章:视图

一、视图 1.常见的数据库对象 ①表table:表是存储数据的逻辑单元,行和列形式存在。列是字段,行是记录。 ②数据字典:系统表,存放数据库相关信息的表。系统表的数据通常是数据库系统维护。 ③约束constraint&#x…...

Word控件Aspose.Words教程:操作 XPS 和 EPS 文档

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API 支持流行文件格式处理,…...

java并发-Exchanger

## 简介 Exchanger是Java并发包中提供的一个用于线程间数据交换的工具类。它允许在两个并发任务之间进行交换对象,当第一个任务调用exchange()方法时,它会阻塞等待另一个任务也调用这个方法,然后双方交换对象,并返回结果&#xf…...

毫米波雷达系列 | 传统CFAR检测(自适应类)

毫米波雷达系列 | 传统CFAR检测(自适应类) VI-CFAR [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dV34CKJt-1684215839850)(毫米波雷达系列 传统CFAR检测(自适应类).assets/image-20230516131206695…...

【2023/05/19】NFA

Hello!大家好,我是霜淮子,2023倒计时第14天。 非确定有限状态自动机(NFA)是一种模拟复杂系统行为的数学模型 目录 一、基本概念和理论 二、优点和缺点 三、应用场景 四、问题和挑战 五、重要性、作用和使用价值 …...

汽车功能安全

前言 近些年来,功能安全在汽车传统底盘域和动力域的应用已较为成熟,各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下,现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要,功能安全…...

【Python】数据分析与可视化实践:收支日统计数据可视化的实现

Python数据分析与可视化实践:收支日统计数据可视化的实现 Author:萌狼蓝天 Date:2023-5-7 数据读入与基本处理 上图是原始数据的一部分,存放于excel中,首先使用pd读入数据。读入数据后,删除不是收入&#x…...

Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?

文章目录 1 halcon中XLD的概念与应用1.1 halcon中什么是XLD?1. 2 XLD相关算子1.2 XLD的应用1.2.1 生成XLD的操作1.2.2 选取特定xld1.2.3 3.3 XLD的合并操作2 select_shape_std 和 select_shape_xld区别2.1 select_shape_std 算子介绍2.2 select_shape_xld算子介绍2.3 select_s…...

龙芯k - 走马观碑组VLLX驱动移植系

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

终极命令行工具指南:如何高效使用IPATool下载iOS应用包

终极命令行工具指南:如何高效使用IPATool下载iOS应用包 【免费下载链接】ipatool Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store 项目地址: https://gitcode.com/GitHub_Trending/ip/ipato…...

【大模型版权保护实战指南】:20年AI工程专家亲授3大不可绕过的法律+技术双轨防护体系

第一章:大模型版权保护的工程化挑战与战略定位 2026奇点智能技术大会(https://ml-summit.org) 大模型版权保护已远超法律文本层面的权属界定,演变为融合数据溯源、训练过程审计、模型水印嵌入与推理行为可验证性的系统性工程问题。当千亿参数模型在跨机…...

终极指南:如何让Mac外接鼠标获得触控板般丝滑滚动体验

终极指南:如何让Mac外接鼠标获得触控板般丝滑滚动体验 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently f…...

Qwen3-VL-8B企业级应用:软件测试中的自动化UI验证与报告生成

Qwen3-VL-8B企业级应用:软件测试中的自动化UI验证与报告生成 1. 引言 做软件测试的朋友,特别是搞UI自动化那块的,估计都遇到过类似的头疼事。每天跑几百上千个测试用例,截图存了一大堆,最后还得人工一张张去看&#…...

如何快速上手p5.js Web Editor:免费在线创意编程的终极指南

如何快速上手p5.js Web Editor:免费在线创意编程的终极指南 【免费下载链接】p5.js-web-editor The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginne…...

DanmakuFactory:解决弹幕格式兼容性难题的专业转换工具

DanmakuFactory:解决弹幕格式兼容性难题的专业转换工具 【免费下载链接】DanmakuFactory 支持特殊弹幕的xml转ass格式转换工具 项目地址: https://gitcode.com/gh_mirrors/da/DanmakuFactory 在视频创作和弹幕文化日益普及的今天,不同平台间的弹幕…...

TegraRcmGUI:5分钟搞定Switch注入的终极免费方案

TegraRcmGUI:5分钟搞定Switch注入的终极免费方案 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 还在为Nintendo Switch的RCM模式注入而烦恼吗&a…...

深入解析rviz中基于MVC架构的点云3D坐标拾取机制

1. 为什么rviz没有直接使用OpenGL的坐标拾取API? 第一次接触rviz源码时,我下意识认为它肯定直接调用了gluUnProject这类OpenGL原生API来实现3D坐标拾取。毕竟在常规图形学开发中,这就像喝水一样自然——用现成的API不香吗?但当我…...

Simcenter 3D声学仿真避坑指南:直接法vs模态法,响应计算到底选哪个?(基于SOL 108和SOL 111)

Simcenter 3D声学仿真方法论抉择:直接法与模态法的深度技术解析 当面对一个声学仿真项目时,工程师们常常站在十字路口犹豫不决——是选择直接频率响应法(SOL 108)还是基于模态的频率响应法(SOL 111)&#x…...