紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
关于ROS2节点中多个服务并行的问题
-
比如在一个node中创建了ABC三个服务,想要让他们能够并行执行的时候,我是给node加了MultiThreadedExecutor,然后所有的service都加了ReentrantCallbackGroup;这样确实可以用三个client同时向这三个服务发送请求,在终端中是可以看到node接收到了这三个请求;
但是如果想要实现:A和B两个服务是可以被两个client同时发送请求进行处理,但是当处理C服务请求的时候,A和B是不可以执行的。理想的处理方式是,在处理A和B请求的时候,如果收到C的请求,那么就等待A和B处理完之后再处理C,反之亦然。
我尝试过把C的callback_group变量去掉,我这里的服务的回调函数会去订阅相机的图片,这里就会提示订阅不到;如果把C的callback_group变量改为MutuallyExclusiveCallbackGroup,感觉并没有任何影响,还是可以同时请求ABC三个服务。