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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

cpp 一个文件分成两个文件写_为ORB-SLAM2写一个launch文件

發布時間:2024/9/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cpp 一个文件分成两个文件写_为ORB-SLAM2写一个launch文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在ros下啟動ORB-SLAM2的步驟比較繁瑣,比如運行單目版本,首先需要啟動相機,然后在新的命令窗口下打開ORB-SLAM2的相應節點,這個步驟需要輸入配置好的路徑等:

# ros 啟動orb-slam2的單目節點 $ rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE

為了以后偷懶,用一個launch文件來管理ORB-SLAM2的啟動過程,本文主要記錄完成這個簡單任務的過程。

一. 在ROS下建立orb_launch包

參考官方的教程,建立orb_launch package,其實就一行代碼:

$ cd ~/catkin_ws/src $ catkin_create_pkg orb_launch std_msgs rospy roscpp

然后在orb_launch文件夾下建立launch文件夾。

二.在launch文件夾下建立xxx.launch文件

我主要建立了三個launch文件,具體的功能是:

  • orb_slam2.launch : 單獨啟動orb_slam2 的某一個ros節點
  • orb_slam2_mono.launch : 啟動usb相機和orb_slam2 mono節點
  • orb_slam2_rgbd.launch : 啟動深度相機和orb_slam2 rgbd節點

具體代碼:

放單目版本的文件內容(每個版本都差不多,具體代碼我已經上傳到github:

weihaotobe94/ORB_SLAM2_launch?github.com

)weihaotobe94/ORB_SLAM2_launch)

orb_slam2_mono.launch :

<launch><!--定義全局參數--><arg name="rgb_image" default="/usb_cam/image_raw"/><arg name="path_to_vacabulary" default="/home/weihao/SLAM_Project/ORB_SLAM2-master/Vocabulary/ORBvoc.txt"/><arg name="path_to_settings" default="/home/weihao/SLAM_Project/ORB_SLAM2-master/Examples/Monocular/TUM1.yaml"/><!--啟動攝像頭節點(USB相機)--><include file="$(find usb_cam)/launch/usb_cam-test.launch"/><!--啟動ORB-SLAM2 RGBD--><node name ="Mono" pkg="ORB_SLAM2" type="Mono" args="$(arg path_to_vacabulary) $(arg path_to_settings)" respawn="true" output="screen"><remap from="/camera/image_raw" to="$(arg rgb_image)"/></node> </launch>

可以根據實際情況修改全局參數的配置。(我的相機輸出是640*480,因此直接調用了TUM1.yaml的配置文件,也可標定相機然后加載自己的配置文件,這里只是看一下效果,雖然實際差別可能不會太大,因為orb_slam2貌似對相機內參進行了在線優化)

三.運行效果

啟動上述節點

$ roslaunch orb_launch orb_slam2_mono.launch

實際運行效果如圖:

四.問題總結

  • roslaunch找不到orb_slam2 mono節點
  • 原因:ros找不到orb_slam2的ros包,需要將路徑放在.bashrc文件末尾

    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS

    然后"source ~/.bashrc",假如仍然不能正常運行,請參考:(十一)ORBSLAM2在ROS下運行-布布扣-bubuko.com

    2.launch文件的格式一定要寫對,經常忘了寫/等。

    3.本來打算用一個config/xx.yaml文件來管理所有參數,但node 的args傳遞參數沒完全明白,之后再改進。

    好長時間沒有搞ros了,寫十行代碼花了2個小時,以后還是要加強學習啊!!!!

    總結

    以上是生活随笔為你收集整理的cpp 一个文件分成两个文件写_为ORB-SLAM2写一个launch文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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