手写VIO学习总结(二)
文章目录
- 1. 作业1
- 1.1 方法1
- 2. 作业2
系列笔记:
手写VIO学习总结(一)
1. 作业1
1.1 方法1
- 1 利用vio_data_simulation-ros_version生成imu的静止时候的仿真数据:
具体步骤:
1.建立work space
2.利用caktin_make编译vio_data_simulation-ros_version
3.rosrun vio_data_simulation vio_data_simulation_node注意:1.需要修改vio_data_simulation-ros_version/src/gener_alldata.cpp中的bag路径
2.打开vio_data_simulation-ros_version/src/param.h可以设置参数
- 2 利用高温良的开源代码完成,参考我以前的博文:无人驾驶算法学习(十一):IMU标定及Allan方差分析
- 3 待续,具体分析
2. 作业2
readme中提示: 1. 编译vio_data_simulation-master 2. 执行bin/data_gen, 生成数据 3. 执行python_tools/draw_trajectory.py 画出轨迹 4. 换成中值积分, 再重做一遍上述1,2,3过程
- 1 欧拉法
编译vio_data_simulation-master, vio_data_simulation-master是一个Cmake工程,对其进行编译。
cd vio_data_simulation-master
mkdir build
cd build
camke ..
make
cd ../bin
./data_gen
此时,在vio_data_simulation-master/bin目录下会生成一些txt文件,我们需要的是imu_pose.txt和imu_int_pose.txt,然后用Python的matplotlib绘图。
说明:
imu_pose.txt是由给定的轨迹方程和欧拉角,生成IMU的pose,imu_int_pose.txt是由给定的轨迹得到速度v和加速度a
,再根据欧拉法
得到IMU的pose。
cd ../python_tool
python draw_trajctory.py
- 2 中值法
- 2.1 vio_data_simulation-master/src/imu.cpp中欧拉法
/// imu 动力学模型 欧拉积分Eigen::Vector3d acc_w = Qwb * (imupose.imu_acc) + gw; // aw = Rwb * ( acc_body - acc_bias ) + gwQwb = Qwb * dq;Vw = Vw + acc_w * dt;Pwb = Pwb + Vw * dt + 0.5 * dt * dt * acc_w;
- 2.2 中值法
替换的代码:
MotionData imupose = imudata[i];MotionData imupose_ = imudata[i-1];//delta_q = [1 , 1/2 * thetax , 1/2 * theta_y, 1/2 * theta_z]Eigen::Quaterniond dq;Eigen::Vector3d dtheta_half = 1.0/2.0* (imupose.imu_gyro + imupose_.imu_gyro) * dt /2.0;// Eigen::Vector3d dtheta_half = (imupose.imu_gyro + imudata[i-1].imu_gyro)/2 * dt /2.0;dq.w() = 1;dq.x() = dtheta_half.x();dq.y() = dtheta_half.y();dq.z() = dtheta_half.z();/// 中值积分Eigen::Vector3d acc_w = (Qwb * (imupose_.imu_acc) + gw + Qwb*dq * (imupose.imu_acc) + gw )/2; // aw = Rwb * ( acc_body - acc_bias ) + gwQwb = Qwb * dq;Vw = Vw + acc_w * dt;Pwb = Pwb + Vw * dt + 0.5 * dt * dt * acc_w;
- 3 注意:
对比发现中值法更精准!!!
手写VIO学习总结(二)相关推荐
- 手写VIO --学习笔记 - Part1
目录 一.VIO文献阅读 二.四元数和李代数更新 三.其他导数 参考 一.VIO文献阅读 阅读VIO 相关综述文献,回答以下问题: 1.视觉与IMU进行融合之后有何优势? IMU:(Inertial ...
- 《视觉SLAM进阶:从零开始手写VIO》(二)
<视觉SLAM进阶:从零开始手写VIO>第二讲 1 安装im_utils 这个工具之前就使用过了,还写了博客,没想到在这里用上了,博客地址:https://blog.csdn.net/le ...
- 手写VIO --学习笔记 - Part8
目录 1.基础 2.提升 Estimating Time Offsets using Basis Functions An Example: Camera/IMU Calibration 1.Quan ...
- 深蓝学院《从零开始手写VIO》作业一
深蓝学院<从零开始手写VIO>作业一 深蓝学院<从零开始手写VIO>作业一 1. VIO文献阅读 1.1 视觉与IMU进行融合之后有何优势? 1.2 有哪些常见的视觉+IMU融 ...
- js如何在当前页面加载springmvc返回的页面_手写SpringMVC学习
前面我们学习了spring框架源码,做了一些自己手写的学习,最近,我们开始学习springMVC框架的学习 ,springMVC框架,相信大家不陌生了,所以这里不做过多的介绍了. SpringMVC以 ...
- 《视觉SLAM进阶:从零开始手写VIO》第二讲作业-IMU仿真、MU imu_utils标定
<视觉SLAM进阶:从零开始手写VIO>第二讲作业-IMU仿真.MU imu_utils标定 作业题目: 1 仿真代码解析 仿真代码地址:https://github.com/HeYiji ...
- 深蓝学院《从零开始手写VIO》作业七
深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 将第二讲中的仿真数据(视觉特征,imu数据)接入V ...
- 深蓝学院《从零开始手写VIO》作业六
深蓝学院<从零开始手写VIO>作业五 深蓝学院<从零开始手写VIO>作业六 1. 证明题 2. 代码题 深蓝学院<从零开始手写VIO>作业六 1. 证明题 证明Dy ...
- 深蓝学院《从零开始手写VIO》作业五
深蓝学院<从零开始手写VIO>作业五 1. 完成Bundle Adjustment求解器 2. 完成测试函数 3. 论文总结 1. 完成Bundle Adjustment求解器 完成单目 ...
最新文章
- android打开网址重启后也是这个网站,千万不要乱试!iPhone只要打开这个「网址」立即崩溃重启!...
- python 霍夫直线变换_OpenCV-Python 霍夫线变换 | 三十二
- java学习(114):Calendar类方法before
- 滤波效果_各种电源滤波电路分析
- 黑马公开课——运行原理与GC学习笔记
- aspen plus大小_[软件]Aspen Plus 这些常识,你都懂了吗?
- 系统学习机器学习之线性判别式(二)
- MapReducer随笔小记
- 程序员面试头条被拒,一年后逆袭拿到offer【巴分巴秒】
- opencore(OC引导)关于修改sle系统权限的问题
- JSP——在JSP中嵌入java代码
- 六一儿童节,悼念天堂的小朋友
- 男人30岁之前不必在乎的事
- 同是数据分析产品, 为什么200万App企业都选择友盟+
- 计算机网络——配置动态路由实验
- vim如何与外界复制粘贴
- 100 道 Linux 常见面试题,慢慢读~
- Vivado 下单端口RAM的配置使用
- 蓝桥杯 DFS经典题 —— 算式900、寒假作业(告别枚举法)
- 【项目分享】还有谁不服??这款随机表情包生成器征服你!!