用realsense d435i传感器在实际环境中跑ORB_SLAM3,顺带解决一部分编译问题

2023-05-16

是的ORB_SLAM3 来了,时隔五年,它来带的惊喜到底是啥呢?

  1. 一个完全依赖于最大后验估计(MAP)的单/双目惯导融合系统
  2. 高回召的地点识别功能(High-recall place recognition)
  3. 第一个完整的多地图系统(multi-map)
  4. 一个抽象的相机模型表示
    论文地址
    论文细节今天不说,今天主要先拿到代码,并且用自己的传感器试试实际效果

编译

终端拉代码
记得提前安装好OpenCV,Eigen,和Pangolin

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB_SLAM3
chmod +x build.sh
./build.sh
#安装ros版
chmod +x build_ros.sh
./build_ros.sh

编译时可能出现的错误

  1. [rosbuild] rospack found package “ORB_SLAM3” at “”, but the current
    directory is “/home/damon/catkin_ws/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3”.
    在这里插入图片描述
    解决如下
gedit ~/.bashrc
#在文本末尾添加
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/damon/catkin_ws/src/ORB_SLAM3/Examples/ROS/
#记得要改成自己报错所对应的路径
  1. 还可能报错 fatal error: GeometricCamera.h: No such file or directory
    找到以下文件:
    ORB_SLAM3/include/KeyFrame.h
    ORB_SLAM3/include/Atlas.h
    ORB_SLAM3/include/Tracking.h
    中作如下修改
//#include "GeometricCamera.h"
#include "CameraModels/GeometricCamera.h"

ORB_SLAM3/include/Atlas.h 中还需要这些修改

#include "CameraModels/Pinhole.h"
//#include "KannalaBrandt8.h"
#include "CameraModels/KannalaBrandt8.h"

修改之后编译出现一堆错误,大致如下:
在这里插入图片描述
打开一个终端

sed -i "s/ORB_SLAM2/ORB_SLAM3/g" `grep -rl "ORB_SLAM2"`

修改之后刚才的错误没了。
但是出现一个boost链接错误:
在这里插入图片描述在ROS中的CMakeLists.txt里添加

gedit ORB_SLAM3/Examples/ROS/ORB_SLAM3/CMakeLists.txt

然后ctrl+F
搜索set(LIBS
在这里插入图片描述

添加

-lboost_system

然后编译就成功了
在这里插入图片描述

用realsense 跑ORB_SLAM3

首先realsense 需要安装驱动和标定,具体看这里
得到标定结果之后,由于ros版的topic是写死在代码里的,所以首先修改Example/ROS/ORB_SLAM3/src/ros_mono.cc (这里以mono为例,其他也差不多):
在这里插入图片描述
然后重新编译。。。

cd ORB_SLAM3/Examples/Monocular
cp EuRoC.yaml d435i.yaml
gedit d435i.yaml

将d435i标定结果填到d435i.yaml 中
在这里插入图片描述
余下部分保持默认。

最终效果

启动roscore

打开一个终端,启动OBR_SLAM3

source ORB_SLAM3/Examples/ROS/ORB_SLAM3/build/devel/setup.bash
rosrun ORB_SLAM3 Mono /home/damon/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/damon/catkin_ws/src/ORB_SLAM3/Examples/Monocular/d435i.yaml

等到以下界面出现,继续下一步
在这里插入图片描述

再打开一个终端启动realsense_ros

roslaunch realsense2_camera rs_camera.launch

然后发现:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用realsense d435i传感器在实际环境中跑ORB_SLAM3,顺带解决一部分编译问题 的相关文章

随机推荐

  • 八 关于电机驱动芯片L298N使用心得

    车模套件的选择 当时由于是第一次做某个东西 xff0c 所以购买车模的时候不是很有信心 xff0c 就买了一个比较廉价一点的 xff0c 事实证明一分价钱一分货 xff0c 组装的时候发现轮子有点松动 xff0c 这就意味着跑的时候 xff
  • 解决Ubuntu网络调试助手安装后无法打开问题

    通常很多初学者在学习和开发网络相关程序时 xff0c 基本上都会用到NetAssist这个网络调节助手 xff0c 该工具简洁实用 xff0c 对于初学网络编程的人员特别友好 xff0c windows系统下该调节助手在任何系统版本中都能正
  • IP地址与二进制的转换

    以192为例 以192 168 100 7为例 192的二进制为11000000 168的二进制为10101000 100的二进制为01100100 7的二进制为00000111 192 168 100 7的二进制为11000000 101
  • 根据子网掩码求最大主机数(面试被问过)

    如子网掩码255 255 240 0 化成二进制11111111 11111111 11110000 00000000 子网号中里面的1代表网络号 xff0c 0代表主机号 xff0c 有12个0 xff0c 即最大主机数为2的12次方 又
  • 麒麟系统安装bin类型文件

    在终端 xff08 windows的cmd xff09 运作命令修改文件属性 xff0c 使其可以被执行 chmod a 43 x file bin 运行 sudo file bin
  • 深度和追踪最好use the D415 and the T265 in parallel.

    All SLAM solutions and there are many good ones are limited by the information they receive It is possible to run host b
  • 树莓派上编译安装realsense经验

    1 树莓派系统一定要用realsense官方指定的ubuntu mate xff0c 树莓派B3 43 只能装18 0 4 xff0c 树莓派B3和以前的只能装16 0 4 2 不要妄想装realsense的非编译版本 xff08 官网说打
  • 树莓派安装realsense自己的步骤梳理

    树莓派3B 43 装上ubuntu 18 0 4的内核亲测是 4 15的 xff0c 跟ubuntu官网一致 目前最新的也就是4 15 xff0c 不知道realsense官网瞎扯什么4 16啥的干啥 xff1f 都还没有的东西 xff0c
  • Opencv快速入门(C++版)

    Opencv快速入门 C 43 43 版 Excerpt Opencv快速入门 C 43 43 版 xff09 前言1 图像的读取与显示所使用的API接口 xff1a 代码演示 xff1a 2 图像色彩空间转换所使用的API接口 xff1a
  • 搭建elsticsearch集群遇到的错误

    错误一 xff1a 报错with the same id but is a different node instance解决办法 原因 xff1a 是因为复制虚拟机时 xff0c elsticsearch时 xff0c 将elsticse
  • PX4无人机控制

    1 PX4安装 安装主要是配置环境 xff0c 我是按照官网配置的 xff1a PX4 自动驾驶用户指南 特别是对于英语不好的我来讲 xff0c 配置了好几天也没有配置成功 找到了比较靠谱的参考文献 xff1a Ubuntu18 04配置搭
  • 吃透计算机组成原理

    文章目录 博主杂谈计算机概论计算机发展历程计算机的分类计算机的结构体系冯诺依曼体系现代计算机体系 计算机的层次与编程语言程序翻译与程序解释计算机层次 计算机计算单位与字符编码计算机计算单位计算机字符编码字符编码种类与历程 计算机内部结构计算
  • 远程显示docker运行结果

    查找本地IP 服务器中的docker环境操作步骤 xff1a span class token function export span DISPLAY span class token operator 61 span 10 100 12
  • 笔试——Linux操作系统

    1 Linux内核的组成部分 Linux内核主要由五个子系统组成 xff1a 进程调度 内存管理 虚拟文件系统 网络接口 进程间通信 xff1b 2 Linux系统的组成部分 主要是4个部分 xff1a 内核 shell 文件系统和应用程序
  • WIN11打开照片 浏览器 office等软件启用硬件加速后总黑屏

    解决 WIN11打开照片 浏览器 office等软件启用硬件加速后总黑屏 问题描述 xff1a 电脑为暗影精灵6 xff08 OMEN 6 xff0c 在更新intel显卡驱动程序后或者更新win11后 xff08 自动更新最新驱动 xff
  • linux执行程序运行命令失败,提示找不到命令

    安装虚拟机时提示找不到命令 sudo VMware Workstation Full 17 0 0 20800274 x86 64 bundle xff1a 找不到命令 经检查 xff0c sudo命令正常 xff0c 该脚本文件的确存在于
  • 用自己的设备(realsense d435i)跑VINS-Fusion 还是有一些坑

    操作环境 设备 xff1a MacBook pro 2019 xff0c realsense d435i 系统 xff1a Ubuntu 16 04 lts 准备工作 标定 首先标定摄像头 xff0c 这里用kalibr对摄像头和imu进行
  • realsense d435i获取与rgb图像对应的深度值

    设置 realsense ros 的rs camera launch文件 lt arg name 61 34 align depth 34 default 61 34 true 34 gt 就能得到与图像对应的深度图 比如rgb对应的深度图
  • OpenVINS 配置,并用自己的设备跑起来~

    OpenVINS 下载编译 span class token function mkdir span p workspace catkin ws ov src span class token function cd span worksp
  • 用realsense d435i传感器在实际环境中跑ORB_SLAM3,顺带解决一部分编译问题

    是的ORB SLAM3 来了 xff0c 时隔五年 xff0c 它来带的惊喜到底是啥呢 xff1f 一个完全依赖于最大后验估计 xff08 MAP xff09 的单 双目惯导融合系统高回召的地点识别功能 xff08 High recall