【雷达相机外参标定】direct_visual_lidar_calibration安装

direct_visual_lidar_calibration安装

  • 主页
  • 安装
    • ubuntu
    • pcl
    • OpenCV
    • ceres
    • 其他依赖
    • fmt
    • direct_visual_lidar_calibration

标定雷达和相机时使用direct_visual_lidar_calibration。

主页

  • https://github.com/koide3/direct_visual_lidar_calibration?tab=readme-ov-file
  • https://koide3.github.io/direct_visual_lidar_calibration/
    主页中有安装指南,但不详细,没有表明依赖包版本。

安装

ubuntu

以下流程仅适用于ubuntu20.04 & ros1。笔者尝试使用ubuntu18.04安装,会遇到其他问题。

pcl

pcl版本得是1.10以上
ubuntu20中默认安装的pcl就是1.10。
可以参考https://blog.csdn.net/weixin_44244190/article/details/130559052

  • 安装pcl:
sudo apt-get install libpcl-dev
  • 查看pcl版本:
apt-cache show libpcl-dev

OpenCV

opencv版本得是4以上

  • 安装opencv:
sudo apt install libopencv-dev

ceres

ceres版本得大于2.0,2.0仍会报错
安装最新2.2版本

  • 若之前没装过ceres可以按以下流程安装
# Install Ceres
git clone https://github.com/ceres-solver/ceres-solver
mkdir ceres-solver/build && cd ceres-solver/build
cmake .. -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DUSE_CUDA=OFF
make -j$(nproc)
sudo make install
  • 若想保留不同版本的ceres
    参考https://blog.csdn.net/weixin_40324045/article/details/131960018?spm=1001.2014.3001.5506

/usr/local/下新建一个文件夹如ceres_2.2.0

cd /usr/local
sudo mkdir ceres_2.2.0

在编译时将安装路径指定为该文件夹

cd ~
git clone https://github.com/ceres-solver/ceres-solver
mkdir ceres-solver/build && cd ceres-solver/build
cmake -D CMAKE_INSTALL_PREFIX="/usr/local/ceres_2.2.0" .. -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DUSE_CUDA=OFF
make -j$(nproc)
sudo make install

使用时修改direct_visual_lidar_calibration的cmakelist,在find_package之前指定ceres的路径

set(Ceres_DIR /usr/local/ceres_2.2.0/lib/cmake/Ceres)
find_package(Ceres REQUIRED)
  • 若想查看ceres版本
    参考https://blog.csdn.net/qq_35037684/article/details/131064049
    查看头文件 version.h

其他依赖

按照官方流程

# Install dependencies
sudo apt install libomp-dev libboost-all-dev libglm-dev libglfw3-dev libpng-dev libjpeg-dev# Install GTSAM
git clone https://github.com/borglab/gtsam
cd gtsam && git checkout 4.2a9
mkdir build && cd build
# For Ubuntu 22.04, add -DGTSAM_USE_SYSTEM_EIGEN=ON
cmake .. -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \-DGTSAM_BUILD_TESTS=OFF \-DGTSAM_WITH_TBB=OFF \-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF
make -j$(nproc)
sudo make install# Install Iridescence for visualization
git clone https://github.com/koide3/iridescence --recursive
mkdir iridescence/build && cd iridescence/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install

应该不会遇到问题

fmt

官方流程中并没有说需要安装fmt,若此时按照流程直接下载编译direct_visual_lidar_calibration包
会遇到如下错误

fatal error: fmt/format.h: 没有那个文件或目录

fmt需要安装8.1.1版本,安装其他版本之后会报错
参考https://blog.csdn.net/qq_44849479/article/details/125186678
与https://blog.csdn.net/HozenChe/article/details/124979631

先到https://fmt.dev/8.1.1/index.html下载8.1.1版,注意不要git也不要下最新版,都会报错。

解压后,见修改fmt的cmakelist,加入

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

若不加直接安装,之后会出现如下错误

usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value

之后

cd fmt-8.1.1
mkdir build
cd build
cmake ..
make
sudo make install

如果安装了其他版本的fmt可以参考https://blog.csdn.net/qq_39779233/article/details/125123326卸载。
进入build文件夹,使用如下命令

sudo xargs rm < install_manifest.txt

direct_visual_lidar_calibration

完成所有依赖的安装后

# ROS1
cd ~/catkin_ws/src
git clone https://github.com/koide3/direct_visual_lidar_calibration.git --recursive
cd .. && catkin_make

若是系统上安装了多版本的ceres,参考前文先指定版本。

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

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

相关文章

MYX Finance 确认出席 Hack.Summit() 2024 区块链开发者大会

&#x1f389;MYX Finance 确认出席 Hack.Summit() 2024 区块链开发者大会&#x1f680; &#x1f31f; 激动人心的消息&#xff01;我们非常荣幸地宣布&#xff0c;MYX Finance 将出席由Hack VC主办&#xff0c;AltLayer和Berachain协办&#xff0c;携手Solana、The Graph、Bl…

Linux/Ubuntu/Debian基本命令:光标移动命令

Linux系统真的超级好用&#xff0c;免费&#xff0c;有很多开源且功能强大的软件。尤其是Ubuntu&#xff0c;真的可以拯救十年前的老电脑。从今天开始我将做一个Linux的推广者&#xff0c;推广普及Linux基础。 光标移动命令对于在终端&#xff08;Terminal&#xff09;内有效导…

【经管数据-更新】华证ESG评级得分数据(2009-2023年)

一、数据说明 参考《经济研究》中方先明&#xff08;2023&#xff09;的做法&#xff0c;将华证ESG评级进行赋值&#xff0c;指标包含C、CC、CCC、B、BB、BBB、A、AA、AAA共9个等级&#xff0c;将上市公司ESG 等级从低到高分别赋值为1至9 二、数据来源&#xff1a;世界银行&am…

SPI读取TLE5012B编码器角度数据_ACM32G103

买到一个带编码器的电机&#xff0c;卖家留出来读取编码器数据的接口有SPI 具体的原理图如下&#xff1a; P2标注的是SPI的接口&#xff0c;其中MISO和MOSI是硬件连接到一起的 使用ACM32G103的硬件SPI2去读取其角度数据 原理大概如下&#xff1a; 1、先发送读取数据的指令&…

.NET高级面试指南专题十六【 装饰器模式介绍,包装对象来包裹原始对象】

装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;用于动态地给对象添加额外的职责&#xff0c;而不改变其原始类的结构。它允许向对象添加行为&#xff0c;而无需生成子类。 实现原理&#xff1a; 装饰器模式通过创建一个包装对象来包裹原…

Mysql命令行客户端

命令行客户端 操作数据库操作数据表 操作数据库 mysql> create database mike charsetutf8; Query OK, 1 row affected (0.01 sec) mysql> show databases; -------------------- | Database | -------------------- | information_schema | | mike …

ARM基础----STM32处理器操作模式

STM32处理器操作模式 Cortex-M处理器操作模式、特权等级和栈指针操作模式栈指针CONTROL寄存器异常压栈时的SP指针 Cortex-A 处理器运行模型寄存器组 Cortex-M处理器操作模式、特权等级和栈指针 操作模式 处理模式&#xff1a;执行中断服务程序等异常处理&#xff0c;处理器具有…

STM32FreeRTOS信号量(STM32cube高效开发)

一、信号量 &#xff08;一&#xff09;信号量概括 信号量是操作系统中重要的一部分&#xff0c;信号量是一种解决同步问题的机制&#xff0c;可以实现对共享资源的有序访问。 FreeRTOS 提供了多种信号量&#xff0c;按信号量的功能可分为二值信号量、计数型信号量、互斥信…

WPF Interaction

使用 Interaction 里面的方法来将事件映射到ViewModel层 引用命名空间&#xff1a;System.Windows.Interactivity.dll 在xaml界面引用这两种任意一个就行&#xff0c;这两个做的事情是相同的。 xmlns:i"clr-namespace:System.Windows.Interactivity;assemblySystem.Win…

宽度优先搜索算法(BFS)

宽度优先搜索算法&#xff08;BFS&#xff09;是什么&#xff1f; 宽度优先搜索算法&#xff08;BFS&#xff09;&#xff08;也称为广度优先搜索&#xff09;主要运用于树、图和矩阵&#xff08;这三种可以都归类在图中&#xff09;&#xff0c;用于在图中从起始顶点开始逐层…

uVeiw color 颜色值

此功能为uView内部通过js提供的一些颜色值&#xff0c;可以用于通过js修改元素字体&#xff0c;背景颜色等一些场景&#xff0c;常用于uView的各个组件中。 这些颜色值&#xff0c;挂载在$u对象下的color数组中&#xff0c;关于这些颜色值的具体描述&#xff0c;详见Color 色彩…

指针--2

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1.指针运算1.1.指针-整数1.2.指针-指针1.3.指针的关系运算 2.野指针2.1 野指针成因2.2 如何规避野指针 3.assert 断言4.指针的使用和传址调用4.1 strlen的模拟实…

模型训练中数据标注是什么意思?

问题&#xff1a; 模型训练中数据标注是什么意思&#xff1f; 解答 在机器学习和深度学习领域中&#xff0c;数据标注是指对原始的、未经处理的数据&#xff08;如图像、文本、音频、视频或3D点云&#xff09;进行人工标记的过程。这个过程为每一份数据赋予一个明确的标签或…

nn.Conv2d()中的groups分组参数

1.参考文章&#xff1a; 【Pytorch】搞懂nn.Conv2d的groups参数的作用 - 知乎 (zhihu.com) 2.理解&#xff1a; &#xff08;1&#xff09;只要你 明白了 多通道的卷积是如何实现的&#xff08;可以看我的1X1卷积文章&#xff09;&#xff0c;那么这里的分组进行卷积就非常好…

bat 调用bat 等待执行完成

在Windows批处理&#xff08;.bat&#xff09;文件中&#xff0c;如果你需要调用另一个批处理文件并等待它执行完成后再继续执行后续命令&#xff0c;可以使用 call 命令来实现。call 命令会启动新的批处理文件&#xff0c;并在子脚本执行完毕后返回到父脚本来执行余下的命令。…

【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面

1&#xff0c;视频地址 https://www.bilibili.com/video/BV1GJ4m1Y7Aj/ 【Tauri】&#xff08;4&#xff09;&#xff1a;整合Tauri和actix-web做本地大模型应用开发&#xff0c;可以实现session 登陆接口&#xff0c;完成页面展示&#xff0c;进入聊天界面 使用国内代理进行加…

软考笔记--软件可靠性评价

一.软件可靠性评价概述 软件可靠性评价是软件可靠性活动的重要组成部分&#xff0c;即适用于软件开发过程&#xff0c;也可以针对最终软件系统。在软件开发过程中使用软件可靠性评价&#xff0c;可以使用软件可靠性模型&#xff0c;估计软件当前的可靠性&#xff0c;以确认是否…

6-DOF GraspNet: Variational Grasp Generation for Object Manipulation

总结&#xff1a; 使用变分自动编码器(VAE)对抓取进行采样&#xff0c;并使用基于点网的抓取评估器模型对采样的抓取进行评估和细化 摘要&#xff1a; 我们将抓取生成问题表述为 使用变分自编码器对一组抓取进行采样&#xff0c;并使用抓取评 估器模型对采样的抓取进行评估和…

备考2024年小学生古诗文大会:历年真题15题练习和独家解析

如何提高小学生古诗词的知识&#xff1f;如何激发小学生古诗词的学习兴趣&#xff1f;如何提高小学古诗词的学习成绩&#xff1f;如何备考2024年小学生古诗文大会&#xff1f;...如果你也在关心和这些问题&#xff0c;我的建议是参加每年一度的小学生古诗词大会&#xff08;免费…

亚马逊跨境电商名词解释

亚马逊界面名词解释 最常用的名词解释总结&#xff1a; ASIN&#xff1a;亚马逊标准标识号,也就是每个商品的编码标识,每个商品的都不同&#xff0c;可以把它当成该商品的“身份证号”。由亚马逊随机生成的字母数字组合。 SKU&#xff1a;库存进出计量单位。 Listing&#xf…