【aloam】ubuntu20.04 配置 aloam 环境,编译过程报错及成功解决方法

为什么写这篇博客

  • ALOAM是slamer的必经之路,official提供的基础环境推荐ubuntu16.04或者18.04,而我用20.04已经有一段时间了,不方便换,但由于其他原因也不得不去配置。过程中出现了几个问题,在这里也就20分钟,在这里记录下来。

基础环境

  • ubuntu 20.04;
  • opencv == 4.2.0;(查询命令:opencv_version)
  • Ceres solver已经配置过了;
  • pcl == 1.10.0;(查询命令:apt-cache show libpcl-dev)

ALOAM 编译过程

  • git速度太慢,这里用手机开了热点,按照下面的命令,10s解决
    cd ~/catkin_ws/srcgit clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.gitcd ../catkin_makesource ~/catkin_ws/devel/setup.bash

过程中的错误

  • 报错1 —— python里面缺少“empy”
-- Could NOT find PY_em (missing: PY_EM) 
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):Unable to find either executable 'empy' or Python module 'em'...  tryinstalling the package 'python3-empy'
Call Stack (most recent call first):/opt/ros/noetic/share/catkin/cmake/all.cmake:164 (include)/opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:20 (include)CMakeLists.txt:58 (find_package)

报错1的解决方案

  • 解决方案里面的原话:
	catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
  • 报错2 —— c++的错误
const int NrDims = pcl::traits::datatype<PointDefault, Key>::size;|                   ^~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: note: in template argument for type ‘int’

请添加图片描述

- 在CMakeLists当中,改成C++17。【我看你用了pcl1.10,估计要用c++ 17编译吧,改下cmakelist,这是下面解决方案的原话】

报错2的解决方案

  • 报错3 —— opencv的错误
error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope    91 |         
cv::Mat left_image = cv::imread(left_image_path.str(), CV_LOAD_IMAGE_GRAYSCALE); 
  • 解决
    • 这里直接改个函数就好了,很简单
    • 这个错误提示表明在你的代码中使用了CV_LOAD_IMAGE_GRAYSCALE,但编译器无法识别这个符号。这是因为OpenCV的旧版本中使用了CV_LOAD_IMAGE_GRAYSCALE,但在新版本中已经更改为cv::IMREAD_GRAYSCALE。

在这里插入图片描述

  • 报错4 —— 导入opencv的错误
fatal error: opencv/cv.h: 没有那个文件或目录44 | #include <opencv/cv.h>
  • 解决方法:将报错的整行都删掉,替换成下面这个
#include <opencv2/opencv.hpp>

小结:基本上就是上面这几个错误,编译成功见下图。顺序可能跟当时遇到的不一致,但是一定都出现了。在这里插入图片描述

在这里插入图片描述

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

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

相关文章

04在命令行中使用Maven命令创建Maven版的Web工程,并将工程部署到服务器的步骤

创建Maven版的Web工程 使用命令生成Web工程 使用mvn archetype:generate命令生成Web工程时&#xff0c;需要使用一个专门生成Web工程骨架的archetype(参照官网看到它的用法) -D表示后面要附加命令的参数&#xff0c;字母D和后面的参数是紧挨着的&#xff0c;中间没有任何其它…

记一次Redis Cluster Pipeline导致的死锁问题

作者&#xff1a;vivo 互联网服务器团队- Li Gang 本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面&#xff0c;最终确认是因为使用了cluster pipeline模式且没有设置超时时间导致死锁问题。 一、背…

Go指针探秘:深入理解内存与安全性

1. 指针的基础 1.1 什么是指针&#xff1f; 指针是一种变量&#xff0c;其存储的是另一个变量的内存地址&#xff0c;而不是值本身。在很多编程语言中&#xff0c;当我们需要直接访问内存或者希望通过一个变量间接操作另一个变量时&#xff0c;会使用到指针。 示例&#xff1a…

掌握 Scikit-Learn: Python 中的机器学习库入门

机器学习 第二课 Sklearn 入门 概述机器学习与 Python 的完美结合Scikit-Learn 的核心组件与结构安装与配置验证安装 数据表示与预处理特征矩阵和目标向量数据处理 估计器模型的选择思考问题的本质研究数据的分布判断任务的复杂性分类问题回归问题 监督学习分类算法回归算法 无…

列表字典推导式

推导式是可以从一个数据序列构建另一个新的数据序列&#xff08;一个有规律的列表或控制一个有规律列表&#xff09;的结构体. 列表推导式 对比普通语法&#xff0c;创建一个0-9的列表&#xff0c;我们可以用while和for循环两种方式 list1 []# 2. 书写循环&#xff0c;依次…

常见的8个JMeter压测问题

为什么在JMeter中执行压力测试时&#xff0c;出现连接异常或连接重置错误&#xff1f; 答案&#xff1a;连接异常或连接重置错误通常是由于服务器在处理请求时出现问题引起的。这可能是由于服务器过载、网络故障或配置错误等原因导致的。 解决方法&#xff1a; 确定服务器的负载…

智能警用装备管理系统-科技赋能警务

警用物资装备管理系统&#xff08;智装备DW-S304&#xff09;是依托互云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对警用装备进行统一管理、分析的信息化、智能化、规范化的系统。 &#xff08;1&#xff09;感知智能化 装备感知是整个方案的基础&#xff0c;本方…

二.镜头知识之镜头总长,法兰距,安装接口

二.镜头知识之镜头总长,法兰距,安装接口 文章目录 二.镜头知识之镜头总长,法兰距,安装接口2.1 线激光模组镜头的FBL 与 TTL(Total Track Length) 镜头总长2.2 相机法兰距2.3 线激光模组镜头的TTL 以及 From Barrel bottom to image plane2.4 相机的镜头接口2.4.1 海思IPC S…

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)三

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…

PyTorch入门教学——使用PyCharm创建一个PyTorch项目

首先需要创建好PyTorch的虚拟环境&#xff0c;步骤&#xff1a;PyTorch入门教学——简介与环境配置-CSDN博客打开PyCharm&#xff0c;新建项目&#xff0c;选择项目的存放位置。选择先前配置的解释器&#xff0c;也就是虚拟环境中的解释器。&#xff08;记住创建的虚拟环境所在…

vue3后台管理框架之svg封装为全局组件

因为项目很多模块需要使用图标,因此把它封装为全局组件!!! 在开发项目的时候经常会用到svg矢量图,而且我们使用SVG以后,页面上加载的不再是图片资源, 这对页面性能来说是个很大的提升,而且我们SVG文件比img要小的很多,放在项目中几乎不占用资源。 安装SVG依赖插件 pnp…

docker 安装(unbuntu安装)

替换源 有时候因为墙的原因&#xff0c;总是不成功&#xff0c;因此我们直接将apt源换成阿里云的 阿里云ubuntu镜像源 需要在阿里云找到指定版本的源&#xff0c;我这里是Ubuntu20 sudo vim /etc/apt/sources.list更换内容&#xff08;可以先将sources.list备份&#xff09; …

年龄越大,越要小心逢九年

老话有云&#xff1a;年龄逢九&#xff0c;灾祸频有。在我国的许多农村地区&#xff0c;至今还流传着这么句话&#xff0c;这句话的大概意思是说&#xff1a;每个人命理年龄逢九&#xff0c;就会有个坎&#xff0c;年龄越大&#xff0c;坎就越厉害&#xff0c;所以&#xff0c;…

【Linux】线程安全问题①——如何实现资源访问互斥(附图解与代码实现)

线程安全主要分为两个方面&#xff0c;分别是资源访问互斥与线程同步&#xff08;线程协同配合&#xff09; 本篇博客&#xff0c;我们主要来讲解资源访问互斥这一方面 目录 为什么要实现资源访问互斥&#xff1f; 实现资源访问互斥&#xff08;原子访问&#xff09;的经典…

Nginx正向代理配置(http)

前言 在工作中我们经常使用nginx进行反向代理,今天介绍下怎么进行正向代理,支持http请求,暂不支持https 首先先介绍下正向代理和反向代理。 正向代理 在客户端&#xff08;浏览器&#xff09;配置代理服务器&#xff0c;通过代理服务器进行互联网访问。 反向代理 客户端只…

修改RuoYi部署路径 适配nginx子路径访问

1 官方参考 若依官方文档提供了一种解决方式&#xff1a;前端手册 | RuoYi 若依文档给的已经很明白了&#xff0c;但如果子路径 /admin 发生改变&#xff0c;修改起来就感觉比较费事了&#xff0c;毕竟要修改4个文件。 这里咱们把子路径抽取出来&#xff0c;放到环境配置文件中…

ThinkPHP5小语种学习平台

有需要请加文章底部Q哦 可远程调试 ThinkPHP5小语种学习平台 一 介绍 此小语种学习平台基于ThinkPHP5框架开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。平台角色分为学生&#xff0c;教师和管理员三种。学生注册登录后可观看学习视频&#xff0c;收藏视频&#xf…

关于图像分割SDK的一些基础认识

随着科技的不断发展&#xff0c;图像分割SDK已经成为了一个备受关注的话题。而在众多图像分割SDK中&#xff0c;美摄图像分割SDK以其独特的功能和优势脱颖而出。本文将从美摄图像分割SDK的企业价值和互联网娱乐方面&#xff0c;介绍其宣传文章的具体写作规范。 在企业价值方面&…

从一到无穷大 #18 时序数据库运营SLI思考

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 公有云时序数据库SLA 运营商产品每服务周期服务可用率不低于99.9%衡量服务不可用数据指标从采…

Nginx 同一端口 同时支持http与https 协议

文章目录 需求分析 需求 通过 nginx &#xff0c;让同一端口 同时支持http与https 协议 分析 通过使用 Nginx&#xff0c;可以实现同一端口同时支持 HTTP 和 HTTPS 协议。下面是一种可能的配置方式&#xff1a; 配置 HTTP 服务 在 Nginx 配置文件中&#xff0c;添加以下配置…