首页 > 系统相关 >ORBSLAM3+ROS2foxy 调用笔记本摄像头跑单目相机程序 (Ubuntu20.04)

ORBSLAM3+ROS2foxy 调用笔记本摄像头跑单目相机程序 (Ubuntu20.04)

时间:2023-10-26 21:33:05浏览次数:43  
标签:Ubuntu20.04 usb ROS2foxy SLAM3 install 单目 cam cd ORB

环境要求:Ubuntu 20.04、ROS2 foxy、OpenCV 4.4.0

1. 安装 ORB_SLAM3

首先安装 ORB_SLAM3:https://github.com/zang09/ORB-SLAM3-STEREO-FIXED。

安装方法参考:https://www.cnblogs.com/xiaoaug/p/17766112.html

安装完成并且测试数据集也能够跑通后即可。

2. 下载 ROS2 foxy 版 ORB_SLAM3 程序

安装 ROS2 相关软件包:

sudo apt install ros-$ROS_DISTRO-vision-opencv && sudo apt install ros-$ROS_DISTRO-message-filters

创建 ROS2 工作空间并下载 ORB_SLAM3 ROS2 foxy 版程序:

cd ~
mkdir -p colcon_ws/src
cd ~/colcon_ws/src
git clone https://github.com/zang09/ORB_SLAM3_ROS2.git orbslam3_ros2

修改 CMakeLists.txt,将第 5 行代码里的路径修改为你自己本机 ROS2 site-packages 的路径:

set(ENV{PYTHONPATH} "/opt/ros/foxy/lib/python3.8/site-packages/")

修改 CMakeModules/FindORB_SLAM3.cmake,将第 8 行代码里的路径修改为你自己本机安装的 ORB_SLAM3 的路径,比如我的就是:

set(ORB_SLAM3_ROOT_DIR "/home/xiao/ORB_SLAM3")

编译项目:

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

如果程序报错,输出:找不到sophus/se3.hpp,则去你的 ORB_SLAM3 文件夹内重新安装 Sophus:

cd /home/xiao/ORB_SLAM3/Thirdparty/Sophus/build
sudo make install

安装完成后重新编译一下程序即可。

3. 安装 usb_cam 驱动

经过测试,如果直接安装:sudo apt install ros-foxy-usb-cam,调用相机的时候会报错,因此选择下载 ROS2 版本 usb_cam 驱动源码进行安装。

下载链接:https://github.com/ros-drivers/usb_cam/tree/ros2

创建 usb_cam 工作空间:

cd ~
mkdir -p usb_camera/src

将刚才在 GitHub 下载的 usb_cam 压缩包解压,重命名为 usb_cam 并放入 usb_camera/src 文件夹下。

安装依赖:

cd ~/usb_camera
rosdep install --from-paths src --ignore-src -y

如果你的 rosdep 没有初始化的话,需要先初始化一下,具体百度。

编译项目:

cd ~/usb_camera
colcon build

打开 usb_camera/src/usb_cam/config/params_1.yaml 文件,修改 video_device、image_width、image_height,我的笔记本电脑相机接口是 /dev/video0,分辨率是 640x480。(一般情况下默认参数就能够跑通)

运行 usb_cam 程序:

cd ~/usb_camera
. install/local_setup.sh
ros2 run usb_cam usb_cam_node_exe --ros-args --params-file /home/xiao/usb_camera/src/usb_cam/config/params_1.yaml

如果报错:Gtk-Message: Failed to load module "canberra-gtk-module",是缺少一个依赖,安装一下即可:sudo apt-get install libcanberra-gtk-module

打开另一个终端,查看是否能显示摄像头画面:

cd ~/usb_camera
. install/local_setup.sh
ros2 run rqt_image_view rqt_image_view

若能正确显示,则程序安装成功。

4. 运行单目 ORB_SLAM3_ROS2 程序

先运行 usb_cam 程序,将摄像头启动起来(如果你上面的程序没有关闭的话,就不需要再运行了):

cd ~/usb_camera
. install/local_setup.sh
ros2 run usb_cam usb_cam_node_exe --ros-args --params-file /home/xiao/usb_camera/src/usb_cam/config/params_1.yaml

修改 colcon_ws/src/orbslam3_ros2/src/monocular/monocular-slam-node.cpp 中的图像话题名称为 /image_raw

img

重新编译文件:

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

运行程序:

cd ~/colcon_ws
. install/local_setup.sh
ros2 run orbslam3 mono ~/ORB_SLAM3/Vocabulary/ORBvoc.txt ~/ORB_SLAM3/Examples/Monocular/TUM1.yaml

看到图像就说明程序运行正常,如果只是弹出来一个黑框,但是没有图像,就移动一下笔记本摄像头,跑单目相机静止画面有时出不来图像。

img

到此就可以跑通单目相机程序了,但是要真正让程序运行好还需要给摄像头做标定,具体百度相机标定方法。

标签:Ubuntu20.04,usb,ROS2foxy,SLAM3,install,单目,cam,cd,ORB
From: https://www.cnblogs.com/xiaoaug/p/17790458.html

相关文章

  • 如何在Ubuntu20.04.3机器上使用kvm创建CentOs7.9的虚拟机
    一、虚拟化背景因为产品在Ubuntu的环境上部署兼容性差,Ubuntu的实体机上还运行着其他系统没办法进行系统的更换重装,所以只能出此下策~二、开始搭建更新Ubuntu系统打开终端并通过如下命令更新本地的软件包索引$sudoaptupdate$sudoaptupgrade检查虚拟化是否开启在......
  • ubuntu20.04下源码编译python 3.12
    需要注意的地方 1.安装依赖:https://devguide.python.org/getting-started/setup-building/#build-dependenciessudoapt-getinstallbuild-essentialgdblcovpkg-config\libbz2-devlibffi-devlibgdbm-devlibgdbm-compat-devliblzma-dev\libnc......
  • ubuntu20.04 apt方式安装mariadb
    MariaDB作为MySQL的替代方案。MariaDB是一个与MySQL兼容的开源关系型数据库管理系统。#1.打开终端。#2.更新软件包列表:sudoaptupdate#3.安装MariaDB服务器和客户端:sudoaptinstallmariadb-servermariadb-client-y#4.查看状态sudosystemctlstatusmariadb#5.启动......
  • ORBSLAM3 安装及测试教程(Ubuntu20.04)
    1.准备工作1.1安装依赖sudoaptinstallgitcmakegccg++mlocate1.2下载ORBSLAM3源码可以去Github下载源码:https://github.com/UZ-SLAMLab/ORB_SLAM3或者终端内下载:gitclonehttps://github.com/UZ-SLAMLab/ORB_SLAM3.git2.安装Pangolin可以去Github下载源......
  • ubuntu20.04 将 max locked memory从默认的65536改为无限制
    RDMA开发中,需要注册MemoryRigon,需要比较大的内存区域,如果不把Ubuntu20.04系统默认的maxlockedmemory从默认的65536改为unlimited,将会报出这个错误:Couldn'tallocateMR解决办法如下(感谢chatGPT老师哈哈)Tosetthemaximumlockedmemoryfrom65536tounlimitedonUbunt......
  • Ubuntu20.04 入门ip ssh 源
    sudovi/etc/netplan/00-installer-config.yamlnetwork:version:2ethernets:ens32:dhcp4:falseaddresses:[192.168.1.5/24]gateway4:192.168.1.1nameservers:addresses:[114.114.114.114]#addresses:192.168.1.5/24]......
  • ubuntu20.04使用kubeadm安装kubernetes1.24.4
    介绍1.k8s的版本在1.24版本开始Kubernetes正式移除对Dockershim的支持,Kubernetes1.24之后,如还想继续在k8s中使用docker,需要自行安装cri-dockerd组件或者containerd组件,下面的步骤,经过反复测试很多次,步骤应该很稳2.#更新阿里云yumsudocp/etc/apt/sources.list/etc/apt/sourc......
  • ubuntu20.04修改系统时间
    我们在安装系统和应用的时候,经常发现系统时间不对,如果存在校验的话,可能影响更大,所以我们要知道如何修改系统时间。1.查看当前系统的时间用date命令date2.运行tzselect来选择时区我们选择亚洲-中国-上海时区3.复制文件到/etc/localtime目录下cp/usr/share/zoneinfo/Asia/Shangha......
  • Ubuntu20.04 ping Temporary failure in name resolution问题
    解决步骤vi/etc/systemd/resolved.conf将DNS的注释取消掉并改成8.8.8.8即可参考:https://blog.csdn.net/weixin_43354181/article/details/105352203......
  • Ubuntu20.04安装Mysql8主从
    Ubuntu20.04安装Mysql8主从一.主数据库安装1.下载安装包并初始化数据库#进入目录cd/opt#下载安装包wgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz#解压tar-xvfmysql-8.0.20-linux-glibc2.12-x86_64.tar.xz......