日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始使用Realsense D435i运行VINS-Mono

發布時間:2025/3/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始使用Realsense D435i运行VINS-Mono 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從零開始使用Realsense D435i運行VINS-Mono

  • 從零開始使用Realsense D435i運行VINS-Mono
    • (1)安裝測試librealsense SDK 2.0
    • (2)安裝測試realsense
    • (3)安裝測試VINS-Mono
    • (4)在D435i上運行VINS-Mono

從零開始使用Realsense D435i運行VINS-Mono

這次測試D435i過程還是比較順利的,僅僅花了一個下午就搞定了,比之前測試ZR300和SR300要好多了,下面是我用D435i跑VINS-Mono的全過程(沒啥技術含量),首先說下我的電腦配置,
我的電腦的配置:
CPU:Intel? Core? i5-4590 CPU @ 3.30GHz × 4
內存:11.7 GiB
顯卡:GeForce GTX 750 Ti/PCIe/SSE2
系統版本:Ubuntu16.04
系統內核:4.15.0-47-generic(命令:cat /proc/version)
ROS版本:Kinetic

(1)安裝測試librealsense SDK 2.0

librealsense SDK相當于相機的驅動,SR300和ZR300的支持驅動是librealsense SDK 1.0,而D435i是librealsense SDK 2.0,貌似一臺電腦上不能同時裝兩個SDK,所以要注意下。SDK的安裝方式有兩種,一個是從源碼編譯安裝,一個是直接命令行安裝,之前librealsense SDK 1.0我采用的是從源碼編譯安裝,感覺比較麻煩,所以這次用嘗試下了直接命令行安裝,沒想到出乎意料地順利。
官方安裝教程Intel? RealSense? SDK 2.0,這里我把當回搬運工:

  • 注冊公匙
  • sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
  • 添加repositories(Ubuntu 16 LTS)
  • sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
  • 安裝library
  • sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils
  • 安裝developer和debug packages
  • sudo apt-get install librealsense2-dev sudo apt-get install librealsense2-dbg
  • 測試SDK
  • realsense-viewer

    運行完上面測試命令之后會彈出來一個看上去還滿酷的SDK界面,打開三個按鈕可以看到RGB、雙目和IMU的結果就證明你的SDK裝成功了。


    (2)安裝測試realsense

    這個realsense指的是對應的realsense相機的ROS包,官方教程如下ROS Wrapper for Intel? RealSense? Devices
    這里就很簡單啦,先進入你的ROS工作空間

    cd ~/catkin_ws/src git clone https://github.com/intel-ros/realsense.git cd .. catkin_make rospack profile source devel/setup.sh

    然后運行(不加filters:=pointcloud好像沒有點云的節點)

    roslaunch realsense2_camera rs_camera.launch filters:=pointcloud

    打開rviz,添加PointCloud2的mudule就可以看到點云,如下


    (3)安裝測試VINS-Mono

    這一步先用數據集測試VINS-Mono
    同樣,進入你的ROS工作空間

    cd ~/catkin_ws/src git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git cd .. catkin_make source ~/catkin_ws/devel/setup.bash

    這里編譯可能需要安裝ceres,安裝ceres的步驟自行百度就好,編譯源碼的同時可以把數據集給下了,測試用的bag文件會比較方便,數據集地址

    然后打開三個terminal,分別運行

    roslaunch vins_estimator euroc.launch roslaunch vins_estimator vins_rviz.launch rosbag play MH_01_easy.bag

    結果如下圖

    有趣的是,數據集里面可以看到測試人員開始的時候拿著攝像頭前后左右晃了晃,這個應該是給IMU初始化用的。


    (4)在D435i上運行VINS-Mono

    前面都測試好之后就可以再D435i上運行VINS-Mone了,這里特地感謝下博客如何用Realsense D435i運行VINS-Mono等VIO算法 獲取IMU同步數據的作者Manii,讓這個過程變得非常簡單,如果大家需要對這個過程有一個更加詳細的了解可以去參考那個博客,研究出來下面的步驟還是挺費時間的,這里我簡單說下流程:

  • 修改realsense包里的rs_camera.launch文件
  • 第一處,修改unite_imu_method如下,這里是讓IMU的角速度和加速度作為一個topic輸出

    <arg name="unite_imu_method" default="copy"/>

    第二處,修改enable_sync參數為true,這里是開機相機和IMU的同步

    <arg name="enable_sync" default="true"/>
  • 修改VINS-Mono包里的realsense_color_config.yaml文件
  • 第一處,修改訂閱的topic

    imu_topic: "/camera/imu" image_topic: "/camera/color/image_raw"

    第二處,修改相機內參,這里先再次打開運行realsesne包,然后可以通過如下命令獲取相機內參

    rostopic echo /camera/color/camera_info

    第三處,IMU到相機的變換矩陣,這里我根據注釋的提示修改成2

    # Extrinsic parameter between IMU and Camera. estimate_extrinsic: 2 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.# 1 Have an initial guess about extrinsic parameters. We will optimize around your initial guess.# 2 Don't know anything about extrinsic parameters. You don't need to give R,T. We will try to calibrate it. Do some rotation movement at beginning. #If you choose 0 or 1, you should write down the following matrix.

    第四處,IMU參數,這里我全部修改注釋給的參數

    #imu parameters The more accurate parameters you provide, the better performance acc_n: 0.2 # accelerometer measurement noise standard deviation. #0.2 gyr_n: 0.05 # gyroscope measurement noise standard deviation. #0.05 acc_w: 0.02 # accelerometer bias random work noise standard deviation. #0.02 gyr_w: 4.0e-5 # gyroscope bias random work noise standard deviation. #4.0e-5 g_norm: 9.80 # gravity magnitude

    第五處,是否需要在線估計同步時差,根據上述博主的建議這里選擇不需要

    #unsynchronization parameters estimate_td: 0 # online estimate time offset between camera and imu td: 0.000 # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)

    第六處,相機曝光改成全局曝光

    #rolling shutter parameters rolling_shutter: 0 # 0: global shutter camera, 1: rolling shutter camera rolling_shutter_tr: 0 # unit: s. rolling shutter read out time per frame (from data sheet).

    3. 打開攝像頭,運行VINS-Mono

    roslaunch realsense2_camera rs_camera.launch roslaunch vins_estimator realsense_color.launch roslaunch vins_estimator vins_rviz.launch

    結果如下:

    步驟到此就結束啦,五一假期閑著沒事在實驗室測試了下VINS,之后好好學習下原理讀下源碼,如果可以的話應用到自己項目中來。

    此外,對SLAM算法感興趣的同學可以看考我的博客SLAM算法總結——經典SLAM算法框架總結

    總結

    以上是生活随笔為你收集整理的从零开始使用Realsense D435i运行VINS-Mono的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。