通过开发板来学习ROS2 21讲(基础环境配置)

news2024/11/25 21:48:10

通过开发板来学习ROS2 21讲(基础环境配置)

简介

ROS2 21讲是古月居倾力打造的ROS2 的入门学习视频,相信有很多小伙伴也是通过ROS2 21讲入门的ROS2。在学习过程中,大家有可能是使用虚拟机/PC机来运行ROS2上的案例,但是假如大家手上有一块开发板,比如RDK X3/树莓派/JestonNano… 那么理应由开发板上手会更好了,毕竟我们最终都是将ROS2 部署到开发板上来实现一些功能。

本系列内容将以RDKX3/OriginBot机器人为例,将ROS2 21讲中的内容在板端实现一遍,根据大家的反馈,本系列将分别以Python3/C++的方式实现代码,并实现一样的功能供大家作为参考。

参考资料

ROS2 21讲视频 :【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统_哔哩哔哩_bilibili

ROS2 21讲图文文档:ROS2入门教程 (guyuehome.com)

基础说明

在正式开始内容之前请大家先部署好自己的环境,我目前的软硬件环境如下:

  • RDK X3/OriginBot,镜像为OriginBot v2.0.2

  • PC端为Windows 11

连接板端环境

如果你之前没有接触过机器人相关内容,你将遇到第一个问题,就是如何连接到板端,这里推荐两个工具,大家可以根据情况选择不同的方式进行连接。

  • 一种是通过MobXterm](https://mobaxterm.mobatek.net/download-home-edition.html)),这个软件支持串口、SSH等连接方式,下图为MobXterm的界面显示,进入镜像后会显示版本信息。

  • 另外一种即通过VSCode连接,这种方式也就是ROS2 21讲中介绍的方式,大家可以参考ROS2开发环境配置 - ROS2入门教程 (guyuehome.com)

配置网络环境

连接到板端后,大家可能会为了方便起见配置一个网络,由于这个镜像是服务器版本镜像是没有界面的,所以大家需要通过命令行的方式进行连接,命令如下:

#查找周围WIFI
sudo nmcli device wifi rescan
#打印WIFI列表
sudo nmcli device wifi list
#连接WIFI
sudo wifi_connect "wifi名" "密码"

以上操作适用于Ubuntu系统,大家可以参考使用。

内容简介

完成以上配置后,我们就基本完成了基础的环境搭建,可以正式开始ROS2 21讲的学习了。

这里再和大家强调,本系列文章为大家观看ROS2 21讲的补充内容,可以先观看视频和文档的同时配合本文看板端是如何操作的。

接下来给大家一一演示以下内容。

工作空间创建

在板端创建工作空间的流程和虚拟机端是一致的,本质上它们都是一个Ubuntu系统。

#创建dev_ws工作空间,src文件讲存放后续的功能包
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
#此处拉取基础版本的课程代码
git clone https://gitee.com/guyuehome/ros2_21_tutorials.git

安装功能包依赖

如果是大家自己创建的功能包是不需要执行这一步的,那么为什么要执行一下内容呢?大家可以注意到功能包内由一个package.xml文件,其中由如下部分

这部分就是大家需要关注的依赖,如果当前环境系统中没有这些依赖,程序将编译失败,所以一般的做法为安装从github/gitee…的功能包是要先安装功能包的依赖,具体做法如下:

sudo apt install -y python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update
cd ..
rosdepc install -i --from-path src --rosdistro humble -y

rosdepc是什么呢?是一个国内开发者小鱼制作的工作,可以帮助大家方便的使用ros/ros2.要知道之前安装ros/ros2也是初学者入门的一个大难题,大家可以执行一下命令体验一下

wget http://fishros.com/install -O fishros && . fishros

功能包编译

之后就到了功能包编译环节,这里请大家千万注意,一定是在工作空间下进行编译,编译后的文件是与咱们一开始创建的src在同一文件级下的。

#安装编译工具“colcon”,镜像中已经下载了
sudo apt install python3-colcon-ros
cd ~/dev_ws/
#编译工作空间下所有的功能包
colcon build

完成以上步骤后就完成一个基本的环境部署了。

再啰嗦两句,colcon build 是ros2开发中经常使用的命令,但是由于在开发中我们不会一次性改动特别多文件,所以除了第一次编译需要colcon build外,其余时刻一般使用单独编译的命令。

#colcon build --packages-select 功能包名,如下例
colcon build --packages-select learning_interface

编译结束后如下所示,可以看到install、build

这里需要说明的是和ROS1不同,在ROS2中不管Python/C++改动后都需要进行编译,编译后产生的执行文件都会存放到install中。为什么提到这一点?后续在开发中假如大家发现编译后并没有像自己预期一样执行内容,不妨到install看看是否真的生成了可执行文件。

设置环境变量

最后还需要设置环境变量

source install/local_setup.sh # 仅在当前终端生效
echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效

再啰嗦一下,local_setup.sh和setup.bash的区别在于setup.bash还会source一遍foxy的setup.bash 。

参考链接:通过开发板来学习ROS2 21讲(基础环境配置) - 古月居 (guyuehome.com)

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

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

相关文章

在SpringCloud2023中使用openfeign进行远程调用

你好,这里是codetrend专栏“SpringCloud2023实战”。 前言 feign之前是Netflix的一个子项目,由于停止了维护,spring继续维护了一个openfeign作为替代。Spring Cloud OpenFeign 具有以下优点: 简化微服务之间的调用,…

是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异

如果只是想简单地体验AI的魅力,感受大模型的独特之处,或是玩一玩文字游戏,那么升级至ChatGPT 4.0可能并非必需。然而,若你期望将AI作为提升工作学习效率的得力助手,那么我强烈建议你升级到ChatGPT 4.0。 如果你不知道…

【linux】lsof命令使用

1. 功能 lsof list open files, 列出被进程所使用的文件名称。 2. 基础语法 3. 参数含义 参数含义-a过滤出多个选项要同时满足的文件-U仅列出UNIX-like系统的socket文件类型。-u指定用户,比如-u atiaisi,会把用户atiaisi相关的进程使用的文件列出来。…

辽宁梵宁教育:设计领域的靠谱正规线上教育机构典范

辽宁梵宁教育,作为一家专注于学习设计的线上教育机构,近年来在业界崭露头角,赢得了广大学习者的认可和好评。接下来,本文将从多个维度详细阐述梵宁教育为何是一家靠谱且正规的线上教育机构。 梵宁教育在师资力量上表现出色。其拥有…

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台

前言 灵感源于之前写过的Github中Readme.md中可以插入自己的js图片和动态api解析模块&#xff0c;在展示方面十分的美观&#xff1a; 这方面原理可以简化为&#xff0c;在Markdown中&#xff0c;你可以使用HTML标签来添加图像&#xff0c;就像这样&#xff1a; <tr><…

YOLOv9改进策略 :IoU优化| Inner-IoU基于辅助边框的IoU损失,高效结合新型边界框相似度度量(MPDIoU)| 二次创新

💡💡💡本文独家改进:Inner-IoU引入尺度因子 ratio 控制辅助边框的尺度大小用于计算损失,新型边界框相似度度量(MPDIoU)MPDIoU损失进行有效结合 💡💡💡适用场景:小目标数据集,进一步提升检测精度,强烈推荐 《YOLOv9魔术师专栏》将从以下各个方向进行创新: …

使用Flutter混淆技术保护应用隐私与数据安全

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

酷得智能 提供多类型IC采购服务及全国性的方案开发定制

东莞市酷得智能科技有限公司成立于广东省东莞市松山湖高新产业园区&#xff0c;我们专注于电子类方案开发设计&#xff0c;提供多类型的IC采购服务。 方案定制服务包括以下几个方面&#xff1a; 功能定制&#xff1a;根据客户需求&#xff0c;我们可以为其定制各种有趣、富有挑…

存内计算是否可以应用于边缘计算

本篇文章聚焦存内计算应用&#xff0c;我们将从云边端计算各有优势出发&#xff0c;围绕边缘计算场景已有落地、赋能边缘计算存&#xff0c;算大有可为三个方面展开介绍&#xff0c;并围绕存算与边缘计算的结合应用展开构想与展望。 一.云边端计算 各有优势 云边端&#xff0…

游戏引擎架构01__引擎架构图

根据游戏引擎架构预设的引擎架构来构建运行时引擎架构 ​

【THM】SQL Injection(SQL注入)-初级渗透测试

简介 SQL(结构化查询语言)注入,通常称为 SQLi,是对 Web 应用程序数据库服务器的攻击,导致执行恶意查询。当 Web 应用程序使用未经正确验证的用户输入与数据库进行通信时,攻击者有可能窃取、删除或更改私人数据和客户数据,并攻击 Web 应用程序身份验证方法以获取私有数据…

Spring AOP + 自定义注解 实现公共字段的填充

Spring AOP 自定义注解 实现公共字段的填充 代码冗,不利于后期维护. 定义操作这些字段的方法类型 实现步骤&#xff1a; 自定义注解AutoFill,用于表示操作这些公共字段的方法自定义切面类AutoFillAspect,统一拦截&#xff0c;通过反射获取方法入参&#xff0c;并填充公共字段…

一个很变态,但能快速掌握软考高项的野路子

软考已经迫在眉睫&#xff0c;今天给各位整理了软考高项 信息系统项目管理师 的重要知识点口诀&#xff0c;只要大家能把这些都背下来&#xff0c;对你们掌握高项事倍功效&#xff0c;赶紧行动起来吧 2024年上半年信息系统项目管理师知识点口诀汇总 一、IT部分 智慧城市5个核心…

爬虫逆向实战(39)-某某兔装修网登陆(RSA)

一、数据接口分析 主页地址&#xff1a;某某兔装修网 1、抓包 通过抓包可以发现登陆是表单提交 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块&#xff0c;可以发现有一个val和password的加密参数 请求头是否加密&#xff1f; 无响应是否加密…

RK3568驱动指南|第十四篇 单总线-第158章DS18B20编写字符设备驱动框架

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【微众银行笔试题汇总】 2024-03-31-微众银行春招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新微众银行近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&…

从小米造车引发对公司跨界的思考

目录 1. 十年布局 2. 人才战略和产品定位 3. 公司跨界启示 3月28日&#xff0c;小米新车发布会轰动全网&#xff0c;这是一场令人激动的发布会&#xff1b; 微博、小红书、知乎和朋友圈关于小米SU7价格、配置的话题一直挂在热搜&#xff1b;身边从老到少也都在讨论SU7&…

matlab中旋转矩阵函数

文章目录 matlab里的旋转矩阵、四元数、欧拉角四元数根据两向量计算向量之间的旋转矩阵和四元数欧拉角转旋转矩阵旋转矩阵转欧拉角旋转矩阵转四元数参考链接 matlab里的旋转矩阵、四元数、欧拉角 旋转矩阵dcmR四元数quatq[q0,q1,q2,q3]欧拉角angle[row,pitch,yaw] % 旋转矩阵…

HarmonyOS 应用开发之自定义组件冻结功能

自定义组件处于非激活状态时&#xff0c;状态变量将不响应更新&#xff0c;即Watch不会调用&#xff0c;状态变量关联的节点不会刷新。通过freezeWhenInactive属性来决定是否使用冻结功能&#xff0c;不传参数时默认不使用。支持的场景有&#xff1a;页面路由&#xff0c;TabCo…

提质增效|大型汽车制造业运维精细化管理建设实战

项目背景 某大型汽车制造企业随着数字化技术的深入应用&#xff0c;对运维在“质量与效率”方面的精细化管理有了更高的要求。借助云智慧运维指标体系实现了 IT 架构的智能化与可视化&#xff0c;高效解决系统显性问题&#xff0c;积极处理系统隐性问题&#xff0c;提升系统稳…