用自己的数据集跑LINS---LiDAR-inertial-SLAM


用自己的数据集跑LINS—LiDAR-inertial-SLAM )


前言

一、下载运行代码

官方github:
https://github.com/ChaoqinRobotics/LINS—LiDAR-inertial-SLAM
网络不行的可以试试这个:
https://endpoint.fastgit.org/https://github.com/ChaoqinRobotics/LINS—LiDAR-inertial-SLAM

  1. 创建工作空间、初始化、克隆代码:
mkdir -p catkin_LINS/src
cd catkin_LINS/src
catkin_init_workspace
git clone https://github.com/ChaoqinRobotics/LINS---LiDAR-inertial-SLAM.git
cd ..
catkin_make -j1
  1. 运行
source devel/setup.bash
roslaunch lins run_port_exp.launch

成功运行,但是报错了:
在这里插入图片描述错误主要是在opencv:

OpenCV Error: Assertion failed (tlsSlots.size() > slotIdx) in releaseSlot, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp, line 1092
terminate called after throwing an instance of 'cv::Exception'
  what():  /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp:1092: error: (-215) tlsSlots.size() > slotIdx in function releaseSlot

找到一个解决办法:
参考链接:Ubuntu18.04 ros-melodic opencv版本冲突问题解决
原因在于我安装的opencv是3.4.12,ros自带的版本是3.2.0,需要以下操作:
2.1 查看自己的opencv版本:

pkg-config opencv --modversion

在这里插入图片描述2.2 改cv_bridgeConfig.cmake文档

cd /opt/ros/melodic/share/cv_bridge/cmake
sudo gedit cv_bridgeConfig.cmake
//输入密码

第94行:

//把if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")注释,改为:
if(NOT "include;/usr/local/include/opencv;/usr/local/include/opencv2 " STREQUAL " ")

在这里插入图片描述

第120行:

//把set(libraries "cv_bridge;/usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0;/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0;/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0")注释,改为(我的版本是3.4.12,需要按照自己的版本修改):
set(libraries "cv_bridge;/usr/local/lib/libopencv_core.so.3.4.12;/usr/local/lib/libopencv_imgproc.so.3.4.12;/usr/local/lib/libopencv_imgcodecs.so.3.4.12")

在这里插入图片描述2.3 编译再运行launch文件

catkin_make
source devel/setup.bash
roslaunch lins run_port_exp.launch

不再报错:
在这里插入图片描述

二、运行自己的bag包

1.话题

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.–clock

播放官方的bag包:

rosbag play lidar_imu_dataset.bag --clock

一定要在末尾加上"–clock",不然TF会报错:
在这里插入图片描述
LINS的坐标系变换有点迷,没有弄清楚

(去年写的草稿,忘发了)

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐