当前位置:   article > 正文

6.如何利用LIO-SAM生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例_octomap实现3d导航

octomap实现3d导航

目录

1 octomap的安装

2 二维导航节点的建立及栅格地图的构建

3 三维栅格地图的建立


1 octomap的安装

        这里采用命令安装:

sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic-octomap-rviz-plugins ros-melodic-octomap-server

        这样子就是安装好了。

2 二维导航节点的建立及栅格地图的构建

        我们进入liosam的工作空间下的launch文件夹:

        新建一个launch文件,就叫octomap2D.launch

        将下面的内容粘贴其中:

  1. <launch>
  2. <node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
  3. <!--resolution in meters per pixel-->
  4. <param name="resulution" value="0.6" />
  5. <!--name of the fixed frame,needs to be "/map" for SLAM-->
  6. <param name="frame_id" type="string" value="/map" />
  7. <!--max range/depth resolution of the kinect meters-->
  8. <param name="sensor_model/max_range" value="5.0" />
  9. <param name="latch" value="true" />
  10. <!--max/min height for occupancy map, should be in meters-->
  11. <param name="pointcloud_max_z" value="5" />
  12. <param name="pointcloud_min_z" value="0" />
  13. <param name="graound_filter_angle" value="3.14" />
  14. <!--topic from where pointcloud2 messages are subscribed-->
  15. <remap from="/cloud_in" to="/lio_sam/mapping/cloud_registered" />
  16. </node>
  17. </launch>

        我来解释下各个参数的含义:

        resolution:分辨率或精度,越小精度越高计算需要资源越庞大

        frame_id:世界坐标系的话题,即圆点坐标系

        sensor_model/max_range:扫描的最大距离

        cloud_in:点云话题

        pointcloud_max_z:最大的Z扫描值

        pointcloud_min_z:最小的Z扫描值(激光雷达和垂直平面有一定距离)

        当然,还有其他可选参数:

        1.剔除地面点的

        加上的话类似这样:

  1. <launch>
  2. <node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
  3. <!--resolution in meters per pixel-->
  4. <param name="resulution" value="0.6" />
  5. <!--name of the fixed frame,needs to be "/map" for SLAM-->
  6. <param name="frame_id" type="string" value="/map" />
  7. <!--max range/depth resolution of the kinect meters-->
  8. <param name="sensor_model/max_range" value="1000.0" />
  9. <param name="latch" value="true" />
  10. <!--max/min height for occupancy map, should be in meters-->
  11. <param name="pointcloud_max_z" value="5" />
  12. <param name="pointcloud_min_z" value="-1.5" />
  13. <param name="filter_ground" value="true" />
  14. <param name="ground_filter/distance" value="0.05" />
  15. <param name="ground_filter/angle" value="0.2" />
  16. <!--topic from where pointcloud2 messages are subscribed-->
  17. <remap from="/cloud_in" to="/lio_sam/mapping/cloud_registered" />
  18. </node>
  19. </launch>

        我们启动liosam主节点和本节点。

        播放bag包:

        发现地面有很多噪点。调参...

        好点了,继续调参。。

        不停的调参后.....

        勉强可以用。。。因为我们手持的原因...

        保存栅格地图:

 rosrun map_server map_saver map:=/projected_map -f sbmap

        

3 三维栅格地图的建立

        下载octomap_tutor并编译:

        安装依赖:

sudo apt-get install liboctomap-dev octomap

        生成可执行文件pcd2octomap,记得一定要设置可执行,可以打开这个文件的属性看一看。

        执行:

pcd2octomap carto_demo.pcd carto.bt

        执行成功,发现八叉树文件:

        查看地图:

octovis carto.bt

        OK

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/96187
推荐阅读
相关标签
  

闽ICP备14008679号