“规划场景”是一个用于存储机器人周围世界表示以及机器人本身状态的对象。 “planning_scene”对象的内部状态通常由“planning_scene_monitor”组件维护,该组件允许以线程安全的方式读取和写入状态。

特别是,“move_group”节点以及 rviz 规划场景插件维护自己的规划场景监视器 (PSM)。 “move_group”节点的 PSM *监听*主题“/planning_scene”并将其规划场景状态*发布*到主题“monitored_planning_scene”。 后者由 rviz 规划场景插件监听。

../../_images/planning_scene_monitor.svg

世界几何监视器

世界几何监视器使用来自机器人上的传感器(例如激光雷达或深度摄像头)和用户输入的信息构建世界几何。

它使用下面描述的“占用地图监视器”来构建机器人周围环境的 3D 表示,并使用“planning_scene”主题上的信息来增强该表示以添加对象信息。

3D 感知

MoveIt 中的 3D 感知由“占用地图监视器”处理。

占用地图监视器使用插件架构来处理不同类型的传感器输入,如上图所示。

特别是,MoveIt 内置了对处理两种输入的支持:

  • 点云:由“PointCloudOccupancyMapUpdater”插件处理。

  • 深度图像:由 DepthImageOccupancyMapUpdater 插件处理。

请注意,您可以将自己的更新程序类型作为插件添加到占用图监视器中。

Octomap

占用图监视器使用 Octomap 来维护环境的占用图。

Octomap 实际上可以编码有关单个细胞的概率信息,尽管此信息目前未在 MoveIt 中使用。

Octomap 可以直接传递到 MoveIt 使用的碰撞检查库 FCL。

深度图像占用图更新器

深度图像占用图更新器包括其自己的 自过滤器,即它将从深度图中删除机器人的可见部分。 它使用有关机器人的当前信息(机器人状态)来执行此操作。