在雷达标定过程中,在ubuntu系统下使用了yaml-cpp保存标定文件,以此记录。库的安装和使用,可参考yaml-cpp官方教材

Node类型

直接上代码:

    YAML::Node node_res; assert(node_res.IsNull());  //初始化的节点是Null类型time_t time_now = time(nullptr);char time_ch[64];strftime(time_ch, sizeof(time_ch), "%Y-%m-%d-%H:%M:%S", localtime(&time_now));string MLC_calib_date = time_ch;node_res["MLC_calib_version"] = "v1.0.0";node_res["MLC_calib_details"] = "output by MLC calibration";node_res["MLC_calib_date"] = MLC_calib_date;node_res["sensor_name"] = "front";node_res["sensor_type"] = "LiDAR";node_res["timestamp_shift"] = 0;node_res["vehicle_xyz"] = "front_left_up";node_res["r_s2b"] = vector<double>{0, 0, 0};node_res["t_s2b"] = vector<double>{0, 0, 0};node_res["lidar_width"] = 960;node_res["lidar_height"] = 96;std::ofstream file("./lidar_front.yaml");file << "%YAML:1.0"<<endl;file << "---"<<endl;file << node_res <<std::endl;file.close();

文件效果如下:

Emitter类型

直接上代码:

  std::ofstream fout("./lidar_front.yaml");vector<double> r_s2b = {0, 0, 0};vector<double> t_s2b = {0, 0, 0};time_t time_now = time(nullptr);char time_ch[64];strftime(time_ch, sizeof(time_ch), "%Y-%m-%d-%H:%M:%S", localtime(&time_now));string MLC_calib_date = time_ch;YAML::Emitter ofile(fout);fout << std::string("%YAML:1.0\n");fout << "---\n";ofile << YAML::BeginMap;ofile << YAML::Key << "MLC_calib_version" << YAML::Value << YAML::DoubleQuoted << "v1.0.0";ofile << YAML::Key << "MLC_calib_details" << YAML::Value << YAML::DoubleQuoted << "output by MLC calibration";ofile << YAML::Key << "MLC_calib_date" << YAML::Value << YAML::DoubleQuoted << MLC_calib_date ;ofile << YAML::Key << "sensor_name" << YAML::Value << YAML::DoubleQuoted << "front"<< YAML::Comment("传感器命名");ofile << YAML::Key << "sensor_type" << YAML::Value << YAML::DoubleQuoted << "LiDAR"<< YAML::Comment("传感器类型");ofile << YAML::Key << "timestamp_shift" << YAML::Value << YAML::DoubleQuoted << 0<< YAML::Comment("时间戳延时, 单位 ms, 真实时间戳 = 得到时间戳 + timestamp_shift");ofile << YAML::Key << "vehicle_xyz" << YAML::Value << YAML::DoubleQuoted << "front_left_up"<< YAML::Comment("车体系定义, 前左上, 后轴中心接地点"); // -- 车体坐标系方向定义ofile << YAML::Key << "r_s2b"<< YAML::Comment("传感器到车体系的旋转, i.e. p_b = R(r_s2b)*p_s, p_b表示车体系下的点, ""R(.)表示把旋转向量转换成旋转矩阵的函数, p_s表示传感器系的点")<< YAML::Flow << r_s2b;ofile << YAML::Key << "t_s2b" << YAML::Comment("传感器到车体的平移, 单位 m") << YAML::Flow << t_s2b;ofile << YAML::Key << "width" << YAML::Value << YAML::DoubleQuoted << 960<< YAML::Comment("角分辨率, 一圈点的个数");ofile << YAML::Key << "height" << YAML::Value << YAML::DoubleQuoted << 96<< YAML::Comment("线束");ofile << YAML::EndMap;fout.close();

文件效果如下:

因时间原因,以上代码是直接提取出来的

yaml-cpp保存标定文件-Node/Emitter相关推荐

  1. 使用标定文件出错:does not match name narrow_stereo in file /home/michael/.ros/camera_info/head_camera.yaml.

    环境: vmware虚拟机 ubuntu20.04 + noetic + 笔记本摄像头 在对摄像头进行标定后,生成了相应的标定文件,运行 launch 文件usb_cam_with_calibrati ...

  2. Keras学习笔记---保存model文件和载入model文件

    Keras学习笔记---保存model文件和载入model文件 保存keras的model文件和载入keras文件的方法有很多.现在分别列出,以便后面查询. keras中的模型主要包括model和we ...

  3. 利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件

    转载自:利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件 - Why So Serious? - 博客频道 - CSDN.NET  http://blog.csd ...

  4. 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中

    by Praveen Dubey 通过Praveen Dubey 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中 (How to use the browser console ...

  5. nodejs html 生成图片,使用nodejs将html5 canvas base64编码图片保存为文件

    目前流行的"你画我猜"应用,你有没有想过使用HTML5来实现过?那么不可避免的需要解决canvas保存图片到硬盘或mongodb之类的数据库.本文主要介绍使用nodejs将html ...

  6. js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件

    js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件 ================================ ©Copyright 蕃薯耀 2020-07 ...

  7. BCB6无XMLDOC控件下生成及保存XML文件

    某个项目需要将数据保存为XML文件,但是BCB6没安装XMLDOC,想下载安装包也难找,于是就在网上查了些资料,不使用XMLDOC的情况下生成和保存XML文件. 包含头文件: #include < ...

  8. Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)

    Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write) 目录

  9. java保存不了_在使用Java写入文件时,文件不能保存在文件夹中

    什么即时通讯要做的只是让用户选择一个目录来保存文本文件,问题是即时通讯尝试选择一个文件夹即时通讯创建在我的桌面上,但是当我用JFileChooser选择文件夹,并让我的代码做工作它仍然保存在文件夹和桌 ...

  10. python文件输出-python将控制台输出保存至文件的方法

    很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息.为了方便保存这些信息,有时需要对这些信息进行保存.这里介绍几种将控制台输出保存到文件中的方式: 1 重定向标准输出流 重定 ...

最新文章

  1. 19.Oracle10g服务器管理恢复--RMAN表空间恢复(练习33)
  2. CocoaPods学习系列5——错误集锦
  3. Luogu 2296 寻找道路
  4. 小程序--按钮返回上页
  5. 在建工地扬尘在线监控系统推荐_关于印发《建设工地扬尘在线监控管理平台建设工作方案》的通知...
  6. Android之基于message的进程间通信Messenger
  7. ascll编码表图片_ascii码对照表
  8. Eclipse使用入门教程
  9. spring nature
  10. 架空线路的基本结构及组成
  11. linux系统支持什么输入法,Linux系统常用输入法框架
  12. 一分钟轻松掌握 !Java 高级数据结构 -- 原生 BitSet 源码刨析
  13. 深度学习与人脸识别系列(4)__利用caffe训练深度学习模型
  14. mysql ndb同步_MySQL NDB Cluster 7.5.16 部署OGG同步
  15. 过滤器:活性碳过滤器技术参数全面解读
  16. CSAPP导读第3章 程序的机器级表示
  17. java: 警告: 源发行版 xx 需要目标发行版 1.10 解决方案
  18. 计算机组成原理片级逻辑图,计算机组成原理试题(五)
  19. java毕业设计酒店物联网平台系统mybatis+源码+调试部署+系统+数据库+lw
  20. python手机话费_Python软件测试中“电话费”问题的解决方案,python,版本,账单,题解...

热门文章

  1. flea-db使用之JPA接入
  2. 802.11-2020协议学习__$12-Security__$12.3.2-WEP__1
  3. 基于vsftpd搭建ftp服务器
  4. 2021.3.30-Robocup 2D学习日志
  5. java target文件夹_Maven不会创建“/ target / m2e-wtp / web-resources”文件夹
  6. 深度学习——词汇embedded、Beam Search
  7. ch2第一个shiny应用_v1
  8. jenkins k8s 动态增减 jenkins-salve (2) 实现 slave 节点动态构建
  9. 小学信息技术 Linux,小学信息技术教育教学计划
  10. Deepgreen/Greenplum删除节点步骤