orbslam2+kitti数据集序列图像

文章目录

  • 一、下载ORB Slam2依赖
  • 二、安装编译ORB_SLAM2
  • 三 、运行Kitee数据集
    • 3.1 数据集准备
    • 3.2 启动!!!
  • 安装ORB Slam2遇到的问题
  • 总结
  • 参考资料

一、下载ORB Slam2依赖

Orb Slam2
需要下载的依赖项:

Pangolin0.5 、Eigen3.1以上、 Sophus、Ceres、OpenCV、g2o、DBoW3
这些依赖项的github地址集成:https://github.com/Gongkaka/slambook2/tree/master/3rdparty

  • Pangolin安装
直接从github下载下来。解压之后进行编译:注意安装0.5版本的,不然会出错
cd Pangolin
mkdir build && cd build
cmake ..
sudo make -j8
  • Eigen、Sophus直接git下来即可
  • Ceres安装
先安装依赖项:sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-devgit下来编译:
cd ceres-solver
mkdir build && cd build
cmake ..
sudo make -j8
sudo make install
  • OpenCV安装
    可参考以前的博客
  • g2o安装
安装依赖:sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3git下来编译:
cd g2o
mkdir build && cd build
cmake ..
sudo make -j8
sudo make install
  • DBoW3安装
git下来mkdir build
cd build/
cmake ..
make
sudo make install

二、安装编译ORB_SLAM2

  • 进入你的ROS工作空间的src目录下,下载ORB_SLAM2的安装包
    在这里插入图片描述
    配置环境:
    在控制台输入:export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:你的ORB_SLAM2的目录/Examples/ROS,比如在我的虚拟机就是export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
  • 进入ORB_SLAM2文件夹下
cd ~/catkin_ws/src/ORB_SLAM2
sudo chmod +x build.sh
./build.sh
  • 接着使用ROS编译
sudo chmod +x build_ros.sh
./build_ros.sh

成功之后是这样:
请添加图片描述
Example目录下也多了可执行文件:
在这里插入图片描述

三 、运行Kitee数据集

3.1 数据集准备

链接:https://www.cvlibs.net/datasets/kitti/eval_odometry.php
在这里插入图片描述

3.2 启动!!!

执行命令:ORB-SLAM2支持单目、双目和RGBD数据,这里选择mono_kitti的单目数据集来运行和调试。
运行命令格式为:
./mono_kitti path_to_vocabulary path_to_settings path_to_sequence
该命令共有4个参数:

  • mono_kitti:为ORB-SLAM2编译生成的针对MONO_KITTI数据集的可执行文件,一般路径为ORB-SLAM2工程目录下Examples/Monocular/mono_kitti;

  • path_to_vocabulary为所选词典的路径,路径为ORB_SLAM2/Vocabulary/ORBvoc.txt;

  • path_to_settings为配置文件,存放在ORB-SLAM2/Examples/Monocular下,运行时选择了KITTI00-02.yaml(可选择别的),该配置文件中存放的相机的内参和外参,提取特征时候图像金字塔相关参数,可视化过程中用到的参数;

  • path_to_sequence为数据集路径,这个根据自己下载的kitti数据集路径来指定。这里在工作空间中建立文件夹dataset来存放数据集00,故目录为 …/dataset/sequences/00/ (…/表示上层目录,./表示当前目录)
    我的执行,如下:在ORB_Slam2目录下,开启终端,输入:
    ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml ../dataset/sequences/00/
    请添加图片描述
    请添加图片描述

安装ORB Slam2遇到的问题

  • 1.static错误在这里插入图片描述
    解决方法参考资料:
    ORB_SLAM2/include/LoopClosing.h文件中的:
    在这里插入图片描述
    修改为:
    在这里插入图片描述
  • 2、"not a std"错误
    在这里插入图片描述
    解决方法:修改CMakeLists.txt文件 参考资料
    在这里插入图片描述
  • 3、Pangolin_FOUND to FALSE so package “Pangolin“ is considered to be NOT FOUND.错误
    解决方法:修改CMakeLists.txt文件 参考资料
    在这里插入图片描述
  • 4、usleep错误
    请添加图片描述
    解决方法就是在对应文件里加#include <unistd.h>,比如我上面那个错误是发生在mono_kitti.cc文件里,就去这里面添加即可
  • 5、找不到../../config.h
    这个错误的原因是没有先运行./build.sh而直接运行build_ros.sh
    请添加图片描述
    解决办法就是先./build.sh编译成功后再build_ros.sh。
  • 6、ros的opencv版本和本地opencv版本矛盾问题。请添加图片描述
    参考的这个
    在这里插入图片描述

总结

经过本次实验,了解了ORB_SLAM2的调用方法,进一步见识到了SLAM的魅力,同时在实验过程中,遇到特别多的bug,最终还是解决了。一定要多尝试,学会搜索,学好English。

参考资料

orb Slam2安装1
orb Slam2安装2
Orb_SLAM+Kitti
依赖项安装

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

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

相关文章

跨语言大模型最新综述

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

CSS3 transition过渡:打造流畅动画效果的全面指南

CSS3 transition属性为网页元素的样式变化赋予了平滑过渡的能力&#xff0c;极大地提升了用户交互体验与界面动态美感。本文将深入解析transition属性的工作原理、关键组成部分&#xff0c;以及如何在实际项目中巧妙运用&#xff0c;配以丰富代码示例&#xff0c;助您全面掌握C…

jmeter5.4.1源码编译(IDEA)问题解决

问题现象&#xff1a;最近想更深入的研究下jmeter5.4.1的原理及功能具体实现&#xff0c;从官网down了个源码&#xff0c;在本地使用IDEA工具导入项目、编译时&#xff0c;报以下错误&#xff1a; class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast…

html5自定义属性--------Dataset

<div id"day2-meal-expense" data-drink"coffee" data-food"sushi" data-meal"lunch">20.12</div> 要想获取某个属性的值&#xff0c;可以像下面这样使用dataset对象&#xff1a; var expenseday2 document.getElement…

Web前端安全问题分类综合以及XSS、CSRF、SQL注入、DoS/DDoS攻击、会话劫持、点击劫持等详解,增强生产安全意识

前端安全问题是指发生在浏览器、单页面应用、Web页面等前端环境中的各类安全隐患。Web前端作为与用户直接交互的界面&#xff0c;其安全性问题直接关系到用户体验和数据安全。近年来&#xff0c;随着前端技术的快速发展&#xff0c;Web前端安全问题也日益凸显。因此&#xff0c…

NCH WavePad for Mac:功能全面的音频编辑利器

NCH WavePad for Mac是一款功能全面的音频编辑软件&#xff0c;专为Mac用户设计。它集音频录制、编辑、处理和效果添加于一体&#xff0c;为用户提供一站式的音频解决方案。 NCH WavePad for Mac v19.16注册版下载 作为一款专业的音频编辑器&#xff0c;WavePad支持对音频文件进…

【后端】PyCharm的安装指引与基础配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、PyCharm是什么二、PyCharm安装指引安装PyCharm社区版安装PyCharm专业版 三、配置PyCharm&#xff1a;四、总结 前言 随着开发语言及人工智能工具的普及&am…

【Qt】:界面优化(二:控件样式)

界面优化 一.按钮二.复选框三.输入框四.列表五.菜单栏六.登陆界面七.小结 一.按钮 二.复选框 单选框的属性与复选框一样&#xff0c;就不多演示了。 三.输入框 四.列表 关于qlineargradient&#xff1a; qlineargradient有6个参数.x1, y1:标注了一个起点.x2, y2:标注了一个终点…

查看项目go代码cpu利用率

1.代码添加&#xff1a; "net/http"_ "net/http/pprof"第二步&#xff0c;在代码开始运行的地方加上go func() {log.Println(http.ListenAndServe(":6060", nil))}() 2.服务器上防火墙把6060打开 3.电脑安装&#xff1a;Download | Graphviz …

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统&#xff08;LIMS&#xff09;成品源码 B/S架构 LIMS实验室管理系统 发展历史 实验室信息管理系统(LIMS)&#xff0c;就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现…

云原生环境该怎样解决网络安全问题

随着云计算逐渐迈向成熟阶段&#xff0c;云原生技术以其“生在云上、长在云上”的核心理念&#xff0c;被普遍认为是云计算未来十年发展的关键方向。该技术不仅能够有效破解传统云实践中所面临的应用升级缓慢、架构臃肿、迭代效率低下等难题&#xff0c;更为业务创新注入了强大…

小程序中Java后台调用接口(getAccessToken)获取调用凭据,调用接口(msgSecCheck)检测文本内容是否安全--最终版

序言:书接上一篇文章:小程序前端调用接口(getAccessToken)获取调用凭据,调用接口(msgSecCheck)检测文本内容是否安全–最终版 原因:在前端测试时,使用小程序工具的真机调试,是可以跑通的,但你用小程序工具的预览模式就会没有响应。原因就在于访问wx.request({}),中…

pytest使用 pytest-rerunfailures 插件实现失败用例重跑功能

使用 pytest 进行测试时&#xff0c;你可以通过安装并配置 pytest-rerunfailures 插件来实现失败用例重跑功能。以下是一个示例说明&#xff1a; 假设你有一个测试文件 test_example.py 包含如下测试用例&#xff1a; import pytestpytest.mark.parametrize("num",…

关于开设RT-DETR专栏及更新内容的一些说明

​ 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 专栏介绍 YOLOv9作为最新的YOLO系列模型&#xff0c;对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型&#xff0…

ChatGPT助力测试领域!探索人工智能编写测试用例的新前景

简介 测试用例是测试人员的核心工作内容&#xff0c;是测试人员思想的“实现类”&#xff0c;其充分体现了测试的思路&#xff0c;可以为后续的测试行为提供指导&#xff0c;是测试人员了解业务的重要根据和质量之根本。如果测试用例设计得不完成&#xff0c;出现了遗漏&#x…

如何在 Ubuntu 14.04 上配置 Redis 缓存以加速 WordPress

简介 Redis 是一个开源的键值存储&#xff0c;可以作为内存存储和缓存进行操作。Redis 是一个数据结构服务器&#xff0c;可以单独用作数据库服务器&#xff0c;也可以与关系型数据库如 MySQL 配对以加快速度&#xff0c;就像我们在本教程中所做的那样。 在本教程中&#xff…

在Visual Studio Code macOS上尽量用Clang编译C++

在linux上惯用g编译cpp. 照理说macOS只要装了g, vscode装了C/C的扩展包: 此外配置了下列文件就可以用g编译: tasks.json (compiler build settings) launch.json (debugger settings) c_cpp_properties.json (compiler path and IntelliSense settings) 下列是用于g对以上3个配…

Kafka - Kafka 为啥抛弃 Zookeeper?

Kafka 为什么要抛弃 ZooKeeper&#xff1f;取代方案是怎样的&#xff1f;因为确实有优化空间。 Zookeeper加kafka 的架构&#xff0c;有三层角色&#xff1a; zookeeper &#xff0c;提供基础的状态持久化和状态通知服务 controller &#xff0c;基于zookeeper提供的服务&…

如何在Flask应用程序中使用JSON Web Tokens进行安全认证

密码、信用卡信息、个人识别号码&#xff08;PIN&#xff09;——这些都是用于授权和认证的关键资产。这意味着它们需要受到未经授权的用户的保护。 作为开发者&#xff0c;我们的任务是保护这些敏感信息&#xff0c;并且在我们的应用程序中实施强大的安全措施非常重要。 现在…

mybatis的SqlSession

先来看一下sqlsession接口&#xff0c;发现它为我们定义了很多对数据库数据操作的相关方法。 public interface SqlSession extends Closeable {<T> T selectOne(String var1);<T> T selectOne(String var1, Object var2);<E> List<E> selectList(Str…