当前位置: 首页 > news >正文

【深蓝学院】手写VIO第2章--IMU传感器--作业

这次作业坑很多,作业说明的不清楚,摸索了很长时间才将此次作业完成,在这里进行记录。

1. T1

1.1 题干

在这里插入图片描述

1.2 解答

1.2.1 法1,ros related方法

不知道为什么我的launch不了,在imu_utils目录下面建立build后,cmake,make install之后出现了imu_an的可执行文件(经常会出现找不到已经生成的文件,需要重新打开一个terminal再来看行不行)
在这里插入图片描述
在下面也证实了这个imu_an是subscribe了一个topic,
在这里插入图片描述

得看这个topic在哪里发送(或者说这仅仅只是一个接受数据的东西,数据需要我们自己去采集,自己去发送对应的topic,需要继续了解rosplay是干什么用的)
在这里插入图片描述

所以按照imu_utils的markdown说明的,就是把roslaunch起来,subscribe对应的topic,然后使用 rosbag play发送或者实际的采集数据(采集数据肯定要发送topic),所以就跑成了,跑完之后就完成了IMU的Acc和Gyro的高斯白噪声和bias协方差的标定,结果见下图(以imu_a3.bag为例):
在这里插入图片描述
Gyro标定结果:
在这里插入图片描述
Acc标定结果:
在这里插入图片描述

1.2.1 法2,kalibr_allan工具法

作业中没有对使用kalibr_allan的整个流程进行介绍,这里进行梳理:

  1. 使用IMU仿真程序生成imu.bag数据(编译vio_data_simulation工程并运行生成)
  2. 使用bagconvert ros package将生成的imu.bag数据转换成.mat文件用于kalibr_allan使用
  3. 在matlab下使用kalibr_allan中的matlab程序和转换成的.mat文件进行IMU的标定。

1. vio_data_simulation

mkdir vio_sim_ws/src
cd src
git clone https://github.com/HeYijia/vio_data_simulation
git checkout ros_version
catkin_make

由于我catkin_make有一些问题,这里也可以直接使用cmake的方法进行编译,编译完之后生成文件在devel/lib/vio_data_simulation下会生成node的可执行文件
在这里插入图片描述
直接执行之后就会生成imu的仿真数据:
在这里插入图片描述
以上数据用于第三步的kalibr_allan标定使用。


下面的数据用于可视化使用:

关于仿真数据的可视化,是编译cmake编译这个工程生成可执行文件data_gen,执行这个可执行文件就生成各种.txt文件,下面的可视化就是基于生成的.txt文件进行的。
其中的数据仿真可视化可以用python_tool下的python脚本进行实现,都是基于matplotlib.pyplot实现的(话说好久没有碰python了),效果如下:
draw_trajectory.py(这个在第二题在更改积分方式的时候还会再使用)
在这里插入图片描述
draw_points.py:是一个动态的
在这里插入图片描述
中值积分:

2. bagconvert

bagconvert同理也这样编译:
在这里插入图片描述
catkin_make有问题的话可以直接如下所示的将IMU数据转换成.mat文件

./bagconvert img.bag imu0

在这里插入图片描述
这个坑很大,md中没有说明白后面跟的参数的意义,看了代码才发现
说的后面跟三个参数:包名,bag名,bag中的topic名。
(第三个参数我开始以为是结果mat名字,搞了好久convert出来的mat都是177byte空的,matlab上跑SCRIPT当然跑不过,后来看了bagconvert的代码才发现三个参数的意义,对于不熟悉ros的同学来说真的很坑)
在这里插入图片描述
如果想简单地知道你的bag中的tpoic,可以直接打印出来
在这里插入图片描述
也可以像上面的rosrelated方法一样,把bag包play起来,然后查看此时的topic名字

rosbag play -r 200 imu_A3.bag
rostopic list -v

在这里插入图片描述

参数传递正确就能顺利的convert成mat文件了,大小也是正常的

rosrun bagconvert bagconvert ./imu_A3.bag /djiros/imu

在这里插入图片描述

3. kalibr_allan

首先看kalibr_all的md
在这里插入图片描述
需要安装Matlab,遂龟速安装中…
参考博客:Ubuntu20.04安装Matlab2021b
在这里插入图片描述
但是cmake不过,没有找到matlab中的mat.h,博客中说发现需要更改Findmatlab.cmake

修改~/catkin_ws/src/kalibr_allan-master/bagconvert/cmake目录下的FindMatlab.cmake,
找到  find_program(MATLAB_EXE_PATH matlab   这一行,将他修改成刚刚安装matlab的路径的bin路径find_program(MATLAB_EXE_PATH matlabPATHS /usr/local/MATLAB/R2021b/bin)
这样可以找到matlab

即可cmake通过。

后面发现没有安装parallel_compute(类似这个名称)的tool_box,查了一下,非正版的可以再用刚才的安装包重新安装,在安装界面可以选择需要安装的tool_box。

但是,我的电脑内存快爆了,matlab跑不出来,第一题就看看吧。知道有这个方法(折腾这么久,还是有点亏)

2. T2

在这里插入图片描述
欧拉积分:
在这里插入图片描述

中值积分重合效果很好:
代码改动部分:
在这里插入图片描述
可视化仿真:
在这里插入图片描述

3. T3

3.1 题干

在这里插入图片描述
将B Spline用代码实现,与上面的中值积分的效果进行对比。

3.2 解答

该部分还没做,后面会做。

http://www.lryc.cn/news/185276.html

相关文章:

  • Android多线程学习:线程
  • canvas 入门
  • 建议收藏!混迹职场多年总结出的8大技巧!
  • OpenCV4(C++)—— 视频和摄像头的加载、显示与保存
  • excel功能区(ribbonx)编程笔记6-box的使用
  • oralce配置访问白名单的方法
  • ToBeWritten之让响应团队参与并做好沟通
  • ffmpeg ts 关于av_seek_frame
  • 【C++】set map 的底层封装
  • JavaWeb整体介绍
  • 一些常见分布-正态分布、对数正态分布、伽马分布、卡方分布、t分布、F分布等
  • 科技云报道:押注向量数据库,为时过早?
  • 铭控传感亮相2023国际物联网展,聚焦“多场景物联感知方案”应用
  • 前端demo: 实现对图片进行上传前的压缩功能
  • 计算机网络(文章链接汇总)
  • 黑科技-Android
  • 450. 删除二叉搜索树中的节点
  • python安全工具开发基础
  • 26 docker前后端部署
  • [linux] SFTP文件传输基本命令 --- xshell 直接上传文件
  • Tomcat 多实例
  • 全民拼购模式:电商的新趋势和机遇
  • 免费使用,媲美Midjourney!微软在Bing Chat等提供—DALL-E 3
  • Nacos中AP和CP 切换
  • 服务器中勒索病毒怎么解决?勒索病毒解密,数据恢复
  • 全面解析UDP协议(特点、报文格式、UDP和TCP的区别)
  • iPhone15手机拓展坞方案,支持手机快充+传输数据功能
  • 优化理论笔记
  • FastAPI学习-23.异常处理器 exception_handler
  • 国庆出游远程实测:ToDesk 、TeamViewer、AnyDesk远程控制软件稳定性