著作權宣告:本文為博主原創文章,未經博主允許不能隨意轉載,
本文鏈接:https://blog.csdn.net/AnChenliang_1002/article/details/109535355
最近由于科研的需要,要將VINS-mono與fast-planner結合并最終應用給到無人機中,下面記錄實作的程序:
本人的設備:
Ubuntu 16.04系統,Intel realsense D435i相機,VINS-mono演算法,fast-planner演算法,DJI M100無人機,
目錄
- 1.用自己的攝像頭D435i跑通vins-mono
- 2.跑通fast-planner
- 3.VINS-mono與fast-planner結合
- 3.1 修改fast-planner的launch檔案
- 3.2 使用VINS-mono運行fast-planner
- 4.將VINS-mono+fast-planner應用的無人機上
1.用自己的攝像頭D435i跑通vins-mono
實作程序參考:
從零開始使用Realsense D435i運行VINS-Mono
2.跑通fast-planner
參考我另一篇博客:
Fast-Planner安裝、環境配置以及問題解決
3.VINS-mono與fast-planner結合
本節需要做的就是把VINS-mono輸出的odometry話題和D435i相機發布的深度影像話題發布給fast-planner作為其里程計資訊和深度影像資訊的輸入,
3.1 修改fast-planner的launch檔案
打開fast-planner中的kino_replan.launch檔案(路徑為/home/acl/fast-planer_ws/src/Fast-Planner/fast_planner/plan_manage/launch其中acl為我的用戶名,fast-planer_ws為我存放fast-planner的作業空間):
step 1:
將 <arg name="odom_topic" value="/state_ukf/odom" />
改為 <arg name="odom_topic" value="/vins_wstimator/odometry" />
此為里程計資訊輸入話題,原版是/state_ukf/ofom,將其改為我的vins-mono的輸出里程計的話題,即/vins_wstimator/odometry,
step 2:
將 <arg name="depth_topic" value="/pcl_render_node/depthdi"/>
改為 <arg name="depth_topic" value="/camera/depth/image_rect_raw"/>
此為深度影像資訊話題,原版是/pcl_render_node/cloud,將其改為我使用的D435i相機發布的深度資訊話題,即/camera/depth/image_rect_raw,
3.2 使用VINS-mono運行fast-planner
step 1:用D435i運行VINS-mono
打開第一個終端:
cd catkin_ws
source devel/setup.bash
roslaunch realsense2_camera rs_camera.launch
打開第二個終端:
cd catkin_ws
source devel/setup.bash
roslaunch vins_estimator realsense_color.launch
打開第三個終端:
cd catkin_ws
source devel/setup.bash
roslaunch vins_estimator vins_rviz.launch
此時會發現vins-mono在D435i下的畫面,晃動相機使其初始化完成,
step 2:運行fast-planner
打開第四個終端:
cd fast-planer_ws/
source devel/setup.bash
roslaunch plan_manage rviz.launch
如果此時發現,打開fast-planner的rviz后,VINS-mono的rviz被殺死,出現此問題的原因及解決辦法見我另一篇博客:
解決同時啟動兩個rviz發生沖突的問題
然后打開第五個終端:
cd fast-planer_ws/
source devel/setup.bash
roslaunch plan_manage kino_replan.launch
step 3:修改fast-planner地圖
在fast-planner的rviz中,點擊左側的Mapping的+號,將simulation_map取消勾選,將real_map勾選,
此時就能看到fast-planner在VINS-mono加持下的運行結果,如下圖:

圖中帶顏色的圓柱形就是真實地圖中的障礙物了,
自此已經實作了VINS-mono+fast-planner的組合,下一步就是將其應用在無人機上,
4.將VINS-mono+fast-planner應用的無人機上
首先附上fast-planner的節點框架圖,從節點框架圖中,所有節點和話題之間的關系都一目了然,
在打開fast-planner之后,重新打開一個終端運行:
rosrun rqt_graph rqt_graph

從紅框中的部分可以看出fast_planner_node將/planning/replan話題發布給/traj_sever節點,traj_sever節點將/planning/pos_cmd發送給仿真控制器so3_cmd節點,so3cmd節點將控制指令/so3_cmd話題發送給無人機,
總結:
fast-planner輸出的話題既有軌跡又有對無人機的控制命令,具體需要使用哪個話題需要根據你自己的無人機控制器及自己的專案需求去確定,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/207565.html
標籤:其他
上一篇:華為 組播理論知識
下一篇:JAVA第十四課:網路編程
