激光雷达与惯导标定 | Lidar_IMU_Init : 编译

news2024/9/24 9:19:31

激光雷达与惯导标定:Lidar_IMU_Init 编译

  • 功能包安装
    • 安装ceres-solver-2.0.0 (注意安装2.2.0不行,必须要安装2.0.0)

LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数,以及重力矢量和IMU偏差。我们的方法不需要任何目标或额外的传感器,特定的结构化环境,先前的环境点图或初始值的外在和时间偏移。

功能包安装

需要环境要求:
Ubuntu >= 18.04.
ROS >= Melodic
PCL >= 1.8
Eigen >= 3.3.4

下载源码

git clone https://github.com/hku-mars/LiDAR_IMU_Init.git

下载完成提示

正克隆到 ‘LiDAR_IMU_Init’…
remote: Enumerating objects: 340, done.
remote: Counting objects: 100% (118/118), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 340 (delta 79), reused 78 (delta 55), pack-reused 222
接收对象中: 100% (340/340), 46.43 MiB | 2.57 MiB/s, 完成.
处理 delta 中: 100% (161/161), 完成.

在这里插入图片描述
拷贝到工作空间中进行编译

报错提示如下:

CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “livox_ros_driver”
with any of the following names:
livox_ros_driverConfig.cmake
livox_ros_driver-config.cmake
Add the installation prefix of “livox_ros_driver” to CMAKE_PREFIX_PATH or
set “livox_ros_driver_DIR” to a directory containing one of the above
files. If “livox_ros_driver” provides a separate development package or
SDK, be sure it has been installed.
Call Stack (most recent call first):
LiDAR_IMU_Init/CMakeLists.txt:45 (find_package)

在这里插入图片描述

原因是该功能包的CMakeLists.txt文件中的第45行:

find_package(catkin REQUIRED COMPONENTS
  geometry_msgs
  nav_msgs
  sensor_msgs
  roscpp
  rospy
  std_msgs
  pcl_ros
  tf
  livox_ros_driver  #需要这个功能包但是没有找到
  message_generation
  eigen_conversions
)

需要livox_ros_driver这个功能包但是没有找到

安装这个功能包,需要提前下载安装好Livox SDK

git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..

成功后提示:

– Configuring done
– Generating done
– Build files have been written to: /home/jk-jone/Livox-SDK/build
在这里插入图片描述

make

成功后提示:

[100%] Linking CXX executable lidar_utc_sync
[100%] Built target lidar_utc_sync

在这里插入图片描述

sudo make install

成功后提示:

– Install configuration: “”
– Installing: /usr/local/lib/liblivox_sdk_static.a
– Installing: /usr/local/include/livox_def.h
– Installing: /usr/local/include/livox_sdk.h

在这里插入图片描述

下载livox_ros_driver功能包

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

放到工作空间中进行编译
则不再提示
Could not find a package configuration file provided by “livox_ros_driver”

再次编译提示缺少Ceres功能包

Make Error at LiDAR_IMU_Init/CMakeLists.txt:61 (find_package):
By not providing “FindCeres.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “Ceres”, but
CMake did not find one.
Could not find a package configuration file provided by “Ceres” with any of
the following names:
CeresConfig.cmake
ceres-config.cmake
Add the installation prefix of “Ceres” to CMAKE_PREFIX_PATH or set
“Ceres_DIR” to a directory containing one of the above files. If “Ceres”
provides a separate development package or SDK, be sure it has been
installed.

在这里插入图片描述

安装ceres-solver-2.0.0 (注意安装2.2.0不行,必须要安装2.0.0)

先安装ceres依赖

sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev

下载ceres-solver-2.0.0

git clone https://github.com/ceres-solver/ceres-solver # 这个版本不行
git clone -b 2.0.0 https://github.com/ceres-solver/ceres-solver.git

在这里插入图片描述
下载完成后形成该文件

然后进行编译

cd ceres-solver
mkdir build
cd build
cmake ..

成功后提示

– Build the examples.
– Configuring done
– Generating done
– Build files have been written to: /home/jk-jone/ceres-solver/build

在这里插入图片描述
然后再进行make

make -j4

成功后显示:

[ 99%] Built target ba_iterschur_suitesparse_clusttri_user_test
[100%] Linking CXX executable …/…/…/bin/ba_sparsecholesky_suitesparse_user_threads_test
[100%] Built target ba_sparsecholesky_suitesparse_user_threads_test

在这里插入图片描述
最后进行安装

sudo make install

成功后显示 :

– Installing: /usr/local/include/ceres/internal/config.h
– Installing: /usr/local/include/ceres/internal/export.h
– Installing: /usr/local/lib/cmake/Ceres/CeresTargets.cmake
– Installing: /usr/local/lib/cmake/Ceres/CeresTargets-release.cmake
– Installing: /usr/local/lib/cmake/Ceres/CeresConfig.cmake
– Installing: /usr/local/lib/cmake/Ceres/CeresConfigVersion.cmake
– Installing: /usr/local/lib/cmake/Ceres/FindGlog.cmake

在这里插入图片描述
至此Ceres-solver-2.0.0安装完毕

这个功能包对ceres-solver的版本有要求,2.2.0的版本有问题,需要2.0.0的版本

再次对工作空间进行编译

编译成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中的解析器argparse

import argparse## 构造解析器 argparse.ArgumentParser() parse argparse.ArgumentParser(description"caculateing the area of rectangle")## 添加参数 .add_argument() parse.add_argument("--length",typeint,default20,helpThe length of rectangle…

催单开发信怎么写?外贸人如何写催单邮件?

年末催单开发信编写技巧?最有效的催单话术有哪些? 催单开发信成为了企业间日常沟通的重要一环。这些信件不仅有助于促进业务发展,还可加强供应链的协调,确保货物及时送达。蜂邮EDM将介绍如何写一封出色的催单开发信,以…

jetson xavier NX深度学习环境配置

文章目录 jetson xavier NX深度学习环境配置1. SD卡系统烧录1.1 材料1.2 软件配置1.3 格式化SD卡1.4 系统镜像烧录 2. 环境配置2.1 cuda环境配置2.2 安装依赖库2.3 安装python及依赖环境2.4 安装pytorch环境 jetson xavier NX深度学习环境配置 1. SD卡系统烧录 1.1 材料 SD …

全网最全最有用的网络安全(超详细)学习路线!整理了一个月!

正文: 禁止废话,先看学习路线图; 在这个圈子技术门类中,工作岗位主要有以下三个方向: 安全研发安全研究:二进制方向安全研究:网络渗透方向 下面逐一说明一下。 第一个方向:安全研发…

线程面试题

让3个线程串行执行 1、线程循序执行Join,比如T2.join 表达当前线程需要等待t2执行完,才会执行。2、使用countDownlach ,定义2个countDow...,并且值都设置为1, 线程1执行完,调用一次countDow减1&#xff…

Springmvc实现增删改差

一、包结构 二、各层代码 (1)数据User public class User {private Integer id;private String userName;private String note;public User() {super();}public User(Integer i, String userName, String note) {super();this.id i;this.userName userName;this.note note;…

Spring Beans;Spring Bean的生命周期;spring Bean的作用域,spring处理线程并发问题

文章目录 Spring Beans请解释Spring Bean的生命周期解释Spring支持的几种bean的作用域Spring容器中的bean可以分为5个范围: Spring如何处理线程并发问题? 在现在的项目开发中经常使用到spring bean,那么来谈谈spring bean的生命周期&#xff…

微软发布最新.NET 8长期支持版本,云计算、AI应用支持再强化

11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上,.NET 8作为微软的开源跨平台开发平台正式发布。.NET 团队着重强调云、性能、全栈 Blazor、AI 和 .NET MAUI 是.NET 8的主要亮点。.NET团队在 .NET Conf 2023 [1]活动开幕式上表示:“通过这个版…

基于SSM抗疫爱心小栈APP-计算机毕设 附源码 54553

SSM抗疫爱心小栈APP 目 录 摘要 1 绪论 1.1 背景及意义 1.2研究现状 1.3ssm框架 1.4论文结构与章节安排 2 2 抗疫爱心小栈APP系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分…

成为AI产品经理——模型评估概述

目录 一、模型宣讲和评估的原因 二、模型宣讲 三、模型评估 1. 重要特征 ① 特征来源 ②特征意义 2.选择测试样本 3.模型性能和稳定性 一、模型宣讲和评估的原因 刘海丰老师提到他们在做一个金融AI产品未注重模型指标,过于注重业务指标,导致产生…

麻雀搜索优化算法MATLAB实现,SSA-BP网络

对于麻雀搜索算法的介绍,网上已经有不少资料了,这边公布SSA的matlab实现 下面展示SSA算法的核心代码以及详细注解 % 麻雀搜索算法函数定义 % 输入:种群大小(pop),最大迭代次数(Max_iter),搜索空间下界(lb)&#xff0c…

跨境电商必须要海外代理IP吗?盘点五大海外代理IP

相信跨境电商人近日都为了2023的跨境黑五旺季奋战,而2024也即将来临,对于跨境人的考验一波接着一波,根据Adobe Analytics的数据,2022年黑色星期五的销售额创下91.2亿美元新高,网络星期的销售额同样达到创纪录的113亿美…

宇宙工具箱:办公娱乐两不误堪称手机的百宝箱

宇宙工具箱 宇宙工具箱,提供大量实用工具,多种类型尽在其中,支持图片/视频处理、计算、查询、娱乐等多方内容,满足用户使用需求,超多工具直接使用。 获取资源 详细获取地址请点击 宇宙工具箱 功能特点 1、计算工具…

Py之PyPDF2:PyPDF2的简介、安装、使用方法之详细攻略

Py之PyPDF2:PyPDF2的简介、安装、使用方法之详细攻略 目录 PyPDF2的简介 PyPDF2的安装 PyPDF2的使用方法 1、基础用法 PyPDF2的简介 PyPDF2是一个免费的、开源的纯python PDF库,能够拆分、合并、裁剪和转换PDF文件的页面。它还可以为PDF文件添加自定…

HCIP-六、OSPF-2 综合实验

六、OSPF-2 综合实验 实验拓扑实验需求及解法1.设备名称和部分IP地址已配置2.所有设备运行OSPF,进程号为13.区域间路由汇总4.外部路由汇总5.下发默认路由6. 虚链路 实验拓扑 实验需求及解法 本实验模拟OSPF综合型网络,按照以下需求完成实验。 1.设备名…

【数据处理】 -- 【两分钟】了解【最好】的方式 -- 【正则表达式】

直接匹配; 普通字符 元匹配: . 任意单字符 r’表示单引号里字符为其特殊含义,比如.不是句号是匹配符的意思 *任意次数(换行结束) 一次及以上 {3,4}指定次数,至少3次,最多4次|{3}固定4次 [\d.]单个任意…

14 redis全量复制与部分复制

1、设置主服务器的地址和端口 首先是在从服务器设置需要同步的主服务器信息,包括机器IP, 端口。 主从复制的开启,完全是在从节点发起的。不需要我们在主节点做任何事情。 从节点开启主从复制,有3种方式 配置文件:在从服务器的配…

Android——资源IDnonFinalResIds和“Attribute value must be constant”错误

一、异常描述 通过资源ID引用资源提示错误 Attribute value must be constant 二、解决方案 在根目录下的文件 gradle.properties 中添加如下配置,然后Sync Project android.nonFinalResIdsfalse 三、问题原因 android.nonFinalResIds 是Android开发中一个用于解…

C语言——从键盘输人三角形的三个边长 a、b、c,求出三角形的面积。

从键盘输人三角形的三个边长 a、b、c,求出三角形的面积。求三角形的面积用公式areasqrt(s*(s-a)*(s-b)*(s-c)),其中 s1/2(a十bc)。注:要求对输人三角形的三个边长做出有效性判断。 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<math.h> int main…

JavaEE(SpringMVC)期末复习

文章目录 JavaEE期末复习一、单选题&#xff1a; JavaEE期末复习 一、单选题&#xff1a; 1.Spring的核⼼技术是&#xff08; A &#xff09;&#xff1f; A依赖注入 B.JdbcTmplate C.声明式事务 D.资源访问 Spring的核心技术包括依赖注入&#xff08;Dependency Injection&am…