新闻详情

新闻详情

首页 / 资讯中心 / 详情

rclcpp常用功能

发布时间:2026/10/27 1:08:54来源:尧图网络
rclcpp常用功能
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档rclcpp常用的类模板和函数前言一、rclcpp是什么二、rclcpp有哪些1.节点类Node2.发布器模板类Publisher3.订阅器模板类Subscription4.服务Service5.定时器Timer6.执行器Executor7.初始化init()8.事件循环spin()9.关闭ROS2shutdown()10.日志Logger11.时间Time12.参数Parameter总结前言记录第一天写ROS2学习笔记可以把 rclcpp理解成 ROS2 给 C 提供的一个大型工具箱里面主要包含节点类Node通信类Publisher、Subscription、Client、Service定时器Timer执行器Executor初始化和运行函数init、spin 等日志系统Logger时间和参数系统Time、Parameter提示以下是本篇文章正文内容下面案例可供参考一、rclcpp是什么rclcpp 本身不是一个类class而是一个命名空间namespace相当于c中的一个大文件夹或者包名同理std也是一个命名空间。为什么要命名空间呢比如当我写的如下程序classNode{};voidinit();如果你的程序也写了classNode{};voidinit();就会产生冲突。二、rclcpp有哪些1.节点类Noderclcpp::Node 创建节点的用法classMyNode:publicrclcpp::Node#先继承{public:MyNode():Node(my_node){//先初始化父类节点名字为my_node再执行My_node自己的构造函数}};// 等价于autonodestd::make_sharedrclcpp::Node(my_node);//现实中机器人系统中摄像头节点、激光雷达节点都是如此2.发布器模板类PublisherROS2要发很多种消息例如发送字符串、发速度、发图片等等相当于生活中的广播站广播站收集信息再发给所有收音机Publisher充当的就是这个角色。Publisher↓一个专门发送 Twist 消息的广播站对象SharedPtr↓指向广播站对象的智能指针create_publisher()↓创建广播站并绑定 Topicpublish(msg)↓把消息广播出去模板templatetypenameMessageTclassPublisher;使用rclcpp::Publishergeometry_msgs::msg::Twist::SharedPtr cmd_pub_;创建cmd_pub_create_publishergeometry_msgs::msg::Twist(/cmd_vel,10);发布geometry_msgs::msg::Twist msg;msg.linear.x0.5;cmd_pub_-publish(msg);3.订阅器模板类Subscription接收消息。rclcpp::Subscriptionstd_msgs::msg::String::SharedPtr sub_;创建sub_create_subscriptionstd_msgs::msg::String(/topic,10,std::bind(MyNode::callback,this,std::placeholders::_1));回调voidcallback(conststd_msgs::msg::String::SharedPtr msg){RCLCPP_INFO(get_logger(),%s,msg-data.c_str());}4.服务Service同步请求响应。例如客户端帮我算 23服务器结果是5服务器rclcpp::Serviceexample_interfaces::srv::AddTwoInts::SharedPtr service_;客户端rclcpp::Clientexample_interfaces::srv::AddTwoInts::SharedPtr client_;5.定时器Timer周期执行任务。rclcpp::TimerBase::SharedPtr timer_;创建timer_create_wall_timer(std::chrono::milliseconds(100),std::bind(MyNode::timer_callback,this));6.执行器Executor负责调度回调函数。单线程rclcpp::executors::SingleThreadedExecutor多线程rclcpp::executors::MultiThreadedExecutor类比 Publisher、Subscription、Timer像员工。 Executor像调度员。 Timer回调 Subscription回调 Service回调 ↓ Executor ↓ CPU执行7.初始化init()初始化 ROS2。rclcpp::init(argc,argv);类比像HAL_Init();先把整个框架启动起来。8.事件循环spin()进入事件循环。rclcpp::spin(node);9.关闭ROS2shutdown()关闭 ROS2。rclcpp::shutdown();释放资源。10.日志Logger输出信息。RCLCPP_INFO(this-get_logger(),Hello);还有RCLCPP_WARN()RCLCPP_ERROR()RCLCPP_DEBUG()RCLCPP_FATAL()类比相当于printf();但是有颜色有时间戳有节点名可以过滤日志等级11.时间Timerclcpp::Time rclcpp::Clock获取时间this-get_clock()-now();类比像millis()12.参数Parameter声明declare_parameter(speed,0.5);读取doublespeedget_parameter(speed).as_double();类比像doublespeed0.5;总结提示这里对文章进行总结按照这个顺序后面学习 Nav2、MoveIt2、机器人控制框架时会感觉所有东西都是在这些 rclcpp 基础类上搭起来的。
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/27 6:27:07

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

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

阅读更多 →
无法下载Windows系统iso文件 2026/10/27 8:06:52

无法下载Windows系统iso文件

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

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/26 12:48:02

【清华代码熊】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/10/27 15:44:59

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/10/27 1:55:44

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/10/26 21:26:08

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

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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