【Roban教程】八叉树图层的截取以及平面地图的生成

一、八叉树图层的截取

为了方便系统存储和处理,使用八叉树的方法进行数学建模,大大减小了系统的存储空间以及缩短了处理时长。我们使用octomap_sever 包去生成八叉树图。octomap_sever能加载3D 地图,并以紧凑的二进制格式将其分发到其他节点。它还允许增量构建3D OctoMaps, 并在节点octomap_saver 中提供地图保存。

当八叉树图生成之后,我们需要对生成的八叉树进行截取处理,去掉地面且去掉高千Roban 机器人身高的部分。首先借助octomap_sever 中的静态八叉树追踪的roslaunch, 如下图所示,我们可以直接将点云的二进制文件转化成八叉树:在转换的过程中需要自行配置参数,以截取合适的图层。

1.png

截取前的八叉树图


例如,通过考虑机器人的身高以及去除地面的影响,我们所选的roslaunch 参数如下所示:

2.png


之后,如下图所示,我们能够得到截取之后的八叉树图:

3.png

 截取后的八叉树图


二、平面地图的生成

与此同时,我们可以在map 主题中订阅生成的平面地图,如下图所示:

4.png

生成的平面图


图中黑色部分代表不可进入的区域,白色部分代表镜头朝向(由千加载的是静态地图,此区域不会随着当前镜头的移动而改变,是由创建地图时最后的镜头位置所决定的),深绿色部分代表可以进入的区域。至此,如下图所示,得到了可以进行路径分析的平面地图,同时主题/map 由octomap_talker 节点发布:

5.png

rqt_graph 界面



回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 0 关注
  • 14 粉丝
  • 115 帖子