# JISHANG-LIO **Repository Path**: xiaotingyang/jishang-lio ## Basic Information - **Project Name**: JISHANG-LIO - **Description**: 武汉际上导航际上杯参赛代码 - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-12-10 - **Last Updated**: 2023-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JISHANG-LIO ## Description 本代码为武汉际上导航际上杯参赛代码 开发环境为Ubuntu20.04+PCL+Ceres+Eigen3+Sophus 主要功能包括数据预处理、点云去畸变、点云特征点提取、 点云匹配、基于滤波的LIO松组合、后端全局优化 ## 代码结构 Software architecture description #### 1. apps 包括data_pretreat_node、jishang_filtering_node两个ros节点 程序运行一级入口 #### 2. data_pretreat: data_pretreat_flow.cpp: 订阅原始点云数据和后端IMU里程计数据,将预处理后的点云、IMU发布出去 #### 3. filtering jishang_filtering_flow.cpp: 滤波处理程序主入口。调用点云去畸变、点云特征提取、LIO滤波函数 jishang_filtering.cpp: 调用帧到地图匹配、卡尔曼松组合、回环检测等函数 #### 4. map build_local_map.cpp: 利用关键帧的位姿、特征点云构建局部地图的函数实现 #### 5. models: cloud_filter: 点云滤波方法实现 front_end: 线、面特征点提取函数的实现 graph_optimizer: 基于ceres的图优化方法实现 kalman_filter: 基于误差状态的卡尔曼滤波函数实现 registeration: 参考ALOAM实现帧到地图的匹配 scan_adjust: 点云去畸变函数实现 scan_context: scan_context回环检测方法底层实现 #### 6. publisher: 点云、imu、里程计数据的发布函数 #### 7. sensor_data: 自定义的数据类型 #### 8. subscriber: 数据的订阅 ## 环境安装 #### 1. glog + gflags+Eigen3依赖项安装 ```shell # google-glog + gflags $ sudo apt-get install libgoogle-glog-dev libgflags-dev # Use ATLAS for BLAS & LAPACK $ sudo apt-get install libatlas-base-dev # Eigen3 $ sudo apt-get install libeigen3-dev # SuiteSparse (optional) $ sudo apt-get install libsuitesparse-dev ``` #### 2. Ceres ```shell $ git clone https://ceres-solver.googlesource.com/ceres-solver $ cd ceres-solver-2.1.0 // 编译及安装 $ mkdir build $ cd build $ cmake .. $ make -j4 $ sudo make install ``` #### 3. Sophus ```shell git clone https://github.com/strasdat/Sophus.git cd Sophus mkdir build cd build make -j8 sudo make install ``` ## 代码编译、运行 #### 1.编译 参考ROS功能包编译 将lidar_localization 拷贝到catkin_ws 中,进行 catkin_make编译 #### 2.运行代码,播放数据集 ```bash souce ./devel/setup.bash roslaunch lidar_localization run.launch ``` ```bash rosbag play lidar_imu.bag ``` ## 程序运行结果 #### 1. 轨迹

drawing

#### 2. 点云

drawing