Orbslam2 稠密点云 +D435i实现(Ubuntu18.04)

系统:Ubuntu18.04
设备:Realsense D435i

一、安装相关依赖库

毕设后写的一篇通俗一些的,适合没接触过或不太会ubuntu的同学,前半部分都是一样的,
tips:需要安装一个[百度网盘],以便下载需要的文件。
→ → → orbslam2+小觅相机

相关依赖库

sudo  apt-get  install  cmake gcc g++ git vim
sudo  apt-get  install  libglew-dev
sudo  apt-get  install  libboost-dev libboost-thread-dev 
sudo  apt-get  install  libboost-filesystem-dev
sudo  apt-get  install  libpython2.7-dev
sudo  apt-get  install  build-essential

安Pangolin和Eigen
这两个库,建议是0.5和3.2版本,报错可能性小,其他版本可能会出现不兼容等各种问题,目前从git下载已经是新版,这里提供一下0.5和3.2版本

pangolin:pangolin_v0.5 提取码: edam

Eigen3:Eigen_v3.2.10 提取码: hnw9

安装:

cd  Pangolin  
mkdir  build
cd  build
cmake ..
make 
sudo make install
cd  eigen
mkdir  build
cd  build
cmake ..
make 
sudo make install

二、安装ROS Ubuntu18.04对应melodic

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

sudo apt update
sudo apt install ros-melodic-desktop-full(时间略长,需等待一会)
!复制全了别丢东西!
------------------------------------------------------------------------
sudo rosdep init
出现错误:找不到命令
解决:sudo apt install python-rosdep2
------------------------------------------------------------------------

rosdep update
出现 timed out  出现超时问题

解决:解决方法
涉及到的rosdistro文件
rosdistro 提取码: b3hb


sudo apt-get install python-rosinstall
source /opt/ros/melodic/setup.bash

创建并初始化工作目录ROS使用一个名为catkin的ROS专用构建系统。为了使用它,用户需要创建并初始化catkin工作目录,如下所示。除非用户创建新的工作目录,否则此设置只需设置一次。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
sudo apt install net-tools
gedit ~/.bashrc
在弹出的文本中最后面添加如下两句
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
保存
source ~/.bashrc

进行测试:

roscore

出现错误:没发现roscore
解决:
sudo apt-get install ros-melodic-desktop

重新打开三个终端:

roscore

rosrun turtlesim turtlesim_node

rosrun turtlesim turtle_teleop_key

鼠标点击最后一个终端,按方向键小海龟可以移动,即是配置成功

三、编译orbslam

1.安装pcl点云库,大致按这个教程安装就可以
点云安装

2.下载 高翔博士修改后的orbslam2

git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git

我按照网上教程稍微自己稍微修改了的

复制这段内容后打开百度网盘手机App,操作更方便哦
链接:https://pan.baidu.com/s/18T6kNhHFRxoxiKYo3o3rEg 
提取码:i3CB --来自百度网盘超级会员V5的分享

如果下载高翔原版代码,解压zip,将第一个文件夹中文件,复制替换进 解压后 文件夹中 的ORB_SLAM2_modified
在这里插入图片描述

3.编译g2o
解压后找到g2o_with_orbslam2文件夹
如果下载我的应该不需要修改,高翔原版需要改动一下
1)分别对文件夹下cmakelist和g20下的cmakelist对相应语句进行注释
主文件夹下
在这里插入图片描述
g20下的
在这里插入图片描述
注释后保存

2)修改g2o/types/slam2d/edge_se2_pointxy_bearing.cpp

原代码:t.setRotation(t.rotation().angle()+_measurement);

修改后:t.setRotation((Eigen::Rotation2Dd)(t.rotation().angle()+_measurement));  

3)修改/g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h

原代码:typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;

修改后:typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::StorageIndex> PermutationMatrix;

保存后,回到g2o_with_orbslam2主文件夹下

mkdir build
cmake ..
make -j8
sudo make install

4.进入ORB_SLAM2_modified文件夹
高翔原版没有ORBvoc.txt.tar.gz需要自行下载,而后将其放置于Vocabulary文件夹下,顺手解压一下

ORBvoc.txt.tar.gz

修改文件夹中的cmakelist,将opencv和eigen3修改为自己电脑安装的版本,我前边提供的eigen3为3.2.10,我安装时ros自带的3.2的opencv。如果不清楚可以进行查询

pkg-config --modversion opencv

在这里插入图片描述
修改cmakelist为对应版本
在这里插入图片描述
来到/ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/CMakeLists.txt
查看这 5 处是否正确,并也将对应的库版本号修改为自己安装的版本
在这里插入图片描述
修改后,删除
/ORB_SLAM2_modified/build,
/ORB_SLAM2_modified/Thirdparty/DBoW2/build
/ORB_SLAM2_modified/Thirdparty/g2o/build
删掉三个 build 文件夹

在ORB_SLAM2_modified下右键打开终端

cd ORB_SLAM2_modified/Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make 

从新在ORB_SLAM2_modified下右键打开终端

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j8

数据集测试,数据集需自行下载,我提供的代码中dataset中有两个下载好直接能用的数据集
如果自己下载需要对rgbd和depth进行关联

python associate.py rgb.txt depth.txt > associations.txt

示例命令
./Example/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt path_to_settings path_to_sequence path_to_association
在ORB_SLAM2_modified打开终端执行

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml datasets/rgbd_dataset_freiburg1_xyz  datasets/rgbd_dataset_freiburg1_xyz/association.txt

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml datasets/rgbd_dataset_freiburg1_room  datasets/rgbd_dataset_freiburg1_room/association.txt

高翔原版似乎没有地图保存和彩色,如果需要保存地图,或者地图不是彩色,请参考文章中间部分
保存地图,地图不是彩色

保存的点云在主文件夹下,名称vslam.pcd,当前文件夹打开终端
在这里插入图片描述

pcl_viewer vslam.pcd  (查看点云)

四、安装D435i SDK

Ubuntu18.04 + ROS melodic 安装使用 RealSenseD435i

Ubuntu18.04下安装RealSense D435i相机的SDK和ROS包

五、编译orbslam +ROS

1.来到ORB_SLAM2_modified文件夹
在打开的文本最后添加你的ROS路径,保存

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的目录/ORB_SLAM2_modified/Examples/ROS

保存后在终端输入

source ~/.bashrc
chmod +x build_ros.sh
./build_ros.sh

2.修改ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/src/ros_rgbd.cc文件,把rgb_topic和depth_topic订阅话题修改为

 "/camera/color/image_raw";
 "/camera/aligned_depth_to_color/image_raw";

ORB_SLAM2_modified下从新打开终端

chmod +x build.sh 
./build.sh
chmod +x build_ros.sh
./build_ros.sh

从新打开终端,查看内参

roscore
roslaunch realsense2_camera rs_rgbd.launch 
rostopic echo /camera/color/camera_info

没有rs_rgbd.lunch
解决:sudo apt-get install ros-melodic-rgbd-launch
终端中显示的K,为参数,其中
K = [fx 0 cx 0 fy cy 0 0 1 ] 基线50mm

修改参数,得到一个新的D435i.yaml

%YAML:1.0
 
#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
 
# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 909.559875
Camera.fy: 909.740478
Camera.cx: 645.366455
Camera.cy: 366.805908

Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0
Camera.p3: 0.0

Camera.width: 640
Camera.height: 480
# Camera frames per second 
Camera.fps: 30.0

# IR projector baseline times fx (aprox.)
# bf = baseline (in meters) * fx, D435i的 baseline = 50 mm 
Camera.bf: 50.0
 
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1
 
# Close/Far threshold. Baseline times.
ThDepth: 40.0
 
# Deptmap values factor
DepthMapFactor: 1000.0
 
#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
 
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000
 
# ORB Extractor: Scale factor between levels in the scale pyramid 	
ORBextractor.scaleFactor: 1.2
 
# ORB Extractor: Number of levels in the scale pyramid	
ORBextractor.nLevels: 8
 
# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast			
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7
 
#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize:2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500
 
PointCloudMapping.Resolution: 0.01
meank: 50
thresh: 2.0

运行,打开三个终端

roscore
roslaunch realsense2_camera rs_rgbd.launch
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/D435i.yaml

视觉slam Orbslam2+D435i 稠密点云,记录

运行视频b站:【视觉slam Orbslam2+D435i 稠密点云,记录-哔哩哔哩
在这里插入图片描述
过程中会遇到各种问题,需要大家自己解决喽,因为问题各不相同,所以大家就自行搜索解决,我只记录了一下自己从配置到运行的大致过程。

我遇到最多的问题是这个:
核心转储:核心转储解决

  • 30
    点赞
  • 242
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
### 回答1: Ubuntu 18.04是一种操作系统,ORB-SLAM2是一种基于视觉的定位和建图算法。在Ubuntu 18.04上安装和使用ORB-SLAM2需要一定的计算机视觉和编程知识。如果您需要使用ORB-SLAM2,建议先学习相关知识,然后按照官方文档进行安装和使用。 ### 回答2: Ubuntu18.04是一个广泛使用的操作系统,ORB-SLAM2是一个基于视觉的SLAM系统,它是一个具有实时运行能力的视觉里程计和地图构建引擎。ORB-SLAM2主要包含三个方面的模块:特征提取、地图构建和定位。ORB-SLAM2的特征提取模块使用ORB算法获取图像特征点,通过优化算法优化匹配结果。地图构建模块从摄像头获取图像,在ORB特征匹配的基础上,使用比较方法获取2D-3D点匹配,通过BSPS (Branch and Synchronize Particle Filter)算法进行误差校准,最终生成三维地图。最后,定位模块通过地图和图像特征匹配来实现定位。ORB-SLAM2在实时性、精度、鲁棒性、鲁棒性等方面具有优异性能,其应用领域广泛,如机器人导航、增强现实、自动驾驶、工业自动化等。在Ubuntu18.04操作系统中,ORB-SLAM2是其中一种较为流行的算法库之一,使用简单而且具有良好的稳定性,非常适合于视觉SLAM领域的研究。 ### 回答3: Ubuntu18.04是一个非常流行的Linux操作系统版本,它可以在多种设备上运行,并且是Linux社区研发的一个稳定版本。而ORBSLAM2是一个用于视觉定位与建图的开源库,它基于单目或者双目相机,具有比较高的精度和可靠性。下面将详细说明Ubuntu18.04和ORBSLAM2之间的关系。 Ubuntu18.04是ORBSLAM2的一个非常适合的操作系统版本,因为它与ORBSLAM2的编译环境非常相似。具体来说,ORBSLAM2需要安装一些C++的第三方库,如OpenGL、Eigen、Pangolin等。在Ubuntu18.04上,这些库的安装非常容易。只需要通过apt-get命令即可安装。此外,Ubuntu18.04的软件包管理器也非常容易使用,可以方便的安装各种依赖包和软件。 另外,Ubuntu18.04还具有比较好的GUI桌面环境,用户可以通过界面来配置ORBSLAM2的运行参数以及其他应用。而ORBSLAM2库的使用也非常方便,它提供了C++和Python的API接口。用户可以根据自己的需要,自行编写相关的程序。 总之,Ubuntu18.04与ORBSLAM2是一个非常兼容的组合。通过Ubuntu18.04,用户可以方便的安装ORBSLAM2,并且使用它进行各种视觉定位与建图的应用。同时,Ubuntu18.04也是一个很好的开发平台,用户可以利用它进行其他的开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值