新闻详情

新闻详情

首页 / 资讯中心 / 详情

ROS2 Jazzy 包管理极简实战:创建、编译、运行一条龙

发布时间:2026/11/7 23:05:12来源:尧图网络
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安装。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/7 13:27:02

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/7 0:39:20

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/7 6:36:21

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/7 22:37:56

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/6 14:29:05

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/6 14:29:07

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉