自动驾驶-SLAM
文章平均质量分 88
冲啊,势必扎根自动驾驶,我要立志成为自动驾驶领域的炮灰,大浪淘沙,你们都是金子就留下我一个沙子!
终问鼎
时间诉说我的故事
以后分享放到个人网站了
CSDN随缘更
长安大学一枚机器人与自动驾驶,嵌入式,深度学习爱好者
展开
-
【SLAM】10.纵观SLAM,对比方案和未来方向
介绍了主流和经典SLAM方案,给出了未来可以深入研究的SLAM的方向原创 2023-09-19 11:21:59 · 243 阅读 · 0 评论 -
【视觉SLAM入门】9.1 建图1---SLAM任务,稠密地图构建,立体视觉,RGBD,八叉树,点云地图等各种不同地图
本节梳理了单目相机,双目相机和RGB-D相机建立稠密地图的方法,因为特征点不是每一个点都是,所以特征匹配不适用,这里用极线搜索和块匹配的方式进行点的匹配,立体视觉中确定深度使用了基于深度滤波器的方法,不断地做三角化使其收敛,还介绍不同地图以及各自功能原创 2023-09-18 22:33:19 · 1920 阅读 · 0 评论 -
【视觉SLAM入门】8. 回环检测,词袋模型,字典,感知,召回,机器学习
本节介绍了SLAM中的回环检测,从字典,词袋的必要性对比了它们的优势,还记录了字典结构构造,感知率,召回率等,和机器学习进行对比,图像相似度的进行,具体的完成了回环检测的一整个过程,最后对传统回环检测做了提高原创 2023-09-17 15:07:51 · 724 阅读 · 3 评论 -
【视觉SLAM入门】7.4.后端优化 --- 基于位姿图和基于因子图
本节介绍了后两个后端优化方法:位姿图和从贝叶斯网络演变而来的因子图对后端优化的做法,浅显易懂的从数学原理上进行了分析,便于读者我和的掌握的笔记,源于视觉SLAM十四讲后端2原创 2023-09-12 18:05:20 · 1523 阅读 · 0 评论 -
【视觉SLAM入门】7.3.后端优化 基于KF/EKF和基于BA图优化的后端,推导及举例分析
EKF和KF掌握后,了解后端的做法,通常包含EKF为代表的滤波器模型,假设马尔科夫性的;还有考虑全部状态的非线性优化的做法,只有观测方程时称为BA,从理论到公式再到推导,举实际例子明显易懂原创 2023-09-11 10:28:42 · 518 阅读 · 0 评论 -
【视觉SLAM入门】7.2. 从卡尔曼滤波到扩展卡尔曼滤波,引入、代码、原理、实战,C++实现以及全部源码
承接上一节,在KF基础上引入EKF,扩展卡尔曼滤波,和KF做对比,并从原理,理解,举例并编程通过C++实现加深理解,所有代码已开源原创 2023-09-07 21:33:21 · 545 阅读 · 0 评论 -
【视觉SLAM入门】7.1. 快速从0上手卡尔曼滤波,二维原理及代码(C++,Eigen库,Cmake工程实现,全部源码)
经典卡尔曼滤波算法的认识,理解,从理论到落地,通俗易懂,从原理到实现,举了二维的滤波代码为例,从0开始对应公式用C++最终实现卡尔曼滤波,构建CMAKE工程,全部源码公开,逐行解释。原创 2023-08-31 22:41:43 · 470 阅读 · 0 评论 -
【视觉SLAM入门】6.1. (基于直接法的视觉里程计)LK光流法,代码解读, 直接法,特征点法对比,稀疏,半稠密,稠密地图
上一届介绍了特征点法估计相机位姿,但是由于计算量,本节介绍计算量更少的直接法。首先是直接法前身-LK光流法的推导,理论和代码分析,结果分析,引出直接法,稀疏直接法,半稠密直接法,稠密直接法以及运动环境和适用条件,优势劣势对比。原创 2023-08-28 15:34:25 · 638 阅读 · 0 评论 -
【视觉SLAM入门】5.2. (基于特征点的视觉里程计)2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT
延续5.1介绍了2D-3D求解相机位姿方法DLT和BA,3D-3D求解变换关系的方法SVD,BA法,从数学上进行推导。原创 2023-08-20 19:09:36 · 746 阅读 · 0 评论 -
【视觉SLAM入门】5.1. (基于特征点的视觉里程计)特征提取和匹配--FAST,ORB(关键点描述子),2D-2D对极几何,本质矩阵,单应矩阵,三角测量,三角化矛盾
从特征点的解释和说明出发,介绍了关键点,描述子和他们的具体实现。对VO前端里程计的任务进行了推理,得到了视觉SLAM中重要的特征匹配任务的完成和原理推导。以及在单目相机情况下的特征匹配和初始化即用对极约束求解相机位姿和深度(三角化)的过程原创 2023-08-01 11:42:18 · 2000 阅读 · 0 评论 -
【视觉SLAM入门】4.3. (非线性最小二乘问题)优化算法实现-ceres和g2o, 图优化理论
主要介绍了ceres,g2o和图优化理论以及它们的C++代码的详细解读。逐句解读它们的C++代码实现,对诸如此类的非线性优化问题做了统一概括原创 2023-07-28 22:48:23 · 416 阅读 · 0 评论 -
【视觉SLAM入门】4.2 非线性最小二乘理论部分------线搜索,信赖域,最速/牛顿下降法,高斯牛顿,LM等原理推导
视觉SLAM14讲的笔记,介绍了SLAM领域中常用的非线性优化的方法数学原理推导。从梯度法,一阶梯度法,二阶梯度法,到高斯牛顿法,到L-M。基本上领域中解法分为线搜索和信赖域两种方法原创 2023-07-27 18:05:52 · 358 阅读 · 0 评论 -
【视觉SLAM入门】4.1. 从状态估计到非线性最小二乘推演------状态估计,最大后验,最大似然,最小二乘,高维高斯分布,非线性优化推导
考虑运动方程和观测方程在实际中其实是有噪声的情况,所以设噪声服从高维高斯分布,从头推导了机器人位姿估计,根据最大后验,贝叶斯公式,将它变成一个最大似然问题,进而通过考虑高维高斯分布将它转化成包含运动方程和观测方程的SLAM通用的非线性优化问题,具体成误差平方和,演变为求解一个最小二乘问题的过程原创 2023-07-10 21:53:25 · 259 阅读 · 0 评论 -
【视觉SLAM入门】3. 相机模型,内外参,畸变推导
介绍了成像原理,推导方式,误差分析和补偿,内参外参的推导和分析针孔相机,RGBD相机,双目相机的工作原理和优劣,参考视觉SLAM14讲的一份详细笔记原创 2023-07-10 10:43:34 · 1281 阅读 · 0 评论 -
【视觉SLAM入门】2 旋转--李群与李代数
以一个例子展开解决SLAM中位姿变换的关键问题---对无约束旋转的求导问题,用的是李群与李代数的知识,从旋转欧式群推导出李群,再推出李代数,用它们重新描述旋转的过程,给出了旋转矩阵和李代数的关系和求导计算方法(求导模型和扰动模型),最后引入了单目SLAM中多一个尺度的李代数表述(相似变换群)原创 2023-07-07 16:28:40 · 491 阅读 · 0 评论 -
【视觉SLAM入门】1. 基础知识,运动观测,旋转(旋转矩阵,轴角,欧拉角,四元数)和eigen库基础
视觉SLAM前三章概要,主要是基础的矩阵论知识和三维位姿变换的几种表示方法和推导,介绍了EIGEN库和在该库中的几种形式等。还侧面介绍了运动,观测的通用方程和linux中的库。原创 2023-07-05 18:54:11 · 479 阅读 · 0 评论 -
【SLAM14讲编译依赖软件源码版本方面等问题汇总】
以下是本人在学习SLAM中遇到的全部问题汇总(主要是依赖和软件方面的)。原创 2023-03-30 01:14:57 · 1193 阅读 · 2 评论 -
[KITTI] EVO评价前端里程计精度
EVO是用于处理、评估和比较里程计和SLAM算法的轨迹输出的工具。原创 2022-10-13 17:21:15 · 1548 阅读 · 0 评论 -
【从kitti开始自动驾驶】--10.3 本车与其他物体测距(移植至ROS,显示于RVIZ)
“勇士低声回应:"我就是风暴”1 程序思路2 移植到ROS2.1 引入本车车框2.2 点到距离公式2.3 每两个3D框距离2.4 建立发布者,且发布2.5 发布函数编写2.5.1 发布相对距离信息2.5.2 发布文本/标注信息3. 效果展示4. 源码4.1 kitti_all.py4.2 publish_utils.py最终章!本节将会将测距代码移植到ROS上,通过RVIZ可视化出来jupyter工程存放在/test3_autodrive_ws/src/jupyter_prj下的3D_trackin原创 2022-05-10 00:54:50 · 1168 阅读 · 2 评论 -
【从kitti开始自动驾驶】--10.2 测距离jupyter-notebook实现
“”1. 程序分析2.jupyter-notebook实现1.2 得到角度偏移10.1得到了计算点到直线距离公式的数学表达式,本节在jupyter-notebook上实现:对任意两个矩形框,实现测量出来最短距离的函数,图形化显示出来本节程序在测量3D侦测盒的程序后,增添代码.程序路径为1. 程序分析2.jupyter-notebook实现displacement = 0.1 * np.linalg.norm(imu_dat[['vf', 'vl']]) #得到帧间距离改变量1.原创 2022-05-09 23:50:14 · 515 阅读 · 0 评论 -
【从kitti开始自动驾驶】--10.1 计算与其他物体的精确距离(数学推导)
""辅助准备二级目录三级目录本节介绍如何计算自己与object的最近距离,从数学的角度进行推理.辅助准备需要一点点画图,因此安装了linux的画图工具pintasudo apt install pinta运行pinta 即可打开,如下二级目录三级目录...原创 2022-05-08 23:02:52 · 503 阅读 · 0 评论 -
【从kitti开始自动驾驶】--9.4 实现所有物体(包括本身)的轨迹显示(MOT)
“汗水泡普洱,勇士总冠军”1 程序思路2 对文件进行更改2.1 变量准备2.2 当前图片object中心坐标确定2.3 对第一帧的操作2.4 对于非第一帧的情况2.5 object类更改2.6 发布函数更改3. 效果展示4. 源码4.1 kitti_all.py4.2 publish_utils.py本节将会将代码改动,使所有object的轨迹都可以在RVIZ上显示出来GPS/IMU资料存放在/kitti_folder/2011_09_26/2011_09_26_drive_0005_sync/oxt原创 2022-05-06 13:31:52 · 651 阅读 · 0 评论 -
【从kitti开始自动驾驶】--9.3 实现本车的轨迹显示(移植至ROS,显示于RVIZ)
“天意终究难参”1 kitti_all中的改动1.1 准备工作1.2 发布者建立1.3 矫正的instance读取1.4 所需数据提取转为数组1.5 为每个object都画框1.6 执行发布函数2 publish_utils中的改动2.1 变量定义2.2 为不同object加入不同颜色2.3 maker_array操作2.4 大遍历每一个object2.5 小遍历每两个点2.6 发布3.效果查看4. 源码4.1 publish_utils.py代码4.2 kitti_all.py本节将会将代码略微改动,移原创 2022-04-27 16:20:18 · 1427 阅读 · 0 评论 -
【从kitti开始自动驾驶】--9.2 利用IMU得到的速度画出自己的轨迹
“成败也当笑看”1. jupyter代码增添1.1 得到帧间距离1.2 得到角度偏移1.3 得到上一位置在当前坐标系的坐标1.4 求转换后的坐标1.5 加上在原坐标系的原有坐标1.6 绘图2 效果展示3. Jupyter源码9.1讲了通过kitti的数据集得到每两帧之间的变化量,这一节将上一节得到的数据,轨迹化,意为将某一帧作为参考点(坐标系),得到之前的坐标(轨迹)1. jupyter代码增添因为IMU在当前条件下,效果更好,所以以它的数据展开计算这个问题其实转化成了坐标系间的坐标转换问题,解原创 2022-04-27 10:08:24 · 1687 阅读 · 3 评论 -
【从kitti开始自动驾驶】--9.1 利用IMU/GPS测距并比较效果(jupyter)
“义勇添青史几段”1 基础知识1.1 角度计算1.2 距离计算2 python程序编写2.1 大圆距离公式函数2.2-a GPS测距离2.2-b IMU测距离2.3 绘图2.4 效果展示2.5 结论3. Measure_distance源码在我们的数据集中,有IMU和GPS的资料,利用其中的信息可以计算的到每一帧(0.1s)之间的距离和方向的数据本届jupyter工程存放在est3_autodrive_ws/src/jupyter_prj/Mesure_distance.ipynb1 基础知识要原创 2022-04-27 08:36:23 · 3178 阅读 · 3 评论 -
【从kitti开始自动驾驶】--8. 在3D侦测框上实现frame_id的显示
“假若登顶成憾”1 kitti_all中的改动1.1 读取id信息1.2 调用更改2 publish_utils中的更改2.1 marker头信息2.2 marker信息2.3 字体设置2.4 颜色设置2.5 添加到makerarray中并发布3. 效果展示4. 源码4.1 kitti_all.py4.2 publish_utils.py上节已经实现了3D框的定位,依靠这8个点,我们可以为车辆添加ID信息,用来分辨不同和同类的objecttracking资料存放在/kitti_folder/track原创 2022-04-26 08:53:10 · 505 阅读 · 0 评论 -
【从kitti开始自动驾驶】--7.2 实现3d侦测框(移植至ROS,显示于RVIZ)
“天意终究难参”1 kitti_all中的改动1.1 准备工作1.2 发布者建立1.3 矫正的instance读取1.4 所需数据提取转为数组1.5 为每个object都画框1.6 执行发布函数2 publish_utils中的改动2.1 变量定义2.2 为不同object加入不同颜色2.3 maker_array操作2.4 大遍历每一个object2.5 小遍历每两个点2.6 发布3.效果查看4. 源码4.1 publish_utils.py代码4.2 kitti_all.py本节将采用在jupyter原创 2022-04-25 19:06:13 · 1538 阅读 · 0 评论 -
【从kitti开始自动驾驶】--7.1 Jupyter-notebook实现3d侦测框显示
“奔跑就能穿越光阴”1. 预准备1.1 绘图参考资料1.2 绘图参考程序1.3 相机->雷达坐标变换2. 程序流程2.1 绘制点云2.1.1 包导入2.1.2 绘制点云函数2.1.3 读取点云2.1.4 3D显示点云2.1.5 观看点云的2D平面投影2.2 绘制Tracking-3D框2.2.1 绘制长方体框2.2.2 坐标系转换2.3 绘制并查看效果2.3.1 点云并tracking的3D查看:2.3.2 点云并tracking的2D查看:3. 3D_tracking的python源码本节将采用原创 2022-04-25 16:26:16 · 912 阅读 · 1 评论 -
【从kitti开始自动驾驶】--6.2 全场景2D检测(移植至ROS,显示于RVIZ)
“飞扬的少年最动人心”1. python程序完善1.1 多目标的tracking1.2 区分不同object的颜色2. 移植至RVIZ2.1 读取tracking 资料2.2 提取tracking的目标和颜色2.3 发布函数重写3.效果预览4. 源码4.1 data_utils.py4.2 publish_utils.py4.3 kitti_all.py本节将采用在jupyter notebook上的方式执行对单张图片上实现对所有object的打标,以及移植到ROS上,通过RVIZ可视化出来track原创 2022-04-24 19:49:06 · 1614 阅读 · 0 评论 -
【从kitti开始自动驾驶】--6.1 下载tracking和2d侦测
“剑道万古如长夜”1. 预准备1.1 下载tracking 资料1.2 jupyter notebook下载2. 预知识2.1 对tracking数据分析2.1.1 压缩包数据格式理解2.1.2 单文件理解2.2 在jupyter中查看tracking数据3. 在jupyter中框选object3.1 数据处理3.2 提取需要的信息3.3 CV画出tracking的框4. 效果一览5. python文件源码本节将采用在jupyter notebook上的方式执行对单张图片进行二维侦测以及打标(画出二维侦测原创 2022-04-23 12:35:58 · 1814 阅读 · 1 评论 -
【从kitti开始自动驾驶】--5. GPS资料发布
“天不生我李淳罡”1. 预知识2. 发布GPS资料流程2.1 建立发布者2.2 读取GPS/IMU资料2.3 发布3. 执行3.1从任务台可视化GPS数据4. 源码4.1 publish_utils.py4.3 kitti_all.py本节将在3.2节的基础上,进行功能的添加(IMU发布),其他内容不变工作空间是test3_autodrive_wspython代码存在test3_autodrive_ws/src/demo1_kitti_pub_photo/scripts/kitti_all.py和p原创 2022-04-22 21:22:53 · 389 阅读 · 0 评论 -
【从kitti开始自动驾驶】--4. IMU资料发布
“对于明天抱有期待”1. 预知识2. 发布IMU资料流程2.1 建立发布者2.2 读取IMU资料2.3 发布3. 执行和效果查看4. 源码4.1 data_utils.py4.2 publish_utils.py4.3 kitti_all.py本节将在3.2节的基础上,进行功能的添加(IMU发布),其他内容不变工作空间是test3_autodrive_wspython代码存在test3_autodrive_ws/src/demo1_kitti_pub_photo/scripts/kitti_all.原创 2022-04-22 20:06:09 · 971 阅读 · 0 评论 -
【从kitti开始自动驾驶】--3.2代码优化-同步发送
“疫情早日结束”1. 提出问题2.改进3. 源码publish_utils.pykitti_all.py本节将在3.1节的基础上,进行代码优化功能不变1. 提出问题mark相机视野和mark车的模型,从发布,到定义,都存在着时间差,能不能让他们同步发送答案是有的,利用我们的MakerArray把它们都添加进来然后一起发送2.改进在publish_utils中:将原来的两个publish mark的函数合并为一个markerarray.from visualization_msgs.msg i原创 2022-04-22 16:44:20 · 620 阅读 · 0 评论 -
【从kitti开始自动驾驶】--3.1 机器人模型,相机视野可视化(RVIZ)
“愿世界和平无战争”1. 本节内容2. 加入相机视野2.1 python文件新增代码2.2 执行,查看视野效果3. 加入机器人模型3.1 下载3D模型3.2为python增添代码3.2.1 设置数据头信息3.2.2 设置数据参数3.2.3 模型初始平移量设定3.2.4 模型初始旋转量设定3.2.5 模型颜色设定3.2.6 模型体积设定3.2.7 最后的话4. 执行,查看总效果5. 源码--- publish_utils.py---kitti_all.py本节将在2.2节的基础上,进行功能的添加,其他内原创 2022-04-22 15:48:56 · 1538 阅读 · 0 评论 -
【从kitti开始自动驾驶】--2.2.python代码结构层次的优化
“心向骄阳万丈光”1. 文件结构改变2. 改进后源码data_utils.py源码publish_utils.py源码kitti_all.py源码3. 运行和效果本节将在上一节的基础上,先优化文件结构,然后再是功能的添加,参考.工作空间是test3_autodrive_wspython代码存在test3_autodrive_ws/src/demo1_kitti_pub_photo/scripts/ kitti_all.py(总的文件) 和data_utils(读取图片等数据), publish_u原创 2022-04-22 10:26:08 · 2352 阅读 · 0 评论 -
【从kitti开始自动驾驶】--2.1 发布照片+点云
“”1. 预知识2. python文件新增代码详解3. 执行,查看效果4. python文件源码本节将在上一节的基础上,进行功能的添加,其他内容不变,参考.数据集放置在kitti_folder/2011_09_26/文件夹下,结构如下:本节用到的是点云数据:kitti_folder/2011_09_26/2011_09_26_drive_0005_sync/velodyne_points/data/下的数据,共有153份工作空间是test3_autodrive_wspython代码存在test原创 2022-04-21 19:57:53 · 806 阅读 · 0 评论 -
【从kitti开始自动驾驶】--1. 发布图片
“最暖的阳光撒在了这里”1. 预准备和注意事项2. 配置cmakelists3. 执行,查看效果4.kitti.py源码本章开始,我们将从kitti数据集开始自动驾驶之旅(以python为例),准备数据集的内容已经写过参考.数据集放置在kitti_folder/2011_09_26/文件夹下,结构如下:工作空间是test3_autodrive_wspython代码存在test3_autodrive_ws/src/demo1_kitti_pub_photo/scripts/kitti.py1.原创 2022-04-21 19:03:08 · 2333 阅读 · 0 评论