前言

大致看了一下ORB-SLAM、DF-VO等SLAM相关项目,也围绕着DF-VO做了一些修改,现在研二,也该为自己的未来作打算了,看了一下求职的信息,其实给我的感觉招雷达SLAM的会比视觉SLAM的要多,稍微统计了一下,SLAM岗下面几个要求在招聘信息出现的次数比较多。

  • ROS
  • C++
  • LOAM
  • ORB-SLAM
  • cartographer
  • VINS
  • 非线性优化
  • 卡尔曼

其实之前也一直想学习一下激光SLAM相关知识,这会就拿LOAM开刀吧

安装依赖

1. Ubuntu和ROS

这个不用多说了吧

2. Ceres

Ceres的安装我参考了官方手册,连接在这
安装过程中也没遇到什么问题,一切都很顺利

3. PCL

PCL我也参考了官网的操作流程,我在CSDN上搜索ubuntu20安装PCL,看了一些,感觉安装流程都很麻烦,直到我看到了官网的安装教程,只需要一句话而以!!
官方手册在这
官网在这
终端打开并输入以下命令一键安装

sudo apt-get install libpcl-dev

编译过程

下载和编译

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

当然,一般来说编译肯定不是一帆风顺的哈哈,下面是我编译过程中遇到的几个小问题

问题1

/usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above#error PCL requires C++14 or above

就是工作空间里面的PCL得用C++14吧,而编译时候指定的是11,所以需要该一下,这个时候打开cmakeLists.txt文件,第五行如下:

set(CMAKE_CXX_FLAGS "-std=c++11")

只要改成下面这个就可以了

set(CMAKE_CXX_FLAGS "-std=c++14")

问题2

/home/a/catkin_ws/src/A-LOAM/src/laserMapping.cpp:43:10: fatal error: pcl_conversions/pcl_conversions.h: 没有那个文件或目录#include <pcl_conversions/pcl_conversions.h>

我搜了,看到了这篇博客,终端打开输入以下命令即可解决

sudo apt-get install ros-noetic-pcl-conversions
/home/a/catkin_ws/src/A-LOAM/src/scanRegistration.cpp:44:10: fatal error: opencv/cv.h: 没有那个文件或目录#include <opencv/cv.h>

问题3

找不到CV,其实ROS中noetic已经自动安装了CV4了,只不过引入不对而以link
这个时候只需要找到出错的位置,如下:

#include <opencv/cv.h>

改成下面这样子就可以了

#include <opencv2/imgproc.hpp>

问题4

/home/a/catkin_ws/src/A-LOAM/src/kittiHelper.cpp:91:64: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scopecv::Mat left_image = cv::imread(left_image_path.str(), CV_LOAD_IMAGE_GRAYSCALE);

C++我不是很懂,我找到博客有说明这个问题的

找到出错位置,如下

cv::Mat left_image = cv::imread(left_image_path.str(), CV_LOAD_IMAGE_GRAYSCALE);

改成以下的就行了

cv::Mat left_image = cv::imread(left_image_path.str(), cv::IMREAD_GRAYSCALE);

运行

运行这部分,前面indoor数据比较容易运行起来,就直接上kitti数据吧。

这里得下载KITTI odometry数据集,官网在这

但是这个地方下载贼慢,我看到有博主把东西下载下来了,传到了云盘,可以在这找。

然后这是我数据集的格式,根规定的稍微有点区别,所以代码要改一下下。

.
└── KITTI├── results│   ├── 00.txt│   ├── 01.txt│   └── 10.txt├── sequences│   ├── 00│   │   ├── calib.txt│   │   ├── image_0│   │   │   ├── 000000.png│   │   │   └── 000002.png│   │   ├── image_1│   │   │   ├── 000000.png│   │   │   └── 000002.png│   │   ├── times.txt│   │   └── velodyne│   │       ├── 000000.bin│   │       └── 000001.bin│   ├── 01│   │   ├── calib.txt│   │   ├── image_0│   │   │   ├── 000000.png│   │   │   └── 000002.png│   │   ├── image_1│   │   │   ├── 000000.png│   │   │   └── 000002.png│   │   ├── times.txt│   │   └── velodyne│   │       ├── 000000.bin│   │       └── 000001.bin│   └── 10│       ├── calib.txt│       ├── image_0│       │   ├── 000000.png│       │   └── 000002.png│       ├── image_1│       │   ├── 000000.png│       │   └── 000002.png│       ├── times.txt│       └── velodyne│           ├── 000000.bin│           └── 000001.bin└── velodyne└── sequences├── 00│   ├── calib.txt│   ├── image_0│   ├── image_1│   └── times.txt├── 01│   ├── calib.txt│   ├── image_0│   ├── image_1│   └── times.txt└── 10├── calib.txt├── image_0├── image_1└── times.txt

在原文的132行,把第一个velodyne/去掉就可以了,这样子数据集好看一点。

lidar_data_path << dataset_folder << "velodyne/sequences/" + sequence_number + "/velodyne/"

改称这样子

lidar_data_path << dataset_folder << "sequences/" + sequence_number + "/velodyne/"

然后编译,按照github项目先更改launch文件,再运行两个launch就可以了

ubuntu20运行A-LOAM记录相关推荐

  1. Ubuntu20安装ROS noetic记录

    Ubuntu20安装ROS noetic记录 参考地址 官方网址:wiki.ros.org/noetic/Installation/Ubuntu 安装过程 1.添加ROS软件源 sudo sh -c ...

  2. mysql数据库访问记录_MySQL数据库运行、访问记录与日志

    以下的文章主要向大家介绍的是查看MySQL数据库运行.访问记录与日志的实际操作,我们大家都知道MySQL数据库运行.访问记录与日志的实际应用可以说很是广泛,以下的文章就是对这些内容的详细介绍. 1.首 ...

  3. 怎么在mysql查看运行日志_如何查看mysql运行、访问记录等日志

    如何查看mysql运行.访问记录等日志 1.首先确认你日志是否启用了 mysql>show variables like 'log_bin'; mysql>show variables l ...

  4. ubuntu20.04 基本配置记录 安装 搜狗输入法 QQ 微信

    ubuntu重装系统的操作已经是家常便饭,但是因为每次都没有记录解决问题的过程,导致每次操作系统都要花很大精力去解决问题,这次就记录下吧. 搜狗输入法 因为官网提供的搜狗输入法需要解决依赖关系,需要q ...

  5. windows11 + ubuntu20.04 + r9000p 安装记录

    1. 制作u盘,随便找个教程都可以哒,我主要是用rufus,默认写入即可 2. bios中 boot security boot 变成 disenabled 3.我是双硬盘,win的c盘是一个盘0,其 ...

  6. Qt debug版本运行正常release版本运行崩溃问题记录

    问题由来 某一项目debug版本运行正常,进入发布阶段,结果release后的版本出现了崩溃问题,因为是release版本,不能debug运行,只能通过printf debug,虽然问题原因很简单,但 ...

  7. C语言 将程序运行的时间记录在记事本中,下次运行进行读取

    fprintf函数: 头文件 原型 说明 返回值 #include <stdio.h> int fprintf(FILE *stream, const char *format, -); ...

  8. velodyne运行Loam_velodyne过程记录

    刚拿到手的3D激光雷达,运行一下试试. (1)loam_velodyne环境配置 cd ~/catkin_ws/src/ git clone https://github.com/laboshinl/ ...

  9. 树莓派开机自动运行shell脚本——记录开机时间

    目录 1.目的 2.思路 3.实现步骤 1.目的:树莓派开机时自动执行某些脚本,不用手动设置,减少麻烦. 2.思路:新建一个记录时间的脚本 record_time.sh,然后添加执行命令到 /etc/ ...

最新文章

  1. Python基础08-数据类型:集合set
  2. python中国地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果...
  3. JQuery中的html(),text(),val()区别
  4. 上海php黑名单,php判断ip黑名单程序代码实例
  5. lenos快速开发脚手架
  6. 在Windows上运行-XX:CompileCommand
  7. 如何在24行JavaScript中实现Redux
  8. 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...
  9. [CATARC_2017] 第八周
  10. OpenCV模板匹配函数:matchTemplate()介绍
  11. python编程软件哪个好-来 看看谁最适合学Python编程
  12. 我们团队一位Android开发者的故事
  13. python 调用图灵机器人api实现简单的人机交互
  14. 转载:Erlang 资源
  15. 友盟分享失败后有回调吗_友盟分享成功回调问题
  16. 软件首次亮相前超级账本技术升温
  17. 【NOIP2017提高A组集训10.25】嘟嘟噜
  18. HP光影精灵3 TPN-Q193显卡驱动安装不上,鲁大师检测不到显卡
  19. 荣耀30pro系统_荣耀30pro和pro+的区别_荣耀30pro和pro+的区别对比详情 - 系统家园
  20. 量子笔记:单比特量子门、泡利矩阵

热门文章

  1. 如何发现网站被劫持被黑DNS被污染
  2. 查找计算机里包含相关文字,搜索word包含文字内容
  3. uiautomatorviewer无法启动
  4. C - Matrix Reducing
  5. hapi.js入门系列(二)——路由
  6. maven profiles勾选不了
  7. 微信小程序导购开发跳转到京东拼多多苏宁唯品会等小程序
  8. 摸鱼儿·雁丘词 / 迈陂塘
  9. vue2开发过程中el-select懒加载问题
  10. NC65 用户密码重置