当前位置:   article > 正文

从零开始手写vio,课程学习遇到的问题_手写vio第五章代码报错

手写vio第五章代码报错

第二章、IMU传感器

要用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博客

  1. unit: rad/s rad/s * 1/sqrt(hz) 高斯白噪声给定值
  2. gyr_n: 2.1174628193741066e-01 //除根号200 0.0149727 0.015
  3. gyr_w: 8.5047491324959210e-04 6.01377e-05 //零偏不稳定性bias
  4. unit: m/s^2 m/(s^2) * 1/sqrt(hz)
  5. acc_n: 2.6979648977867060e-01 0.0190775 0.019
  6. acc_w: 3.8990219990271773e-03 0.000275702
  7. //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
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/891603
推荐阅读
相关标签
  

闽ICP备14008679号