vins-mono feature_tracker 代码解析

目录

NodeHandle::getParam函数说明:

 cv::FileStorage函数说明:

ros::console::set_logger_level

[](const pair> &a, const pair> &b,sort自定义函数,>,>

ros::NodeHandle n("~")说明:


NodeHandle::getParam函数说明:

n是NodeHandle实例对象,该函数用于获取参数服务器中的参数

bool getParam (const std::string& key, parameter_type& output_value)

 key是参数名,output_value用来保存参数名对应的参数值,例如:

std::string s;
n.getParam("my_param", s);

 cv::FileStorage函数说明:

cv::FileStorage(const string& source, int flags, const string&  encoding=string());  

source –存储或读取数据的文件名(字符串),其扩展名(.xml 或 .yml或者.yaml)等文件格式

flags – 操作方式,包括:

FileStorage::READ 打开文件进行读操作
FileStorage::WRITE 打开文件进行写操作
FileStorage::APPEND打开文件进行附加操作,在已有内容的文件里添加
encoding—编码方式,用默认值就好。 

例如:

    cv::FileStorage fsSettings(config_file, cv::FileStorage::READ);
    if(!fsSettings.isOpened())
    {
        std::cerr << "ERROR: Wrong path to settings" << std::endl;
    }
    std::string VINS_FOLDER_PATH = readParam<std::string>(n, "vins_folder");
    
    #读取文件中的数据进行赋值
    fsSettings["image_topic"] >> IMAGE_TOPIC;
    fsSettings["imu_topic"] >> IMU_TOPIC;
    MAX_CNT = fsSettings["max_cnt"];
    MIN_DIST = fsSettings["min_dist"];
    ROW = fsSettings["image_height"];
    COL = fsSettings["image_width"];
    FREQ = fsSettings["freq"];
    F_THRESHOLD = fsSettings["F_threshold"];
    SHOW_TRACK = fsSettings["show_track"];
    EQUALIZE = fsSettings["equalize"];
    FISHEYE = fsSettings["fisheye"];
    if (FISHEYE == 1)
        FISHEYE_MASK = VINS_FOLDER_PATH + "config/fisheye_mask.jpg";
    CAM_NAMES.push_back(config_file);

ros::console::set_logger_level

设置消息日志的输出类型,例如下:

ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Info);

终端输出为只有Info,详细见如下

(36条消息) ROS代码中设置消息日志级别_hoppss的博客-CSDN博客

[](const pair<int, pair<cv::Point2f, int>> &a, const pair<int, pair<cv::Point2f, int>> &b,sort自定义函数

sort函数,排序,对于一些特殊数据,需要自定义比较函数,例如:

sort(cnt_pts_id.begin(), cnt_pts_id.end(), [](const pair<int, pair<cv::Point2f, int>> &a, const pair<int, pair<cv::Point2f, int>> &b)
         {//对光流跟踪到的特征点forw_pts,按照被跟踪到的次数cnt从大到小排序
            return a.first > b.first;
         });

a  b为自定义的数据类型指针,const pair<int, pair<cv::Point2f, int>>确定输入形式,a.first   b.first确定比较元素为第一个元素,按照从大到小的顺序进行排序

ros::NodeHandle n("~")说明:

(52条消息) ROS Nodehandle句柄的理解_ros::nodehandle_存在即合理L的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值