发布时间:2026/9/2 5:44:09
1.ROS2创建节点 文章目录Python 创建节点C创建python 功能包Python 创建节点# 1. 导入ros2 python客户端库importrclpy# 导入节点基类所有ROS2节点都要继承/使用它fromrclpy.nodeimportNode# 定义主函数defmain():# 2. 初始化ROS2运行环境相当于启动ros2底层rclpy.init()# 3. 创建一个节点节点名字叫 python_node# 在ROS2中程序最小单元就是「节点」一个程序 一个节点nodeNode(python_node)# 4. 打印一条日志输出到终端info是普通信息日志# 等价于 print()但是是ROS标准日志可以设置日志等级、保存日志文件node.get_logger().info(Python Node)# 5. 保持节点存活进入自旋监听状态等待消息、定时器事件# rclpy.spin 会卡住程序不会直接往下执行rclpy.spin(node)# 6. 关闭ROS2环境释放资源spin被CtrlC中断之后才会走到这一行rclpy.shutdown()# python程序入口运行这个脚本时自动执行 main()if__name____main__:main()C#includeiostream#includerclcpp/rclcpp.hppusing namespace std;intmain(intargc,char**argv){rclcpp::init(argc,argv);autonodemake_sharedrclcpp::Node(cpp_node);RCLCPP_INFO(node-get_logger(),C Node);rclcpp::spin(node);rclcpp::shutdown();return0;}CMakeListcmake_minimum_required(VERSION 3.8) project(ros2_cpp) # 查找ROS依赖 find_package(rclcpp REQUIRED) # 生成可执行程序 add_executable(ros2_cpp_node ros2_cpp_node.cpp) # 打印调试信息STATUS 拼写正确 message(STATUS ${rclcpp_INCLUDE_DIRS}) message(STATUS ${rclcpp_LIBRARIES}) # 指定头文件路径指令带下划线名字不能空格 target_include_directories(ros2_cpp_node PUBLIC ${rclcpp_INCLUDE_DIRS} ) # 链接库文件 target_link_libraries(ros2_cpp_node ${rclcpp_LIBRARIES} )创建python 功能包先进入工作空间 src 目录标准规范cd ~/learnRos2_ws/src创建 Python 类型功能包ros2 pkg create --build-type ament_python my_python_pkgmy_python_pkg你的功能包名字自定义--build-type ament_python指定是 Python 包区别于 C 的ament_cmake执行完自动生成目录结构my_python_pkg/ ├── my_python_pkg/ # Python源码文件夹 │ ├── __init__.py ├── package.xml ├── setup.py # 配置入口节点关键文件 ├── setup.cfg └── resource/编写 python 节点文件写入示例代码hello_node.pyimportrclpyfromrclpy.nodeimportNodeclassHelloNode(Node):def__init__(self):super().__init__(hello_python)self.get_logger().info(ROS2 Python节点启动成功)defmain():rclpy.init()nodeHelloNode()rclpy.spin(node)rclpy.shutdown()if__name____main__:main()修改 setup.py 注册可执行入口必须否则 ros2 run 找不到entry_points{ console_scripts: [ hello my_python_pkg.hello_node:main, ], },格式节点别名 包名.文件名:main函数5.package.xml 添加依赖必须补打开package.xml在buildtool_dependament_python/buildtool_depend下面添加dependrclpy/depend返回工作空间根目录编译cd ~/learnRos2_wscolcon build --packages-select my_python_pkg刷新环境变量source install/setup.bash运行节点ros2 run my_python_pkg hello

相关新闻

2026/9/2 5:44:09

VisionPro工具解析

VisionPro CogTool 工具解析:75 个视觉工具一次搞懂 前言 VisionPro 是康耐视(Cognex)推出的工业机器视觉开发平台,广泛应用于定位、测量、检测、识别等场景。其核心是一套名为 CogTool 的工具库——每个工具封装了一种独立的视觉…

2026/9/2 5:44:09

从API报错到版权诉讼:AI应用开发者的依赖管理启示

一次很平常的晚上,我正在本地跑一段基于 Claude API 的自动化脚本,日志里突然冒出几行熟悉的报错:unable to connect to anthropic services failed to connect to api.anthropic.c...正当我准备按老一套流程去查网络、查 Key、查配置时&…

2026/9/2 5:39:09

开源模型胜任自动化任务?从选型到工程化落地的完整指南

“自动化任务到底能不能用开源模型?”这个问题,几乎每次技术讨论都会有人问,而回答常常分成两派。一派认为自动化任务出错代价高,必须让最聪明的闭源大模型来兜底,于是团队每个月要为 API 调用付出高额账单&#xff0c…

2026/9/2 5:59:10

IMX586点亮指南:从硬件时序到平台适配的实战排查清单

简介:面向嵌入式驱动开发工程师与图像传感器应用开发者,这份资源围绕索尼IMX586 4800万像素CMOS传感器,提供与Linux V4L2框架对接的完整驱动参考实现。包内共40个文件,以C源文件、头文件、目标文件、Makefile构建脚本为主&#xf…

2026/9/2 5:59:10

FPGA数字秒表项目实战:从时钟分频到状态机设计的完整指南

简介:本资源是一套完整的FPGA数字秒表设计工程,面向电子类专业本科生、FPGA初学者及数字系统设计实践者,解决从计数逻辑构建、数码管动态显示到按键状态机控制等核心问题。项目实现99分59.99秒高精度计时,支持启动/暂停/清零三态操…

2026/9/2 5:59:10

事件相机目标检测实战:从YOLO模型适配到实时部署全流程解析

简介:本资源是一套面向人工智能与智能感知方向的事件相机目标检测下游实践方案,适用于计算机、自动化、电子信息等专业的本科生毕设、研究生科研及工程落地参考。项目提供完整可运行的PyTorch代码框架、多阶段训练配置(含SSOD系列预训练模型.…

2026/9/2 5:54:10

STM32F103驱动GC9A01圆形屏:从SPI移植到表盘绘制全攻略

简介:这是面向STM32初学者的嵌入式显示方案,基于STM32F103驱动1.28寸TFT液晶屏,采用GC9A01驱动芯片,屏幕分辨率240240像素,使用硬件SPI接口通信。工程采用Keil组织,包含源码、头文件及系统启动文件&#xf…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/1 8:27:47

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/1 7:04:43

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…