“规划场景”是一个用于存储机器人周围世界表示以及机器人本身状态的对象。 “planning_scene”对象的内部状态通常由“planning_scene_monitor”组件维护,该组件允许以线程安全的方式读取和写入状态。
特别是,“move_group”节点以及 rviz 规划场景插件维护自己的规划场景监视器 (PSM)。 “move_group”节点的 PSM *监听*主题“/planning_scene”并将其规划场景状态*发布*到主题“monitored_planning_scene”。 后者由 rviz 规划场景插件监听。
世界几何监视器
世界几何监视器使用来自机器人上的传感器(例如激光雷达或深度摄像头)和用户输入的信息构建世界几何。
它使用下面描述的“占用地图监视器”来构建机器人周围环境的 3D 表示,并使用“planning_scene”主题上的信息来增强该表示以添加对象信息。
3D 感知
MoveIt 中的 3D 感知由“占用地图监视器”处理。
占用地图监视器使用插件架构来处理不同类型的传感器输入,如上图所示。
特别是,MoveIt 内置了对处理两种输入的支持:
点云:由“PointCloudOccupancyMapUpdater”插件处理。
深度图像:由
DepthImageOccupancyMapUpdater
插件处理。
请注意,您可以将自己的更新程序类型作为插件添加到占用图监视器中。
Octomap
占用图监视器使用 Octomap 来维护环境的占用图。
Octomap 实际上可以编码有关单个细胞的概率信息,尽管此信息目前未在 MoveIt 中使用。
Octomap 可以直接传递到 MoveIt 使用的碰撞检查库 FCL。
深度图像占用图更新器
深度图像占用图更新器包括其自己的 自过滤器,即它将从深度图中删除机器人的可见部分。 它使用有关机器人的当前信息(机器人状态)来执行此操作。