赞
踩
目录
我们在R3LIVE流程解析中提到R3LIVE主要由两个node节点所依赖的cpp文件组成,我们在上一节中完成了r3live_LiDAR_front_end 简单介绍,下面我们需要详细的看/r3live_mapping
这个节点。这个节点也是我们R3LIVE的核心。 r3live.cpp文件的主要是进行一系列的初始化,然后创建LIO线程。
r3live.cpp文件比较简洁,输出一些打印信息和初始化,主函数最重要的一点就是new R3LIVE(); // 创建一个R3LIVE对象。
- Camera_Lidar_queue g_camera_lidar_queue;
- MeasureGroup Measures; // 存放雷达数据和IMU数据的结构体变量
- StatesGroup g_lio_state; // lidar状态变量(dim=29)
- std::string data_dump_dir = std::string("/mnt/0B3B134F0B3B134F/color_temp_r3live/");
-
- int main(int argc, char **argv)
- {
- printf_program("R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package");
- Common_tools::printf_software_version();
- Eigen::initParallel(); // 初始化Eigen库,用于进行并行计算。
- ros::init(argc, argv, "R3LIVE_main"); //初始化ROS
- R3LIVE * fast_lio_instance = new R3LIVE(); // 创建一个R3LIVE对象
- ros::Rate rate(5000);
- bool status = ros::ok();
- ros::spin();
- }
我们到r3live.hpp
文件中来详细看一下。
r3live.hpp
文件存在一系列的参数初始化,创建一系列Topic,用于订阅和发布信息,获取一些param信息,打印一些基本的信息,最后是一系列函数的声明。
- R3LIVE()
- {
- //(1)初始化涉及到的发布消息格式
- pubLaserCloudFullRes = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/cloud_registered", 100);
- pubLaserCloudEffect = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/cloud_effected", 100);
- pubLaserCloudMap = m_ros_node_handle.advertise<sensor_msgs::PointCloud2>("/Laser_map", 100);
- pubOdomAftMa
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。