当前位置: 首页 > news >正文

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

目录

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

        将下面的内容粘贴其中:

<launch><node pkg="octomap_server" type="octomap_server_node" name="octomap_server"> <!--resolution in meters per pixel--><param name="resulution" value="0.6" /><!--name of the fixed frame,needs to be "/map" for SLAM--><param name="frame_id" type="string" value="/map" /><!--max range/depth resolution of the kinect meters--><param name="sensor_model/max_range" value="5.0" /><param name="latch" value="true" /><!--max/min height for occupancy map, should be in meters--><param name="pointcloud_max_z" value="5" /><param name="pointcloud_min_z" value="0" /><param name="graound_filter_angle" value="3.14" /><!--topic from where pointcloud2 messages are subscribed--><remap from="/cloud_in" to="/lio_sam/mapping/cloud_registered" /></node></launch>

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

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

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

        sensor_model/max_range:扫描的最大距离

        cloud_in:点云话题

        pointcloud_max_z:最大的Z扫描值

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

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

        1.剔除地面点的

        加上的话类似这样:

<launch><node pkg="octomap_server" type="octomap_server_node" name="octomap_server"> <!--resolution in meters per pixel--><param name="resulution" value="0.6" /><!--name of the fixed frame,needs to be "/map" for SLAM--><param name="frame_id" type="string" value="/map" /><!--max range/depth resolution of the kinect meters--><param name="sensor_model/max_range" value="1000.0" /><param name="latch" value="true" /><!--max/min height for occupancy map, should be in meters--><param name="pointcloud_max_z" value="5" /><param name="pointcloud_min_z" value="-1.5" /><param name="filter_ground" value="true" /><param name="ground_filter/distance" value="0.05" /><param name="ground_filter/angle" value="0.2" /><!--topic from where pointcloud2 messages are subscribed--><remap from="/cloud_in" to="/lio_sam/mapping/cloud_registered" /></node></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

http://www.lryc.cn/news/249755.html

相关文章:

  • 【多传感器融合】BEVFusion: 激光雷达和视觉融合框架 NeurIPS 2022
  • kafka中的常见问题处理
  • HarmonyOS(八)——@Styles装饰器:定义组件重用样式
  • 手写VUE后台管理系统5 - 整合状态管理组件pinia
  • 解决webpack打包生成gz格式css/js文件没法在nginx使用的问题--全网唯一正确
  • 传统算法: Pygame 实现快速排序
  • HarmonyOS入门开发(三) 持久化存储Preferences
  • 类和对象——(3)再识对象
  • 【UGUI】实现背包的常用操作
  • 单机zk安装与zk四字命令
  • matlab导入excel数据两种常见的方法
  • 华为全屋智能5.0,无为而“智”
  • Flask 实现Token认证机制
  • MATLAB 和 Simulink 官方文档下载地址
  • 【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效
  • Java 中最常用的设计模式之一,工厂模式模式的写法,
  • HTML的学习
  • JS设计模式 — 行为委托
  • Microsoft Expression Web - 网页布局
  • Java SpringBoot Controller常见写法
  • 【驱动】SPI驱动分析(五)-模拟SPI驱动
  • 人工智能_机器学习056_拉格朗日乘子法原理推导_公式由来详解_原理详解---人工智能工作笔记0096
  • 记RocketMQ本地开发环境搭建始末
  • 2023年全国职业院校技能大赛“ 信息安全管理与评估” 测试题2
  • flutter开发实战-readmore长文本展开和收缩控件
  • 如何使用简单的分支策略来保护您的 Git 项目
  • vue3的 nextTick()的使用
  • Redis Lua沙盒绕过 命令执行(CVE-2022-0543)漏洞复现
  • react中useState、useRef、变量之间的区别
  • 企业软件的分类|app小程序网站定制开发