Skip to content

规划场景监视器

planning scene(规划场景)是一个对象,用于存储机器人周围世界的表示以及机器人自身的状态。planning_scene 对象的内部状态通常由 planning_scene_monitor(规划场景监视器)组件维护,该组件以线程安全的方式支持对状态的读写。

具体而言,move_group 节点以及 rviz 的 planning scene 插件各自维护着自己的 Planning Scene Monitor(PSM,规划场景监视器)。move_group 节点的 PSM 会监听主题 /planning_scene,并将其规划场景状态发布到主题 monitored_planning_scene。后者由 rviz 的 planning scene 插件监听。

世界几何监视器(world geometry monitor)利用机器人上传感器(如 LIDAR 或深度相机)以及用户输入的信息来构建世界几何。它通过下文描述的 occupancy map monitor(占据地图监视器)构建机器人周围环境的 3D 表示,并利用 planning_scene 主题上的信息进行补充,以添加物体信息。

MoveIt 中的 3D 感知由 occupancy map monitor 处理。如上图所示,占据地图监视器采用插件架构来处理不同类型的传感器输入。MoveIt 内置了对两种输入类型的支持:

  • 点云(Point clouds):由 PointCloudOccupancyMapUpdater 插件处理。

  • 深度图像(Depth images):由 DepthImageOccupancyMapUpdater 插件处理。

需要注意的是,你可以通过插件形式为占据地图监视器添加自定义的更新器(updater)。

占据地图监视器使用 Octomap 来维护环境的占据地图。Octomap 能够对单个单元格的概率信息进行编码,不过 MoveIt 目前尚未使用这些信息。Octomap 可以直接传入 FCL——即 MoveIt 所使用的碰撞检测库。

深度图像占据地图更新器(depth image occupancy map updater)自带*自过滤(self-filter)*功能,即它会从深度图中移除机器人自身的可见部分。为此,它需要使用机器人的当前状态信息。