1.ROS2创建节点

发布时间:2026/10/18 21:51:26

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/10/18 2:14:43

VisionPro工具解析

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

2026/10/11 14:07:05

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

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

2026/10/19 6:31:03

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

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

2026/10/19 19:21:28

明华澳汉读卡器驱动安装与串口调试避坑指南

简介:明华澳汉读卡器驱动程序包面向需要安装调试或二次开发明华澳汉读卡器的用户与软件工程师。压缩包内含驱动安装程序、USB写卡机驱动、IC卡读写器说明书及配套IC卡程序,可解决操作系统无法识别读卡器或无法正常读写IC卡与存储卡的问题。整包共包含69个…

2026/10/19 19:21:28

代码评审怎么做?open-code-review 完整落地指南

代码评审这件事,我一直觉得是软件开发里最被低估、也最容易被做烂的环节。很多人把评审当成走流程,PR 挂了一天没人看,临上线前才甩出个 "LGTM",Line 全绿了,问题全留到线上。我自己在过去几年里参与过、也推…

2026/10/19 19:21:28

PaZO零阶优化:不计算梯度也能高效微调大模型的新路径

如果你最近在调大模型,八成已经碰到过同一个尴尬:代码写得挺顺手,一跑全参微调,显存直接报警。于是大家开始转向 LoRA、QLoRA、梯度检查点这些外围功夫,很少有人去质疑反向传播本身是不是微调唯一的路。2025 年 NeurIP…

2026/10/19 19:21:28

代码评审机制化:用open-code-review将评审经验沉淀为可复用规则

他们常说代码评审是软件质量的最后一道防线,但我见过太多评审变成“已阅”的场面。一个 MR 发出去,五分钟收到三个 LGTM,合入两周后线上报警,回翻当时的评审记录,评论区全是“1”,核心逻辑压根没人看。这不…

2026/10/19 19:21:28

大模型微调实战:从数据准备到部署上线的完整指南

从最早接一个内部知识库问答项目开始,我就一直在跟“模型微调”这件事较劲。当时客户提了个很常见的需求:让模型懂他们公司的产品手册、内部制度,还得按规定的口径回答。最开始试了各种提示词工程,效果始终不稳定,同一…

2026/10/19 19:16:26

ACPI电源按钮S3唤醒到S0完整流程图解与排查指南

做底层固件和驱动调试的人,总有一天会被ACPI的睡眠唤醒折磨:笔记本明明进了S3,按下电源按钮却毫无反应,或者屏幕亮了但系统卡在半路,又或者唤醒后USB设备全部掉线。这些问题表面上都是“电源按钮”和“S3/S0切换”的锅…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/19 0:04:56

悟空开源无代码平台实战:从实体建模到应用设计避坑指南

简介:基于悟空开源无代码平台的多种应用设计源码,面向希望在不编写代码的情况下快速搭建CRM、HRM、财务系统、ERP、SRM等业务应用的企业与技术人员,通过拖放式界面和内置模板即可完成应用定制与部署。压缩包共697个文件,约10.74MB…

2026/10/19 0:04:56

基于.NET9的多租户权限系统:数据权限与动态API落地实践

简介:这份资源是一套面向 .NET 与 Vue 全栈开发者的中台权限管理系统,后端基于 .Net9,前端采用 Vue3 Element Plus,并配套 uniapp uviewui 移动端方案,实现前后端分离。系统覆盖多租户隔离、数据权限、动态 Api、任务…

2026/10/19 0:04:56

场地预约小程序毕设实战:SSM+微信小程序+MySQL数据库设计到避坑

简介:面向毕业设计场景的场地预约小程序完整项目,基于微信小程序SSMMySql技术栈开发,适合计算机相关专业学生作为选题参考、功能扩展或二次开发起点。系统实现场地类型管理、场地管理、预约管理、取消申请与押金退回等功能,分为管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑