回顾一:lili-om编译及运行问题(process has died、Leaf size is too small 等)[Livox Horizon激光雷达]

2023-05-16

度过考试周和作业周,终于有时间可以搞自己的东西啦,半个月前学习的东西忘得差不多了,现在凭借着仅剩的记忆回顾一下😄末尾有小惊喜,嘿嘿!

1、Ceres Solver1.14、livox-sdk的安装(之前编译horizon_loam已安装过,不用重复安装。未安装的可以参考如下步骤:)

sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libatlas-base-dev
wget -O ~/Downloads/ceres.zip https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
cd ~/Downloads/ && unzip ceres.zip -d ~/Downloads/
cd ~/Downloads/ceres-solver-1.14.0
mkdir ceres-bin && cd ceres-bin
cmake ..
sudo make install -j4

GitHub - Livox-SDK/Livox-SDK: Drivers for receiving LiDAR data and more

sudo apt install cmake
git clone https://ghproxy.com/https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install

2、下载livox_ros_driver并编译(这一步对于后续的lili_om编译很重要)

git clone https://ghproxy.com/https://github.com/Livox-SDK/livox_ros_driver.git ws_livox1/src

需要更改的就是这一行链接后的工作空间名称,这个顺带也建立好了工作空间(名字自取ws_livox1)后面带个/src不要忘喽

3、注意lili_om所需的依赖,我先前没有安装过GTSAM 4.0,所以需要安装一下

参考这篇https://www.icode9.com/content-3-1352823.html,注意一下ROS版本哈,noetic、melodic、kinetic😊

4、下载lili_om源码并编译

cd ~/ws_livox1/src
git clone https://ghproxy.com/https://github.com/KIT-ISAS/lili-om
cd ..
catkin build livox_ros_driver
catkin build lili_om
catkin build lili_om_rot

这里一定要注意看好是catkin build,之前编译的时候习惯用catkin_make,用catkin_make建立工程后再用catkin build会报错(The build space at '/home/ws_livox/build' was previously built by 'catkin_make'. Please remove the build space or pick a different build space.)

大家可以参考此博文:catkin build和catkin_make的区别和使用_benchuspx的博客-CSDN博客

5、接下来可以运行(运行.launch文件或者播放bag)

cd ~/工作空间
source ./devel/setup.bash  //环境不要忘了
roslaunch lili_om run_fr_iosb.launch

//运行livox_lidar_msg.launch文件(另外打开新的窗口)
source ./devel/setup.bash
roslaunch livox_ros_driver livox_lidar_msg.launch

//我先前有录制好的ROS bag,播放即可
source ./devel/setup.bash
rosbag play 2022-06-06-19-45-29.bag

哈哈哈哈,以为搞定了可以愉快地耍了,没想到问题接踵而至了。

问题一:无论运行launch文件还是播放bag,rviz上面没有画面显示, 并且lili_om的launch窗口报错

后端报错,进程杀死,百度寻找解决方案,一下午一直无果,然后我尝试查看该算法的配置文件(yaml),尝试看看参数是否不对应,发现问题所在。(在工作空间下搜索yaml,出现一系列的yaml文件) 

我的改成:imu_topic: "/livox/imu"
我将所有yaml中的imu_topic都改成了/livox/imu

不清楚自己话题的可以通过ROS bag查看

rosbag info 2022-06-06-19-45-29.bag

问题二: [pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would overflow (一大堆重复警告看得我眼睛都不开心😊)

又开始愉快的百度之路,大概得到的解释是:在使用PCL的voxelgrid filter时,若点云过大,而设置的voxel比较小,可能会导致voxel的数量超过int32的上限,从而会出现警告:“Leaf size is too small for the input dataset”。所以我的第六感觉得问题出现在代码中,于是开心的翻代码😊(我重点放在了里程计和后端上面)

这个我感觉没什么需要改的,尝试改了依旧报错,改的太大的话我怕关键点云数目减少

// VoxelGrid滤波器参数,即进行滤波时的创建的体素边长为filter_size_surf_min
downSizeFilterSurf.setLeafSize(0.4, 0.4, 0.4);
// VoxelGrid滤波器参数,即进行滤波时的创建的体素边长为filter_size_map_min
downSizeFilterMap.setLeafSize(0.4, 0.4, 0.4);

 接着尝试看看后端的cpp文件

似曾相识的感觉,没错,刚刚配置文件里面看到过edge_ds、surf_ds、mapping_ds ,尝试改大看看,问题解决。【为什么这样,我现在还不懂,希望懂得大佬可以教教我。】

目前的问题是没什么了,后续出现问题的话我会接着放在这篇文章后,我是超级小白,希望得到大家的指点。放几张画滴画(搞不出问题的解压方式)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回顾一:lili-om编译及运行问题(process has died、Leaf size is too small 等)[Livox Horizon激光雷达] 的相关文章

  • 计算机基础笔记(三)—操作系统

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 目录 前言一 概述二 操作系统分类三 组成部分用户界面内存管理器进程管理进程同步设备管理文件管理 四 主流操作系统UNIXLinuxWindows
  • 计算机基础笔记(四)—数据结构

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 目录 前言数组链表栈 xff08 LIFO xff09 队列 xff08 FIFO xff09 广义线性表树图 定义 有特殊关系的数据的集合 xff
  • 计算机基础笔记(五)—数据库

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 目录 前言文件结构顺序文件索引文件散列文件目录 数据库数据库体系结构数据库模型数据库的设计其他数据库 文件结构 文件是数据记录的集合 xff0c 每
  • 陀螺仪数据处理(BMI088)

    1 BMI088惯性传感器介绍 1 1传感器原理图 传感器采用3 3V供电 xff0c 使用SPI IIC通讯模式 xff08 本文采用SPI通讯协议 xff09 1 2传感器功能介绍 注 xff1a 这里提到的数据读取频率 2000Hz是
  • FreeRTOS 多任务系统——任务切换、任务管理方式心得

    目前在进行对使用FreeRTOS的项目的代码升级 xff0c 之前采用的主逻辑任务切换模式 xff1a 由一个任务来进行逻辑上为串行的不同功能切换 xff0c 其他任务分别负责通信实时传输 传感器检测和电机控制 xff0c 系统中断中采用变
  • 13.C工程与寄存器封装

    文章目录 启动代码分析使用C语言点灯封装代码寄存器操作的标准化 启动代码分析 text global start start Vector table xff1a 占用异常向量表空间 xff0c 让它不再能被其它代码占用 b reset b
  • 授权(authorization)的设计思路

    本文对授权 authorization 的设计思路 客户端必须得到用户的授权 authorization grant xff0c 才能获得令牌 token 授权码模式 xff08 authorization code xff09 grant
  • Ubuntu18.04下安装ROS步骤及遇到的错误集锦(尤其是rosdep update报错)

    1 首先设置软件源 xff08 任选其一使用 xff09 1 xff09 国外的软件源 xff08 速度慢 xff09 sudo sh span class token operator span c span class token st
  • C语言中的 __FILE__ __LINE__ #line

    C语言中的 FILE 用以指示本行语句所在源文件的文件名 例 xff1a a c include lt stdio h gt int main printf 34 s n 34 FILE 在gcc编译生成a out xff0c 执行后输出结
  • ROS入门(一)安装并配置ROS环境

    1 安装ROS 在学习这些教程之前先按照 lt lt 在ubuntu中安装ROS kinetic gt gt 这篇博客 完成安装 注意 如果你是使用类似apt这样的软件管理器来安装ROS的 xff0c 那么安装后这些软件包将不具备写入权限
  • C语言带参#define个人理解

    之前接触带参 define比较少 xff0c 这几天 查阅stm32官方固件库 xff0c 看到以下代码有点懵 xff1a define IS GPIO ALL PERIPH PERIPH PERIPH 61 61 GPIOA PERIPH
  • Ubuntu学习笔记2-ROS安装及配置

    Ubuntu学习笔记1 ROS安装及配置 前期准备 内容参考大佬赵虚左的视频及文献 xff0c 此博客仅作记录防止忘记用 在Ubuntu虚拟机中安装ROS并使用Vscode开发ROS程序 xff0c 环境如下 xff1a Ubuntu版本
  • DDR模式寄存器

    mode register 模式寄存器 MR0 MR3 用于定义DDR3sdram的各种可编程操作模式 在初始化过程中 xff0c 模式寄存器通过模式寄存器设置 MRS 命令进行编程 xff0c 并保留存储的信息 MR0 8 除外 xff0
  • 什么是迭代器

    迭代器是一种设计模式 xff0c 它是一个对象 xff0c 他可以遍历并且选择序列中的一个对象 xff0c 是开发人员可以忽视这个序列中的底层结构 迭代器被称为轻量级的对象 xff0c 因为它创建的代价是非常小的Java中的Iterator
  • ARM_C高级学习笔记(六)大端模式和小端模式

    文章目录 xff08 一 xff09 什么是大小端模式 xff08 二 xff09 怎么测试大小端模式1 用union来测试机器的大小端模式2 用指针来测试机器的大小端模式 xff08 四 xff09 看似可行实则不行的测试大小端方式 xf
  • VS2019利用Curl库实现HTTP网络通信(C++)

    C 43 43 实现HTTP网络通信 xff0c 一般采用两种方式 xff0c 熟悉TCP协议的大哥可能不需要查这方面的知识 xff1b 还有一种方式就是使用第三方库 xff0c Qt环境下可以用QNetworkRequest实现很方便 x
  • 在windows配置 cygwin 和 gcc 

    1 install cygwin https www cygwin com 2 copy the setup exe under cygwin64 folder and run C cygwin64 gt setup x86 64 exe
  • VMware虚拟机Ubuntu22.04忽然不能上网

    问题描述 原本正常使用的虚拟机Ubuntu22 04忽然之间不能正常上网了 xff0c 右上角的网络连接标志也不见了 尝试删除网络适配器 xff0c 并重新添加网络适配器 不能解决 尝试windows下配置网络 原来正常上网 xff0c w
  • GIT 基于TAG拉取分支

    git 基于tag拉branch 获得最新 span class token function git span origin fetch 从tag创建新的分支 span class token function git span bran
  • 栈的作用

    栈 栈 xff08 stack xff09 又名堆栈 xff0c 它是一种运算受限的线性表 其限制是仅允许在表的一端进行插入和删除运算 这一端被称为栈顶 xff0c 相对地 xff0c 把另一端称为栈底 向一个栈插入新元素又称作进栈 入栈或

随机推荐

  • C++中vector的用法详解

    vector 向量 C 43 43 中的一种数据结构 确切的说是一个类 它相当于一个动态的数组 当程序员无法知道自己需要的数组的规模多大时 用其来解决问题可以达到最大节约空间的目的 用法 1 文件包含 首先在程序开头处加上 include
  • ImportError: libQtGui.so.4: cannot open shared object file: No such file or directory

    报错 xff1a File home sx125 anaconda3 envs pytorch lib python3 7 site packages cv2 init py line 3 in from cv2 import Import
  • 批量更改YOLO标签类别

    原本的标签的classes txt文件中person类别是1 即第二行才是person类 xff0c 而后来找到的数据集大且标注好了 xff0c 好巧不巧person类别是0 故要将labels文件的类别都改成0 要自己先创建好空的文件夹存
  • 【CMake】编译和链接静态库和动态库

    项目结构工作原理 配置项目编译库 项目结构 span class token builtin class name span include myClass h src CMakeLists txt myClass cpp CMakeLis
  • 字符串比较大小

    1 规则 1 如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值 则 继续比较下一位 2 如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值 则 输出结果 1 表示字符串1 gt 字符
  • 将本地jar添加到Maven本地仓库

    在Maven项目中 xff0c 如果需要引入自己的jar包 xff0c 需要将jar添加到本地Maven仓库 方法一 xff1a 假设将包htmlparser jar放入了项目下的lib目录中 xff1a gt project lib ht
  • UART的奇偶校验

    1 奇校验 当数据位中 1 的个数为奇数时 xff0c 校验位为 0 xff0c 否则为 1 2 偶校验 当数据位中 1 的个数为偶数时 xff0c 校验位为 0 xff0c 否则为 1
  • windows 关闭占用端口的进程

    1 netstat ano findstr yourPortNumber 2 taskkill PID typeyourPIDhere F
  • Linux TCP server/client例程

    1 服务器端 span class token macro property span class token directive hash span span class token directive keyword include s
  • Nvidia Jetson 平台 DeepStream-6.0.1 部署 YoloV5-6.0 实现目标检测

    项目介绍 xff1a 在 Jetson 平台上利用 DeepStream 处理多路视频源 xff0c 并实现自己训练的 YoloV5 模型的部署 文章目录 前言1 YoloV5 模型训练自己的数据集1 1 建立自己的数据集1 1 1 开始之
  • 软路由保姆级入门教程 一篇看懂软路由

    前言 amp nbsp amp nbsp 玩张大妈也一年多了 xff0c 软路由改装 刷机文章写了不少 xff0c 很早就打算写篇软路由入门文章 xff0c 但是一直没落实 xff0c 原因有二 xff1a 圈子里大佬众多 xff0c 基础
  • CMake入门02-CMake中的静态库

    CMake中的静态库 静态库 文件树 CMakeLists txt include static Hello h src Hello cpp main cpp 1 1 Hello h 声明了Hello类 xff0c Hello的方法是pri
  • C++:struct与class的区别

    xff08 1 xff09 C语言中struct与class的区别 xff1a a struct只作为一种复杂数据类型定义的结构体 xff0c 不能用于面向对象编程 xff1b b C语言没有class关键字 xff08 2 xff09 C
  • Rplidar A1使用并改为ROS中3D点云输出(PointCloud2)

    这里写自定义目录标题 Rplidar A1使用并改为ROS中3D点云输出Rplidar安装测试修改后完整代码测试 Rplidar A1使用并改为ROS中3D点云输出 3D激光雷达价格不菲 xff0c 在研究过程中 xff0c 可以尝试将2D
  • Spring/SpringBoot常用注解总结!

    以下内容皆为转载 xff0c 转载地址 xff1a 接近8000字的Spring SpringBoot常用注解总结 xff01 安排 xff01 1 64 SpringBootApplication 这里先单独拎出 64 SpringBoo
  • MobaXterm 复制粘贴快捷键

    1 复制 不用设置 xff0c MobaXTerm 里面选取内容就已经复制了 xff0c 如图 xff0c 白色的内容就已经成功复制了哈哈哈哈 xff0c 真方便 注 xff1a 如果不行 xff0c 看看是否是这里没有勾上 xff08 在
  • Apollo配置中心

    1 Apollo 介绍 Apollo xff08 阿波罗 xff09 是携程框架部门研发的分布式配置中心 xff0c 能够集中化管理应用不同环境 不同集群的配置 xff0c 配置修改后能够实时推送到应用端 xff0c 并且具备规范的权限 流
  • Linux 命令

    1 Linux Shell 获取本地当前时间或前一分钟时间 1 1 获取前一分钟时间 xff1a 1 xff09 默认格式 date d 34 1 minute ago 34 date d 34 1 minute ago 34 Thu Oc
  • powershell 遍历数据库表导出为csv

    Write Output 0 server 61 34 34 database 61 34 dbname 34 tablequery 61 34 SELECT schemas name as schemaName tables name a
  • 回顾一:lili-om编译及运行问题(process has died、Leaf size is too small 等)[Livox Horizon激光雷达]

    度过考试周和作业周 xff0c 终于有时间可以搞自己的东西啦 xff0c 半个月前学习的东西忘得差不多了 xff0c 现在凭借着仅剩的记忆回顾一下 x1f604 末尾有小惊喜 xff0c 嘿嘿 xff01 1 Ceres Solver1 1