基于激光雷达构建高精度点云地图及其感知定位
目前,前期大多数自动驾驶公司采用高精度惯导(imu+gnss+rtk)来实现高精度定位,但存在应用场景缺陷,无法应用隧道、高楼、林阴路等非开阔场景。所以感知定位方式应运而生,感知定位方式大多分为两种:视觉定位、激光雷达定位,本文将采用激光雷达定位方式。
硬件
现在市面上激光雷达很多种:velodyne、速腾、禾赛、北科天绘。低成本考虑,本文将采用velodyne vlp-16 激光雷达作为本次方案选择。计算单元最好用工控机或性能比较好的笔记本。
系统
不多说,采用基于ubuntu16.04系统,装上ROS(kinetic)系统,网上有相关教程。
获取点云数据
安装激光雷达驱动。
https://github.com/ros-drivers/velodyne
http://wiki.ros.org/velodyne
用ROS下的rviz可视化点云数据如下
运动补偿
一般选择激光雷达扫描频率为10Hz(20Hz、5Hz可选),360度持续扫描,所以完成一帧环境数据需要0.1s,车辆静止时雷达扫描到地上的线束是闭合的。但当车辆高速运动时,观察到的线速没有闭合,当车速为10m/s(36km/h,并不快啊!!!),扫描周期为0.1s,当完成一帧扫描时车辆已经行走1m远了,可见对后面影响多大。
为了简单可见,采用匀速模型,补偿车辆纵向距离和产生的横摆角差,一般车辆也不会产生横向漂移。。
P(t) = αR x βT x P(t-1)
P(t-1)为一个周期内(100ms)所生成的点云数据,车辆当前相对于上一时刻发生了车姿变换,R、T分别为旋转矩阵和偏移矩阵,α、β为当前点云的位置比例。
构建本地地图
比较常见的点云匹配算法有icp算法、ndt算法 ,为了运行效率,本文采用ndt算法。点云库PCL有丰富的资料,下载源码,编译之后可直接调用。
http://pointclouds.org/
感知定位
构建道路高精度点云地图之后,输入车辆的初始位置,ndt算法对位置的误差有较好的收敛性,耗时也比较稳定。
构建全局地图
在理想情况下,室外开阔,gps信号接收良好,gps+rtk有着绝对的定位精度。车辆装备激光雷达、惯导设备(差分服务,千寻或自己架基站都可行),标定两者之间的相对位置(tf之间的变换)。惯导获取大地绝对坐标,激光雷达获取的局部点云信息通过坐标变换可将转换至大地绝对坐标中,然后通过下采样处理,降低点云密度以便降低存储空间。
构建全局高精度点云地图之后,自动驾驶车辆可实现全局的高精度定位。gsp初始定位后激光雷达精确定位。
reference:
https://blog.csdn.net/adamshan/article/details/79230612
https://www.cnblogs.com/sddai/p/6129446.html
基于激光雷达构建高精度点云地图及其感知定位相关推荐
- 基于激光雷达的里程计及3D点云地图中的定位方法
本文转载自公众号@点云PCL,基于激光雷达的里程计及3D点云地图中的定位方法 :https://mp.weixin.qq.com/s/laA1YAPBCpqlzdGi0yb2cQ 论文:LOL: Li ...
- 采用Cartographer、LIO-SAM构建三维点云地图,采用Octomap构建八叉树地图(三维栅格地图)
采用Cartographer.LIO-SAM构建三维点云地图,采用Octomap构建八叉树地图(三维栅格地图) 采用Cartographer构建三维点云地图 采用的数据集是安装Cartographer ...
- ORB-SLAM2的布置(五)使用 intel D435i 构建SLAM点云地图
Intel RealSense SDK 2.0 是跨平台的开发套装,包含了基本的相机使用工具如 realsense-viewer,也为二次开发提供了丰富的接口,包括 ROS,python , Matl ...
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- A-LOAM/LOAM/Lego-LOAM/SC_Lego_LOAM实时构建3d点云地图与2d栅格地图(octomap)
本篇文章旨在快速让读者实现运行LOAM系列3D激光SLAM算法并实时构建3d点云地图与2d栅格地图.废话不多说,直接开始~ 首先说明我们要用到的3D点云地图转2D栅格地图的工具是octomap,附上高 ...
- A-LOAM构建3d点云地图并实时转存二维栅格地图
文章参考 A-LOAM/LOAM/Lego-LOAM/SC_Lego_LOAM实时构建3d点云地图与2d栅格地图(octomap) 1 安装 octomap 可以从 apt 安装或者以功能包的形式安装 ...
- 利用自己的数据包实现点云地图的NDT定位
本文旨在帮助读者利用自己的数据包完成3D点云地图下的定位,公开数据包NDT:自动驾驶系统进阶与项目实战(六)基于NDT的自动驾驶高精度定位和ROS项目实战,本文只讲应用. 废话不多说,直接开始! 一. ...
- 基于Kubernetes构建企业容器云
前言 团队成员有DBA.运维.Python开发,由于需要跨部门向公司私有云团队申请虚拟机, 此时我在思考能否在现有已申请的虚拟机之上,再进行更加细粒度的资源隔离和划分,让本团队的成员使用, 也就是在私 ...
- Ayla艾拉物联基于AWS构建IoT艾拉云
:Ayla艾拉物联有一个非常好听的英文名"Ayla",名字的由来也非常奇妙,是两位联合创始人孩子第二个字母的组合,所以几位创始人同样把艾拉物联当做自己孩子一样看待. 但在IoT(物 ...
最新文章
- SIP术语的名词解析
- 关于机器学习的领悟与反思
- IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (上篇)-js-ipfs-api
- java 接口练习题1
- 递归和非递归实现规律函数
- python 怎么查看变量的数据类型
- Java笔记-Spring Boot使用外部Tomcat及解决Tomcat乱码
- Asp.net MVC中如何获取控制器的名称
- mac mysql not found_mac版mysql安装后显示mysql: command not found咋整?
- Arcgis javascript那些事儿(十四)——连接oracle
- python工资一般多少-Python开发的工资一般多少
- Ubuntu source list
- CF 914 D. Bash and a Tough Math Puzzle
- 算法--职前算法复习
- HDU4282 A very hard mathematic problem 快速幂
- 宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程
- java整形数组的最大最小值
- 大学物理复习笔记:刚体力学基础,动量矩
- html将数据永久保存起来,数据保存(永久保存)方式(示例代码)
- Unity3D空战游戏模板 Air Warfare
热门文章
- Elasticsearch 分页查询聚合分析
- 【ThreeJS基础教程-材质纹理篇】3.2 初识基础网格材质MeshStandardMaterial
- unity3d问题集 对Vector3.Lerp 插值的理解 - 转自蛮牛
- 十个免费的 Web 压力测试工具(转)
- Oracle存储过程的简单举例
- BUUCTF MISC刷题笔记(六)
- 丰立智能在创业板上市:总市值达到33亿元,王友利夫妇为实控人
- Python-下载第三方模块,更换pip下载源
- 2022面试,Java面试项目推荐,15个项目吃透两个offer拿到手软
- eclipse-2019版本怎么改为中文语言?