設(shè)(Pattern Presets)與 ArduPilot 調(diào)參/機(jī)架/流速率支持)
無(wú)人機(jī)智能硬件【免費(fèi)下載鏈接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)項(xiàng)目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol點(diǎn)擊查看免費(fèi)下載本篇技術(shù)指南圍繞 QGroundControl v4.0 的補(bǔ)充發(fā)布說(shuō)明展開(kāi)聚焦兩大核心主題模式預(yù)設(shè)Pattern Presets這一新特性以及針對(duì) ArduPilotArduCopter/ArduRover的PID 調(diào)參、基礎(chǔ)調(diào)優(yōu)選項(xiàng)、機(jī)架設(shè)置 UI、ChibiOS 固件/引導(dǎo)程序板卡連接支持、可配置 Mavlink 流速率等五項(xiàng)功能增強(qiáng)。閱讀本文后你將掌握模式預(yù)設(shè)的創(chuàng)建、保存、加載與刪除的完整操作流程及其底層實(shí)現(xiàn)原理并了解 v4.0 中 ArduPilot 相關(guān)新功能的實(shí)際應(yīng)用場(chǎng)景與對(duì)應(yīng)源碼支撐。一、文檔背景與定位本文內(nèi)容整理自 QGroundControl v4.0 發(fā)布說(shuō)明的補(bǔ)充章節(jié)原文檔位于 docs/ko/qgc-user-guide/releases/stable_v4.0_additional.md。這類(lèi)additional附加文檔用于記錄在正式版發(fā)布時(shí)尚未并入主文檔的新特性說(shuō)明其中不少內(nèi)容會(huì)在后續(xù)版本中遷移至主文檔因此讀者在查看當(dāng)前倉(cāng)庫(kù)文檔結(jié)構(gòu)時(shí)可以在 docs 目錄下的多語(yǔ)言版本中找到同名文件如docs/zh/qgc-user-guide/releases/stable_v4.0_additional.md、docs/tr/qgc-user-guide/releases/stable_v4.0_additional.md。值得注意的是該文檔僅為 v4.0 補(bǔ)充說(shuō)明的一部分其他 4.0 新增功能如多飛行器列表、遙控器無(wú)線電設(shè)置等被記錄在獨(dú)立文檔中本文聚焦于文檔明確列出的模式預(yù)設(shè)與ArduPilot 相關(guān)功能兩項(xiàng)主題。二、模式預(yù)設(shè)Pattern Presets—— 將常用配置保存為命名預(yù)設(shè)2.1 功能概述與適用范圍模式預(yù)設(shè)是 QGroundControl v4.0 引入的規(guī)劃視圖Plan View新特性可以將模式項(xiàng)Pattern Item的一組常用設(shè)置保存為具有名稱(chēng)的預(yù)設(shè)Preset在下次創(chuàng)建新的模式時(shí)直接復(fù)用免去重復(fù)配置。從源碼結(jié)構(gòu)看該功能定義在 src/MissionManager/ComplexMissionItem.h 中ComplexMissionItem復(fù)雜任務(wù)項(xiàng)基類(lèi)提供了presetsSupported是否支持預(yù)設(shè)、presetNames預(yù)設(shè)名稱(chēng)列表、loadPreset/savePreset/deletePreset等接口以及presetNamesChanged信號(hào)// src/MissionManager/ComplexMissionItem.h關(guān)鍵接口節(jié)選 Q_PROPERTY(bool presetsSupported READ presetsSupported CONSTANT) Q_PROPERTY(QStringList presetNames READ presetNames NOTIFY presetNamesChanged) /// Loads the specified preset into the complex item. virtual void loadPreset(const QString name); /// Saves the current state of the complex item as the named preset. /// param name User visible name for preset. Will replace existing preset if already exists. virtual void savePreset(const QString name); /// Returns the name of the settings group for presets. /// Empty string signals no support for presets. virtual QString presetsSettingsGroup(void) { return QString(); }基類(lèi)通過(guò)presetsSettingsGroup()是否返回非空字符串來(lái)決定是否支持預(yù)設(shè)presetsSupported默認(rèn)返回空字符串即表示不支持。在當(dāng)前版本中僅有測(cè)繪Survey與走廊掃描CorridorScan兩類(lèi)模式實(shí)現(xiàn)了該接口src/MissionManager/SurveyComplexItem.hsettingsGroup SurveyjsonComplexItemTypeValue surveysrc/MissionManager/CorridorScanComplexItem.hsettingsGroup CorridorScanjsonComplexItemTypeValue CorridorScan。這也是主文檔中目前僅在測(cè)繪Survey模式中支持其他模式的支持正在開(kāi)發(fā)中這一提示的源碼依據(jù)——文檔編寫(xiě)時(shí) CorridorScan 的預(yù)設(shè)實(shí)現(xiàn)與 Survey 一同落地規(guī)劃視圖中模式項(xiàng)頂部的預(yù)設(shè)管理入口由 src/PlanView/TransectStyleComplexItemTabBar.qml 提供Tab 欄中的PatternPresets.png圖標(biāo)標(biāo)簽頁(yè)即預(yù)設(shè)管理頁(yè)。2.2 預(yù)設(shè)管理界面操作繼承自原文檔在模式項(xiàng)編輯器的頂部新增了一個(gè)預(yù)設(shè)管理選擇控件提供以下操作自定義Custom手動(dòng)設(shè)置全部參數(shù)選擇此項(xiàng)表示不使用任何預(yù)設(shè)所有參數(shù)手動(dòng)逐項(xiàng)指定保存預(yù)設(shè)Save Preset將當(dāng)前模式的全部設(shè)置以命名預(yù)設(shè)的形式保存刪除預(yù)設(shè)Delete Preset刪除當(dāng)前選中的預(yù)設(shè)預(yù)設(shè)Presets列表列出可用于該模式的所有已保存預(yù)設(shè)供直接選用。2.3 預(yù)設(shè)的創(chuàng)建與更新點(diǎn)擊將設(shè)置保存為預(yù)設(shè)Save Settings as Preset后界面會(huì)提示輸入預(yù)設(shè)名稱(chēng)保存后該名稱(chēng)出現(xiàn)在預(yù)設(shè)列表中。更新已有預(yù)設(shè)在預(yù)設(shè)列表中選中某個(gè)已有預(yù)設(shè)使其處于當(dāng)前選中狀態(tài)再點(diǎn)擊將設(shè)置保存為預(yù)設(shè)即可用當(dāng)前參數(shù)覆蓋同名預(yù)設(shè)同名覆蓋邏輯在源碼savePreset的注釋中亦有說(shuō)明Will replace existing preset if already exists.。關(guān)于相機(jī)的可選行為保存預(yù)設(shè)時(shí)可以選擇是否將**當(dāng)前選定的相機(jī)Camera**一并存入預(yù)設(shè)若選擇不保存相機(jī)加載預(yù)設(shè)時(shí)使用當(dāng)前飛行器配置的相機(jī)且在使用預(yù)設(shè)期間可以自由切換相機(jī)若選擇保存相機(jī)適用于同一預(yù)設(shè)會(huì)在不同時(shí)間配合不同相機(jī)使用之外的絕大多數(shù)場(chǎng)景——即你通常用同一架飛行器搭配同一套預(yù)設(shè)時(shí)建議勾選保存相機(jī)以保證預(yù)設(shè)完整復(fù)現(xiàn)。2.4 查看預(yù)設(shè)的精確設(shè)置要查看某個(gè)預(yù)設(shè)的具體參數(shù)值可以切換回自定義Custom顯示所有設(shè)置模式此時(shí)編輯器會(huì)展開(kāi)該預(yù)設(shè)對(duì)應(yīng)的全部設(shè)置項(xiàng)查看完畢后再切換回命名預(yù)設(shè)即可繼續(xù)使用。2.5 預(yù)設(shè)與計(jì)劃文件Plan 文件的關(guān)系當(dāng)前選中的預(yù)設(shè)名稱(chēng)會(huì)隨計(jì)劃Plan文件一并保存因此當(dāng)計(jì)劃文件被重新加載時(shí)會(huì)自動(dòng)重新選中該預(yù)設(shè)。??版本差異注意預(yù)設(shè)是與 QGroundControl版本相關(guān)的不同版本對(duì)設(shè)置項(xiàng)的序列化方式可能不同。如果你與他人共享包含預(yù)設(shè)的計(jì)劃文件而對(duì)方擁有同名但設(shè)置不同的預(yù)設(shè)可能會(huì)在加載時(shí)產(chǎn)生錯(cuò)誤行為incorrect behavior——例如對(duì)方設(shè)備上相同名稱(chēng)的預(yù)設(shè)參數(shù)不同導(dǎo)致模式內(nèi)容與預(yù)期不符。2.6 源碼級(jí)原理預(yù)設(shè)如何存儲(chǔ)與加載在 src/MissionManager/ComplexMissionItem.cc 中可以看到預(yù)設(shè)的持久化實(shí)現(xiàn)存儲(chǔ)格式預(yù)設(shè)以 QSettings 的分組Group 鍵Key形式保存在系統(tǒng)配置中// src/MissionManager/ComplexMissionItem.cc QStringList ComplexMissionItem::presetNames(void) { QStringList names; QSettings settings; settings.beginGroup(presetsSettingsGroup()); // 例如 Survey 或 CorridorScan settings.beginGroup(_presetSettingsKey); // _presets return settings.childKeys(); // 返回所有預(yù)設(shè)名稱(chēng) }_presetSettingsKey定義為_(kāi)presets見(jiàn) src/MissionManager/ComplexMissionItem.h也就是說(shuō)預(yù)設(shè)存儲(chǔ)在形如Survey/_presets/預(yù)設(shè)名的配置路徑下。保存_savePresetJson將預(yù)設(shè)的 QJsonObject由_saveCommon/TransectStyleComplexItem::_save序列化而來(lái)包含版本號(hào)、類(lèi)型、網(wǎng)格角度、交替航線、多邊形形狀等字段通過(guò)QCborMap::fromJsonObject(...).toCborValue().toVariant()轉(zhuǎn)換為 CBOR 變體后寫(xiě)入 QSettings代碼中還有一段被#if 0注釋掉的邏輯用于將預(yù)設(shè)導(dǎo)出為 JSON 文件以便打包為內(nèi)置預(yù)設(shè)built-in preset不可刪除說(shuō)明該能力已預(yù)留但默認(rèn)未啟用。加載_loadPresetJson從 QSettings 讀回?cái)?shù)據(jù)并還原為 QJsonObject然后Survey 模式調(diào)用_loadV4V5(presetObject, 0, errorString, 5, true /* forPresets */)見(jiàn) src/MissionManager/SurveyComplexItem.cc即按 v4/v5 格式解析并重建測(cè)線CorridorScan 模式調(diào)用_loadWorker(...)見(jiàn) src/MissionManager/CorridorScanComplexItem.cc加載完成后調(diào)用_rebuildTransects()重新生成航線。刪除保護(hù)deletePreset會(huì)先檢查預(yù)設(shè)名是否屬于QGCCorePlugin::instance()-options()-surveyBuiltInPresetNames()中的內(nèi)置預(yù)設(shè)——內(nèi)置預(yù)設(shè)不可刪除刪除時(shí)會(huì)彈出提示%1 is a built-in preset which cannot be deleted.。界面聯(lián)動(dòng)預(yù)設(shè) Tab 頁(yè)與編輯器之間通過(guò)presetNamesChanged信號(hào)聯(lián)動(dòng)每次保存/刪除預(yù)設(shè)后都會(huì)發(fā)出該信號(hào)刷新 QML 界面中的預(yù)設(shè)下拉列表。2.7 使用建議小結(jié)場(chǎng)景建議固定機(jī)位、固定相機(jī)的常規(guī)測(cè)繪作業(yè)保存預(yù)設(shè)時(shí)勾選保存相機(jī)一鍵復(fù)現(xiàn)整套配置同一預(yù)設(shè)要配合多種相機(jī)使用不保存相機(jī)加載時(shí)使用當(dāng)前相機(jī)與團(tuán)隊(duì)共享計(jì)劃文件注意接收方同名預(yù)設(shè)可能不同必要時(shí)提示對(duì)方刪除/重命名沖突預(yù)設(shè)想確認(rèn)預(yù)設(shè)內(nèi)部參數(shù)切回自定義顯示所有設(shè)置查看后再切回命名預(yù)設(shè)三、ArduPilotPID 調(diào)參支持CopterQGroundControl v4.0 為 ArduPilot 的 ArduCopter 機(jī)型新增了PID 調(diào)參PID Tuning支持。在飛控設(shè)置Vehicle Setup的 Tuning 頁(yè)面中可以針對(duì) Roll滾轉(zhuǎn)、Pitch俯仰、Yaw偏航三個(gè)軸分別調(diào)整角度環(huán)Angle Loop與速率環(huán)Rate Loop的 PID 參數(shù)。界面核心元素對(duì)應(yīng)倉(cāng)庫(kù)資源 docs/assets/daily_build_changes/arducopter_pid_tuning.jpgTuning Axis調(diào)優(yōu)軸Roll / Pitch / Yaw 軸切換Tuning Values調(diào)優(yōu)參數(shù)角度環(huán)與速率環(huán)的 P / I / D 值例如ATC_ANG_RLL_P角度環(huán)滾轉(zhuǎn) P、ATC_RAT_RLL_P速率環(huán)滾轉(zhuǎn) P、ATC_RAT_RLL_I速率環(huán)滾轉(zhuǎn) I、ATC_RAT_RLL_D速率環(huán)滾轉(zhuǎn) D并支持參數(shù)增減按鈕與百分比調(diào)整下拉框響應(yīng)曲線圖實(shí)時(shí)顯示 Roll / Roll Rate 的 Response響應(yīng)與 Command指令曲線便于對(duì)比指令與實(shí)際姿態(tài)響應(yīng)判斷振蕩、超調(diào)等調(diào)參問(wèn)題參數(shù)剪貼板Clipboard提供當(dāng)前軸參數(shù)的存儲(chǔ) / 恢復(fù)按鈕方便在調(diào)參前后備份與還原圖表控制Clear清空與 Start開(kāi)始按鈕控制曲線記錄過(guò)程頂部Advanced高級(jí)復(fù)選框用于展開(kāi)/收起高級(jí)參數(shù)項(xiàng)。圖中左側(cè)為飛控設(shè)置導(dǎo)航欄當(dāng)前選中 Tuning 選項(xiàng)右側(cè)中部為滾轉(zhuǎn)軸的響應(yīng)曲線對(duì)比區(qū)域。截圖說(shuō)明該功能在 4.0 中已具備完整的調(diào)參工作臺(tái)形態(tài)可在實(shí)際飛行測(cè)試中邊觀察響應(yīng)曲線邊調(diào)整參數(shù)。四、ArduPilot額外的基礎(chǔ)調(diào)優(yōu)選項(xiàng)Copter除 PID 調(diào)參外v4.0 還為 ArduCopter 提供了額外的基礎(chǔ)調(diào)優(yōu)Basic Tuning選項(xiàng)位于 Tuning 頁(yè)面的基礎(chǔ)區(qū)域?qū)?yīng)圖片 docs/assets/daily_build_changes/arducopter_basic_tuning.jpgSpin While Armed上鎖旋轉(zhuǎn)調(diào)節(jié)電機(jī)在 armed上鎖/解鎖待飛狀態(tài)下的轉(zhuǎn)動(dòng)幅度用于指示當(dāng)前處于 armed 狀態(tài)便于操作者確認(rèn)上鎖成功Minimum Thrust最小推力調(diào)節(jié)飛行器開(kāi)始移動(dòng)所需的最小推力值用于消除電機(jī)推力響應(yīng)死區(qū)、提升懸停與低速操控手感。兩個(gè)選項(xiàng)均以帶說(shuō)明文字的滑塊控件呈現(xiàn)拖動(dòng)滑塊即可修改對(duì)應(yīng) ArduPilot 參數(shù)無(wú)需手動(dòng)打開(kāi)全參數(shù)表查找。五、ArduPilot機(jī)架設(shè)置 UICopter / Roverv4.0 為 ArduCopter 與 ArduRover 提供了新的Frame機(jī)架設(shè)置界面對(duì)應(yīng)圖片 docs/assets/daily_build_changes/arducopter_setup_frame.jpg。界面以可視化卡片方式列出可選機(jī)架類(lèi)型支持直接點(diǎn)選多旋翼類(lèi)Quad四軸含 X / 型等子類(lèi)型、Hexa六軸、Octa八軸、OctaQuad八軸四旋翼復(fù)合布局、Y6、Tri三軸其他類(lèi)SingleCopter單旋翼、CoaxCopter共軸雙旋翼等早期/特殊機(jī)架以帶問(wèn)號(hào)的占位圖標(biāo)呈現(xiàn)選中后可在下拉框中進(jìn)一步選擇對(duì)應(yīng)機(jī)架子類(lèi)型頁(yè)面上方會(huì)顯示當(dāng)前已設(shè)置的機(jī)架類(lèi)別說(shuō)明如圖中已設(shè)為 Quad / X 型機(jī)架。這一 UI 降低了機(jī)架選擇的門(mén)檻用戶(hù)無(wú)需記憶FRAME_CLASS/FRAME_TYPE等參數(shù)的數(shù)值編碼直接在圖形化界面中匹配實(shí)際機(jī)體即可完成配置避免因選錯(cuò)機(jī)架類(lèi)型導(dǎo)致解鎖失敗或異常飛行特性。六、ArduPilotChibiOS 固件刷寫(xiě)與引導(dǎo)程序板卡連接支持v4.0 對(duì) ArduPilot 的ChibiOS 固件支持做了兩項(xiàng)改進(jìn)ChibiOS 固件刷寫(xiě)Flashing支持改進(jìn)QGroundControl 可通過(guò) USB 直接為基于 ChibiOS 的 ArduPilot 飛控板刷寫(xiě)固件ChibiOS 是 ArduPilot 自 3.x 中期以來(lái)主推的實(shí)時(shí)操作系統(tǒng)基礎(chǔ)替代早期版本使用的 PX4/NuttX 內(nèi)核改進(jìn)后對(duì)不同板卡的固件文件識(shí)別與燒寫(xiě)流程更穩(wěn)定ChibiOS 引導(dǎo)程序Bootloader板卡連接支持改進(jìn)引導(dǎo)程序模式下板卡的 USB 枚舉與連接識(shí)別更可靠便于用戶(hù)在有刷寫(xiě)需求時(shí)將飛控置于 bootloader 模式進(jìn)行固件升級(jí)或恢復(fù)。這兩項(xiàng)改進(jìn)共同提升了基于 ChibiOS 的 ArduPilot 板卡包括常見(jiàn) Pixhawk 系列及眾多衍生板在 Windows / Linux / macOS 上的固件管理體驗(yàn)。需要說(shuō)明的是本倉(cāng)庫(kù)為 QGroundControl 應(yīng)用代碼倉(cāng)庫(kù)并不包含 ArduPilot 固件源碼具體板卡支持列表以 ArduPilot 官方固件為準(zhǔn)。七、ArduPilot可配置的 Mavlink 流速率Stream Ratesv4.0 新增了對(duì)ArduPilot 可配置 Mavlink 流速率Stream Rates的支持入口位于設(shè)置 → Mavlink 頁(yè)面Settings → Mavlink對(duì)應(yīng)圖片 docs/assets/daily_build_changes/arducopter_stream_rates.jpg。7.1 界面與可配置項(xiàng)該頁(yè)面標(biāo)題為T(mén)elemetry Stream Rates (ArduPilot Only)僅在連接 ArduPilot 飛行器時(shí)可用核心元素包括All Streams Controlled By Vehicle Settings所有流由飛行器設(shè)置控制復(fù)選框勾選后所有流的速率交由飛行器端 SR* 參數(shù)控制地面站不再覆蓋以下 Mavlink 遙測(cè)流各自擁有獨(dú)立的下拉選擇框可分別設(shè)置刷新率示例數(shù)值取自截圖數(shù)據(jù)流說(shuō)明示例刷新率Raw Sensors原始傳感器IMU/氣壓計(jì)等原始傳感器數(shù)據(jù)2 HzExtended Status擴(kuò)展?fàn)顟B(tài)擴(kuò)展系統(tǒng)狀態(tài)信息2 HzRC Channel遙控通道遙控接收機(jī)通道值2 HzPosition位置位置/速度/航向等導(dǎo)航數(shù)據(jù)3 HzExtra 1擴(kuò)展遙測(cè)組 1如姿態(tài)、空速等10 HzExtra 2擴(kuò)展遙測(cè)組 210 HzExtra 3擴(kuò)展遙測(cè)組 33 Hz7.2 源碼層面的實(shí)現(xiàn)依據(jù)在 src/Vehicle/Vehicle.cc 中Vehicle類(lèi)通過(guò)std::make_uniqueMAVLinkStreamConfig(std::bind(Vehicle::_setMessageInterval, this, ...))構(gòu)造流配置管理器也就是說(shuō)每個(gè)流的刷新率最終會(huì)轉(zhuǎn)換為MAV_CMD_SET_MESSAGE_INTERVAL消息間隔指令_setMessageInterval回調(diào)以消息間隔單位微秒的形式下發(fā)到飛控相關(guān)配置類(lèi)型定義可參考 src/MAVLink/MAVLinkStreamConfig.h。界面代碼位于 src/AppSettings/MavlinkLinkStatus.qmlMavlink 設(shè)置頁(yè)。7.3 使用建議默認(rèn)情況下建議保持各流在合理區(qū)間如遙測(cè)鏈路 2~10 Hz避免過(guò)高的總速率擠占帶寬、影響鏈路穩(wěn)定性若在野外使用低帶寬鏈路如 433 MHz 數(shù)傳可適當(dāng)降低 Raw Sensors / RC Channel 等非關(guān)鍵流的速率優(yōu)先保證 Position 與 Extra 1 的刷新率若飛行器端已通過(guò) SR* 參數(shù)如SR1_*完整規(guī)劃了流速率可勾選All Streams Controlled By Vehicle Settings讓地面站完全遵循飛行器配置。八、總結(jié)QGroundControl v4.0 的這組補(bǔ)充特性體現(xiàn)了兩個(gè)方向的產(chǎn)品演進(jìn)效率提升模式預(yù)設(shè)Pattern Presets將測(cè)繪等復(fù)雜模式項(xiàng)的整套配置沉淀為可復(fù)用資產(chǎn)配合計(jì)劃文件持久化顯著減少重復(fù)設(shè)置成本其實(shí)現(xiàn)依托ComplexMissionItem的預(yù)設(shè)接口與 QSettings 存儲(chǔ)src/MissionManager/ComplexMissionItem.cc目前已在 Survey 與 CorridorScan 兩類(lèi)模式中落地。ArduPilot 生態(tài)深化從 PID 調(diào)參工作臺(tái)、基礎(chǔ)調(diào)優(yōu)滑塊、圖形化機(jī)架選擇到 ChibiOS 固件/引導(dǎo)程序連接改進(jìn)再到可配置 Mavlink 流速率QGroundControl 正在把原本需要參數(shù)表 命令行/外部工具完成的工作逐步收攏到地面站內(nèi)部完成。如需進(jìn)一步閱讀可參考模式預(yù)設(shè)的完整用戶(hù)文檔docs/ko/qgc-user-guide/plan_view/pattern_presets.md英文/中文等語(yǔ)言版本位于docs/zh/qgc-user-guide/plan_view/pattern_presets.md等路徑預(yù)設(shè)實(shí)現(xiàn)的基類(lèi)與派生類(lèi)源碼src/MissionManager/ComplexMissionItem.h、src/MissionManager/SurveyComplexItem.cc、src/MissionManager/CorridorScanComplexItem.cc預(yù)設(shè)管理界面src/PlanView/TransectStyleComplexItemTabBar.qml、src/PlanView/TransectStyleComplexItemEditor.qmlMavlink 流速率實(shí)現(xiàn)src/MAVLink/MAVLinkStreamConfig.h、src/Vehicle/Vehicle.cc。贊分享無(wú)人機(jī)智能硬件【免費(fèi)下載鏈接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)項(xiàng)目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Plan View 圖案預(yù)設(shè)Pattern PresetsQGroundControl 航測(cè)任務(wù)參數(shù)模板的保存、加載與管理Plan View 圖案預(yù)設(shè)Pattern PresetsQGroundControl 航測(cè)任務(wù)參數(shù)模板的保存、加載與管理 QGroundControl無(wú)人機(jī)智能硬件QGroundControl 計(jì)劃視圖模式預(yù)設(shè)Pattern Presets指南Survey 常用配置的命名保存、復(fù)用與管理QGroundControl 計(jì)劃視圖模式預(yù)設(shè)Pattern Presets指南Survey 常用配置的命名保存、復(fù)用與管理 QGroundControl無(wú)人機(jī)智能硬件QGroundControl ArduPilot 日志設(shè)置頁(yè)詳解LOG_* 參數(shù)配置指南QGroundControl ArduPilot 日志設(shè)置頁(yè)詳解LOG_ 參數(shù)配置指南 本文以 QGroundControlQGC中 ArduPilot無(wú)人機(jī)智能硬件上一篇Swift Key Path 字面量與函數(shù)類(lèi)型的子類(lèi)型轉(zhuǎn)換SE-0416 提案深度解析下一篇Swagger Codegen C 客戶(hù)端模型文檔解析以 SwaggerClientNetCoreProject 的 Cat 模型為例創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考