源码阅读,能力有限,如有某处理解错误,请指出,谢谢。

run_lidar2imu.cpp:输入文件所在路径,开始标定。

#include <Eigen/Core>
#include <pcl/common/transforms.h>
#include <pcl/conversions.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_cloud.h>#include "calibration.hpp"
#include "extrinsic_param.hpp"
#include "registration.hpp"
#include <iostream>#include "logging.hpp"
#include "transform_util.hpp"
using namespace std;int main(int argc, char **argv) {if (argc != 4) {cout << "Usage: ./run_lidar2imu <lidar_pcds_dir> <poses_path> ""<extrinsic_json> ""\nexample:\n\t""./bin/run_lidar2imu data/top_center_lidar/ ""data/NovAtel-pose-lidar-time.txt ""data/gnss-to-top_center_lidar-extrinsic.json "<< endl;return 0;}string lidar_pcds_dir = argv[1];string poses_path = argv[2];string extrinsic_json = argv[3];string stitching_path = "stitching.pcd";// load extrinsicEigen::Matrix4d json_param;LoadExtrinsic(extrinsic_json, json_param);LOGI("Load extrinsic!");// convert to lidar 2 imuEigen::Matrix4d lidar2imu_extrinsic = json_param.inverse().eval();std::cout << json_param << std::endl;Eigen::Matrix4d transform = Eigen::Matrix4d::Identity();// Registrator registrator;// registrator.LoadOdometerData(poses_path, lidar2imu);// registrator.LoadLidarPCDs(lidar_pcds_dir);// registrator.RegistrationByGroundPlane(transform);// registrator.RegistrationByVoxelOccupancy(transform);// registrator.SaveStitching(stitching_path);// std::cout << "the calibration result is " << std::endl;// std::cout << transform << std::endl;Calibrator calibrator;calibrator.Calibration(lidar_pcds_dir, poses_path, lidar2imu_extrinsic);return 0;
}

lidar与imu之间的外参标定是非常重要的,也是一个基础的东西,只有知道了传感器之间的相对位姿,然后才能更好的完成数据间的融合。

Lidar_imu自动标定源码阅读完结。

Lidar_imu自动标定源码阅读(六)——run部分相关推荐

  1. Lidar_imu自动标定源码阅读(二)——calibration部分

    源码阅读,能力有限,如有某处理解错误,请指出,谢谢. Lidar_parser_base.h:激光雷达分析器基础 #pragma once#include <pcl/point_cloud.h& ...

  2. mybatis源码阅读(六) ---StatementHandler了解一下

    转载自  mybatis源码阅读(六) ---StatementHandler了解一下 StatementHandler类结构图与接口设计 BaseStatementHandler:一个抽象类,只是实 ...

  3. mysql 1260,MYSQL 源码阅读 六

    前期节要 MYSQL源码阅读 一 MYSQL源码阅读 二 MYSQL源码阅读 三 MYSQL 源码阅读 四 MYSQL 源码阅读 五 上次有两个问题没搞明白 1 是 为什么一定要开启调试线程 ? 因为 ...

  4. Struts2源码阅读(六)_ActionProxyActionInvocation

    下面开始讲一下主菜ActionProxy了.在这之前最好先去了解一下动态Proxy的基本知识. ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy ...

  5. Spring源码-AOP(六)-自动代理与DefaultAdvisorAutoProxyCreator

    2019独角兽企业重金招聘Python工程师标准>>> Spring AOP 源码解析系列,建议大家按顺序阅读,欢迎讨论 Spring源码-AOP(一)-代理模式 Spring源码- ...

  6. Soul 网关源码阅读(六)Sofa请求处理概览

    Soul 网关源码阅读(六)Sofa请求处理概览 简介     今天来探索一下Sofa请求处理流程,看看和前面的HTTP.Dubbo有什么异同 Sofa示例运行 PS:如果请求加上参数运行不成功,请更 ...

  7. Caddy源码阅读(一)Run详解

    Caddy源码阅读(一)Run详解 前言 本次系列会讲解 caddy 整个生命周期涉及到的源码. 平时我们使用 caddy 都是使用 它的 二进制 分发文件,现在来分析 caddy 的 Run 函数. ...

  8. 【vn.py学习笔记(六)】vn.py constant源码阅读、委托生命周期

    [vn.py学习笔记(六)]vn.py constant源码阅读.委托生命周期 写在前面 1 constant 1.1 Direction 1.2 Offset 1.3 Status 1.4 Prod ...

  9. 源码阅读:AFNetworking(十六)——UIWebView+AFNetworking

    该文章阅读的AFNetworking的版本为3.2.0. 这个分类提供了对请求周期进行控制的方法,包括进度监控.成功和失败的回调. 1.接口文件 1.1.属性 /**网络会话管理者对象*/ @prop ...

最新文章

  1. Chain of Responsibility 责任链模式 MD
  2. 修改路由表来使路由分流
  3. MindCon | 当「赛博朋克」遇到「AI极客」会发生什么?
  4. 一款不错的基于WEB技术的文件服务器
  5. js怎么获取访问页数记录(知道的能不能告诉我一下)
  6. PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表
  7. 多人编辑同一个md_多人协同编辑一份Word文档的正确姿势是这样的
  8. js获取url的参数
  9. linux命令查看磁盘使用情况,linux查看磁盘使用情况命令
  10. python网络编程之 一 socket(套接字)
  11. 如何给MindSpore添加一个新的硬件后端?快速构建测试环境!
  12. 卧槽!火爆GitHub的算法电子书开放下载了!
  13. zabbix安装配置
  14. ADS仿真目标参数调谐与目标优化 ----tuner和goal控件使用
  15. matlab二元积分函数求导,多元函数求积分求导.ppt
  16. K8S加入新的node节点
  17. gif一键抠图 在线_不用下载的在线抠图软件哪里找?
  18. 简单谈谈MySQL的两阶段提交
  19. 计算机蓝屏用故障卡,电脑蓝屏后一直卡在正在启动界面怎么处理
  20. 解决Shiro 加权限注解失效 或者报错 This subject is anonymous

热门文章

  1. jsp页面显示源码实现
  2. 用简单JAVA语言编写日历
  3. 编译器 LLVM Clang原理与实战 制作自己的编译器 source-to-source 源代码转换 编译遍 compile pass 代码插桩
  4. VSN与GitHub
  5. React-mentions 库介绍
  6. window对象,对话框
  7. 区块链开发公司谈跨境支付
  8. 航天金税金税盘批量导入项目开发
  9. 大数据对我国商业模式创新的“三维”驱动研究
  10. 【笑小枫的SpringBoot系列】【九】SpringBoot用户登录功能实现