VINS-Mono代码学习记录(二)---feature_tracker

一、feature_tracker总体流程图解

先给出一张feature_tracker的总体流程图,让自己有一个全局意识。这张图真好,感谢原作者。基本这就是feature_tracker这个node搞的事情啦!重点关注它,对! 就是它!
在这里插入图片描述图片转自:https://blog.csdn.net/qq_41839222/article/details/85797156

二、main()函数分析

开始进入feature_tracker–>src文件夹可以看到,里面的文件共6个,先看feature_tracker_node.cpp中的主函数main()

int main(int argc, char **argv)
{
    //【1】初始化,设置句柄,设置logger级别
    ros::init(argc, argv, "feature_tracker");
    ros::NodeHandle n("~");
    ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Info);

    //【2】从config-->euroc-->euroc_config.yaml文件中读取参数,包括话题,图像宽高,追踪的特征点数量等等
    readParameters(n);

    //【3】循环读取每个相机的内参
    for (int i = 0; i < NUM_OF_CAM; i++) //NUM_OF_CAM=1
        trackerData[i].readIntrinsicParameter(CAM_NAMES[i]);

    //【4】如果是鱼眼相机,添加mask去除边缘噪声
    if(FISHEYE)
    {
        for (int i = 0; i < NUM_OF_CAM; i++)
        {
            trackerData[i].fisheye_mask = cv::imread(FISHEYE_MASK, 0);
            if(!trackerData[i].fisheye_mask.data)
            {
                ROS_INFO("load mask fail");
                ROS_BREAK();
            }
            else
                ROS_INFO("load mask success");
        }
    }

    //【5】订阅话题IMAGE_TOPIC(/cam0/image_raw),执行回调函数img_callback
    ros::Subscriber sub_img = n.subscribe(IMAGE_TOPIC, 100, img_callback);//当订阅的topic有新的信息时,激活回调函数

    //【6】发布feature,实例feature_points,跟踪的特征点,给后端优化用
    //发布feature_img,实例ptr,跟踪的特征点图,给RVIZ用和调试用
    //发布restart
    pub_img = n.advertise<sensor_msgs::PointCloud>("feature", 1000);
    pub_match = n.advertise<sensor_msgs::Image>("feature_img",1000);
    pub_restart = n.advertise<std_msgs::Bool>("restart",1000);
    /*
    if (SHOW_TRACK)
        cv::namedWindow("vis", cv::WINDOW_NORMAL);
    */
    ros::spin();//ros::spin() 在调用后不会再返回,也就是主程序到这儿就不往下执行了
    return 0;
}

上面每一步都给出了详细的注释,其中步骤【2】读取参数的函数readParameters()如下:

void readParameters(ros::NodeHandle &n)
{
    std::string config_file;
    config_file = readParam<std::string>(n, "config_file");//ans-->config_file
    std::cout&
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值