RealSenseD435与ORB-SLAM2实现稠密建图
生活随笔
收集整理的這篇文章主要介紹了
RealSenseD435与ORB-SLAM2实现稠密建图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、RealSenseD435介紹
RealSenseD435是一款結構光相機,使用左右目相機和紅外光實現測距。有效測距范圍為0.2~10m
二、ORBSLAM2_with_pointcloud_map的安裝
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
clone代碼,無法下載的話,可以直接去https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map下載
- 解壓orbslam2_modified.zip文件,將這個文件夾下的ORB_SLAM2_modified文件夾拖出來覆蓋到根目錄下的ORB_SLAM2_modified,把這個文件夾下的g2o_with_orbslam2文件夾也拖到根目錄,之后這個文件夾內就沒東西了,刪了吧,如下:
- 原包ROS不友好,可以下載另外一個包,替換原包中的ORB_SLAM2_modified文件夾下的所有文件
git clone https://github.com/wylnii/ORBSLAM2_with_pointcloud_map.git
準備所需的庫,具體要求可以參考
https://blog.csdn.net/subiluo/article/details/88975979
需要注意的是,Eigen庫最好使用3.2.10,OPENCV博主使用的是3.4.5。
電腦中的版本可以使以下命令查看
pkg-config --modversion opencv
如果不想重裝Eigen庫的話,后面博主會介紹另一種方法
- 編譯g2o_with_orbslam2包
cd g2o_with_orbslam2
mkdir 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文件夾下
https://github.com/raulmur/ORB_SLAM2/tree/master/Vocabulary
- 保證opencv版本的一致,修改ORB_SLAM2_modified下以及ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2目錄下的CMakeLists.txt,這里統一修改為你電腦里的opencv版本
- 進入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.8 REQUIRED)include_directories(${PROJECT_SOURCE_DIR}${PROJECT_SOURCE_DIR}/../../../${PROJECT_SOURCE_DIR}/../../../include${Pangolin_INCLUDE_DIRS}${PCL_INCLUDE_DIRS}${EIGEN3_INCLUDE_DIR}
)
#message(FATAL_ERROR ${OpenCV_LIBS})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 # opencv_core3 #手動添加# opencv_imgproc3# opencv_highgui3)
- 修改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,修改ROS_PACKAGE_PATH
gedit ~/.bashrc
# 添加一下命令,如果以前配置過ORB_SLAM2的ROS的話,需要將以前的配置注釋掉
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的目錄/ORB_SLAM2_modified/Examples/ROS
- 開始編譯ros節點
chmod +x build_ros.sh
./build_ros.sh
- 安裝RealSense的SDK,參考以下網站的3\4部分
https://blog.csdn.net/weixin_43828675/article/details/115312472?spm=1001.2014.3001.5501
- 安裝RealSense的ROS功能包。
mkdir realsense
cd realsense
mkdir src
cd src
git clone https://github.com/intel-ros/realsense.git
cd ..
catkin_make
source devel/setup.bash
需要注意的是,SDK和ROS功能包的版本要對應,否則會報錯
此時可以使用刪除命令后,重新進行安裝
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
- 回到ORB_SLAM2_modified文件夾下,運行ORB_SLAM2,實現稠密建圖
roslaunch realsense2_camera rs_rgbd.launch
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.bin Examples/RGB-D/TUM1.yaml
三、最后一步運行時的錯誤
3.1 段錯誤(核心已轉儲)
原因是Eigen庫的問題,建議使用Eigen3.2.10
首先去Eigen官網上下載Eigen3.2.10,隨后按照以下網站的教程進行修改。我建議將所有的CMakeLisr.txt都進行修改。指明使用的Eigen庫的路徑。
https://blog.csdn.net/weixin_44457020/article/details/114778641
3.2 realsense相機的自校準
realsense提供的realsense_viewer可以對實現深度測量的左右目相近進行自校準,校準流程參考
https://www.bilibili.com/video/av757604103
3.3建圖效果很差
修改相機參數的yaml文件中的DepthMapFactor參數,博主使用的1000
3.4獲得rgb相機的內參
rostopic輸出的好像是相機出廠時,給定的相機參數。如果想獲得更加準確的話,需要進行標定。
總結
以上是生活随笔為你收集整理的RealSenseD435与ORB-SLAM2实现稠密建图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笑着哭最痛是哪首歌啊?
- 下一篇: ubuntu设置不同的eigen版本