ROS2 Jazzy 包管理极简实战:创建、编译、运行一条龙
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安装。

相关新闻

电商平台软件架构设计:从业务边界到微服务落地实践

电商平台软件架构设计:从业务边界到微服务落地实践

/* 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:44:01 阅读更多 →
AI 创新合伙人公会:用体系化机制破解 AI 创业的六大落地难题

AI 创新合伙人公会:用体系化机制破解 AI 创业的六大落地难题

摘要AI 项目从想法到落地,卡点往往不在技术本身,而在选题、组队、获客、融资、工程化与资源整合六个环节。本文以"智栈 AI 创新合伙人公会"为例,拆解其面向独立开发者、创业团队与成长型企业提供的六项赋能机制,逐条落到…

2026/9/24 5:44:01 阅读更多 →
华硕X99上Tesla M40无法点亮?一文搞懂Above 4G Decoding设置

华硕X99上Tesla M40无法点亮?一文搞懂Above 4G Decoding设置

/* 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:44:01 阅读更多 →

最新新闻

音量控制方案全解析:从电位器到PGA2311与VCA

音量控制方案全解析:从电位器到PGA2311与VCA

/* 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 7:07:52 阅读更多 →
零费用开源办公神器,彻底告别付费WPS

零费用开源办公神器,彻底告别付费WPS

真心推荐这款宝藏办公软件 LibreOffice! 完全免费开源,无广告、无会员、不用激活破解,对比WPS和Office真的太良心了。兼容性特别强,所有Office文档格式都能正常打开、编辑、导出,跨软件传输文件不会乱格式。 功能非…

2026/9/24 7:07:51 阅读更多 →
Java个人理财管理系统设计与实现:从数据库设计到部署避坑全解析

Java个人理财管理系统设计与实现:从数据库设计到部署避坑全解析

/* 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 7:07:51 阅读更多 →
专业DAW软件推荐:从新手入门到完整制作链路怎么选

专业DAW软件推荐:从新手入门到完整制作链路怎么选

选第一套 DAW 时,大多数人踩过的坑不是软件不够强,而是把别人的工作流直接搬到自己电脑上,最后发现预算、配置、学习成本和创作目标都对不上。DAW 本质上是数字音频工作站,承担录音、编曲、音频编辑、混音、母带前处理等任务。专业…

2026/9/24 7:07:51 阅读更多 →
从 Yii 1.1 升级到 Yii 2.0:核心架构差异与迁移实践全指南(Yii 2 Framework)

从 Yii 1.1 升级到 Yii 2.0:核心架构差异与迁移实践全指南(Yii 2 Framework)

后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 Yii 2.0 是相对 1.1 完全重写的一代框架,两者在命名空间、对象模型、事件机制、Acti…

2026/9/24 7:06:51 阅读更多 →
案例4.6 image组件:14种显示模式详解与学习笔记

案例4.6 image组件:14种显示模式详解与学习笔记

一、案例概述本案例来自《微信小程序开发》课程,由逄焕刚老师设计,主要演示微信小程序中 image 组件的使用方法和不同显示模式的实现效果。通过本案例的学习,我们可以掌握 image 组件的基础用法、14种显示模式的区别,以及如何通过…

2026/9/24 7:06:50 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →