ROS2-Executor、Callback Group和QoS

【Executor】

作用:决定哪个回调先执行,哪些回调可以并行执行,是否会出现阻塞

类型:

SingleThreadedExecutor-单线程串行执行所有回调

MultiThreadedExecutor-多线程并发执行回调

StaticSingleThreadedExecutor-静态单线程,提前注册所有节点,运行时无动态扫描开销

【Callback Group】

作用:决定如何并发

类型:

MutuallyExcusive-同一组内回调串行执行,不用组之间可并行

Reentrant-同一组内回调可并行执行

绑定方式:

隐式绑定-创建回调时不指定回调组

显示绑定-创建自定义组

【QoS】

历史记录History-控制本地缓存多少条已发布但尚未被订阅者处理的消息;KEEP_LAST;KEEP_ALL

深度Depth-指定缓存队列的具体长度

可靠性Reliability-控制消息传输的保证级别;RELIABLE-可靠传输;BEST_EFFOR-尽力而为

持久性Durability-控制消息是否对后续加入的订阅者可见;VOLATILE-订阅者只能收到加入之后的新消息;TRANSIENT_LOCAL-发布者在本地保留最近的消息,供后续加入的订阅者获取

截止期限Deadline-定义期望的两条连续消息之间的最大时间间隔

寿命Lifespan-定义消息的有效期,从消息发布时刻开始计时,超过 Lifespan 的消息会被自动丢弃,即使还没有被任何订阅者接收。

 

 

posted @ 2026-06-21 22:10  深度理解优化  阅读(3)  评论(0)    收藏  举报