ROS2安装ORB—SLAM3并用电脑摄像头运行

这篇具有很好参考价值的文章主要介绍了ROS2安装ORB—SLAM3并用电脑摄像头运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装环境: Ubuntu22.04 ros2 humble
安装参考链接

一、安装ORB-SLAM3(ROS2安装ORB-SLAM3的前提)

1、准备工作

1.1安装依赖
sudo apt install git cmake gcc g++ mlocate
1.2源码下载

原版本:ROB-SLAM3源码下载

修改版本:
下面链接是适用ROS2的ORB-SLAM3修改版ORB-SLAM3-STEREO-FIXED,本文下载的是此版本
ORB-SLAM3-STEREO-FIXED下载

2、安装Eugen3

sudo apt-get install libeigen3-dev

3、安装 Pangolin

原博客说使用0.6,但实测报错,而且没找到相关解决方案,最后使用如下版本
https://github.com/stevenlovegrove/Pangolin

# 安装
mkdir build
cd build
cmake ..
make -j4
sudo make install

#测试
## pangolin→examples→HelloPangolin

cd Pangolin-master/examples/HelloPangolin
mkdir build
cd build
cmake ..
make
# 直接运行./HelloPangolin可能会报错:
#./HelloPangolin: error while loading shared libraries: libpango_windowing.so:
# cannot open shared object file: No such file or directory
#先运行如下指令
sudo ldconfig

./HelloPangolin

出现方块即安装成功

4、安装opencv4.4.0

参考博客:https://www.cnblogs.com/xiaoaug/p/17766112.html

opencv4.4.0下载地址
opencv_contrib4.4.0下载地址

主目录新建 opencv 文件夹,把上面解压的 2 个文件夹放入 opencv 文件夹内。

下载缺少的文件:https://wwtt.lanzouw.com/if60o1cwvv4h 密码:d5fx

下载完成后解压,将里面的十几个文件放到 opencv_contrib-4.4.0/modules/xfeatures2d/src 文件夹内。

修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_features2d.cpp 文件,将里面的第 51~52 行代码路径改为:

#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp"
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_regression.impl.hpp"

修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp 文件,将里面的第 7~8 行代码路径改为:

#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_invariance.impl.hpp" // main OpenCV repo
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_invariance.impl.hpp" // main OpenCV repo

终端输入

sudo apt update && sudo apt install -y cmake g++ wget unzip
cd opencv
mkdir -p build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules ../opencv-4.4.0
make -j4
sudo make install

编译可能出现如下错误
opencv/modules/gapi/test/gapi_async_test.cpp:448:26: error: ‘sleep_for’ is not a member of ‘std::this_thread’
448 | std::this_thread::sleep_for(std::chrono::milliseconds{2});
| ^~~~~~~~~
orbslam3安装ros,学习解决方案
找到gapi_async_test.cpp 和test_precomp.hpp,在程序开头加上

#include <thread>

编译通过
orbslam3安装ros,学习

5、安装ORB-SLAM3

5.1 打开 ORBSLAM3 可视化选项(可选)

到之前下载的ORB-SLAM3源码文件下
打开 Examples/Monocular 文件夹下的 mono_euroc.cc 文件,找到第 83 行:

ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);

将最后的 false 改为 true。

5.2 安装方法
#这里我直接使用官方的方法,可以安装成功
cd ORB_SLAM3
chmod +x build.sh
./build.sh

6、数据集下载,测试

orbslam3安装ros,学习下载完成后,解压压缩包,里面有一个 mav0 的文件夹。

然后在你的文件夹下(随便哪里,只要你能找到),创建一个文件夹叫 dataset。在 dataset 文件夹下再创建一个 MH01 文件夹,然后把刚才下载的 mav0 文件夹放到 MH01 里面去。

然后打开终端,进入 ORBSLAM3 文件夹内,执行测试:

**将最后一行指令中的 /home/xiao/dataset/MH01 改成你的 MH01 文件夹的地址。

cd ORB_SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/xiao/dataset/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt

orbslam3安装ros,学习出现说明安装成功,至此ORB-SLAM3安装完毕,接下来把它在ros2中跑起来

二、ROS2安装ORB-SLAM3

1、编译ORB-SLAM3-ROS2

ROS2版ORB-SLAM3下载地址**我这里是humble版本

1、安装ros2依赖
sudo apt install ros-$ROS_DISTRO-vision-opencv && sudo apt install ros-$ROS_DISTRO-message-filters

2、新建工作空间
mkdir -p colcon_ws/src
cd ~/colcon_ws/src
git clone https://github.com/zang09/ORB_SLAM3_ROS2.git orbslam3_ros2 # 我是直接下载的源码

3、修改 CMakeLists.txt,将第 5 行代码里的路径修改为你自己本机 ROS2 site-packages 的路径
set(ENV{PYTHONPATH} "/opt/ros/humble/lib/python3.10/site-packages")

4、修改 CMakeModules/FindORB_SLAM3.cmake,将第 8 行代码里的路径修改为你自己本机安装的 ORB_SLAM3 的路径
set(ORB_SLAM3_ROOT_DIR "/home/lzy/colcon_orb_slam3/src/ORB_SLAM3")

5、编译
cd ~/colcon_ws
colcon build --symlink-install --packages-select orbslam3

2、安装摄像头驱动 usb_cam

github下载地址

1、创建 usb_cam 工作空间:
cd ~
mkdir -p usb_camera/src

## 有教程说需要安装依赖,我没有安装实测也没有问题,直接开始编译

2、编译
cd ~/usb_camera
colcon build
source install/setup.bash
source ~/.bashrc

3、运行usb_cam,注意后面选择自己的代码路径;
这里的params_1.yaml 是摄像头配置参数,可设置帧数,图像大小等。

ros2 run usb_cam usb_cam_node_exe --ros-args --params-file /home/lzy/usb_camera/src/usb_cam-ros2/config/params_1.yaml 

4、查看发布的图像,以下两种都行,出现图像则说明图像发布成功
方法一:(这个方法在我的电脑上非常卡顿)
ros2 run rqt_image_view rqt_image_view 

方法二:
rviz2
在Add中订阅/image_raw话题中的image

5、修改orb-slam3-ros2代码,把发布的图像放到算法中

修改/colcon_ws/src/ORB_SLAM3_ROS2-humble/src/monocular/monocular-slam-node.cpp的代码为/image_raw

orbslam3安装ros,学习
6、重新编译文件

cd ~/colcon_ws
colcon build --symlink-install --packages-select orbslam3

7、运行程序

ros2 run orbslam3 mono /home/lzy/colcon_orb_slam3/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/lzy/colcon_orb_slam3/src/ORB_SLAM3/Examples/Monocular/TUM1.yaml

orbslam3安装ros,学习若长时间卡在
Loading ORB Vocabulary. This could take a while…

[ros2run]: Killed

原因可能是标定文件地址错误文章来源地址https://www.toymoban.com/news/detail-840323.html

到了这里,关于ROS2安装ORB—SLAM3并用电脑摄像头运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于虚拟机安装Ubuntu18.04+ROS的2D相机或电脑自带摄像头的在线标定方法

    硬件 :笔记本电脑自带摄像头或者通过usb接口连接的相机 软件 :虚拟机+ubuntu18.04+ROS1 melodic(针对ubuntu18.04对应的ROS版本) 首先确保在主目录下,创建ROS工程 克隆代码 编译代码 这个地方我报错了 – No package ‘libv4l2’ found CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:419

    2024年02月02日
    浏览(40)
  • Ubuntu20.04的ROS环境安装ORB-SLAM3详解

    视觉SLAM实验要在Ubuntu20.04系统上使用ROS跑ORB-SLAM3,熟悉一下特征点法的SLAM,把安装过程总结记录下来。 系统 版本 ubuntu 20.04 Pangolin 0.6 Eigen 3 Opencv 4.2 usb_cam 执行命令更新源 1、ROS简介 ROS全称Robot Operating System(机器人操作系统) ROS是适用于机器人的开源元操作系统 ROS集成了大

    2023年04月21日
    浏览(52)
  • ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

    ORB-SLAM3代码下载地址:ORB-SLAM3源码下载 所有的操作都是在完成以下网址中的所有操作内容下进行的:Ubuntu系统安装之后首需要做的事情 本文是总结的比较完善和直接的过程。 其实在整个运行中也遇到了一些问题,也做了一些总结,记录在了文章 ORB-SLAM3复现过程中遇到的问题

    2024年02月09日
    浏览(46)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

    ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用 EuRoc 开源数据来运

    2024年02月08日
    浏览(32)
  • ROS安装与Rviz的摄像头视频采集与标定

         ROS 是一个适用于机器人编程的框架,具有分布式、点对点,支持多种语言,组件化工具包 丰富,免费且开源的特点,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。 ROS 虽然叫做操作系统,但并非 Windows、Mac 那样通常意义的操作系统,它只是

    2023年04月11日
    浏览(38)
  • Ubuntu20.04在ROS下运行ORB-SLAM3

    目录 1.前言: 2.总体配置: 3.数据集 4.配置ORB-SLAM3 (1)添加环境变量 (2)修改文件 5.编译运行 (1)检查环境 (2)编译 6.运行 7.部分报错 (1)功能包未找到 (2)AR路径下文件的错误 (3)Pangolin库错误 (4)缺少库         小白配置ORB-SLAM3的过程真的辛酸。。各种各样

    2024年03月15日
    浏览(43)
  • SLAM系统--开启摄像头连接

    博客地址:https://www.cnblogs.com/zylyehuo/ 基于ORB-SLAM3库搭建SLAM系统 详见之前的博客 基于ORB-SLAM3库搭建SLAM系统 - zylyehuo - 博客园 (cnblogs.com) 参考链接 ORB-SLAM3 v1.0 编译问题解决 /usr/bin/env: \\\"pythonr\\\": 没有那个文件或目录 打开终端输入指令: vim ~/.bashrc 打开用户根目录下的.bashrc文件

    2024年02月06日
    浏览(28)
  • ORB_SLAM2配置——基于Ubuntu20.04+ROS+gazebo仿真

    一、引言 ORB-SLAM2,它是基于单目、双目或RGB-D相机的一个完整的SLAM系统,其中包括地图重用、回环检测和重定位功能。这个系统可以适用于多种环境,无论是室内小型手持设备,还是工厂环境中飞行的无人机和城市中行驶的车辆,其都可以在标准CPU上实时运行。该系统的后端

    2023年04月13日
    浏览(37)
  • ORB_SLAM3 ROS编译及使用D435I运行

    本文介绍ORB_SLAM3编译、运行中遇到问题,尤其涉及到ORB_SLAM3 ROS编译遇到的问题。最后通过使用D435I完成在室内环境下运行。 本文运行环境在Ubuntu20.04 + ROS noetic。 一、ORB_SLAM3 依赖安装 ORB_SLAM3 依赖的安装,有同学喜欢上来就baidu,按照别人介绍的安装,这样做大多数时候会出现

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包