Orb_slam3 ROS ,D435i使用,ubuntu编译小记

2023-05-16

C++版本编译

先官网下载代码,并下载安装官网所述安装包

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

下载完编译c++版本

cd ORB_SLAM3
chmod +x build.sh
./build.sh

  • c++版本编译出现问题记录

1、opencv等等直接在Cmakelist.txt修改

2、报一大段错误时先输入

sed -i 's/++11/++14/g' CMakeLists.txt

ROS版本编译

输入所在ros包环境,一般在Examples或者新的版本在Examples_old

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/your path/ORB_SLAM3/Examples/ROS

用以下命令测试

echo $ROS_PACKAGE_PATH

添加成功编译

chmod +x build.sh
./build_ros.sh

ROS编译问题:

1,v1.0 release ros版本编译,提示找不到sophus库,及 Sophus::SE3f, cv::MAT,Eigen::Vector3f类型转换报错:

以下解决方法会引入cv中的eigen2cv方法,需要在每个修改文件的顶部包含以下文件头文件

#include <Eigen/Dense>
#include <opencv2/core/eigen.hpp>

解决 cv::Mat Tcw = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec()); 报错
引入上述两个头文件,然后删除ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc151行,由下面内容替换

cv::Mat Tcw;
Sophus::SE3f Tcw_SE3f = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec());
Eigen::Matrix4f Tcw_Matrix = Tcw_SE3f.matrix();
cv::eigen2cv(Tcw_Matrix, Tcw);

解决 vPoints.push_back(pMP->GetWorldPos()); 报错
引入上述两个头文件,然后删除ROS/ORB_SLAM3/src/AR/ViewerAR.cc409行,由以下内容替换

cv::Mat WorldPos;
cv::eigen2cv(pMP->GetWorldPos(), WorldPos);
vPoints.push_back(WorldPos);

解决 cv::Mat Xw = pMP->GetWorldPos();报错
引入上述两个头文件,然后删除ROS/ORB_SLAM3/src/AR/ViewerAR.cc530行,由以下内容替换

cv::Mat Xw;
cv::eigen2cv(pMP->GetWorldPos(), Xw);

成功

补充问题:在部分机子上即使设置对了路径ros也编译出错如下:

Building ROS nodes
mkdir: cannot create directory ‘build’: File exists
CMake Deprecation Warning at /opt/ros/melodic/share/ros/core/rosbuild/rosbuild.cmake:7 (cmake_policy):
  The OLD behavior for policy CMP0011 will be removed from a future version
  of CMake.
 

可是用下方方法:

wget http://fishros.com/install -O fishros && bash fishros

sudo rosdep fix-permissions

rosdep update

使用记录

类似如此:(编译前该话题 或者使用topic_tools改变话题名字)

roslaunch realsense2_camera rs_camera.launch && wait 10;
rosrun ORB_SLAM3 Stereo   ./Vocabulary/ORBvoc.txt  RealSense_D435i.yaml false

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

Orb_slam3 ROS ,D435i使用,ubuntu编译小记 的相关文章

随机推荐

  • (二)STM32串口总结(库函数版)

    一 STM32F103有两个串口 图中 TXD RXD 是相对 CH340G 来说的 xff0c 也就是 USB 串口的发送和接收引脚 而 USART1 RX 和 USART1 TX 则是相对于 STM32F103ZET6 来说的 也就是说
  • Matlab画图 线条的颜色、宽度等相关设置

    线条的属性有 xff1a Color 颜色 LineWidth 线条宽度 LineStyle 线型 LineJoin 线条边角的样式 AlignVertexCenters 锐化垂直线和水平线 线条属性的默认值为 0 0 0 39 39 39
  • 一、图像预处理

    四种图像的基本数据结构 xff1a Image 指Halcon的图像类型 Region 指图像中的一块区域 XLD 指图像中某一块区域的轮廓 Tuple 类似于数组 xff0c 用于存储一幅或多幅图像 内核矩阵的选择 xff1a 核越大越模
  • halcon边缘检测

    边缘检测 Ronny丶 博客园 寻找边缘的传统方法 xff0c 即图像中的暗 光转换 xff0c 是应用边缘滤波器 这些滤光器可以在光和暗区域的边界找到像素 从数学术语中来说 xff0c 这意味着这些滤波器决定了图像的梯度 此图像渐变通常作
  • ZED双目摄像头

    ZED stereol abs 配置踩过的坑 现在种树也不晚 博客园 介绍 xff1a CUDA CUDA 是 ZED SDK 使用的 NVIDIA 库 xff0c 用于在显卡上运行快速 AI 和计算机视觉任务 在 ZED SDK 安装过程
  • linux---五种高级IO模型

    阻塞IO模型非阻塞IO模型信号驱动IO模型异步IO模型多路转接IO模型高级IO重要概念 阻塞IO模型 在内核将数据准备好 xff0c 系统调用会一直等待 xff0c 所有的套接字默认都是阻塞IO方式 阻塞IO是最常见的IO模型 非阻塞IO模
  • Ubuntu错误处理集

    1 W GPG 错误 xff1a https developer download nvidia com compute cuda repos ubuntu1604 x86 64 Release 由于没有公钥 xff0c 无法验证下列签名
  • Linux下配置虚拟CAN

    1 加载vcan模块 sudo modprobe vcan 2 添加vcan0网卡 sudo ip link add dev vcan0 type vcan 3 查看当前CAN网络 ifconfig a 4 开启vcan0 sudo ip
  • ROS基础

    一 ROS的核心概念 节点 xff1a 节点管理器 xff1a 话题 xff1a 消息 xff1a 服务 xff1a 参数 xff1a 二 命令行工具的使用 命令行工具都是以ros开头的 常用命令 rostopicrosserviceros
  • Linux下编译Opencv和contrib

    1 安装准备 1 1 安装依赖项 sudo apt get install cmake sudo apt get install build essential libgtk2 0 dev libavcodec dev libavforma
  • YOLOv5和YOLOv7环境(GPU)搭建测试成功

    本来是用doc写的 xff0c 直接复制到这里很多图片加载缓慢 xff0c 我直接把doc上传到资源里面了 xff0c 0积分下载 xff1a 10条消息 YOLOv5和YOLOv7开发环境搭建和demo运行 Python文档类资源 CSD
  • 单片机通信总述——理论部分(CAN、串口、SPI、I2C等)

    一 基础概念 1 1 通信方法 并行通信 xff1a 传输原理 xff1a 数据各个位同时传输 xff1b 优点 xff1a 速度快 xff1b 缺点 xff1a 占用引脚资源多 是指使用 8 16 32 及 64 根或更多的数据线 有多少
  • Ubuntu系统搭建

    一 创建环境常见问题 1 1 windows11下打开虚拟机蓝屏问题 参考这篇文章 xff0c 控制面板 xff0c 启用和关闭windows功能 xff08 对话框 xff09 113条消息 VMware安装Ubuntu开启蓝屏解决方案
  • J-Link工具查看单片机内存等信息

    1 打开下图应用 2 输入 connect xff08 连接开发板 xff09 AC78013FDLA xff08 你的单片机型号 xff09 SWD xff08 仿真器接口 xff09 1000HZ xff08 接口速度 xff09 连接
  • Qt调用ffmpeg动态库和静态库及编译ffmpeg的方法

    一 编译 二 引入ffmpeg库文件 1 Qt工程下创建lib文件夹 xff0c lib文件夹下再创建ffmepg文件夹 2 将编译好的ffmpeg里面的include 和lib文件夹粘贴到如下文件夹下 xff08 3 xff09 在 pr
  • autoware花屏重影问题

    autoware 安装 花屏 重影问题 最近尝试下autoware来做建图 xff0c 无奈各类安装太过麻烦 xff0c 这里给几个小问题做下纪律 1 xff0c 安装过程 xff0c 走的官网那个 xff0c 事实证明官网教程最全面 xf
  • linux---select,poll,epoll的原理以及优缺点

    多路转接IO xff08 也叫IO多路复用 xff09 是一种处理高并发的IO事件监控 xff0c 同时对大量的描述符进行时间监控 xff0c 监控是否具备IO条件 就绪 xff1a 包括了读就绪事件 xff08 就是有数据到来的时候 xf
  • DTAM实现

    DTAM实现 这里是实现github上DTAM的一次记录 xff0c 主要是有些步骤的记录 需要下载的源码 xff08 可以多试试几个 xff0c 按照实现可能性排序 xff09 xff1a https github com Teddybe
  • jetson镜像克隆到固态再扩容简单方法

    jetson克隆方法很多 xff0c 我是自己把之前的sd镜像克隆做成img镜像了 然后烧写后之前是64g的后续烧写都是64g的不能把新的储存设备占满 这里有一个扩容和移植到固态的方法 主要分三步 xff1a 镜像克隆和烧录到sd卡使用固态
  • Orb_slam3 ROS ,D435i使用,ubuntu编译小记

    C 43 43 版本编译 先官网下载代码 xff0c 并下载安装官网所述安装包 git clone https github com UZ SLAMLab ORB SLAM3 git ORB SLAM3 下载完编译c 43 43 版本 cd