2D Laser SLAM


1 Laser SLAM概述

  Laser SLAM(Simultaneous Localization and Mapping,激光同步定位与地图构建)是一种机器人技术,旨在解决机器人在未知环境中定位与地图构建问题,它主要依靠激光传感器获取环境信息。
在这里插入图片描述  以上为基于子地图的2D SLAM的基本流程图,摘自高翔的"自动驾驶与机器人中的SLAM技术"。

2 cartographer

  对于机器人激光SLAM而言,cartographer是最接近落地的开源激光SLAM项目。它是一套完整的工程化代码,包括基于图优化的算法及ROS的集成。它的软件架构设计非常的优秀,便于接入IMU、(单/多线)雷达、里程计、甚至为二维码辅助等视觉识别方式也预留了接口。它的地图为2D栅格地图,可以直接用于导航。以下为cartographer的软件框架[摘自官网]
在这里插入图片描述  虽然cartographer非常的优秀,但距离真正的落地,中间还是存在一道鸿沟。特别是消费类产品,需要考虑硬件成本,产品需求等。
  本专栏会基于cartographer、cartographer_ros2的工程化代码,首先裁剪与重构carto,然后新增实用功能,最终构建出一套轻量级、实用级的室内2D激光SLAM。此套2D激光SLAM为不带后端优化的版本。它适用于小区域作业的机器人,例如家庭扫地机器人,陪伴机器人等。

3 裁剪与重构carto

  • 删除cloud、ground_truth、metrics、grpc、测试模块
  • 删除后端优化模块
  • 删除3D SLAM模块
  • 删除因3D SLAM而引入的各种多态
  • 删除基于轨迹ID的建图与定位方案
  • 裁剪并修改msg模块及对应实现
  • 封装ROS接口的的topic、service、action消息
  • 解除cartographer_ros内topic机制与ID的绑定
  • 修改传感器数据传输机制
  • 修改map数据的获取与发布机制
  • 修改地图的保存机制
  • 修改地图的加载机制
  • 裁剪最终产物

4 gorilla slam

  • 建图与定位
  • 业务输入与输出
  • 寻找主方向
  • 重定位
  • 地图管理
  • 异常处理
  • 地图美化
  • 地图分区

5 效果展示

在这里插入图片描述

6 VS cartographer

  • 无abseil、protobuf、lua、cairo、boost、pcl
  • 参数只用yaml文件构成,配置参数少,更容易上手
  • 无各种多态,无轨迹策略,无3D相关内容,调用清晰明了
  • 新增了地图裁剪、美化和分区
  • 新增产品级别的ROS接口
  • 基于cmake方式编译,结果只有可执行程序和相应的.so文件

7 合作

  本教程不会对外公布,有需求请私信。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值