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

通过开发板来学习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.hqwc.cn/news/587094.html

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

相关文章

只需百行C语言代码,轻松实现经典扫雷小游戏!

C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程…

基本电路理论-电流和电压的参考方向

🌈个人主页:会编程的果子君 💫个人格言:“成为自己未来的主人~” 电流及参考方向 电流:带电粒子有规则的定向移动 电流强度:单位时间内通过导体横截面的电荷量,即:idq/dt 单位&#xff1a…

《数据结构学习笔记---第六篇》---栈和队列的实现

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 ​2.2队列的实现 3.顺序栈的具体实现 3.1建头文Stack.h” 3.2创建具体接口实现文件Stack.c 3.2.1初始化 3.2.2入栈出栈 3.2.4判空 3.2.5栈的大小 3.2.6销毁栈 3.3主函数的实现 4.链队的具体实现…

【C++第二阶段】案例-职工管理系统

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 案例>职工管理系统0.退出功能1.增加职工功能2.显示职工信息3.删除职工信息4.修改职工信息5.查找职工信息6.排序职工7.清空所有文档 案例>职工管理系统 首先写一个workmanager…

RISC-V GNU Toolchain 工具链安装问题解决(含 stdio.h 问题解决)

我的安装过程主要参照 riscv-collab/riscv-gnu-toolchain 的官方 Readme 和这位佬的博客:RSIC-V工具链介绍及其安装教程 - 风正豪 (大佬的博客写的非常详细,唯一不足就是 sudo make linux -jxx 是全部小写。) 工具链前前后后我装了…

NPW(监控片的)的要点精讲

半导体的生产过程已经历经数十年的发展,其中主要有两个大的发展趋势,第一,晶圆尺寸越做越大,到目前已有超过70%的产能是12寸晶圆,不过18寸晶圆产业链推进缓慢;第二,电子器件的关键尺寸越做越小&…

常用运动模型

运动模型 常用运动模型: CV、CA、CTRV、CTRV、CTRA、CSAV和CCA/CSAA模型微分多项式模型辛格模型半马尔科夫模型机动目标"当前模型"二维转弯运动模型三维模型比列导引模型 恒定速度模型(Constant Velocity, CV) 恒定加速度模型(C…

微信小程序开发学习笔记——4.7 api中navigate路由接口与组件的关系

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 一、跳转 1、方法一&#xff1a;组件 组件-导航-navigator <navigator url"/pages/demo/demo?id123" open-type"reLaunch">go demo page <…

保持ssh断开后,程序不会停止执行

保持ssh断开后&#xff0c;程序不会停止执行 一、前言 笔者做远程部署搞了一阵子&#xff0c;快结项时发现一旦我关闭了ssh连接窗口&#xff0c;远程服务器会自动杀掉我在ssh连接状态下运行的程序。 这怎么行&#xff0c;岂不是想要它一直运行还得要一台电脑一直打开ssh连接咯…

一起来从Solidworks中导出URDF模型

这个博客是用来记录关于【从Solidworks中导出URDF模型】的学习历程&#xff1a; 相关课程链接见&#xff1a;如何从Solidworks导出URDF模型 • 古月 (guyuehome.com) 下面让我们一起开始吧&#xff01;&#xff01;&#xff01; 1. sw_urdf_exporter插件介绍 插件下载链接&…

HR岗位管理:岗位职级管理体系是什么?概念、知识及方法工具梳理

岗位是组织中最具体、最小的一个基本单位。组织一般都是因事设岗&#xff0c;因而岗位是组织要求个体完成一项或多项责任而赋予个体的权力的总和。岗位是与人相对应的&#xff0c;通常一个岗位只能由一个人担任。正是因为人与岗位相匹配&#xff0c;所以企业人力资源成本管控的…

前端学习<三>CSS进阶——0102-CSS布局样式

前言 css 进阶的主要内容如下。 1、css 非布局样式 html 元素的分类和特性 css 选择器 css 常见属性&#xff08;非布局样式&#xff09; 2、css 布局相关 css 布局属性和组合解析 常见布局方案 三栏布局案例 3、动画和效果 属于 css 中最出彩的内容。 多背景多投影特…