推广 热搜: 公司  快速  上海  中国  企业    未来  政策  系统  公司2 

手机数据跑VO/VIO记录手机图「手机数据跑VO/VIO记录」

   日期:2025-01-13     作者:f2xowl    caijiyuan   评论:0    移动:http://www78564.xrbh.cn/mobile/news/32756.html
核心提示:相机标定: 法1:ROS自带的标定工具 1.打开手机端app获取图像数据 2.ros自带的camera_calibration工具进行标定然后
相机标定

法1:ROS自带的标定工具
1.打开手机端app获取图像数据
2.ros自带的camera_calibration工具进行标定

 

然后移动标定板或者相机完成标定。
法2:Opencv 标定工具
参考链接:使用opencv进行相机标定(ubuntu系统下)

IMU标定

法1:使用imu_utils工具标定
编译安装code_utils,imu_utils.
1.静止采集数据(时间越长越好):

 

2.修改自己的launch文件Android_imu.launch,并启动

 
 

3.加速播放录制的数据

 

牢记一点:launch文件中的时间设置一定要小于bag包录制的数据时间,然后bag包快速播放完,立马就会出结果了。否则会一直wait for imu不出标定结果。(害我电脑白白开了一晚上结果还没算出来。。。。。。

补充:用Imu_utils标定,原则上最后需要把生成的文件用matlab脚本绘制出Alann曲线再去精确的读出加速度和角速度的bias随机游走和高斯白噪声,实际操作表明直接用imu_utils出的结果也行,只要是在一个数量级上就没啥大问题,有些VIO系统跑步起来主要还是IMU本身的问题。

法2:使用kalibr_allan工具进行标定
参考链接
1.将录制的bag数据包转mat文件,与bag在同级目录下

 

2.将生成的mat执行kalibr_allan/matlab目录下的script_allan_matparallel.m脚本
3.将第二步生成的结果mat文件执行script_process_results.m脚本完成标定并绘制出ALLAN曲线

补充:一开始尝试用octave跑.m脚本显示timeserises未定义,后来才发现我笔记本已经安装了matlab2018b了,但是需要开文件夹权限,执行:sudo chmod -Rf 777 ~/.matlab,然后在matlab里可以正常出结果。(过了几个月忘记咋操作了,这一点就浪费了我两三个小时才逐渐搞定

最后的标定结果
在这里插入图片描述
**》**另外Imu_tk工具可以标定确定性误差,这个可选可不选

相机和IMU联合标定

1.修改准备cam.yaml , imu.yaml,target.yaml
2.录制数据(需要3个轴来回运行至少三次
3.运行dataToEuroc程序,将数据按照时间戳命名转成文件夹存储格式
在这里插入图片描述
4.再将数据文件生成bag包

 

5.kalibr联合标定

 
跑ORBSLAM2

步骤
前期工作:使用ROS包camera_calibration标定手机,修改yaml参数配置文件
1.roscore
2.打开手机端数据获取APP(下载地址:git clone https://github.com/hitcm/Android_Camera-IMU.git),IP地址为电脑端IP
3.手机图像topic重命名:rosrun image_transport republish compressed in:=/android/image_raw raw out:=/cam0/image_raw
3.运行ORBSLAM:rosrun ORB_SLAM2 Mono /home/fs/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/fs/catkin_ws/src/ORB_SLAM2/Examples/Monocular/AndroidPhone.yaml

跑ORBSLAM3:

1.编译安装成功后运行失败的问题
解决方法:通过debug发现是Eigen库相关的问题,发现自动找的Eigen版本不对,要求3.1.0以上,切换到自己安装的3.3.7版本即可。需要全部重新编译。
2.运行出现framebuffer with requested attributes not available.的红色提示问题,一开始以为运行失败是这个东西导致的,各种查找解决这个问题的方法无果。最后发现这个并不影响代码运行。
3.如何在clion中debug ros 包
因为 经常会遇到ros包代码运行错误的问题,需要debug查找问题所在。clion在ros环境下启动可以自动加载ros环境。debug时需要在program argument中添加运行所需的参数文件路径(和非ros包程序方式一样)然后点击运行或者debug按钮即可。

运行步骤
rosrun ORB_SLAM3 Mono_Inertial https://blog.csdn.net/weixin_43421058/article/details/Vocabulary/ORBvoc.txt https://blog.csdn.net/weixin_43421058/article/details/Examples/Monocular-Inertial/EuRoC.yaml

录制效果动图

获取鼠标位置:xdotool getmouselocation
动图录制:byzanz-record -x 482 -y 53 -w 452 -h 715 ~/x.gif 默认10s

降低topic频率,标定时用

rosrun topic_tools throttle messages 原topic 4.0 降频后的topic

查看topic的header信息

rostopic echo /cam0/image_raw | grep header -A4

下面内容更新于2022.2.25

原始标定方式用kalibr进行cam和imu的联合标定时非常耗时,优化计算需要3个小时以上
用kalibr标定相机800张左右的图片也需要30分钟左右,于是在Ubuntu20系统上重装了kalibr
参考博客
Ubuntu20.04安装kalibr
20版本kalibr的github链接
安装完成后赶紧试验了相机的标定,速度超级快,800多张图片2分钟就标定完了。
最后总结标定步骤

1.相机标定
 
2.相机IMU联合标定
本文地址:http://www78564.xrbh.cn/news/32756.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号