SLAM C++开发可能用到的一些基础类。其中包含读取yaml文件,读取配置文件,处理各种异常等。
项目地址1:https://github.com/XieShuaiCn/BasicClassesForSLAM
项目地址2:https://gitee.com/hrrcn/BasicClassesForSLAM
如果喜欢这段代码,记得给个star,谢谢!
关于类
所有类 | ||
---|---|---|
Exception | YamlReader | Configure |
Exception
这个类继承自 std::exception,但提供了更丰富的功能。
SLAM::Exception 提供了无参构造函数和带有错误信息的构造函数。和其他的exception不同的是,它可以记录错误发生的位置以及是哪个第三库引发了异常。
YamlReader
SLAM::Basic::YamlReader 是基于第三方库实现的。他统一了一些接口,另外可以解析bool、long、cv::Mat、Eigen::Matrix等。需要注意的是,cv::FileStorage 不能识别 true 和 false,而 YAML::Node 不能读取 cv::Mat。
具体一些,它提供了 ‘Read’ 和 ‘ReadSafe’ 方法。‘Read’ 接受一个 name 参数,这个参数表示键值对的名字。该函数返回该名称对应的值。这个值也可以通过参数引用返回。相较于 ‘Read’, ‘ReadSafe’ 接受一个附加的默认值参数,如果该键值对读取失败,就会返回该默认值。
它也提供了一些用来读取的静态方法,还有一些不太成熟的写入接口(YamlWriter, YamlIO)。
Configure
SLAM::Configure 用来读取设置文件。它被设计为一个单例模式调用,通过 I 或 GetInstance 静态方法获取实例。当然,如果它不符合你的需求,你也可以改善它。该类需要 YamlReader 来完成解析读取功能。
关于依赖项
该项目需要OpenCV 或 Yaml-cpp 来读取文件。
关于问题
如果它的运行结果和你的期望有差距,你可以
- 查看以前的问题
- 提交一个新的问题