ORB-SLAM3运行Realsense T265

  • 概述

    ORB-SLAM3运行开源数据集可以正常运行,但是运行普通的USB相机与IMU录制的数据集,无法正常运行和建立初始地图。录制的数据集存在时间戳混乱,使用相机与IMU标定标定的时间戳也只是标定时的平均时间漂移。无论哪个视觉SLAM算法都需要良好的时空对齐。因此如果运行https://gitee.com/hu-cheng123/orb-slam3_-wt算法出现漂移,先检查数据集的时间戳和外参输入是否准确。

    本指南旨在帮助使用Intel Realsense T265设备上配置并运行改进的ORB-SLAM3算法,因其内置的精确同步机制,能有效避免上述问题。推荐使用我录制的数据集,在性能比较强和硬盘读写速度快的电脑上运行,然后录制其他场景的数据集进行测试。

    通过百度网盘分享的文件:room2_20…

    链接:https://pan.baidu.com/s/1jDDOcHArLshxvd0zJRAQBg?pwd=tnck

    提取码:tnck

    复制这段内容打开「百度网盘APP 即可获取」

    1. 环境准备与基础配置

    1.1 系统与依赖项检查

    确认Ubuntu版本与系统要求:Ubuntu18.04+ROS(melodic)版本测试通过

    安装必要的开发工具与库:OpenCV 3.3.2+eigen 3.3.4+Pangolin 0.4测试通过

    1.2 安装改进的ORB-SLAM3算法

    克隆算法仓库

    git clone https://gitee.com/hu-cheng123/orb-slam3_-wt.git
    

    切换到主分支,主分支是稳定的代码

    按照安装运行说明.txt和README.md编译代码

    1.3 安装ORB-SLAM3 ROS示例程序(可选)

    配置ROS环境:

    gedit ~/.bashrc
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS # 替换PATH路径为ORB-SLAM-WT安装的位置
    

    编译ORB-SLAM3的ROS示例程序

    ./build_ros.sh
    

    2. Realsense T265的安装与配置

    2.1 安装Intel Realsense SDK 2.0

    git clone -b v2.48.0 https://github.com/IntelRealSense/librealsense
    

    推荐源码安装,测试v2.48.0正常,其他高版本可能不兼容T265,安装依赖

    sudo apt-get install libudev-dev pkg-config libgtk-3-dev
    sudo apt-get install libusb-1.0-0-dev pkg-config
    sudo apt-get install libglfw3-dev
    sudo apt-get install libssl-dev
    

    安装权限脚本

    sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
    sudo udevadm control --reload-rules && udevadm trigger 
    

    编译安装

    mkdir build
    cd build
    cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
    sudo make uninstall
    make clean && make -j8
    sudo make install
    

    测试安装

    realsense-viewer
    

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2.2 安装Realsense ROS Wrapper

    先创建一个catkin的工作空间

    mkdir -p catkin_ws/src
    cd src
    

    克隆代码,注意 Realsense ROS Wrapper需要与Intel Realsense SDK 对应,dynamic_reconfigure是动态调参的参数配置,可GUI 调参

    git clone -b v2.3.1 https://github.com/IntelRealSense/realsense-ros.git
    git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
    

    编译安装,编译为Release版本

    catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
    

    测试安装,先加载ROS环境,PATH替换实际catkin_ws位置

    source PATH/devel/setup.bash
    roslaunch realsense2_camera rs_camera.launch
    

    查看发布的话题

    rostopic list
    

    发现没有发布/sensor_msg/imu类型 因为默认不开启

    该SDK将IMU数据分别发布为加速度计和陀螺仪数据,将rs_camera.launch或者t265.launch文件

    <arg name="enable_infra" default="true"/><arg name="enable_infra1" default="true"/><arg name="enable_infra2" default="true"/><arg name="unite_imu_method" default="copy"/><!-- linear_interpolation -->
    

    开启这些arg参数,才会发布鱼眼相机与IMU的数据,由于加速度计只有62hz,但是需要以陀螺仪200hz频率发布,提供两种方式,copy是复制上一个时刻的值,linear_interpolation 是线性插值。

    2.3 录制T265设备数据集

    使用realsense-viewer录制,录制比较稳定,但是无法直接录制IMU数据,需要后续处理。(不太推荐)

    使用rosbag录制,可以录制IMU数据,但是可能掉帧,录制的时候不要CPU超负荷,硬盘读写速度也会影响。

    rosbag record /camera/fisheye1/image_raw /camerfisheye2/image_raw /camera/imu -o cam_imu
    

    3. 配置ORB-SLAM3以适配Realsense T265

    3.1 修改启动配置文件

    修改PATH/Examples/ROS/ORB_SLAM3的launch文件,替换voc cam save_path为ORB-SLAM3实际路径

    <launch>
        <arg name="voc" default = "/home/hucheng/slam_ws/ORB_SLAM3/Vocabulary/ORBvoc.bin" />
        <arg name="cam" default="/home/hucheng/slam_ws/ORB_SLAM3/Examples/Monocular-Inertial/RealSense_T265.yaml" />
        <arg name="sbEqu" default="false" />
        <arg name="save_path" default="/home/hucheng/slam_ws/ORB_SLAM3/results" />
        
        <node name="Mono_Inertial" pkg="ORB_SLAM3" type="Mono_Inertial" args="$(arg voc) $(arg cam) $(arg sbEqu) $(arg save_path)" output="screen">
    
        <remap from="/imu" to="/camera/imu"/>
        <remap from="/camera/left/image_raw" to="/camera/fisheye1/image_raw"/>
    
        </node>
    
    </launch>
    

    设置ROS话题,使用remap重映射话题名

    <remap from="/imu" to="/camera/imu"/>
    <remap from="/camera/left/image_raw" to="/camera/fisheye1/image_raw"/>
    

    3.2 校正内外参数

    Realsense T265 提供示例可以获取提前标定的内参

    rs-enumerate-devices -c
    

    按照https://wit-motion.yuque.com/xkhxbg/an9tnv/lxmck8ariaixzfez 方式使用kalibr标定,写入RealSense_T265.yaml配置参数。标定结果应该与通过示例获取的内参基本一致,但是可能更准确。

    4. 运行ORB-SLAM3

    4.1 单目+IMU模式运行

    roslaunch ORB_SLAM3 T265_Mono_Inertial.launch
    rosbag play  room2_2024-05-28-19-27-02.bag
    

    4.2 双目+IMU模式运行

    roslaunch ORB_SLAM3 T265_Stereo_Inertial.launch
    rosbag play  room2_2024-05-28-19-27-02.bag
    

    运行room2_2024-05-28-19-27-02.bag 录制的视频

    5. 注意事项

    算法初始化需要一定时间,需要一定的激活IMU,因此需要在初始化时简单的慢速平移,持续约5s,在初始化时存在足够的匹配。

    相机频率较低(10hz以下)会存在静止时漂移,频率30hz,CPU负担重,使用率400%,算法存在四个线程一直在循环。

    双目版本鲁棒性更强,但是算力要求高,因此容易丢帧,可能导致漂移。
    8d-4571-9673-d4d8a60bc0b7.mp4)

    5. 注意事项

    算法初始化需要一定时间,需要一定的激活IMU,因此需要在初始化时简单的慢速平移,持续约5s,在初始化时存在足够的匹配。

    相机频率较低(10hz以下)会存在静止时漂移,频率30hz,CPU负担重,使用率400%,算法存在四个线程一直在循环。

    双目版本鲁棒性更强,但是算力要求高,因此容易丢帧,可能导致漂移。

  • 37
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了配置ORB-SLAM3环境,你可以按照以下步骤进行操作: 1. 首先,你需要克隆ORB-SLAM3的GitHub仓库。你可以使用以下命令将仓库克隆到本地: ``` git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3 ``` 2. 进入ORB-SLAM3目录,并给build.sh脚本添加执行权限: ``` cd ORB_SLAM3 chmod +x build.sh ``` 3. 运行build.sh脚本以构建ORB-SLAM3库: ``` ./build.sh ``` 4. 如果你在安装Eigen3时使用了默认路径(/usr/include/eigen3),可能会导致ORB-SLAM3无法检测到Eigen3库,从而导致编译错误。为了解决这个问题,你可以使用源码安装Eigen3,并将其安装到/usr/local/include/eigen3/路径下。 这样,你就完成了ORB-SLAM3的环境配置。如果你还需要使用realsense摄像头,你可以运行`roslaunch realsense2_camera rs_t265.launch`命令来启动realsense摄像头,并使用rviz进行可视化。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [ORB-SLAM3环境配置-可能是最全的配置过程](https://blog.csdn.net/weixin_43631972/article/details/127894753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ORB-SLAM3配置及安装教程(2023.3)](https://blog.csdn.net/shadowmimii/article/details/129472719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值