【多喝热水系列】从零开始的ROS2之旅------Day3
大家好,欢迎来到「多喝热水系列」ROS2入门之旅的第三天!今天核心任务是搞定 Linux 基础里的环境变量,而且是和 ROS2 紧密绑定的环境变量操作。为啥环境变量这么重要呢?因为 ROS2 的功能包查找、可执行文件运行、版本识别全靠它撑着,搞懂这部分,后续玩功能包、写节点才不会卡壳。话不多说,跟着下面的步骤一步步实操起来!
一、先明确目标:今天要搞定的6件事
咱们今天的学习主线很清晰,就是围绕 ROS2 相关的环境变量做实操,具体要完成这6个任务:
查看当前终端配置的 ROS 版本
查看环境变量的 AMENT_PREFIX_PATH 的值
查看 turtlesim 程序包的位置
查看 turtlesim 目录下的所有内容
直接运行 turtlesim_node 可执行文件
设置环境变量测试
提示:所有操作都在 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,到定位功能包、查看目录结构,再到直接运行可执行文件和手动设置环境变量。