ubuntu20.04安装ROS2 详细教程-程序员宅基地

技术标签: ubuntu  ROS  

在这里插入图片描述
1:ROS 系统安装版本选择
ROS 目前主要支持Linux和MacOS系统,新发布的 ROS2 也支持 Windows和RTOS 系统。
对ROS兼容性最好的当属Ubuntu系统。从ROS发布以来,每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,切记不可随便装。
ROS 和Ubuntu之间的版本对应关系:
在这里插入图片描述

从图中看出Ubuntu 20.04 支持的ROS2版本为Foxy,可以从这个网站查看ROS2的各个发行版本的介绍信息。
2:ROS2 系统安装 【ubuntu 20.04】
1):设置编码UTF-8
终端输入:

locale

在这里插入图片描述
图中看出确定支持UTF-8,无需设置。
2):添加源

## 通过检查此命令的输出,确保已启用Ubuntu Universe存储库。
$ apt-cache policy | grep universe
## 输出应如下:
 500 http://security.ubuntu.com/ubuntu focal-security/universe i386 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=i386
 500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=amd64

## 若没有看到像上面这样的输出行,依次执行如下命令:
$ sudo apt install software-properties-common
$ sudo add-apt-repository universe


## 继续执行如下命令:
$ sudo apt update && sudo apt install curl gnupg2 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

如果遇到报错“ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接”
可参考https://www.guyuehome.com/37844
处理方法:

sudo vi /etc/hosts
#####################
127.0.0.1	localhost
127.0.1.1	iron-virtual-machine
###增加下面的解析
185.199.108.133  raw.githubusercontent.com

3)安装ROS2

$ sudo apt update
$ sudo apt upgrade
## 推荐桌面版,比较推荐。
$ sudo apt install ros-foxy-desktop
## 安装时间可能较长,安心等待。

4)设置环境变量

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

至此,ROS2就已经在系统中安装好了。

5)ROS2 示例测试
示例一:
先来试试ROS2最为重要的底层通信系统DDS是否正常吧。
启动第一个终端,通过以下命令启动一个数据的发布者节点:

$ ros2 run demo_nodes_cpp talker

在这里插入图片描述
启动第二个终端,通过以下命令启动一个数据的订阅者节点:

$ ros2 run demo_nodes_py listener

在这里插入图片描述
如果“Hello World”字符串在两个终端中正常传输,说明通信系统没有问题。
示例二:小海龟仿真示例
再来试一试ROS中的经典示例——小海龟仿真器。
启动两个终端,分别运行如下指令:

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

在这里插入图片描述
关于小海龟中蕴藏的ROS奥义,我们在后续教程中将持续探索。
至此,ROS2安装成功。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shenliu128/article/details/127315280

智能推荐

人人开源 获取定时任务CronTrigger出现异常-程序员宅基地

文章浏览阅读2.5k次。人人开源 获取定时任务CronTrigger出现异常报错信息:org.springframework.beans.factory.UnsatisfiedDependencyException:Error creating bean with name ‘scheduleJobController’: Unsatisfieddependency expressed through field ‘scheduleJobService’; nestedexception is org.springf

python获取邮件内容_python 接收邮件获取邮件内容-程序员宅基地

文章浏览阅读1.5k次。收取邮件有两种协议,POP3和IMAP,POP3相对于IMAP功能较少无法对邮件进行更深层次的操作,因此本文使用IMAP协议收取邮件。python提供了很多收邮件的模块,本文使用imaplib来接收邮件。前提需要在邮件箱的设置中打开允许IMAP,不同邮件开启全方式不同,具体开启方式自行百度。(本文使用outlook,默认开启)难点获得邮件不难,难点是如何解析邮件的内容,由于邮件内容的编码是不固定的..._python接收邮件內容

监控zabbix面试题-程序员宅基地

文章浏览阅读1.3w次,点赞25次,收藏396次。目录我们可以用zabbix监控哪些zabbix的主动监控与被动监控配置zabbix自定义监控流程安全组是什么,限制了3306的入规则,客户端还能访问吗Nagio监控?服务器一般需要监控哪些项目? 凭借这些项目如何判断服务器的瓶颈?zabbix监控mysql的io情况是否正常的流程监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。zabbix如何修改其中监控的一台服务器中内存阈值信息,比如正常内存使用到了 80%报**警,我想修改为 60%报警...

理解 asyncio 来构建高性能 Python 网络程序 - Ricequant米筐量化_asyncio网络-程序员宅基地

文章浏览阅读325次。Python 是一门上手快、优雅简洁的编程语言,其多范式、丰富的标准库和第三方库能够让编程人员把精力集中在逻辑和思维方法上,而不用去担心复杂语法、类型系统等外在因素,从而高效地达成自己的编程目标。Python 抽象层次非常高,这帮助我们更好更快地完成编程,但也屏蔽了很多细节,程序员也无法精确控制计算机底层的资源,代码性能优化就变得比较复杂。很多资深的程序员可能会觉得 Python 性能不够好,无法编写高性能的程序,其实这句话也不全对。对于计算密集型的程序,Python 可以通过扩展的形式使得核心计算直接调用_asyncio网络

Java框架--Spring(轻量级容器框架)(声明式事务)_spring容器事务-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏2次。笔记型博客之spring-声明式事务_spring容器事务

1444-DYN04-01RA AB 控制器传感器_1444-dyn04-01ra手册-程序员宅基地

文章浏览阅读861次,点赞15次,收藏19次。总之,1444-DYN04-01RA AB 控制器传感器是一款功能强大、可靠稳定的传感器,适用于各种旋转和往复机械的监测和控制。它的应用可以提高机械的运行效率和安全性,为工业生产和能源领域的发展提供有力支持。此外,1444-DYN04-01RA AB 控制器传感器还具有友好的人机界面,可以方便地进行操作和维护。1444-DYN04-01RA AB 控制器传感器是一款用于监测旋转和往复机械的传感器,可以测量振动和压力等动态输入以及轴位移、偏心和活塞杆沉降等静态输入。_1444-dyn04-01ra手册

随便推点

Less常见命令_less命令怎么跳转最后一行-程序员宅基地

文章浏览阅读2.2k次。pattern: 搜索包含指定模式的文本,可以使用向上或向下箭头浏览搜索结果。less filename: 查看指定文件的内容。Ctrl + g: 显示当前行号和文件名。n: 在搜索结果中跳转到下一个匹配项。N: 在搜索结果中跳转到上一个匹配项。Ctrl + f: 向下滚动一屏。Ctrl + b: 向上滚动一屏。Ctrl + d: 向下滚动半屏。Ctrl + u: 向上滚动半屏。G: 跳转到文件的最后一行。f: 显示文件名和当前行号。g: 跳转到文件的第一行。u: 向上滚动一屏。d: 向下滚动一屏。_less命令怎么跳转最后一行

C/C++编程学习 - 第16周 ② 求分数序列和_求分数序列和c++-程序员宅基地

文章浏览阅读5.5w次,点赞3次,收藏7次。题目链接题目描述蒜术师有一个分数序列 q1/p1, q2/p2, q3/p3, q4/p4, q5/p5,… ,其中qi+1= qi+ pi, pi+1=qi, p1= 1, q1= 2。比如这个序列前6项分别是2/1, 3/2, 5/3, 8/5, 13/8, 21/13。求这个分数序列的前n项之和。输入格式输入有一行,包含一个正整数n(n <= 30)。输出格式输出有一行,包含一个浮点数,表示分数序列前n项的和,精确到小数点后4位。Sample Input2Sample Out_求分数序列和c++

Ubuntu之apt-get--安装gcc--方法/教程_apt-get gcc-程序员宅基地

文章浏览阅读8.2k次,点赞38次,收藏18次。本文介绍Ubuntu如何安装gcc。_apt-get gcc

如何在 React 中使用 Sass_react 使用sass-程序员宅基地

文章浏览阅读9.2k次。Sass 是 CSS 的改进版本,您现在就可以在 React 项目中使用它。_react 使用sass

flutter打包的app有多大_Flutter原生混合开发-程序员宅基地

文章浏览阅读211次。使用 Flutter 从头开始写一个 App是一件轻松惬意的事情。但是对于成熟产品来说,完全摒弃原有 App 的历史沉淀,全面转向 Flutter 并不现实。用 Flutter 去统一 iOS/Android 技术栈,把它作为已有原生 App 的扩展,然后通过逐步试验有序推进从而提升终端开发效率,可能才是现阶段 Flutter 最有效的集成方式。那么,Flutter 工程与原生工程该如何组织管理?..._flutter 打包ios 是原生app吗

2021安洵杯Misc writeup_chr(ord(tmp)+26)-程序员宅基地

文章浏览阅读1.1k次。忘了发了,来迟了Misc应该算是签到来得早不如来的巧CyzCC_loves_LOL小脑洞+老考点,理解一下其实是放进百度翻译然后一下看出来了s = 'D0g3isthepAssword'flag = ''for i in range(len(s)): tmp = ord(s[i])-3 if(tmp<65): flag += chr(tmp+26) else: flag += chr(tmp)print(flag)密码_chr(ord(tmp)+26)