![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
无人驾驶
文章平均质量分 61
无人驾驶
try_again_later
在读硕士,高精度建图定位方向。
知乎专栏:《视觉、激光SLAM源码详细解析》
展开
-
Ubuntu18.04配置VS Code+CMake的C++开发环境
2020-06-14首先,介绍自己电脑:Ubuntu18.04、VS Code 1.46版本文目的:为VS Code配置好C++ 开发环境,以及VS Code +CMake的配置对于C++ 工程,有四个必要的json配置文件,先ctrl+shift+p打开输入指令分别是:c_cpp_properties.json :配置项目结构,自动生成和更新,输入C/C++:Edit configurationtask.json: 构建和编译运行项目,输入Task:Configure Task,模板,Othe原创 2020-06-16 16:03:37 · 2681 阅读 · 2 评论 -
激光雷达点云预处理:传感器时间同步、点云去畸变
一、传感器时间同步多传感器融合过程中由于传感器之间的采集频率不同,导致无法保证传感器数据同步。这里以激光雷达为核心传感器,每次收到一次雷达数据,便以当前雷达数据采集时刻作为要插入的时间点,该时刻另一传感器IMU的数据通过插值获得。这里同样可以参考VINS里相机和IMU时间同步的函数代码getMeasurements()。主程序在front_end_flow.cpp文件中的ReadData()函...原创 2020-05-14 12:27:34 · 10203 阅读 · 4 评论 -
基于NDT的前端里程计框架优化
本文旨在对上一讲基于NDT的前端里程计代码解析进行框架上的优化,主要参考知乎上专栏文章《从零开始做自动驾驶定位》,在此基础上进行更加清晰的代码框架解读。首先上一篇文章有以下缺点:1、没有专门的参数配置文件.yaml2、点云滤波、匹配作为常用的操作,应该专门设置模块。3、没有内存管理:每个关键帧都存了点云,所有关键帧在内存中随着时间推移严重影响运行速度。这里考虑除了滑动窗局部地图涉及的关...原创 2020-04-25 23:17:29 · 1277 阅读 · 3 评论 -
基于NDT的前端里程计代码解析
本文主要对Lidar_Localization文件中的三个源文件,front_end_node.cpp、front_end.h/cpp进行详细代码解读。前端激光雷达点云里程计主要分为:点云下采样滤波、点云匹配、位姿估计、关键帧选取等步骤。具体流程为:1)第一帧点云数据设置为地图2)提取关键帧点云,拼接成地图,保证稀疏点云数据。3)除了全局地图,还需要在当前帧附近形成滑动窗局部地图,减小计算...原创 2020-04-23 13:47:53 · 2406 阅读 · 5 评论 -
激光雷达坐标系、方向角和仰角
激光雷达介绍单线的激光雷达Lidar,通过发射和接收激光束来计算与观测物体精确距离。光速测距:通过飞行时间TOF,首先激光发射器发射激光脉冲,计时器记录发射时间;脉冲经物体反射后由接收器接受,计时器记录接受时间;时间差乘上光速即得到距离的两倍。三维扫描点云:通过TOF时间差获得距离,通过水平旋转扫描测角度,并根据这两个参数建立二维的极坐标系,再通过获取不同俯仰角度获得三维的高度信息。下图...原创 2020-04-11 18:47:39 · 18352 阅读 · 4 评论 -
粒子滤波定位
理论知识除了线性状态估计的KF和非线性状态估计的EKF,还有一种可以解决非线性、非高斯问题的粒子滤波算法,粒子滤波主要基于蒙特卡洛方法,使用粒子集来表示概率。粒子滤波主要分为四部分:初始化、预测、粒子权重更新、重采样,之后在重复的预测、更新、重采样,使得粒子逐渐向真实位置聚集。1、初始化粒子滤波初始化需要初始的位置(x,y),航向(yaw),以及高斯噪声。单纯用GPS的结果是有很大...原创 2020-05-16 11:29:24 · 3145 阅读 · 1 评论 -
多传感器融合定位2(封装KF和EKF)
有了上一节分别对激光雷达做KF、对毫米波雷达做EKF两种流程之后,我们合并KF和EKF的跟踪算法的代码,将他们封装在一个名为KalmanFilter的类中,方便后续调用。下面做一个多传感器融合定位实验,采集到的数据为两种交替出现的数据。代码整体框架如图所示:前言无论是KF处理线性问题还是EKF处理非线性问题,它都只涉及单一传感器的障碍物跟踪。激光雷达测量位置精度更高但是无法测量速度,毫米波...原创 2020-05-16 11:32:14 · 1871 阅读 · 0 评论 -
多传感器融合定位1(激光雷达+毫米波雷达)
前言LZ最近在看Udacity的无人驾驶课程,该课程主要分为三部分,第一部分的课程主要使用Python实现的车道线识别、车牌识别等计算机视觉项目。由于我对定位、建图等方面有些知识储备,所以先从第二部分课程开始。本节将用最简洁的话讲解卡尔曼滤波KF、非线性卡尔曼滤波EKF等知识点,并就此实现一个多传感器融合定位的小demo,后面会就粒子滤波PF专门开一个章节讲解。一、卡尔曼滤波 KF1、引子...原创 2020-05-16 11:30:28 · 5534 阅读 · 1 评论 -
一文掌握百度Apollo Udacity自动驾驶课程笔记
目录一、高精地图1、高精地图与传统地图2、高精地图与定位、感知、规划的关系3、Apollo高精地图与构建二、定位(厘米级)1、GNSS RTK2、惯性导航3、激光雷达定位4、视觉定位5、Apollo定位三、感知1、计算机视觉2、Camera图像3、Lidar图像4、机器学习5、神经网络6、反向传递7、卷积神经网络CNN:8...原创 2020-04-07 12:17:00 · 4693 阅读 · 1 评论 -
轮式移动机器人基础及滑模控制仿真
一、机器人坐标系全局参考坐标系:以点o为原点,相互正交的x、y轴建立全局参考坐标系局部参考坐标系:为确定机器人位置,选择C点为位置参考点,{Xr,Yr}定义机器人底盘相对于C的两个轴。机器人姿态描述为ξ1=[x,y,Θ]T,为了根据分量的移动描述机器人的移动,需要从全局坐标系中映射成局部参考坐标系即:ξR=R(Θ)ξ1,其中正交旋转矩阵R(Θ)为二、双轮差速移动机器人运动学原创 2017-09-24 14:05:40 · 10950 阅读 · 10 评论 -
卡尔曼滤波matlab仿真(可运行)
一、温度测量%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 程序说明:Kalman滤波用于温度测量的实例(一维) function main %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%原创 2017-10-21 16:43:48 · 5409 阅读 · 2 评论 -
卡尔曼滤波推导+贝叶斯滤波推导+粒子滤波推导
Kalman Filter一、前言1、两个传感器测量同一个信号,为了减小误差我们可以采用取平均的方式,进一步的我们采用加权平均(由方差大小分配),加权平均是一种静态分配方式。方差是随外界环境而变的,加权值也应该随之改变,这就是卡尔曼滤波出现的原因,它是一种动态更新加权值,不断迭代的算法。卡尔曼是对模型预测值以及传感器观测值加权平均,模型只有一个步长,x(k-1)得到x(k),其中x(k-1...原创 2017-10-21 15:27:04 · 2091 阅读 · 0 评论 -
遗传算法 差分进化算法 粒子群优化算法区别
一 遗传算法 遗传算法(GA)作为一种经典的进化算法,自 Holland提出之后在国际上已经形成了一个比较活跃的研究领域. 人们对 GA 进行了大量的研究,提出了各种改进算法用于提高算法的收敛速度和精确性. 遗传算法采用选择,交叉,变异操作,在问题空间搜索最优解.经典遗传算法首先对参数进行编码,生成一定数目的个体,形成初始种群其中每个个体可以是一维或多维矢量,以二进制数串表示,称为染色体.染色体的转载 2018-01-17 15:46:05 · 24298 阅读 · 2 评论