【多喝热水系列】从零开始的ROS2之旅——Day3

【多喝热水系列】从零开始的ROS2之旅------Day3

大家好,欢迎来到「多喝热水系列」ROS2入门之旅的第三天!今天核心任务是搞定 Linux 基础里的环境变量,而且是和 ROS2 紧密绑定的环境变量操作。为啥环境变量这么重要呢?因为 ROS2 的功能包查找、可执行文件运行、版本识别全靠它撑着,搞懂这部分,后续玩功能包、写节点才不会卡壳。话不多说,跟着下面的步骤一步步实操起来!

一、先明确目标:今天要搞定的6件事

咱们今天的学习主线很清晰,就是围绕 ROS2 相关的环境变量做实操,具体要完成这6个任务:

  1. 查看当前终端配置的 ROS 版本

  2. 查看环境变量的 AMENT_PREFIX_PATH 的值

  3. 查看 turtlesim 程序包的位置

  4. 查看 turtlesim 目录下的所有内容

  5. 直接运行 turtlesim_node 可执行文件

  6. 设置环境变量测试

提示:所有操作都在 Linux 终端中完成,建议先打开终端,确保之前已经安装好 ROS2(如果还没安装,可回顾 Day1 的安装步骤)。

二、实操环节:逐个突破环境变量相关操作

1. 查看当前终端配置的 ROS 版本

首先,我们得知道当前终端用的是哪个 ROS2 版本(比如 Humble、Iron、Jazzy 等),这就需要通过 ROS2 内置的环境变量 ROS_DISTRO 来查看。

操作命令:

命令解释:echo 是打印输出命令,$变量名 表示引用环境变量的值,所以这个命令的作用是打印出 ROS_DISTRO 这个环境变量存储的内容(也就是 ROS2 版本号)。

预期结果:如果之前正确配置了 ROS2 环境,会输出对应的版本名称,比如我这里输出 humble。

2. 查看环境变量 AMENT_PREFIX_PATH 的值

在 ROS2 中,AMENT_PREFIX_PATH 是非常核心的环境变量,它存储了所有 ROS2 功能包的安装路径(包括系统安装的和自定义编译的),ROS2 就是通过这个变量找到各个功能包的。

操作命令(第二个命令是正确找到 AMENT_PREFIX_PATH 的值):

命令解释:和上面查看 ROS 版本的命令逻辑一样,都是通过 echo 打印环境变量的值。

3. 查看 turtlesim 程序包的位置

turtlesim 是 ROS2 自带的海龟仿真功能包,我们可以通过AMENT_PREFIX_PATH 对应的路径去查找它,也可以用 ROS2 提供的 colcon list 命令直接定位(colcon 是 ROS2 的构建工具)。

方法一:用 colcon list 命令(笔者没有试过,有兴趣可以试试)

colcon list | grep turtlesim

命令解释:colcon list 会列出当前环境中所有已发现的 ROS2 功能包及对应的路径;grep turtlesim 是过滤命令,只保留包含"turtlesim"的内容。

方法二:通过 AMENT_PREFIX_PATH 查找

预期结果:两种方法都会输出 turtlesim 功能包的绝对路径,比如 /opt/ros/humble/share/turtlesim(系统安装路径)。

4. 查看 turtlesim 目录下的所有内容


5. 直接运行 turtlesim_node 可执行文件

之前我们可能用过 ros2 run turtlesim turtlesim_node 启动海龟仿真,但这次我们直接通过可执行文件的绝对路径来运行,更能理解环境变量的作用(后续会讲为啥 ros2 run 能直接找到可执行文件)。

预期结果:终端会输出一些日志信息,同时弹出一个白色的海龟仿真窗口,窗口中间有一只小海龟,说明运行成功!

6. 设置环境变量测试

在当前终端时作用,但是新终端时,并还是原先环境变量。

三、Day3 总结

今天我们通过6个实操任务,搞懂了 ROS2 相关的 Linux 环境变量核心操作:从查看 ROS 版本、核心环境变量 AMENT_PREFIX_PATH,到定位功能包、查看目录结构,再到直接运行可执行文件和手动设置环境变量。

相关推荐
Ivanqhz11 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
by2099912 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
笑鸿的学习笔记13 小时前
C++笔记之大块顺序写
java·c++·笔记
殷色玫瑰14 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
山岚的运维笔记15 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
꯭自꯭闭꯭15 小时前
DM7主备升级方案
linux·服务器·数据库
用户41071920132515 小时前
VMware 虚拟机Ubuntu 环境linux远程连接失败
linux
lisanmengmeng15 小时前
Nagios邮件报警的配置
linux·运维·服务器
Ruiery16 小时前
Linux 6.6内核 CPU 深度解析(六):cpufreq
linux·运维·服务器
倔强的石头10616 小时前
【Linux指南】动静态库系列(十一):PLT 与延迟绑定:第一次调用动态库函数时发生了什么
linux·人工智能·python