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 的消息会被自动丢弃,即使还没有被任何订阅者接收。
浙公网安备 33010602011771号