Realsense ROS D435i ORB_SLAM2
注:在执行./build.sh
之前先在 /ORB_SLAM2/include/System.h
文件开头的包含声明中添加#include <unistd.h>
,不然会编译时会报错error: usleep is not declared in this scope
安装eigen
1 2 3 4 5 | cd eigen mkdir build cd build cmake .. sudo make install |
1 | sudo apt-get install libsuitesparse-dev |
1 2 | cd ORB_SLAM2 . /build .sh |
1 2 3 4 | cd vim .bashrc export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~ /ORB_SLAM2/Examples/ROS source .bashrc |
错误
上述步骤中在执行./build_ros.sh会出现关于boost库的错误,在/ORB_SLAM2/Examples/ROS/ORB-SLAM2/CMakeLists.txt文件下修改,按照下述位置加上-lboost_system,然后重新执行./build_ros.sh
1 2 3 4 5 6 7 8 9 10 | // CMakeLists.txt文件部分内容节选如下 set (LIBS ${OpenCV_LIBS} ${EIGEN3_LIBS} ${Pangolin_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 // 此句加在这里 ) |
1 2 3 | cd ORB_SLAM2 chmod +x build_ros.sh . /build_ros .sh |
获取相机参数
1 2 3 | roslaunch realsense2_camera rs_rgbd.launch #新开终端运行以下命令: rostopic echo /camera/color/camera_info |
在ORB_SLAM2/Examples/RGB-D/下新建D435i.yaml文件,内容根据上述终端输出的参数修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | %YAML:1.0 #-------------------------------------------------------------------------------------------- # Camera Parameters. Adjust them! #-------------------------------------------------------------------------------------------- # Camera calibration and distortion parameters (OpenCV) Camera.fx: 612.8856811523438 Camera.fy: 612.9019775390625 Camera.cx: 322.271240234375 Camera.cy: 244.7898712158203 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: 30.797 # 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 |
摄像头节点发布的rgbd图和depth图话题名与ORB-SLAM2的订阅RGB图和depth图话题名不同,在ORB-SLAM2/Examples/ROS/ORB-SLAM2/src中修改ros_rgbd.cc的topic订阅:
1 2 | message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw" , 1); message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/aligned_depth_to_color/image_raw" , 1); |
1 2 3 | # 重新编译build_ros.sh chmod +x build_ros.sh . /build_ros .sh |
1 2 3 4 | # 启动相机 roslaunch realsense2_camera rs_rgbd.launch # 运行ORB_SLAM2 rosrun ORB_SLAM2 RGBD Vocabulary /ORBvoc .txt Examples /RGB-D/D435i .yaml |
参考
https://blog.csdn.net/ssstarr/article/details/121089975
https://blog.csdn.net/qq_33950926/article/details/121129028
https://blog.csdn.net/rosfreshman/article/details/116404077
作者:kay 出处:https://www.cnblogs.com/kay2018/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异