【SLAM学习】FAST-LIO配置

本文主要记录如何配置FAST-LIO

Eigen库

Eigen库安装:

sudo apt install libeigen3-dev

查看Eigen版本:

$ pkg-config --modversion eigen3


PCL库

PCL库安装:

sudo apt install libpcl-dev

也可以指定版本安装:

sudo apt install libpcl-dev=1.10.0

Ubuntu默认安装版本:

  • Ubuntu20.04   ——>   1.10.0
  • Ubuntu18.04   ——>   1.8.1
  • Ubuntu16.04   ——>   1.7.2

PCL库的卸载:

sudo apt remove libpcl-dev
# 完全删除软件包及其配置文件
sudo apt purge libpcl-dev

查看PCL版本:

apt-cache show libpcl-dev

若是安装了ROS,默认安装了PCL和Eigen库

Livox ROS Driver

git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build
cmake ..
make 
sudo make install
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src
cd ws_livox
catkin_make
source devel/setup.bash

注意:若要编译FAST-LIO,需要source下Livox ROS Driver的环境变量,也可以把它放在.bashrc中

像这样:(把工程中devel/setup.bash放入~/.bashrc,这样每次重新开一个终端就初始化环境配置)若是没有source下Livox ROS Driver的环境变量的话,就会在编译FAST-LIO的时候报错!!

FAST-LIO

开始编译FAST-LIO ,这里以 S-FAST_LIO 为例进行编译,也可以用原版的FAST-LIO

https://github.com/zlwang7/S-FAST_LIO

mkdir -p S_FAST_LIO_ws/src
cd src
git clone https://github.com/zlwang7/S-FAST_LIO.git
cd ..
catkin_make

若出现:

/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:217: undefined reference to `Sophus::SO3::matrix() const'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:217: undefined reference to `Sophus::SO3::SO3(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&)'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:217: undefined reference to `Sophus::SO3::log() const'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:218: undefined reference to `Sophus::SO3::matrix() const'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:218: undefined reference to `Sophus::SO3::matrix() const'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:218: undefined reference to `Sophus::SO3::SO3(Eigen::Matrix<double, 3, 3, 0, 3, 3> const&)'
/usr/bin/ld: /home/robot/Documents/learn_repo/learn_fastlio/S_FAST_LIO_ws/src/S-FAST_LIO/include/esekfom.hpp:218: undefined reference to `Sophus::SO3::log() const'

则只需要修改下CMakeLists文件即可

set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")

重新编译即可!

运行:

source devel/setup.bash
roslaunch sfast_lio mapping_avia.launch 

这时候在播放下数据bag包了

 链接: https://pan.baidu.com/s/16SOBM9heSri6H_Zai3GyCg 提取码: swvs -

rosbag play balcony_5th_floor_avia.bag   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8119.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 新输入系统InputAction设置按键的阈值

输入阈值问题 在新的输入系统中&#xff0c;如果添加一个手柄按键只需要添加Pressed就够了&#xff0c;监听他的三个动作就可以得到按下&#xff0c;点击&#xff0c;抬起。 例如下面的代码&#xff1a; inputAction.Player.Trigger_Right.started OnRightTriggerStarted;i…

天翎群晖NAS为全文检索插翅起飞

编者按&#xff1a;企业的文档资料随着企业的业务发展会越来越多&#xff0c;想要某个资料的时候&#xff0c;最怕找不到想要的资料&#xff0c;这时KMS的全文检索功能就非常重要了&#xff0c;只需只言片语的零星关键字&#xff0c;查找文档没压力。 关键词&#xff1a;全文检…

【网络原理之一】应用层协议、传输层协议UDP和TCP,TCP的三次握手和四次挥手以及TCP的可靠和效率机制

应用层协议XML协议JSONHTTP 传输层协议UDP协议UDP的特点UDP协议格式 TCP协议TCP的特点TCP协议格式TCP的安全和效率机制确认应答(可靠机制)超时重传(可靠机制)连接管理(可靠机制)三次握手(连接过程)四次挥手(断开的过程)状态的转化 滑动窗口(效率机制)流量控制(可靠机制)拥塞控制…

代码随想录二刷 day38 | 动态规划之 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

day38 509. 斐波那契数1 确定dp数组以及下标的含义2 确定递推公式3 dp数组如何初始化4 确定遍历顺序5 举例推导dp数组 70. 爬楼梯1 确定dp数组以及下标的含义2 确定递推公式3 dp数组如何初始化4 确定遍历顺序5 举例推导dp数组 746. 使用最小花费爬楼梯1 确定dp数组以及下标的含…

探索Gradio库中的Image模块及其强大功能

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

jvm运行时数据区

一、jdk、jre、jvm的关系 jvm只是把class字节码文件翻译成机器识别的二进制数据&#xff0c;不同的操作系统生成的操作系统指令又会不一样jre除了包含jvm外&#xff0c;还提供了很多类库&#xff08;java.io、java.swing等包下类库&#xff09;提供工具&#xff0c;比如javac&a…

MongoDB【MongoDB命令、CRUD操作 】(二)-全面详解(学习总结---从入门到深化)

目录 MongoDB命令 CRUD操作 MongoDB命令 基本操作 查看数据库 show dbs; 切换数据库 如果没有对应的数据库则创建 use 数据库名;创建集合 db.createCollection("集合名") 查看集合 show tables; show collections; 删除集合 db.集合名.drop(); 删除当前…

基于matlab使用深度学习的语义分割算法实现(附源码)

一、前言 此示例演示如何使用语义分割网络对图像进行分割。 语义分割网络对图像中的每个像素进行分类&#xff0c;从而生成按类分割的图像。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。 此示例首先向您展示如何使用预训练的 Deeplab v3 [1] 网络分割图像&am…

看一眼Mysql查询语句

目录 &#x1f6fb; 查询数据 &#x1f6fb;基本查询语句 &#x1f6fb;单表查询 &#x1f695;查询所有字段 &#x1f695;查询指定字段 &#x1f695;查询指定记录 &#x1f695;带in关键字的查询 &#x1f695;带between and的范围查询 &#x1f695;带like的字符匹…

NIO-Selector 网络编程

目录 一、阻塞 & 非阻塞 1、阻塞 2、非阻塞 二、selector 1、连接和读取 2、处理客户端断开 3、处理消息的边界 4、ByteBuffer大小分配 三、多线程优化 四、NIO vs BIO 1、stream vs channnel 2、IO模型 阻塞IO 非阻塞IO 多路复用 异步IO模型 一、阻塞 &am…

虚拟现实(VR)在医疗保健中的5种应用

医疗保健中的VR虚拟现实 虚拟现实的由来已久&#xff0c;18世纪&#xff0c;法国的医生使用布制的分娩模拟器向助产师和外科医生教授医学技术。在20世纪60年代初&#xff0c;医生一边对心肺复苏学员口述心肺复苏的技巧&#xff0c;一边使用一家塑料玩具厂家制造的塑料娃娃现场…

K8s 为什么要弃用 Docker

K8s 为什么要弃用 Docker 最近在学习容器技术的过程中&#xff0c;看到有关于Kubernetes“弃用 Docker”的事情&#xff0c;担心现在学 Docker 是否还有价值&#xff0c;是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解&#xff0c;这些疑虑的确是有些道理…