ROS 2边学边练(1)-- 安装Iron Irwini

        其实是从去年的一个机缘巧合才开始了解到ROS,但也仅限于此了(看了古月居的入门21讲),今年买了几本关于ROS相关的书籍,比如《精通ROS机器人编程 Lentin Joseph&Jonathan Cacace》、《ROS 2机器人编程实战-基于现代C++和Python 3 徐海望&高佳丽》,头一本主要讲的是ROS 1,里面的代码运行在ubuntu20.04上(noetic)还是需要修改一下才能正常运行,有些内容即使修改了运行的结果也与书本描述的不一致(个人水平有限),不过借此(试错、修改)过程也熟悉了ROS 1的一些基本内容,后一本讲的是ROS 2,作者写的很细,但需要一定的门槛(我暂时放下,机缘成熟之时再启动)。

        上述主要是我的ROS前期探秘之旅,无甚特别大的感触和收获,内心不免有些失落,就此决定从ROS 2小白开始边学边练(ROS 2未来应该是主流了,毕竟优化了很多内容),以期能有个里程式的大突破,后面的内容主要是围绕官方文档手册的内容和节奏来进行练习和记录(灵魂翻译 + 问题记录 + 解决方法等),方便监督自己走下去。

        废话不多说,我们就从昨天(20240325)刚发布的iron版本走起吧,Let's Go!!

环境

Ubuntu 22.04(amd64) + ROS 2 Iron Irwini(二进制安装)

区域设置(编码设置)

通过下面的命令检查设置编码,使得系统环境支持UTF-8编码(如果系统支持则下面非必须)。

$locale  # check for 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-8

$locale  # verify settings

使能必要的软件仓库

确保Ubuntu通用仓库启用

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

添加ROS 2 GPG key(apt)

$sudo apt update && sudo apt install curl -y
$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

安装开发工具(可选)

$sudo apt update && sudo apt install ros-dev-tools

安装ROS 2

更新源

$sudo apt update

更新系统(可选)

$sudo apt upgrade

桌面版安装(2G左右大小,包含ROS/RVIZ/例子/教程)

$sudo apt install ros-iron-desktop

ROS-Base安装(包含通信库/消息包/命令行工具,无图形界面工具)

$sudo apt install ros-iron-ros-base

安装额外的RMW实现(中间件,可选,具体参考源文档链接)

此处省略。

通过上面的步骤后ROS 2会被默认安装到/opt/ros路径下,如图所示,

测试ROS 2

设置环境变量(每个新打开的终端窗口必须都得来一遍)

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
$source /opt/ros/iron/setup.bash

测试例子

启动talker
$source /opt/ros/iron/setup.bash
$ros2 run demo_nodes_cpp talker
启动listener
$source /opt/ros/iron/setup.bash
$ros2 run demo_nodes_cpp listener

效果如下(CPP&PY节点)。

使用ROS 1桥(可选)

利用ROS 1桥可以连接从ROS 1到ROS 2的主题,反之亦然。具体使用方法请参考官方文档,此处略。

卸载ROS 2

当由于各种原因需要卸载ROS 2时(比如要切换到源码方式安装),执行下面语句即可,

$sudo apt remove ~nros-iron-* && sudo apt autoremove

卸载软件库

送佛送到西,卸载卸到底。

sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
$sudo apt upgrade

本篇完。

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

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

相关文章

AI入侵游戏业:是颠覆者还是创新助手?揭秘未来游戏新趋势!

在科技日新月异的今天,人工智能(AI)已经成为各行各业的关注焦点。而在娱乐产业中,AI技术的引入也让人们对电子游戏的未来发展产生了无限遐想。那么,AI究竟会给电子游戏行业带来怎样的变革?它会成为行业的颠…

【消息队列开发】 实现BrokerServer类——本体服务器

文章目录 🍃前言🎋创建 BrokerServer 类🎍启动与停止服务器🍀实现处理连接🎄实现 readRequest 与 writeResponse🌴实现处理请求🌲实现 clearClosedSession⭕总结 🍃前言 本次开发任…

java的ArrayList类

ArrayList<E>E是自定义数据类型 ArrayList类&#xff1a; 构造函数&#xff1a; 成员方法&#xff1a; public boolean add(E e)&#xff1a; 将指定元素加到集合末尾 Appends the specified element to the end of this list. public class Array {public static…

就业班 第二阶段 2401--3.26 day6 Shell初识 连接vscode

远程连接vs_code可能出现的问题 C:\Users\41703\.ssh 验证远程主机的身份&#xff0c;如果连不上vscode&#xff0c;可以尝试删除这里面的公钥代码。 重新安装那个扩展&#xff0c;排除扩展本身的问题 谁连过我&#xff0c;并操作了什么 curl https://gitea.beyourself.org.c…

【软件测试】功能测试/接口测试/自动化测试/性能测试/验收测试

软件测试的主要流程 一、测试主要的四个阶段 1.测试计划设计阶段&#xff1a;产品立项之后&#xff0c;进行需求分析&#xff0c;需求评审&#xff0c;业务需求评级&#xff0c;绘制业务流程图。确定测试负责人&#xff0c;开始制定测试计划&#xff1b; 2.测试准备阶段&…

C++11与thread相关使用(纯代码)

多线程创建 //多线程创建 void print(string s) {cout << "i am a new thread&#xff1a;" << s << endl; } int main() {//move将左值变成右值(右值引用过后的属性是左值)//thread t1(print, "t1");//thread t2(move(t1));//调用移动…

javaWeb校园二手平台项目

一、系统分析 1.1开发背景 随着全世界互联网技术的不断发展&#xff0c;各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活。人们从Internet上获取信息、享受生活、交流感情、网上工作等。Internet正在迅速改变着人们的生活方式。 经过我国改革开放多年…

CI/CD实战-jenkins流水线 6

现最新版本没有该问题的出现 基于RBAC的身份授权&#xff1a; 安装插件&#xff1a; 新建测试用户 修改默认授权策略 新建的用户就没有任何权限 新建角色并授权 添加用户角色身份 pipeline 安装ssh agent插件 由于最新版的插件是有问题的&#xff0c;会有以下报错&#xff…

「媒体宣传」财经类媒体邀约资源有哪些?-51媒体

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 财经类媒体邀约资源包括但不限于以下几类&#xff1a; 商业杂志和报纸&#xff1a;可以邀请如《财经》、《新财富》、《经济观察报》等主流商业杂志和报纸。这些媒体通常具有较强的品牌影…

自信当众讲话:从紧张到自如的转变之路

自信当众讲话&#xff1a;从紧张到自如的转变之路 在人生的舞台上&#xff0c;当众讲话是每个人都可能面对的挑战。然而&#xff0c;对于许多人来说&#xff0c;站在众人面前讲话却是一件令人紧张甚至恐惧的事情。这种紧张感往往源于对自我能力的怀疑&#xff0c;对未知的恐惧…

【Node.js从基础到高级运用】十八、Node.js的安全性加固

引言 在Web开发中&#xff0c;安全性是一个不可忽视的话题。Node.js作为一个流行的后端平台&#xff0c;同样需要关注各种潜在的安全威胁&#xff0c;并采取措施加以防御。本文将介绍如何在Node.js应用中防御常见的Web攻击&#xff0c;以及如何使用安全相关的中间件来加固安全性…

Windows 频繁失去焦点分析

原文&#xff1a;https://blog.iyatt.com/?p14383 1 前言 刚才在打字的时候发现会随机失去焦点&#xff0c;然后又要用鼠标点一下正在输入的位置才能继续输入&#xff0c;特别烦。开始我怀疑是手碰到触摸板导致失去焦点&#xff0c;但是我用了差不多十年带触摸板的笔记本电脑…

[ C++ ] STL---仿函数与priority_queue

目录 仿函数 示例一&#xff1a; 示例二 : 常见的仿函数 priority_queue简介 priority_queue的常用接口 priority_queue的模拟实现 基础接口 push() 堆的向上调整算法 堆的插入 pop() 堆的向下调整算法 堆的删除 priority_queue最终实现 仿函数 仿函数&#xff…

基于stm32与TJC3224T124_011串口屏的PID调参器(附完整工程)

电赛在即&#xff0c;每次比赛调PID都是一件比较繁琐的事。每次都要在程序中改完再烧录到板子上&#xff0c;特别耗时。正好最近发现实验室的一块串口屏比较好玩。 于是就做了这个调PID的东西。它可以通过串口直接修改PID的值&#xff0c;从而达到快速调PID的目的。下面我将完整…

【Python】学习率调整策略详解和示例

学习率调整得当将有助于算法快速收敛和获取全局最优&#xff0c;以获得更好的性能。本文对学习率调度器进行示例介绍。 学习率调整的意义基础示例无学习率调整方法学习率调整方法一多因子调度器余弦调度器 结论 学习率调整的意义 首先&#xff0c;学习率的大小很重要。如果它…

音乐制作利器 :FL Studio21中文编曲音乐制作软件免费下载

一、引言 在音乐的世界里&#xff0c;每个人都有自己独特的音色和表达方式。而今天&#xff0c;我们要为你推荐一款能让您的音乐创作更上一层楼的神器——FL Studio21中文编曲音乐制作软件。这款功能强大的音乐制作软件&#xff0c;不仅拥有丰富的音色库和高效的编辑功能&#…

Quartz

Quartz 1.核心概念1.1 核心概念图1.2 demo 2.Job2.1为什么设计成JobDetailJob, 而不直接使用Job2.2 间隔执行时, 每次都会创建新的Job实例2.3 定时任务默认都是并发执行的&#xff0c;不会等待上一次任务执行完毕2.3.1 不允许并发执行 2.4 在运行时, 通过JobDataMap向Job传递数…

Python自动化测试环境搭建

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 请事先自行安装好​​Pycharm​​​软件哦&#xff0c;我…

深度学习模型部署(十二)CUDA编程-绪

CUDA 运行时 API 与 CUDA 驱动 API 速度没有差别&#xff0c;实际中使用运行时 API 较多&#xff0c;运行时 API 是在驱动 API 上的一层封装。​ CUDA 是什么&#xff1f;​ CUDA(Compute Unified Device Architecture) 是 nvidia 推出的一个通用并行技术架构&#xff0c;用它…

基于冠豪猪优化器(CPO)的无人机路径规划

该优化算法是2024年新发表的一篇SCI一区top论文具有良好的实际应用和改进意义。一键运行main函数代码自动保存高质量图片 1、冠豪猪优化器 摘要&#xff1a;受冠豪猪(crest Porcupine, CP)的各种防御行为启发&#xff0c;提出了一种新的基于自然启发的元启发式算法——冠豪猪…