当前位置:网站首页>MoveIt2——6.规划场景监视器
MoveIt2——6.规划场景监视器
2022-07-19 22:38:00 【babyrtsh .】
场景规划监视器
PlanningSceneMonitor是用于维护规划场景最新状态的推荐接口。 RobotState、CurrentStateMonitor、PlanningScene、PlanningSceneMonitor 和PlanningSceneInterface之间的关系一开始可能会令人感到困惑。本节教程旨在厘清这些关键概念。
RobotState
RobotState是机器人的一个快照,包含RobotModel和关节值集合。
CurrentStateMonitor
CurrentStateMonitor(CSM)可以看作是RobotState的一个ROS封装器。它会订阅一个提供的JointState消息话题,该话题为单自由度执行器(例如旋转关节或棱柱关节)提供最新的传感器值,并使用这些关节值更新其内部的RobotState。除了单自由度关节外,机器人还可以有多自由度的关节,例如浮动关节和平面关节。为了维护附加有多自由度关节的链接和其他坐标系的最新坐标变换信息,CSM会存储一个TF2 Buffer,该缓冲区使用TF2 TransformListener在其内部数据中设置它们的坐标变换。
PlanningScene
PlanningScene是机器人世界的一个快照,该世界包括RobotState和任意数量的碰撞物体。规划场景可用于碰撞检测以及获取环境相关信息。
PlanningSceneMonitor
PlanningSceneMonitor用ROS接口封装了一个PlanningScene以维持PlanningScene的最新状态。要访问PlanningSceneMonitor底层的PlanningScene,请使用提供的LockedPlanningSceneRW和LockedPlanningSceneRO类。
PlanningSceneMonitor 具有下列对象,它们拥有各自的ROS接口,用于维持规划场景各个子级组件的最新状态:
- CurrentStateMonitor用于通过一个
robot_state_subscriber_
和一个tf_buffer_
以及一个会侦听其他发布者规划场景差分消息的规划场景订阅者来跟踪RobotState的更新。 - OccupancyMapMonitor用于通过ROS话题和服务来跟踪OccupancyMap的更新。
PlanningSceneMonitor具有以下订阅者节点:
collision_object_subscriber_
—侦听提供的CollisionObject消息话题,这些消息可能会在规划场景中添加、删除或修改碰撞对象,并将它们传递到受监视的规划场景中planning_scene_world_subscriber_
—侦听提供的PlanningSceneWorld消息话题,这些消息可能包含碰撞对象信息和/或占用地图信息。该订阅者节点对于保持规划场景监视器同步很有用attached_collision_object_subscriber_
—侦听提供的AttachedCollisionObject消息话题,这些消息会决定将碰撞物体附加到机器人状态中的链接上,或者从链接上将物体分离开。
PlanningSceneMonitor具有以下服务:
get_scene_service_
—获取完整规划场景状态的一项可选服务。
PlanningSceneMonitor会用以下参数进行初始化:
startSceneMonitor
—启动planning_scene_subscriber_
;startWorldGeometryMonitor
—启动collision_object_subscriber_
、planning_scene_world_subscriber_
和OccupancyMapMonitor;startStateMonitor
—启动CurrentStateMonitor和attached_collision_object_subscriber
;startPublishingPlanningScene
—启动另一个线程,用于在提供的话题上发布整个规划场景,供其他PlanningSceneMonitor订阅;providePlanningSceneService
—启动get_scene_service_
。
PlanningSceneInterface
PlanningSceneInterface是一个很有用的类,用于通过C++ API向MoveGroup的PlanningSceneMonitor发布更新,而无需创建您自己的订阅者和服务客户端。如果没有MoveGroup或MoveItCpp,它可能会无法正常工作。
边栏推荐
- The bull market is still there, and it is a global law for funds to concentrate on the head 2021-04-04
- 企业数字化转型之传统架构到中台微服务架构
- 企业数字化转型之传统架构到中台微服务架构
- 数字化转型迈向深水区:银行业不断夯实科技根基
- shell编程(脚本)(变量)
- 真的卷不动了...
- Digital transformation towards deep water: the banking industry continues to consolidate its scientific and technological foundation
- Communication project based on bio mode
- 01_教育3
- 【云驻共创】华为云助力加速构建企业数据资产和数据治理生产线
猜你喜欢
shell中的运算
ECCV 2022 | 重新思考Vision Transformers中用于数据增强的图像混合
Digital transformation towards deep water: the banking industry continues to consolidate its scientific and technological foundation
CVPR 2022 | 内容感知的文字标志图像生成方法
解决“nothing added to commit but untracked files present“
Communication project based on bio mode
[cloud based co creation] Huawei cloud helps accelerate the construction of enterprise data assets and data governance production lines
牛市当头,目前还能不能买入?2021-04-09
Shell的执行流控制
Job hopping After 3 rounds of interviews for byte test post, 4 hours of soul torture, the ending is cool
随机推荐
华泰证券h5开户安全吗?可以开吗?
Comparison of several popular cross end technology solutions in 2022
DeFi仍有大量创新空间,未来还会出现优质项目 2021-04-13
驱动虚拟环境搭建记录
.NET6之MiniAPI(五):选项
How to use sublime text to open MD instead of typora
Puzzling switch
Job hopping After 3 rounds of interviews for byte test post, 4 hours of soul torture, the ending is cool
力扣第三题
2022徐特立科学营&BIT机器人队电控课程讲义
跳槽了...历经字节测试岗3轮面试,4个小时灵魂拷问,结局透心凉...
Is it safe for Huatai Securities H5 to open an account? Can I drive it?
解决“nothing added to commit but untracked files present“
[go language] (I) environment building and understanding vscode tools
离线安装:如何搭建安全的企业级Harbor服务?内容太过详细。
教你使用CANN将照片一键转换成卡通风格
What is CPU virtualization? Open or close?
Kubernetes网络插件详解- Flannel篇
Stock account opening fee and account opening commission are the lowest, the most economical and cost-effective. Is online account opening safe
微服务架构 | 链路追踪 - [Sleuth]