赞
踩
要用allan方差标定工具。首先在编译vio_data_simulation-master时,出现c++语法错误,由于ubuntu18.04安装的ros-melodic使用的是c++14的标准,很多c++11的用法不可支持使用!
解决方法是在出错的imu.cpp 文件开头添加了万能头文件 #include<bits/stdc++.h>
感觉作业文件里的非ros不对,又从github下载的
深蓝学院-手写VIO作业-第二章_从已有轨迹生成imu数据推导_hello689的博客-CSDN博客
其中有一点注意,imu.bag的存放位置要更改,打开catkin_ws_vio_data_simulation/src/vio_data_simulation-ros_version/src/gener_alldata.cpp,设置imu.bag的存储路径。
bag.open("/home/zyl/homework/unit2/catkin_ws/imu.bag", rosbag::bagmode::Write);
ctrl+h 显示隐藏文件夹
在主目录/.bashrc 最后加一句source 之后不用再每次刷新环境变量
这篇说的也很好,是在windows下用的matlab
《视觉SLAM进阶:从零开始手写VIO》第二讲作业-IMU仿真、MU imu_utils标定_从零开始学习vio笔记 github_楚歌again的博客-CSDN博客
- unit: rad/s rad/s * 1/sqrt(hz) 高斯白噪声给定值
- gyr_n: 2.1174628193741066e-01 //除根号200 0.0149727 0.015
- gyr_w: 8.5047491324959210e-04 6.01377e-05 //零偏不稳定性bias
-
- unit: m/s^2 m/(s^2) * 1/sqrt(hz)
- acc_n: 2.6979648977867060e-01 0.0190775 0.019
- acc_w: 3.8990219990271773e-03 0.000275702
-
- //bias的随机游走,这里没计算出来,可以找对象的方法进行输出
用matlab绘图
编译并运行修改之后的代码,结果如下:
可以发现参数估计误差较大。由于只修改了原代码中需要估计的曲线参数,并不会引起算法失效,初步分析,误差较大的原因可能是数据点数量不足。于是将数据点由100增加到1000,所需要修改的代码如下:
int main()
{
double a=1.0, b=2.0, c=1.0; // 真实参数值
int N = 1000; // 数据点
double w_sigma= 1.; // 噪声Sigma值
之后再次编译运行,结果如下:
可以看出,参数估计精度已经足够高
代码详解d[从零手写VIO|第五节]——后端优化实践——单目BA求解代码解析_いしょ的博客-CSDN博客
作业
手写VIO后端分析(手写VIO总结五)_vio 芯片后端_纷繁中淡定的博客-CSDN博客
编译出现warning:SE3 is deprecated
cMakeLists 加了一行
set(CMAKE_CXX_FLAGS)
后面添加
set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")
这样make时将不再提示这个弃用warning
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。