NZSM NEWS DESK · 商丘建筑用工观察

ROS 2 Humble 在 Ubuntu 22.04 环境配置:3步完成基础安装与首个节点测试

发布时间:2026/10/8 12:11:21 来源:NZSM 编辑部 商丘 · 八区县
本文配图 · 由资讯系统配图生成
ROS 2 Humble 极速上手指南Ubuntu 22.04 环境配置与首个节点实战当现代机器人技术遇上分布式计算框架ROS 2正在重新定义智能设备的开发范式。作为机器人开发领域的瑞士军刀Humble Hawksbill版本以其卓越的稳定性和对Ubuntu 22.04的原生支持成为2023年最值得投入学习的机器人操作系统。本文将带您跳过繁琐的理论讲解直接进入实战环节——从零开始搭建开发环境到运行第一个通信节点整个过程仅需30分钟。1. 环境准备系统配置与依赖安装在开始ROS 2 Humble的安装之前我们需要确保Ubuntu 22.04系统处于最佳状态。建议使用全新安装的Jammy Jellyfish版本避免与其他软件包产生冲突。打开终端CtrlAltT依次执行以下命令更新系统sudo apt update sudo apt upgrade -y sudo apt install curl gnupg2 lsb-releaseROS 2 Humble需要UTF-8编码环境通过以下命令设置区域配置sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 export LANGen_US.UTF-8接下来添加ROS 2 apt仓库到系统源列表。请注意以下命令中的architecture需要替换为您的CPU架构通常amd64或arm64sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null安装基础开发工具和ROS 2核心组件sudo apt update sudo apt install -y ros-humble-desktop python3-argcomplete提示如果网络连接不稳定可以考虑使用国内镜像源。将上述URL中的packages.ros.org替换为mirrors.tuna.tsinghua.edu.cn/ros2可显著提升下载速度。验证安装是否成功的最快方法是检查ROS 2环境变量是否已配置source /opt/ros/humble/setup.bash printenv | grep ROS正常情况应该显示如下环境变量ROS_VERSION2ROS_PYTHON_VERSION3ROS_DISTROhumble2. 创建工作空间与示例程序ROS 2采用colcon作为构建工具比传统catkin更高效。首先安装必要的构建工具sudo apt install python3-colcon-common-extensions创建并初始化工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build让我们创建一个简单的发布者(Publisher)和订阅者(Subscriber)示例。在src目录下新建功能包ros2 pkg create --build-type ament_python py_pubsub --dependencies rclpy std_msgs编辑~/ros2_ws/src/py_pubsub/py_pubsub/publisher_member_function.py文件输入以下内容import rclpy from rclpy.node import Node from std_msgs.msg import String class MinimalPublisher(Node): def __init__(self): super().__init__(minimal_publisher) self.publisher_ self.create_publisher(String, topic, 10) timer_period 0.5 self.timer self.create_timer(timer_period, self.timer_callback) self.i 0 def timer_callback(self): msg String() msg.data Hello World: %d % self.i self.publisher_.publish(msg) self.get_logger().info(Publishing: %s % msg.data) self.i 1 def main(argsNone): rclpy.init(argsargs) minimal_publisher MinimalPublisher() rclpy.spin(minimal_publisher) minimal_publisher.destroy_node() rclpy.shutdown() if __name__ __main__: main()同样地创建订阅者脚本subscriber_member_function.pyimport rclpy from rclpy.node import Node from std_msgs.msg import String class MinimalSubscriber(Node): def __init__(self): super().__init__(minimal_subscriber) self.subscription self.create_subscription( String, topic, self.listener_callback, 10) self.subscription def listener_callback(self, msg): self.get_logger().info(I heard: %s % msg.data) def main(argsNone): rclpy.init(argsargs) minimal_subscriber MinimalSubscriber() rclpy.spin(minimal_subscriber) minimal_subscriber.destroy_node() rclpy.shutdown() if __name__ __main__: main()修改setup.py文件确保入口点配置正确entry_points{ console_scripts: [ talker py_pubsub.publisher_member_function:main, listener py_pubsub.subscriber_member_function:main, ], }3. 构建与运行测试现在可以构建我们的功能包了。在workspace根目录执行colcon build --packages-select py_pubsub构建完成后需要source安装空间的环境配置source install/setup.bash启动发布者节点ros2 run py_pubsub talker在另一个终端中启动订阅者节点source ~/ros2_ws/install/setup.bash ros2 run py_pubsub listener如果一切正常您将在发布者终端看到类似以下输出[INFO] [minimal_publisher]: Publishing: Hello World: 0 [INFO] [minimal_publisher]: Publishing: Hello World: 1同时在订阅者终端看到对应的接收消息[INFO] [minimal_subscriber]: I heard: Hello World: 0 [INFO] [minimal_subscriber]: I heard: Hello World: 14. 进阶调试与工具链ROS 2提供了一系列强大的调试工具。要查看当前活动的节点列表ros2 node list查看节点间的通信拓扑ros2 topic list ros2 topic echo /topic对于更复杂的系统监控可以使用rqt工具sudo apt install ros-humble-rqt rqt在rqt界面中通过Plugins Introspection Node Graph可以可视化节点间的通信关系。以下是一个常用工具对比表工具名称安装命令主要功能rqt_graph内置工具可视化节点通信拓扑ros2bagros-humble-ros2bag消息记录与回放rviz2ros-humble-rviz23D可视化与传感器数据显示turtlesimros-humble-turtlesim基础教学模拟环境当需要调试复杂系统时可以考虑使用launch文件。创建一个新的launch文件~/ros2_ws/src/py_pubsub/launch/pubsub_launch.pyfrom launch import LaunchDescription from launch_ros.actions import Node def generate_launch_description(): return LaunchDescription([ Node( packagepy_pubsub, executabletalker, namedemo_publisher ), Node( packagepy_pubsub, executablelistener, namedemo_subscriber ) ])运行launch文件ros2 launch py_pubsub pubsub_launch.py

以上内容为编辑部整理,涉及政策与考情的部分,以官方发布为准。有拿不准的地方,报考咨询随时问。

CERTIFIED

编辑说明

本文由 NZSM 编辑部根据公开信息与项目走访整理,不是官方文件原文,行文尽量用大白话。

资料来源

行业公开通知、商丘属地项目现场走访、学员与用工单位反馈,三方凑在一起核对过。

免责声明

涉及政策、考情的内容仅供参考,具体以官方发布为准,办理前请先核对原文。

转载合作

需要转载或谈合作,发邮件到 809451989@qq.com,注明出处,咱们好商量。

咨询服务办公室接待场景
本文整理 · NZSM 编辑部

几个常年跑商丘工地的人

我们蹲过商丘不少项目的班前会,也帮学员办过报名、领过证。持证报考、用工行情这些事,能说人话的就不拽条文,写下来给同样在工地上忙的您看。

电话 18236992212 工作日 8:30–18:00 服务睢阳 · 梁园 · 永城等八区县
了解编辑部 →

PATH · 从备考到上岗

文章里说到的这件事,落到个人身上就四步

第一步
1

对条件

学历、工作年限、年龄先对照一遍,缺材料早补,别到报名才发现。

第二步
2

约考试

盯紧当次通知,选最近的考期,科目大纲先过一遍心里有数。

第三步
3

拿证备案

成绩出来后按流程领证,上岗前把备案材料交到项目上。

第四步
4

持证上岗

证带在身上、台账挂在工地,岗位核验才不会卡壳。

CANN/GE ACL数据集缓冲区添加函数 CANN/GE ACL数据集缓冲区添加函数 aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te… 用ffmpeg高效批量调整图片尺寸的实战指南 用ffmpeg高效批量调整图片尺寸的实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu… RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup… Java Integer缓存揭秘:128陷阱原理、避坑与面试全解 Java Integer缓存揭秘:128陷阱原理、避坑与面试全解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

看完这篇,想接着问一句?

电话 18236992212 · 邮箱 809451989@qq.com,报考条件、岗位安排、证书备案,都可以直接问。