通过开发板来学习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

连接板端环境

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

配置网络环境

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

复制代码
#查找周围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)

相关推荐
_Coin_-1 小时前
算法训练营DAY27 第八章 贪心算法 part01
算法·贪心算法
董董灿是个攻城狮5 小时前
5分钟搞懂什么是窗口注意力?
算法
Dann Hiroaki5 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
九年义务漏网鲨鱼6 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
jz_ddk6 小时前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
xiaolang_8616_wjl6 小时前
c++文字游戏_闯关打怪2.0(开源)
开发语言·c++·开源
NocoBase7 小时前
NocoBase 商业授权激活指南
低代码·开源·资讯
qqxhb7 小时前
零基础数据结构与算法——第四章:基础算法-排序(上)
java·数据结构·算法·冒泡·插入·选择
爱莉希雅&&&7 小时前
技术面试题,HR面试题
开发语言·学习·面试