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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

PX4飞控之导航及任务架构

發布時間:2024/4/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PX4飞控之导航及任务架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文重點介紹PX4飛控的Navigator和mission控制框架和邏輯。Navigator導航部分是無人機自主飛行控制的核心所在,其中包括自主起飛、自主降落、自主返航、自主任務以及GPS失效保護等各個部分。搞懂這個部分有助于理解無人機的自主飛行過程,閑話少說,上干貨。
PX4飛控的整體架構參見 Px4源碼框架結構圖

Navigator模塊主要功能在于確定任務類型、地理圍欄、失效保護,把任務航點更新后送給位置控制器。其中task_main函數是主函數。

在task_main 函數中,主要分為如下幾個部分:

當commander中的傳輸來的導航模式為mission時,依次運行mission.cpp中的三個函數:初始化on_activation()、主函數on_active()、退出函數on_inactive()。
對于mission模式的主函數on_active(),代碼邏輯如下:

mission的主要功能在于對航點數組pos_sp_triplet更新和賦值,航點數組包括previous、current、next三個航點,這一功能由函數set_mission_item()來實現,主要的邏輯為先從SD卡中讀取航點信息read_mission_item()賦值給結構體mission_item,然后再將當前航點復制給pos_sp_triplet.current

每當一個航點任務完成is_mission_item_reached()返回值為true,則指針++,讀取SD卡中的下一個航點。而判斷航點的是否完成由三個判斷條件:

航向控制由函數heading_sp_update()實現,將航向setpoint計算賦值給pos_sp_triplet.current.yaw,給到pos控制環,進行航向控制。

至此,導航完成了航點經緯高、航點類型、航向等信息的更新。而位置控制環以pos_sp_triplet為目標進行控制。
注:航點數組中的高度為絕對高度。

總結

以上是生活随笔為你收集整理的PX4飞控之导航及任务架构的全部內容,希望文章能夠幫你解決所遇到的問題。

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