ROS下使用 Realsense D435i 运行ORBSLAM2_with_pointcloud_map

9 篇文章 1 订阅
  • 首先clone高博的代码
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
  • 此时应该有以下几个文件,具体的步骤也可以在README.md中看到:

在这里插入图片描述

  • 解压 orbslam2_modified.zip文件,将这个文件夹下的ORB_SLAM2_modified文件夹拖出来覆盖到根目录下的ORB_SLAM2_modified,把这个文件夹下的g2o_with_orbslam2文件夹也拖到根目录,之后这个文件夹内就没东西了,删了吧,如下:
    在这里插入图片描述
  • 原包ROS不友好,可以下载另外一个包
git clone https://github.com/wylnii/ORBSLAM2_with_pointcloud_map.git
替换原包中的ORB_SLAM2_modified文件夹下的所有文件
  • 保证你的eigen版本在Eigen3.2.x至少不低:
    下载: Eigen3.2.10
cd eigen-eigen-b9cd8366d4e8
mkdir build
cd build
cmake ..
make
sudo make install
  • 编译g2o_with_orbslam2包:
cd g2o_with_orbslam2
mkdir build
cmake ..
make 
sudo make install
  • 安装Pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install
  • 准备编译ORB_SLAM2_modified
cd ORB_SLAM2_modified/
rm -rf Thirdparty/DBoW2/build/
rm -rf Thirdparty/g2o/build/
  • 下载ORBvoc.txt.tar.gz放置于Vocabulary文件夹下
    ORBvoc.txt.tar.gz
  • 如果你github下载不下来,就试试我上传的
    ORBvoc.txt.tar.gz
  • 保证opencv版本的一致,修改ORB_SLAM2_modified下以及ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2目录下的CMakeLists.txt,这里统一修改为你电脑里的opencv版本
find_package(OpenCV 3.0 QUIET)
# find_package(OpenCV 3.0 QUIET)
# if(NOT OpenCV_FOUND)
#    find_package(OpenCV 2.4.3 QUIET)
#    if(NOT OpenCV_FOUND)
#       message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
#    endif()
# endif()
  • 如果你的电脑很渣,修改ORB_SLAM2_modified文件夹下的build.sh,将所有make -j中的-j去掉
echo "Configuring and building Thirdparty/DBoW2 ..."

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

cd ../../g2o

echo "Configuring and building Thirdparty/g2o ..."

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

cd ../../../

echo "Uncompress vocabulary ..."

cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..

echo "Configuring and building ORB_SLAM2 ..."

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

cd ..

echo "Converting vocabulary to binary"
./tools/bin_vocabulary
  • 开始编译ORB_SLAM2_modified
chmod +x build.sh
./build.sh
  • 修改ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/文件夹下的cmakelist,注意你电脑里应该安装了pcl库,如果没有请自行安装,-lboost_system一句加上
find_package(Pangolin REQUIRED)
find_package(PCL 1.7 REQUIRED)

include_directories(
        ${PROJECT_SOURCE_DIR}
        ${PROJECT_SOURCE_DIR}/../../../
        ${PROJECT_SOURCE_DIR}/../../../include
        ${Pangolin_INCLUDE_DIRS}
        ${PCL_INCLUDE_DIRS}
)
add_definitions(${PCL_DEFINITIONS})
link_directories(${PCL_LIBRARY_DIRS})

set(LIBS
        ${OpenCV_LIBS}
        ${EIGEN3_LIBS}
        ${Pangolin_LIBRARIES}
        ${PCL_LIBRARIES}
        ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
        ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
        ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
        -lboost_system
        )
  • 修改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
  • 渣电脑请修改build_ros.sh
echo "Building ROS nodes"

cd Examples/ROS/ORB_SLAM2
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make 
  • 修改ROS_PACKAGE_PATH
gedit ~/.bashrc

在最下面添加

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的目录/ORB_SLAM2_modified/Examples/ROS
source ~/.bashrc
  • 开始编译ros接口
chmod +x build_ros.sh
./build_ros.sh
  • 确定电脑已经安装好Realsense D435i 的sdk,如果没有安装如下安装:
sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver 

Ubuntu 16 LTS:

sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
sudo apt-get update
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
  • 编译ROS Wrapper
mkdir realsense
cd realsense
mkdir src
cd src
git https://github.com/intel-ros/realsense.git
cd ..
catkin_make
source devel/setup.bash
  • 至此,如果一切没有问题了,请运行
roslaunch realsense2_camera rs_rgbd.launch
  • 新开终端,回到ORB_SLAM2_modified文件夹下,运行
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.bin Examples/RGB-D/TUM1.yaml

这里TUM1.yaml是我随便写的,请自行去ORB_SLAM2上下载realsense的yaml

在这里插入图片描述

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 53
    评论
ORB-SLAM2是一种广泛使用的视觉定位和地图构建算法,能够在实时环境下使用单目、双目和RGB-D相机进行定位和三维地图构建。在本文中,我们将讨论如何使用Intel Realsense D435i相机进行ORB-SLAM2实时定位与地图构建。 首先,Intel Realsense D435i相机是一种结构光相机,可以提供RGB和深度图像。通过该相机提供的深度图像,ORB-SLAM2算法可以计算出相机的运动以及环境中的特征点,并构建出三维地图。 在使用ORB-SLAM2前,我们需要安装OpenCV、Pangolin和其他一些依赖库,并将ORB-SLAM2代码编译为可执行文件。 通过运行ORB-SLAM2程序时,需要选择所使用的相机类型,在这里我们选择Intel Realsense D435i相机。然后,我们通过代码配置相机参数,如分辨率、深度图像的合理范围等。 接下来,我们可以选择使用单目、双目或RGB-D模式进行定位和地图构建。对于单目模式,我们只使用相机的RGB图像,并通过ORB-SLAM2算法实时定位和地图构建。对于双目和RGB-D模式,我们需要同时使用相机的RGB图像和深度图像,并通过计算立体匹配或深度图像对齐来获得更准确的定位和地图构建结果。 最后,ORB-SLAM2会实时计算相机的运动,并在地图中添加新的特征点和关键帧。通过地图和关键帧的维护,我们可以实现相机的实时定位,即使在没有先前观察到的场景中。 总之,通过使用Intel Realsense D435i相机和ORB-SLAM2算法,我们可以实时运行单目、双目和RGB-D模式下的定位和地图构建。这种能力在许多应用中都是非常有用的,如机器人导航、增强现实等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值