ROS2 Jazzy 包管理极简实战创建、编译、运行一条龙本文基于ROS2 Jazzy Ubuntu 24.04演示如何用命令行快速创建 C/Python 功能包、编译、查询信息并运行节点。适合刚装好 Jazzy、想快速跑通包管理流程的同学。一、环境准备先确认已安装ROS2 Jazzy和colconsource/opt/ros/jazzy/setup.bashsudoaptinstallpython3-colcon-common-extensions验证环境ros2--versioncolcon--version如果能看到 Jazzy 版本号说明环境正常。二、创建工作空间mkdir-p~/ros2_ws/srccd~/ros2_ws/srcROS2 的功能包通常放在工作空间的src目录下。三、创建功能包1. 创建 C 包ros2 pkg create my_cpp_pkg\--build-type ament_cmake\--dependenciesrclcpp std_msgs生成的目录结构大致如下my_cpp_pkg/ ├── CMakeLists.txt ├── package.xml └── src/2. 创建 Python 包ros2 pkg create my_py_pkg\--build-type ament_python\--dependenciesrclpy生成的目录结构大致如下my_py_pkg/ ├── my_py_pkg/ │ └── __init__.py ├── package.xml ├── setup.py └── setup.cfg四、编译功能包回到工作空间根目录cd~/ros2_ws只编译指定包节省时间colcon build --packages-select my_cpp_pkg colcon build --packages-select my_py_pkg --symlink-install其中--symlink-install对 Python 包特别有用修改代码后通常不需要重新编译。编译完成后刷新环境sourceinstall/setup.bash五、查询包信息1. 查看所有包ros2 pkg list可以配合grep过滤ros2 pkg list|grepmy_2. 查看包安装路径ros2 pkg prefix my_py_pkg3. 查看包里的可执行文件ros2 pkg executables my_py_pkg如果 C 包还没有注册可执行文件ros2 pkg executables my_cpp_pkg可能没有输出这是正常现象。六、运行 Python 节点示例在my_py_pkg/my_py_pkg/目录下创建文件nano~/ros2_ws/src/my_py_pkg/my_py_pkg/hello.py写入importrclpyfromrclpy.nodeimportNodeclassHelloNode(Node):def__init__(self):super().__init__(hello_node)self.get_logger().info(Hello ROS2 Jazzy)defmain():rclpy.init()nodeHelloNode()node.destroy_node()rclpy.shutdown()if__name____main__:main()编辑setup.py在entry_points中添加entry_points{console_scripts:[hello my_py_pkg.hello:main,],},重新编译并运行cd~/ros2_ws colcon build --packages-select my_py_pkg --symlink-installsourceinstall/setup.bash ros2 run my_py_pkg hello终端输出类似[INFO] [hello_node]: Hello ROS2 Jazzy七、常用命令速查用途命令创建 C 包ros2 pkg create --build-type ament_cmake创建 Python 包ros2 pkg create --build-type ament_python编译指定包colcon build --packages-select pkg软链接安装colcon build --symlink-install查看所有包ros2 pkg list查看包路径ros2 pkg prefix pkg查看可执行文件ros2 pkg executables pkg运行节点ros2 run pkg executable八、常见问题找不到包编译后需要执行source install/setup.bash。找不到可执行文件Python 包需要在setup.py的entry_points中注册C 包需要在CMakeLists.txt中用add_executable注册。Python 修改不生效建议使用--symlink-install编译修改后通常无需重新编译。colcon 命令不存在执行sudo apt install python3-colcon-common-extensions安装。
企业数字化 ERP 产品动态
相关推荐
电商平台软件架构设计:从业务边界到微服务落地实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:43:38
222.开源可直接部署!Linux 全自动安卓刷机脚本|带日志、容错、救砖 摘要: 本文面向具备一定计算机基础的开发者或运维人员,系统性地阐述安卓手机刷机与维修的核心原理。文章从分区表、Bootloader锁、AVB校验等底层机制切入,详细讲解Fastboot与Recovery模式的操作逻辑。通过一个具体的“救砖”案例,提供完整的ADB/Fastboot脚本代码,并深入分… · 2026/9/24 5:43:32
友华MT5001-A2刷机全攻略:S905L3B短接线刷与固件选择 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:43:07
PADS Logic转OrCAD原理图全流程:E-studio格式转换避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:34:11
ZCANPRO波特率配置全解:CAN FD物理层参数设置实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:34:04
GPU稳定性测试神器gpu_burn:安装、压测与故障排查指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:34:04
UTM 虚拟机完全指南:Apple Silicon 上跑 Windows/Linux 的开源多面手 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:33:58
从刷BIOS到I2C/SPI调试:把吃灰的CH341A变成万能工具 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:33:58
DDS双义解析:FPGA信号合成与分布式数据分发技术对比 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:33:58
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44