vins-mono feature_tracker 代码解析

目录

NodeHandle::getParam函数说明:

 cv::FileStorage函数说明:

ros::console::set_logger_level

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


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(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> &a, const pair> &b,sort自定义函数

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

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

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

 

你可能感兴趣的:(slam,c++,开发语言)