摘要:
C++ 中过大的vector在不需要使用的时候最好及时释放掉这部分的内存 其中clear只是清除vector的元素而不是释放整个vector的内存 释放vector的内存需要通过一下这种方式: std::vector<Foo> x; vector<Foo>().swap(x) 原理是会构造一个临时的 阅读全文
摘要:
Eigen::MatrixXf A 对矩阵A进行赋值 如果赋的值也是矩阵的话 需要使用block函数 A.block<a, b>(r, c) = B a,b为要赋的值的矩阵的大小 r和c为要赋值的位置。 或者: A.block(r, c, a, b) = B 但是上面这种不适用于赋值数 赋值数直接: 阅读全文
摘要:
正常矩阵初始化: Eigen::Matrix<double, 1, 1> A 此时如果将两个1改成变量 即运行期间才会知道是什么值 Eigen::Matrix<double, a, b> A 此时报错expression must have a constant value 改成: Eigen::M 阅读全文
摘要:
若生成的tum轨迹文件包含多余空格 执行以下命令 cat results.txt | tr -s [:space:] > results_new.txt 生成单一轨迹命令: evo_traj tum XXXX.txt -p 将csv文件转换成tum文件: evo_traj euroc XXX.csv 阅读全文
摘要:
这里大概意思是出现了不同版本共存问题 它不知道应该删除哪个 所以统一删除掉再重新安装 例如安装evo时出现了 电脑中已经有pytz的环境 再安装就报错了 所以我们删除掉pytz再重新安装evo 执行命令: sudo find '.' -name "*XXXXXXX*.egg-info" -exec 阅读全文
摘要:
惯性导航误差微分方程 在IMU惯性导航误差分析建模中 一共有三个微分方程 分别对应姿态误差微分方程 速度误差微分方程和位置误差微分方程 姿态误差微分方程 n为东北天坐标系 b为机体坐标系 这里求出二者之间的转换关系就可以求出IMU的姿态 这里旋转关系用旋转矩阵C表示 对这个旋转矩阵求导: $\ome 阅读全文
摘要:
Apollo自动驾驶融合了全世界优秀的算法 铃灵狗对车道线感知和高精地图融合的方式产生了好奇 全网没有找到明确的分析和总结 因此亲自阅读源码 找到其中的奥妙之处 阅读全文
摘要:
在最大后验估计中 如果分布为高斯分布 信息矩阵 = 协方差的逆 多元变量x x又两部分组成: 它的协方差矩阵为: 其中: 它的信息矩阵就是协方差矩阵的逆: 作用:便于计算边界概率和条件概率 但边际概率对于协方差矩阵的操作是很容易的,但不好操作信息矩阵。条件概率恰好相反,对于信息矩阵容易操作,不好操作 阅读全文
摘要:
矩阵最小二乘的方法一直被当做结论去记住 这两天做了仔细推导 发现矩阵维度对于分析矩阵运算来说是非常重要的 阅读全文
摘要:
旋转运动学 质量块在body坐标系下的坐标为: body坐标系为imu坐标系 惯性系为世界坐标系 只考虑旋转 旋转到惯性系下: 对时间求导 如下: 其中 对$R$的求导 有如下推导: 其中$[wb]_\times=w{\wedge}$ \([w^b]_\times r =w^b\times r\) 阅读全文