自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 【横穿自动驾驶】读书笔记

控制是个很神奇的学科,到处在讲控制已死,死没死我是很难理解的,但是感觉很多方法的源头都来自控制,或者来自控制领域附近,或者来自那个控制领域百花齐放的年代,比如最优控制,比如状态估计,比如采样方法,比如强化学习等等。这也是受外导影响,他时常会读上个世纪的论文,他对事物、方法的讲解会从源头开始,从最初的含义开始讲,这实在是一种非常有吸引力的表达方式,有时候最有价值的不是结论,而是导出结论的一系列尝试过程,甚至是经过几代人的尝试过程。我自己,有时候还是有些眼高手低的,但是技术领域多读书大概是没错的。

2024-06-30 16:44:56 344 1

原创 横穿自动驾驶

我的疑惑更多了,从最开始的kalman filter 为什么从感知到控制都能用,到后面发现定位也都在用,也发现LQR MPC可以放在底层的控制阶段用,也可以放在规划用,现在很多决策博弈过程本质上也是优化问题求解过程。有幸看了李飞飞的深度学习课,AK大神讲的大部分内容,手写了一个网络,了解深度学习就是构造并求解一个优化问题,了解了BP,了解了随机梯度下降,带动量的梯度下降,等等一系列优化问题求解方法。看过一遍APOLLO,发现里面也都是优化问题求解,比如平滑路线是构造QP问题,局部轨迹规划也是构造QP问题。

2024-06-30 16:04:11 375

原创 Quaternion kinematics for the error-state Kalman filter 文章理解

对eskf的理解

2021-12-06 21:36:21 1636

原创 apollo ros联合编译进度及问题

0. 进度: common proto common util cyber time[ ]可以不使用cmake 里 link_directories 和 include_directories, 而是使用target_include_directories 和 target_link_libraries 这样方便对每一个target 进行精细控制整体的cmakelist结构可以参照 https://github.com/gokhanettin/cmake-example目前我将所有

2021-09-20 14:11:53 613

原创 gtest资料

参考资料【1】https://github.com/bmorcos/gtest-example【2】http://senlinzhan.github.io/2017/10/08/gtest/【3】https://mp.weixin.qq.com/s?__biz=MzkyMjIxMzIxNA==&mid=2247487146&idx=1&sn=097296aad1bdfe5fe2535a00e463d031&chksm=c1f6809bf681098dabd5ecb7f3

2021-09-17 20:34:18 166

原创 ros catkin框架下编译protobuf

0. 参考资料第一个资料清楚的解释了protobuf_AddDesc这一类错误的来源,由于protobuf只是从文件名称进行匹配,所以,一定要把存放目录,和编译目录等预先设置好,不然就是出现这一类错误【1】https://groups.google.com/g/protobuf/c/b_ogDr3AzYY结合这个第二个资料可以进行cmake 编译,采用了第二种方法进行,因为第一种方法在设置proto路径的时候有问题,容易产生上面一类错误。【2】http://chen-tao.github.io/20

2021-09-15 16:14:29 405

原创 2021-08-26 g2o pdf总结

目录1. 概述1.1 常用点和边类型1.1.1 BaseVertex1.1.2 BaseUnaryEdge1.1.3 BaseBinaryEdge1. 概述通过“顶点”和“边”来定义一个优化问题:(1)顶点需要包含如下信息:变量xix_ixi​是什么类型的:Dom(xi)Dom(x_i)Dom(xi​);变量Δxi\Delta x_iΔxi​是什么类型的:Dom(Δxi)Dom(\Delta x_i)Dom(Δxi​);如何通过xix_ixi​和Δxi\Delta x_iΔxi​得到新的xix_

2021-08-26 14:23:32 170

原创 g2o库的应用

0. 参考【1】https://blog.csdn.net/Hansry/article/details/1000613121. 在orbslam中的应用1.1 全局BA//pMap中所有的MapPoints和关键帧做bundle adjustment优化//这个全局BA优化在ORB-SLAM2中有俩个地方有用//a.单目初始化:CreateInitialMapMonocular 函数//b.闭环优化:RunGlobalBundleAdjustment函数/** * @brief bun

2021-08-05 20:45:10 212

原创 从零开始激光雷达slam

文章目录0. 参考文献1. kitti数据格式相关问题1.1 lidar_to_imu变换矩阵0. 参考文献https://zhuanlan.zhihu.com/p/104791974任乾的激光雷达入门系列1. kitti数据格式相关问题1.1 lidar_to_imu变换矩阵先看一下代码:// 在主函数中构造一个tf listener类std::shared_ptr<TFListener> lidar_to_imu_ptr = std::make_shared<TFLis

2021-07-30 07:07:22 612 2

原创 loam——laserMapping

主要看这个参考文献,弄懂移动格子那里,剩下的都和laserOdometry差不多https://zhuanlan.zhihu.com/p/111388877

2021-07-12 15:35:04 185

原创 loam——laserOdometry

直接看主函数中的while循环首先确保所有数据都收到了if (newCornerPointsSharp && newCornerPointsLessSharp && newSurfPointsFlat && newSurfPointsLessFlat && newLaserCloudFullRes && newImuTrans && fabs(timeCornerPoints

2021-07-11 21:53:42 124

原创 loam——scanRegistration

文章目录1. IMU 数据处理1.1 IMU handler函数1.2 AccumulateIMUShift()函数2. 处理激光点云laserCloudHandler函数2.1 ShiftToStartIMU(pointTime)函数2.2 VeloToStartIMU()函数2.3 TransformToStartIMU(&point)函数1. IMU 数据处理1.1 IMU handler函数看下面的代码,流程是:(1)直接获得imu信息里的roll pitch yaw(2)通过姿态

2021-07-11 16:50:48 191

原创 yaml-cpp库undefined reference错误解决方法

参考[1] https://stackoverflow.com/questions/36403287/compiler-error-with-yaml-cpp-undefined-reference-to-yamldetailnode-data问题描述编译程序过程中出现下面这个问题/tmp/ccCvErNZ.o: In function `YAML::detail::node& YAML::detail::node_data::get<std::string>(std::stri

2021-06-14 15:32:22 7720 16

原创 2021-06-14 git使用过程

文章目录新建仓库本地同步推送到github命令解释新建仓库在github网站上,手动new一个仓库出来本地同步在本地git clone出来修改一下文件内容进行git add进行git commit -m “commit”这里出现错误*** Please tell me who you are.通过如下两行添加git config --global user.email “你的邮箱”git config --global user.name “你的名字”推送到github首次推送遇到

2021-06-14 10:10:48 163

原创 numercial optimization 笔记——泰勒定理公式2.5/2.5/2.6解释

在书中第二章,有公式如下:公式2.4理解1这里是一个mean value theorem的表达,这里参考calculus-stewart我们将式(2.4)进行改写∇f(x+tp)=f(x+p)−f(x)p\nabla f(x+tp)=\frac{f(x+p)-f(x)}{p}∇f(x+tp)=pf(x+p)−f(x)​可以得到和上面中值定理同样的形式。注意这里(x+tp)是从点x到点x+p之间的一点。比例是t理解2首先,我们理解一下,微积分基本定理和终止定理的关系:根据微积分基本

2021-05-17 20:12:13 704 3

原创 凸优化基础知识

文章目录0. 参考文献1. 凸集1.1 仿射集,凸集,凸锥1.2 常见的凸集1.3 保持凸性的操作求交集仿射透视齐次变换2. 凸函数2.1 四个定义方式2.2 常用凸函数仿射函数极大值函数极小极大函数由极大值函数引出的——log sum up 函数几何平均函数行列式的对数函数2.3 保持函数凸性的操作2.3.1 非负加权和拓展: 联合凸2.3.2 仿射映射2.3.3 两个函数的极大值函数2.3.4 向量中r个最大元素的和2.3.5 实对称阵的最大特征值2.3.6 函数的组合2.3.7 函数的透视2.3.8

2021-05-14 08:50:40 1609

原创 Map模块需求

文章目录0. 参考文献1. Use cases2. 需求3 输入4. 输出5. 设计5.1 点云地图loader5.1.1 作用5.1.2 输入5.1.3 输出5.2 vector map loader5.2.1 作用5.2.2 输入5.2.3 输出0. 参考文献【1】https://github.com/tier4/AutowareArchitectureProposal.proj/blob/control-vehicle-reviewed/design/Map/Map.md1. Use cases

2021-04-29 14:43:06 311 1

原创 plan模块需求(一):整体需求

文章目录0. 参考文献1. plan模块作用2. use cases3. 需求4. 输入5. 输出6. 设计6.1 mission planner6.1.1 作用6.1.2 输入6.1.3 输出6.2 scenario selector6.2.1 输入6.2.2 输出6.3 场景 scenario6.3.1 作用6.3.2 输入6.3.3 输出0. 参考文献【1】https://github.com/tier4/AutowareArchitectureProposal.proj/blob/master/

2021-04-29 13:48:21 471

原创 后轴反馈控制——frenet坐标的一个应用

文章目录0. 参考文献1. 简单推导1.1 frenet 坐标0. 参考文献前置:【1】https://blog.csdn.net/l898985121/article/details/109048855这个是之前写的一篇文章,讲了frenet坐标的推导过程【2】https://blog.csdn.net/l898985121/article/details/115702160前面写的关于李雅普诺夫稳定的一篇转载文章参考:【3】https://zhuanlan.zhihu.com/p/463

2021-04-15 11:39:12 1198

原创 李雅普诺夫稳定

文章目录0. 参考文献1. 什么是平衡点0. 参考文献【1】https://zhuanlan.zhihu.com/p/58738073这个文章写的已经非常透彻了,没什么好说的,本文全文摘抄1. 什么是平衡点看一个倒立摆的例子:其状态方程如下:...

2021-04-14 17:35:16 2255

原创 卡尔曼滤波笔记

文章目录0. 参考文献1. g-h filter1.1 通过试验来看直观效果0. 参考文献【1】kalman and bayesian filter in python1. g-h filter1.1 通过试验来看直观效果想看看体重拿来一个称,一称,172lbs过了一会儿,一称,160lbs卖家说,正常,没有称没有误差为什么有这本书:传感器不准这时候拿来另一个称,用A称,体重170lbs,用B称,体重160lbs,这个时候体重是多少?有几个选择:a. 相信A称:170lbsb. 相信

2021-04-09 17:17:10 175

原创 Quaternion kinematics for the error-state Kalman filter论文阅读

文章目录0. 参考文献1. 四元数的定义和属性1.1 四元数的定义1.1.1 四元数的表示方式1.2 四元数的性质1.2.1 加和1.2.2 积1.2.3 单位11.2.4 共轭1.2.5 长度1.2.6 逆1.2.7 单位四元数1.3 额外的性质1.3.1 quaternion commutator1.3.2 纯四元数的乘积1.3.3 纯四元数的幂1.3.4 纯四元数的指数1.3.5 一般四元数的指数1.3.6 单位四元数的对数1.3.7 一般四元数的对数1.3.8 四元数的幂的指数形式2. 旋转和cro

2021-04-07 17:30:32 1298

原创 四元数和旋转(Quaternions and rotations)

文章目录1. Introduction2. Quaternion Algebra2.1 加法和乘法2.2 complex conjugate,Norm and Inverse3. Quaternion Rotation Operator3.1 定理1文章翻译自Quaternion and rotations,作者Yan-Bin Jia译者刚入门,水平有限,仅供参考1. Introduction2. Quaternion Algebra本节是四元数的基本性质,可以参考这个链接中的内容,讲的非常详细:

2021-04-07 11:48:22 721

原创 autoware没有main函数——c++的plugins

文章目录1. 参考文献2. 起因3. 解释1. 参考文献【1】https://ubuntu.com/blog/components-vs-plugins-in-ros-2【2】https://github.com/dmxvlx/microplugins这是一个github的小库,可以了解一下【3】https://github.com/ros/class_loader这个是ros1里的classloader2. 起因看autoware,在很多node中没有找到main函数,很疑惑程序是怎么运行起来

2021-04-06 12:51:26 166

原创 特征值特征向量和奇异值分解SVD

文章目录1. 参考文献2. 主成分分析1——直觉2.1 第一个例子2.2 第二个例子2.3 第三个例子3. 主成分分析2——一些基础知识3.1 点乘3.1.1 单点点乘3.1.2 多点点乘3.2 外积?(outer product)不太对吧。。3.3 转置和对偶空间3.4 variable space和dual space关系3.5 variance和covariance3.5.1 variance3.5.2 covariance3.5.4 covariance matrix4. 主成分分析3——varia

2021-04-05 19:21:18 376

原创 slam基础——基础矩阵和本质矩阵

文章目录1. 参考文献2. 推导过程2.1 从一张图开始2.2 统一坐标系表达1. 参考文献【1】https://blog.csdn.net/electech6/article/details/83818218?spm=1001.2014.3001.55022. 推导过程2.1 从一张图开始首先是下面这幅经典的图,从图中可以看出(1)世界中三维坐标点P,投影在相机C0下,得到点p0;如果单从p0出发,是无法得到点P的实际位置,整条C0P线上的点都会投影落在p0点处。(2)从相机C1看,直线C0

2021-04-04 09:35:54 445

原创 李群李代数及其slam应用

文章目录参考文献slam十四讲内容概括参考文献【1】slam十四讲【2】barfoot state estimation这本书【3】Quaternion kinematics for the error-state Kalman filter【4】预积分北航博士讲解slam十四讲内容概括看了slam十四讲课程,总结一下。(1)描述空间旋转的方法:旋转矩阵,旋转向量,欧拉角,四元数等(2)当我们进行估计或优化时,面对的是一个关于空间旋转的目标函数,我们需要求导数。所以需要一种比较好的表达(

2021-03-18 11:29:20 641

原创 关于欧拉角和Gimbal lock

参考资料:https://krasjet.github.io/quaternion/bonus_gimbal_lock.pdf之前讲了一些欧拉角的知识,欧拉角是用3个角度,来表达空间内的旋转。但是采用欧拉角表示旋转有一个问题,就是gimbal lock。我们选择如下顺序的欧拉角进行表示:图(1)中两个坐标系重合,首先沿着自身的z’轴进行旋转,得到图(2)。然后沿着y’轴进行旋转pi/2角度,得到图(3)。此时可以看到,按照上文所选欧拉角旋转顺序,需要绕x’轴进行旋转,但此时x’轴与最开始的z’轴共

2021-03-17 16:26:49 253

原创 legoloam学习总结

文章目录imageProjection过程主要函数总结:featureAssociation过程主要函数mapOptimization过程主要流程imageProjection过程主要函数这里主要完成点云的预处理过程,主要看cloudHandler函数,如下:void cloudHandler(const sensor_msgs::PointCloud2ConstPtr& laserCloudMsg){ // 1. Convert ros message to pcl po

2021-03-16 19:20:41 838

原创 legoloam中transformAssociateToMap函数讨论

文章目录1. 说明1.1 参考资料1.2 transformAssociateToMap函数说明1.2.1 函数作用2. 测试代码1. 说明1.1 参考资料主要参考了知乎文章,并做了一些符合调整,符合作者本人理解https://zhuanlan.zhihu.com/p/1595251071.2 transformAssociateToMap函数说明1.2.1 函数作用通过laserOdometry可以获得本帧与上一帧之间的变换关系,利用这个变换关系,给出一个待优化的初始值。如下图所示2. 测

2021-03-15 19:17:25 1117 4

原创 loam中各种旋转各种坐标变换

文章目录欧拉角AccumulateRotation函数欧拉角从旋转所相对的坐标系来看,分成两种:extrinsic:每一次旋转,都相对于固定的基坐标系进行intrinsic:每一次旋转,都相对于旋转后的新坐标系进行从旋转轴类型上,分成两类:Proper Euler angles:有重复旋转的轴Tait–Bryan angles: 没有重复旋转的轴总结成下表:从loam的程序来看,可能选择的是上表中Y1X2Z3Y_1X_2Z_3Y1​X2​Z3​这种类型AccumulateRotat

2021-03-10 09:36:03 1676 5

原创 slam基础知识g2o

这里总结一下在高翔的课程里看到的g2o相关的内容:最小二乘和概率分布的关系,这里cryril的课里也有一些,但是两个好像不太一样?g2o软件可以做的和我们要做的我们需要维护边和节点,也就是误差项的形式雅各比矩阵、增量方程构建、增量方程求解、迭代——这些事情可以由g2o完成。g2o是一个通用图优化求解库...

2021-03-05 19:08:56 167

原创 slam小单元——位姿矩阵

目录位姿矩阵测试代码这个系列是对slam中的一些小概念做理解和简单的测试位姿矩阵这个反应的是坐标系和坐标系之间的关系,作用:移动向量将一个坐标系下的向量(坐标)表达在另一个坐标系下如下图所示,在最开始的时候,坐标系xyz和x’y’z’重合。t1:绕z’轴旋转45°t2:绕x‘轴旋转90°t3:沿x’轴运动2,再沿y‘运动1与之相对应的是:t4:绕z轴旋转45°t5:绕x轴旋转90°t6:沿x轴运动2,再沿y轴运动1那么:(1)b2 = t1 * b1得到的b2矩阵是,坐

2021-03-05 18:57:11 3402

原创 Cyrill Stachniss教授slam课程——最小二乘和图优化slam总结

目录least squareGraph based slam这里记录了Cyrill Stachniss教授讲课的课件和一些体会,课程可以在youtube或者B站上找到least square有一个待估计状态xxx,有观测模型f(x)f(x)f(x),得到预测的观测值z^\hat{z}z^,有实际的观测值zzz。以机器人位姿估计为例讲一下Graph based slam...

2021-03-03 18:31:02 548 1

原创 优化相关基础

目录泰勒展开牛顿法(newton's method)求根求极值求极值的高维情况:泰勒展开参考文献:【1】https://www.zhihu.com/question/25627482泰勒展开:用多项式函数,在某一个点附近,逼近原函数。原因:因为多项式函数求导等运算比较方便,有良好的性质下图是一个例子,不断用多项式去逼近ex,x=2e^x,x=2ex,x=2.所以最初的想法可能就是仿造一条简单一点的曲线,让在一个点处的各种导数都相同就行先是普通的相等然后逐渐复杂最复杂最后得到

2021-03-02 20:27:33 171

原创 激光slam入门知识总结

目录说明一. 开篇二. 数据集三. 软件框架四. 前端里程计初试五. 前端里程计代码优化说明学习知乎上任乾写的从零开始做激光slam系列,在这里总结一下收获一. 开篇作者给出了本系列的简单介绍,包括用的传感器,平台,写作思路等等。二. 数据集作者使用了KITTI数据集,在下载的过程中发现,直接翻墙从国外网站下载速度非常快。主要是利用激光雷达数据和RTK数据做融合。RTK,GNSS,IMU等定位方式的精度要详细了解一下将数据集转换成ROSBAG,然后利用rviz就能进行原始数据效果查看

2021-02-27 12:49:47 547

原创 slam基础知识——相机模型/单应矩阵

目录相机模型小孔成像模型凸透镜成像模型结论相机模型这一部分引用了下面两个材料:【1】https://web.stanford.edu/class/cs231a/course_notes/01-camera-models.pdf【2】https://robotacademy.net.au/masterclass/how-images-are-formed/?lesson=741【3】https://blog.csdn.net/hehedadaq/article/details/105763241小

2021-02-24 15:48:21 303

原创 orbslam2学习内容梳理

目录第一课第二课第三课第一课这一课的主要内容包括:数据集下载https://vision.in.tum.de/data/datasets/rgbd-dataset/download代码下载https://github.com/raulmur/ORB_SLAM2注释代码下载https://github.com/electech6/ORB_SLAM2_detailed_comments参照源代码github网站完成安装运行代码看看效果associate.py 文件讲解,主要是用来对其深度

2021-02-23 13:58:19 303

原创 车辆横向控制——车辆横向运动学/动力学模型

本文参考自Rajesh Rajamani的《Vehicle Dynamics and Control》加入了一些忽略的推导步骤。车辆横向运动学模型如下图所示为自行车模型。存在假设:前轮和后轮的运动方向都是沿着轮胎旋转方向,也就是轮胎的slip angle是0。在低速(<5m/s)时,这个假设是合理的。从几何关系进行推导:在三角形OCA中,根据正弦定理有:sin⁡(δf−β)lf=sin⁡(π2−δf)R(1)\frac{\sin(\delta_f-\beta)}{l_f} = \frac

2020-12-16 14:05:18 11472 2

原创 A star 搜索算法教程——不同类型的A star算法

本文翻译自http://theory.stanford.edu/~amitp/GameProgramming/Variations.html增加了一些作者的个人看法Beam search在标准的A星算法主循环中,OPEN set中保存了所有的需要进行进一步搜索的node。Beam search对OPEN set的尺寸进行了限制。如果OPEN set变的过大,那些“不太可能找到好路径”的node会被丢弃。这种做法的缺点是需要对OPEN set里的元素进行排序,这会限制某些数据结构的应用。可以参考视频h

2020-12-10 17:14:20 559

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除