vins_fusion入门系列-数据的读取

本文介绍了VINS_FUSION的功能,特别是数据读取和同步处理。通过分析程序入口、imu_callback、feature_callback和sync_process,阐述了如何处理imu数据、图像特征以及实现双目图像的同步输入,强调了同步处理在双目SLAM中的重要性。
摘要由CSDN通过智能技术生成

vins_fusion入门系列-数据的读取

VINS_FUSION功能介绍

港科大在2019年1月12号发布了Vins-fusion,从2017年发布的Vins-mono:单目+IMU,这次晋级了vins-fusion,demo中主要给出了四个版本:
(1)单目+imu
(2)纯双目
(3)双目+imu
(4)VIO+GPS
地址为:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
双目SLAM对比与之前单目的slam,主要一个好处在于初始化过程中,可以静止进行初始化。另一方面由于尺度信息不一定完全依靠IMU,因此不会造成尺度不可关的情况。但是由于视觉误匹配等各种原因,造成实际上双目的精度会比单目来的差一丢丢。不过鲁棒性上考虑,双目明显优于单目。

程序入口

1.定义内容

运行程序时,首先进入的是主程序rosNodeTest.cpp
里边主要定义了 估计器、 缓存器 、 获取传感器数据的函数 和 一个主函数
vins_estimator:: rosNodeTest.cpp

// 获得左目的message
void img0_callback(const sensor_msgs::ImageConstPtr &img_msg)
// 获得右目的message
void img1_callback(const sensor_msgs::ImageConstPtr &img_msg)
// 从msg中获取图片,返回值cv::Mat,输入是当前图像msg的指针
cv::Mat getImageFromMsg(const sensor_msgs::ImageConstPtr &img_msg)
// 从两个主题中提取具有相同时间戳的图像
// 并将图像输入到估计器中
void sync_process()
// 输入imu的msg信息,进行解算并把imu数据输入到estimator
void imu_callback(const sensor_msgs::ImuConstPtr &imu_msg)
// 把特征点的点云msg输入到estimator
void feature_callback(const sensor_msgs::PointCloudConstPtr &feature_msg)
// 是否重启estimator,并重新设置参数
void restart_callback(const std_msgs::BoolConstPtr &restart_msg)
// 是否使用IMU
void imu_switch_callback(const std_msgs::BoolConstPtr &switch_msg)
// 相机的开关
void cam_switch_callback(const std_msgs::BoolConstPtr &switch_msg)
int main(int argc, char **argv)

2.程序执行

main࿰

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值