【无人机自主导航7 SLAM】大疆Manifold2C平台及Intel Realsense D435i RGB-D相机实现ORB-SLAM3

转载自:https://blog.csdn.net/weixin_42646103/article/details/115678880?spm=1001.2014.3001.5501

【无人机自主导航7 SLAM】大疆Manifold2C平台及Intel Realsense D435i RGB-D相机实现ORB-SLAM3

 

分类专栏: 无人机 学习分享笔记 文章标签: linux 无人机 SLAM 自主导航

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42646103/article/details/115678880

 

35 篇文章 0 订阅

订阅专栏

D435i相机在前一章节内容已有提及。

一、环境配置与相机参数修正

相关内容参见之前的文章,本文测试的相机配置如下:

二、参看相机发布话题

2.1 直接获取

D435i相机为Intel realsense的产品,其提供的ORS功能包有相关的launch启动文件,可以从对应相机类型的launch中获知话题名。

2.2 间接获取

编译 Intel realsense功能包后,执行对应的launch文件,通过:

rostopic list

获取所有发布的话题,确定相机话题。

三、修改ORB-SLAM3的订阅话题

在ORB-SLAM3路径下:

catkin_ws/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src

ganahe@ganahe-Nitro-AN515-51:~/catkin_ws/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src$ tree
.
├—— AR
│   ├—— ros_mono_ar.cc
│   ├—— ViewerAR.cc
│   └—— ViewerAR.h
├—— ros_mono.cc
├—— ros_mono_inertial.cc
├—— ros_rgbd.cc
├—— ros_stereo.cc
└—— ros_stereo_inertial.cc

选择对应更改的文件,此处即对应相机的种类:

文件说明备注
ARAR体感相机文件目录暂时用不到,忽略
ros_mono.cc单目相机-
ros_mono_inertial.cc带有IMU的单目相机-
ros_rgbd.ccRGB-D深度相机一般有自带IMU,如D435i
ros_stereo.cc双目相机-
ros_stereo_inertial.cc双目IMU相机-

本文以Interl realsense D435i作视觉传感器数据来源,故编辑ros_rgbd.cc ,将话题订阅改为:

    //注释原代码
    // message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/rgb/image_raw", 100);
    // message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "camera/depth_registered/image_raw", 100);
	//更改话题订阅
        message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 100);
    message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/depth/image_rect_raw", 100);

根据相机参数文件发布的话题来修改即可。

三、运行ORB-SLAM3

运行ORB-SLAM3需要如下:

  • 修改的相机订阅话题:xxx.cc文件
  • 相机参数文件:/ORB_SLAM3/Examples/ROS/ORB_SLAM3/xxx.yaml
  • 启动文件:/realsense2_camera/launch/*.launch

运行步骤如下:

3.1 开启相机

roslaunch realsense2_camera rs_d435i.launch

3.2 启动ORB-SLAM3

cd ~/catkin_ws/
# 双目相机
rosrun ORB_SLAM3 ORBD /home/ganahe/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/ganahe/catkin_ws/src/ORB_SLAM3/Examples/ROS/RGB-D.yaml

原文链接:https://dgzc.ganahe.top/ganahe/2021/wrjzzdhsirdrxjsx.html

### 关于EUROC数据集单目相机与IMU融合的实现或教程 在研究视觉惯性里程计(Visual-Inertial Odometry, VIO)领域时,EUROC数据集因其高质量的数据记录而被广泛用于验证算法性能。对于单目相机与IMU融合的研究,可以参考以下内容: #### 1. **理论基础** IMU预积分技术是在Manifold上进行高效的最大后验估计的核心方法之一[^1]。这种方法通过将加速度计和陀螺仪测量值集成到李群上的状态表示中,减少了计算复杂度并提高了数值稳定性。 #### 2. **实验设置** 为了评估基于单目相机和IMU的VIO系统,通常会使用开源框架如ORB-SLAM2或其他扩展版本。具体来说,可以通过运行以下命令来处理EUROC数据集中的序列,并计算均方根绝对轨迹误差(Root Mean Square Absolute Trajectory Error, RMS ATE)。此过程涉及配置参数文件以及时间戳文件的指定[^2]: ```bash ./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ./Dataset/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo ``` 需要注意的是,尽管上述例子针对双目摄像头进行了说明,但对于单目情况下的调整主要集中在修改配置文件以适应单一图像输入源。 #### 3. **软件开发环境搭建** 当利用ROS平台开展工作时,可能还需要额外编译某些节点以便支持特定功能需求。例如,在`ORB_SLAM2/Examples/ROS/ORB_SLAM2`路径下编辑`CMakeLists.txt`文件,加入下面几行代码能够启用摄像机校准工具[^3]: ```cmake # Node for capture images for camera calibration rosbuild_add_executable(CameraCapture src/ros_camera_capture.cc ) target_link_libraries(CameraCapture ${LIBS} ) ``` 这一步骤有助于采集同步图像供后续分析使用。 #### 4. **实际应用案例** 除了前述提到的技术细节之外,《nuScenes-Mini 数据集简介》提供了有关如何准备三维目标检测所需资源的信息[^4]。虽然该文档重点讨论了多传感器协同工作的场景,但它同样适用于理解不同模态间交互机制的基础原理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值