当前位置:   article > 正文

R3LIVE源码解析(8) — R3LIVE中r3live.cpp文件_lidar_time_delay

lidar_time_delay

目录

1 r3live.cpp简介

2 r3live.cpp源码解析

3 r3live.hpp源码解析


r3live.cpp简介

我们在R3LIVE流程解析中提到R3LIVE主要由两个node节点所依赖的cpp文件组成,我们在上一节中完成了r3live_LiDAR_front_end 简单介绍,下面我们需要详细的看/r3live_mapping这个节点。这个节点也是我们R3LIVE的核心。 r3live.cpp文件的主要是进行一系列的初始化,然后创建LIO线程。

2 r3live.cpp源码解析

r3live.cpp文件比较简洁,输出一些打印信息和初始化,主函数最重要的一点就是new R3LIVE(); // 创建一个R3LIVE对象。

  1. Camera_Lidar_queue g_camera_lidar_queue;
  2. MeasureGroup Measures; // 存放雷达数据和IMU数据的结构体变量
  3. StatesGroup g_lio_state; // lidar状态变量(dim=29)
  4. std::string data_dump_dir = std::string("/mnt/0B3B134F0B3B134F/color_temp_r3live/");
  5. int main(int argc, char **argv)
  6. {
  7. printf_program("R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package");
  8. Common_tools::printf_software_version();
  9. Eigen::initParallel(); // 初始化Eigen库,用于进行并行计算。
  10. ros::init(argc, argv, "R3LIVE_main"); //初始化ROS
  11. R3LIVE * fast_lio_instance = new R3LIVE(); // 创建一个R3LIVE对象
  12. ros::Rate rate(5000);
  13. bool status = ros::ok();
  14. ros::spin();
  15. }

我们到r3live.hpp文件中来详细看一下。 

3 r3live.hpp源码解析

r3live.hpp文件存在一系列的参数初始化,创建一系列Topic,用于订阅和发布信息,获取一些param信息,打印一些基本的信息,最后是一系列函数的声明。

  1. R3LIVE()
  2. {
  3. //(1)初始化涉及到的发布消息格式
  4. pubLaserCloudFullRes = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/cloud_registered", 100);
  5. pubLaserCloudEffect = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/cloud_effected", 100);
  6. pubLaserCloudMap = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/Laser_map", 100);
  7. pubOdomAftMa
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/420989
推荐阅读
相关标签
  

闽ICP备14008679号