type
status
date
slug
summary
tags
category
icon
password
2022.4.20,校内出现了covid的病例,封在宿舍内掏出了之前100多捡漏的深度摄像头,看能不能整点活。
Zhang, S., Zheng, L., Tao, W., 2021. Survey and Evaluation of RGB-D SLAM. IEEE Access 9, 21367–21387.. doi:10.1109/access.2021.3053188
这一篇可以快速了解SLAM的基本算法和现有实现。
 

Basic

RGB-D的SLAM基本架构包括:
  • 前端 摄像头追踪
  • 后端 local Mapping和loop closing
notion image
 

Camera Tracking

Survey 提到了好多种方法,
direct的KinectFusion、RGBDTAM、ID-RGBDO;
indirect的RGB-D SLAM(2012)、ORB-SLAM2(2017) 、Plane-edge SLAM(2020);
hybrid的CPA-SLAM 2016,BundleFusion 2017,KDP-SLAM (2017),semi-direct (2019)

处理方式比较

notion image
 
notion image

ORB-SLAM2

作者一圈比较下来,ORB-SLAM2比较顶,后面就尝试使用此种。
notion image
 
R. Mur-Artal and J. D. Tardós, "ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras," in IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255-1262, Oct. 2017, doi: 10.1109/TRO.2017.2705103.
ORB_SLAM2
raulmurUpdated Aug 30, 2023
 
💡
发现spack有pangolin
 
值得注意的是,spack并不会安装完整的opencv,需要手动添加需要的东西,比如这里的
 
注意不能安装最新的pangolin,否则会有蜜汁错误
 

ORB-SLAM3

发现了新的(虽然是不同作者而且主要是老版依赖安装问题)
ORB_SLAM3
UZ-SLAMLabUpdated Aug 30, 2023
有些依赖没有提到
 
💡
虚拟机编译过程可能出现炸内存,需要在 build 减少make线程数 -j2

ROS安装

💡
ubuntu 20.04 默认只能安装noetic,无法找到ROS Kinetic and Melodic 的包

Astra摄像头接入

ros_astra_camera
orbbecUpdated Aug 30, 2023
 

摄像头接入WSL

根据微软官方的教程,要将USB设别接入WSL2,需要
  • windows 安装usbipd
  • linux安装usbip tools \ hardware database
  • attach需要的usb设备

Install the USBIPD-WIN project

直接在页面latest release page for the usbipd-win project下载最新的msi安装文件安装即可

Install the USBIP tools and hardware database in Linux

对于ububtu 20.04,执行

Attach a USB device

  1. win下查看连接到windows下的设备
notion image
  1. 选择你想要attach到ubuntu wsl的设备,执行
  1. 在ubuntu中使用 lsusb 检查情况
notion image
 
💡
当执行attach时,如遇到 usbip: error: Attach Request for 5-1 failed - Device busy (exported) ,往往设备确实被占用,up当时设备被腾讯会议占用一直没有发现。 除了关闭占用程序,还可选择使用 usbipd bind --busid 5-1 --force 以及 usbipd wsl attach --busid 5-1 组合命令进行尝试 ,但是可能会不起作用。
notion image
 
reference

20.04下的驱动安装

Astra SDK

这部分类似下面的OpenNI,在官网下载,没有遇到什么坑

OpenNI

在官网下载包含硬件支持的OpenNI2,如果下列链接失效前往官网获取
notion image
 
安装后可以进行测试 sudo ./SimpleViewer
notion image
 
💡
不进入目录可能找不到设备
notion image
💡
需要sudo权限,否则提示
notion image
 

libuvc

截止20220421,Orbbec还没有官方支持ROS的noetic
ros_astra_camera
orbbecUpdated Aug 30, 2023
中需要安装的dependences sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros 无法找到对应apt包
 
 

libuvc-ros

由于20.04 中没有 ros-noetic-libuv
  1. 创建ROS空间
  1. 下载ros_astra_camera仓库
  1. 创建usb设备名称与权限
  1. 编译
💡
可能会出现编译错误,找不到libucv,进入 SLAM/catkin_ws/src/ros_astra_camera/CMakeLists.txtfind_package(libuvc REQUIRED) 下添加下面代码
  1. 启动
 
 
USB权限问题 Permission denied opening /dev/bus/usb/001/010
 
 
 
reference
 

添加设备id

  1. 如上attach设备
notion image
 
  1. lsusb 查看设备ID
 
  1. 修改 astrapro.launch ,运行 roslaunch astra_camera astra.launch
 
  1. 打开rivz,add → by topic
notion image
notion image
 
 
reference
 

ORB-SLAM3调用ROS

进入 /home/tcj_wsl/SLAM/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/srcros_rgbd.cc ,修改会话信息
 
修改 build_ros.sh
 
 
 
v1.0 release ros版本编译,提示找不到sophus库,及 Sophus::SE3f, cv::MAT,Eigen::Vector3f类型转换报错
Updated Nov 30, 2022
 
 
 
reference
ORB_SLAM3
UZ-SLAMLabUpdated Aug 30, 2023

Refer

ORB_SLAM2配置过程_Andy是个男子名的博客-CSDN博客_orb-slam2
本文记录了ORB_SLAM在Ubuntu16.04中的配置过程,并且包含ROS 环境下ROB_SLAM的配置。 ORB-SLAM是由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年发表在IEEE Transactions on Robotics。ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运行。该系统对剧烈运动也很鲁棒,支持宽基线的闭环检测和重定位,包括全自动初始化。该系统包含了所有SLAM系统共有的模块:跟踪(Tracking)、建图(Mapping)、重定位(Relocalization)、闭环检测(Loop closing)。由于ORB-SLAM系统是基于特征点的SLAM系统,故其能够实时计算出相机的轨线,并生成场景的稀疏三维重建结果。ORB-SLAM2在ORB-SLAM的基础上,还支持标定后的双目相机和RGB-D相机。 接下来介绍一下ORB_SLAM的配置过程。 在配置过程中需要cmake、gcc、g++和Git工具。可在终端通过以下命令下载。 sudo apt-get install cmake sudo apt-get install git sudo apt-get install gcc g++ Pangolin是对OpenGL进行封装的轻量级的OpenGL输入/输出和视频显示的库。可以用于3D视觉和3D导航的视觉图,可以输入各种类型的视频、并且可以保留视频和输入数据用于debug。 在安装Pangolin之前,先要安装必要的依赖项: sudo apt-get install libglew-dev sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev sudo apt-get install libpython2.7-dev 安装完依赖项后可以通过以下命令安装Pangolin: git clone https://github.com/stevenlovegrove/Pangolin.git mkdir build cd build cmake -DCPP11_NO_BOOSR=1 ..
ORB_SLAM2配置过程_Andy是个男子名的博客-CSDN博客_orb-slam2
 
ORB-SLAM3的CMake与ROS编译以及测试
Relate Posts
IPCC 22赛前讲座R7000 电池下的续航优化
Loading...