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