GVINS代码学习记录(1)

GVINS文件夹下分为cameral_model,config,docker,estimator,feature_tracker

重点是特征跟踪器(feature_tracker)跟状态估计器(estimator)

一般特征跟踪器的作用是负责相机图像的特征提取和跟踪,以及与状态估计器之间的通信。

状态估计器负责整体的状态估计算法和优化过程。

特征跟踪器里有feature_tracker的三个文件,parameters的两个文件以及计算各模块运行时间的tic_toc文件

参数头文件

参数cpp文件:

#include "parameters.h"

//用于存储从配置文件中读取到的图像话题、IMU数据话题、相机名称和鱼眼遮罩路径。

std::string IMAGE_TOPIC;

std::string IMU_TOPIC;

std::vector<std::string> CAM_NAMES;

std::string FISHEYE_MASK;

//用于存储从配置文件中读取到的各种参数值

int MAX_CNT;//最大特征点数

int MIN_DIST;//最小距离

int WINDOW_SIZE;//窗口大小

int FREQ;//频率

double F_THRESHOLD;//特征点阈值

int SHOW_TRACK;//显示跟踪结果

int STEREO_TRACK;//双目跟踪

int EQUALIZE;//均衡化

int ROW;//行

int COL;//列

int FOCAL_LENGTH;//焦距

int FISHEYE;//鱼眼相机

bool PUB_THIS_FRAME;//发布当前帧数据

template <typename T>

T readParam(ros::NodeHandle &n, std::string name)

{//用于读取ROS节点参数。它接受一个 ros::NodeHandle 对象和一个参数名作为输入,并返回读取到的参数值。

T ans;

if (n.getParam(name, ans))

{

ROS_INFO_STREAM("Loaded " << name << ": " << ans);

}

else

{

ROS_ERROR_STREAM("Failed to load " << name);

n.shutdown();

}

return ans;

}

void readParameters(ros::NodeHandle &n)

{//读取配置文件中的参数,并将其赋值给上述的全局变量。

std::string config_file;

config_file = readParam<std::string>(n, "config_file");//使用 readParam() 函数读取配置文件路径

cv::FileStorage fsSettings(config_file, cv::FileStorage::READ);//使用OpenCV的 FileStorage 类读取配置文件中的其他参数,并将它们赋值给对应的全局变量。

if(!fsSettings.isOpened())

{

std::cerr << "ERROR: Wrong path to settings" << std::endl;

}

std::string GVINS_FOLDER_PATH = readParam<std::string>(n, "gvins_folder");//使用 readParam() 函数读取GVINS文件夹路径


 

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 = GVINS_FOLDER_PATH + "config/fisheye_mask.jpg";

CAM_NAMES.push_back(config_file);

WINDOW_SIZE = 20;

STEREO_TRACK = false;

FOCAL_LENGTH = 460;

PUB_THIS_FRAME = false;

if (FREQ == 0)

FREQ = 100;

fsSettings.release();


 

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值