當前位置:
首頁 > 最新 > ardupilot官方2018年項目計劃表

ardupilot官方2018年項目計劃表

本文是一篇ArduPilot開發人員為GSoC2018建議的項目列表,我們翻譯過來方便大家觀看,文章來源:

http://ardupilot.org/dev/docs/gsoc-ideas-list.html

1為多旋翼和無人車完善避障功能,包括使用OctoMap或ROS添加入住網格。

2 對多旋翼和無人車在障礙物周邊進行路徑規劃。

3 為多旋翼和無人車設置禁飛/遠離區。

4 針對APSync的實時視頻改進,包括針對帶寬和視頻流進行幀速率優化。

5 改進ROS集成和文檔。

6 改進物聯網集成,以實現網頁上實時查看無人機位置。

7 支持平衡機器人。

8 單直升機或同軸直升機飛行控制改進。

9 直升機自轉支持。

10 機器視覺/在直升機或漫遊車上機器學習的常式。

11 改進軟體在環模擬器以包含3D查看器和對象。

12 ArduPilot 軟體在環模擬的SimuLink介面。

13 AirSim無人機模擬器支持ArduPilot軟體在環模擬

(https://github.com/Microsoft/AirSim/)。

14 JavaScript DataFlash日誌解析器和一個用於以與MAVExplorer相似的功能繪製用戶日誌的系統,但託管在用戶瀏覽器中。

15 改進與ArduPilot的UAVCAN集成。

16 D-Shot電調支持。

17 為固定翼飛機提供3D特技支持。

更多細節

以下各節將詳細介紹上面列出的一些項目

為多旋翼和無人車完善避障功能

多旋翼和無人車已經實現「簡單」的物體避讓(http://ardupilot.org/dev/docs/code-overview-object-avoidance.html),它可以在撞到障礙物之前停下來,但是只在搭載的聲納/激光雷達/視覺系統感知到周邊的物體時才能起作用。然而在使用激光雷達/聲納時,可能會由於在三維空間中無法觀測到各個方向障礙時出現問題。飛行器(無人車)會在正面碰撞物體之前停下來,但當用戶將它向左或向右轉動90度(從而使障礙物在激光雷達的視野之外),它就會向左或向右飛向障礙物。更好的解決方法是:

使用OctoMap或ROS等程序建立我們感知障礙物的區域的3D地圖。但是,很可能只有高性能的飛控或配套的計算機才能夠運行這些程序(應該確認一下配置是否達到要求)。

使用上面生成的3D地圖來決定我們可以或不可以飛入某個方向,然後使用mavlink DISTANCE_SENSOR消息向車輛的迴避/距離庫提供「哪條路是安全的」信息。

對多旋翼和無人車在障礙物周邊進行路徑規劃

這個項目的目的是讓多旋翼和無人車在障礙物周圍自主移動。有兩個關鍵點十分重要:

該無人機(無人車)正在開始其基於「航點」的旅程。這時,我們的導航控制器記錄起點和目的地,然後向下級控制器發送姿態和推力命令(每秒多次),以遵循直線路徑。在這個項目中,我們將添加一個新的路徑規劃導航庫,它將基於已知的障礙物創建一條路徑(可能由多條直線組成)。這些障礙物數據最初只包括地形數據(已經可用),但可以在將來擴展到其他來源(即參見下面的「禁飛區域」)。

基於實時聲納/激光雷達信息,無人機(無人車)飛行過程中會遇到面對障礙物的情況。它可以使用「路徑規劃」試圖找到繞過阻礙物的路線。如果無人機(無人車)卡住超過幾秒鐘,可能會觸發「失控保護」。它試圖到達的最終位置將被提供給路徑規劃者,並且由路徑規劃者將提供三維運動(可能是三維速度向量)以便無人機(無人車)繞過障礙物。這種實時路徑規劃功能可能需要完成上述「為多旋翼和無人車的完善避障功能」,以便3D地圖可用。

為多旋翼和無人車設置禁飛/遠離區

在這個項目中,多旋翼和無人車將停靠於/或避免進入由用戶或外部第三方數據提供商(如https://www.altitudeangel.com/)提供的「禁飛」(又名「勿入」)區域。

區域可能被定義為3D柱面或立方體,其屬性包括位置(緯度,經度,高度)和範圍大小。

地面站(即MissionPlanner或QGroundControl)負責將用戶定義的禁飛區域與地面站計算機上的第三方數據提供者信息進行合併。

ArduPilot固件(運行於飛控系統上)將向地面站發送mavlink消息,以請求給定區域內的所有禁飛區信息。應答消息將被處理並保存在飛行控制器上的一個小型資料庫中,類似於我們如何存儲地形數據(請參閱AP_Terrain庫)。

AC_Avoidance庫將被延長以阻止車和飛行器進入這些禁飛區,類似於我們如何避免擊中護欄。

將來,這個禁飛區域信息也可能提供給「路徑規劃者」(參見「對多旋翼和無人車在障礙物周邊進行路徑規劃」)。

這是未來幾年在一些國家為監管目的而需要的重要功能,也是眾多老用戶請求之一。

實時視頻改進

大多數用戶希望實時視頻從他們的無人機(無人車)直接傳送到地面站。 ArduPilot的APSync包括使用gstreamer的實時視頻,但其性能可以通過以下方式得到極大改善:

基於帶寬修改幀速率和視頻質量。

允許地面站判斷來自飛行器(無人車)的視頻流中哪些可用。

允許開啟/關閉視頻流傳輸。

英特爾相機流式守護程序已經完成了大量工作,因此這可能是一個很好的起點。

改進ROS集成和文檔

通過使用mavros(http://wiki.ros.org/mavros)和閱讀我們的一些教程文檔,ArduPilot可以和ROS(http://ardupilot.org/dev/docs/ros.html)一起使用。 該項目涉及:

確認ROS / ardupilot設置說明是正確的,如果不正確,幫助糾正。

代碼根據需要更改為mavros或ArduPilot以提高集成度。

開發和編寫示例腳本/程序以向其他開發人員展示如何執行常見任務。

如果時間允許,將ROS添加到APSync映像(http://ardupilot.org/dev/docs/apsync-intro.html),以便新用戶進行設置。

對這個項目感興趣的開發人員應該對ROS有很好的理解。

改善物聯網集成

該項目的目的是通過直接增加ArduPilot對MQTT協議的支持,或在協同計算機上運行的APSync,將ArduPilot無人機更容易集成到物聯網中。

如果支持直接添加到ArduPilot中,應該類似於我們如何支持現有的MAVLink和FrSky協議,這意味著我們將添加一個知道如何使用和發布mqtt消息的新庫,並根據需要填入從ArduPilot的各種子系統獲取的數據,如GPS,加速度計等。

如果支持已添加到APSync,則最好通過添加mavlink / mqtt轉換程序來處理此項目。即一個翻譯層,接受來自外部來源的ardupilot和mqtt消息的mavlink。

對此項目感興趣的開發人員可能首先需要花費精力定義我們應該支持哪些mqtt消息,它們的格式以及ArduPilot子系統中可以找到這些信息的位置。通過像這樣的一些早期嘗試,這將變得更加容易。

支持平衡機器人

ArduPilot支持各種類型的飛行器和無人車,但卻不支持平衡機器人(這是來自MAKE雜誌的描述)。該項目涉及擴展ArduPilot的Rover固件以支持平衡機器人。 這個項目中的一些步驟是:

擴展AR_AttitudeControl庫。可能需要俯仰角實現油門/加速度控制,並可能需要轉向和油門控制器耦合。

確保所有現有的驅動模式兼容平衡機器人

在wiki上記錄設置過程。

單軸直升機和/或共軸直升機飛行控制改進

單機直升機和同軸直升機是頂部有一個或兩個電機的飛行器,以及下面4個伺服控制的小翼誘導空氣縱橫姿態。 ArduPilot已經支持這些飛機,並且已經有一些成功的試飛,但是他們的姿態控制器需要我們投入更多的精力,以使之達到其他飛機類型的性能水平。

這個項目將需要首先在模擬器(可能是RealFlight8)中運行飛行器,然後在真實飛行器上進行測試。

希望參與該項目的開發人員應該對控制理論(PID控制器)有所了解,並準備對模擬和實際飛行的數據快閃記憶體日誌進行詳細分析,以確保我們的控制方法與這些飛機的物理特性相匹配。

直升機自旋支持

當發動機在直升機上失效時,好的飛行員可以使用自動旋轉功能安全降落直升機。我們也希望ArduPilot具備自旋功能。我們已經有了一個非常不錯的使用RealFlightFlightAxis後端的直升機模擬系統,為開發此功能提供了理想的測試環境。該項目將需要在模擬器中使用轉子RPM和電機RPM感測器,以從各種高度和飛行速度產生可靠的自旋。如果模擬器測試進行得很順利,那麼它可以在一些真正的直升機上進行測試。

在旋翼或無人車上實現機器視覺/機器學習

該項目涉及使用機器視覺和/或機器學習並為ArduPilot的無人機/無人車固件添加一項新的實用功能。這可能是為了讓一架旋翼/無人車沿著一條道路行駛,讓一架無人機決定著陸的安全地點,或者在GPS丟失的情況下找到回家的路。

可能需要高計算效率的電腦(http://ardupilot.org/dev/docs/companion-computers.html)(可能是NVidia TX1 / TX2)。

使用機器視覺或學習(或許使用TensorFlow)(https://www.tensorflow.org/ )識別道路,著陸點或回家路徑,

發送速度命令(可能使用SET_GLOBAL_POSITION_INT:

http://mavlink.org/messages/common#SET_POSITION_TARGET_LOCAL_NED或SET_POSITION_TARGET_GLOBAL_INT

http://mavlink.org/messages/common#SET_POSITION_TARGET_GLOBAL_INT

)以正確的方向驅動飛行器。

添加解決方案到APSync (http://ardupilot.org/dev/docs/apsync-intro.html)

記錄解決方案

添加3D查看器到軟體在環模擬中

在環模擬中的ArduPilot軟體支持許多物理後端。其中一些後端具有很好的3D介面,可以實現飛行顯示,但「內置」物理後端沒有這個功能。內置後端對於快速開發非常方便,因此在使用這些後端時如果可以使用可視化的方式顯示車輛是非常不錯的。當前,我們確實有一個解決方案,即可以在外部使用FlightGear進行可視化時,但它沒有提供我們想要的可視化效果,我們也無法添加屬於物理環境的部分的對象(如建築物)。該項目將涉及添加3D可視化後端,以及支持物理模擬可與之交互的後端對象。如果可以載入車輛的不同3D模型將是非常不錯的功能。

支持AirSim模擬器

微軟最近發布了對基於虛幻3D遊戲引擎的AirSim無人機模擬器的支持。 它看起來像一個非常好的模擬框架,我們希望增加對ArduPilot開發的支持。 該項目將涉及在AirSim和ArduPilot之間添加介面代碼,如果需要增強其API(如添加鎖步調度),則需要與AirSim開發人員合作。 請注意,這個項目將要求你有足夠快的PC來運行AirSim(好的顯卡和大量的內存)。

JavaScript日誌查看器

我們希望能夠為ArduPilot用戶提供基於瀏覽器的日誌分析和繪圖工具。這將涉及為ArduPilotDataFlash日誌格式編寫JavaScript解析器,並根據解析的數據為瀏覽器添加一個漂亮的圖形界面。我們正在尋找的用戶交互模型與基於python的MAVExplorer相似(請參閱http://ardupilot.org/dev/docs/using-mavexplorer-for-log-analysis.html),其中可以使用任意圖形表達結果,並且可以從通用圖表菜單中進行選擇。理想情況下,該工具還將支持使用pymaylinkJavaScript代碼生成器的MAVLink遙測日誌。該工具將與日誌上傳網站相結合,為所有ArduPilot用戶提供良好的日誌分析。

D-Shot電調協議支持

D-Shot是一種相對較新的與包括BLHeli 電調在內的一些電調進行通信的協議(請參見此處的說明https://oscarliang.com/dshot/)。 除了低延遲之外,D-Shot支持雙向通信,意味著ArduPilot可能潛在感應電機故障並採取糾正措施。

在ArduPilot中改進固定翼3D特技飛行支持

通過在ArduPilot中增加prop-hang(參見http://discuss.ardupilot.org/t/ardupilot-flying-3d-aircraft-including-overover/14837),我們現在已經開始為固定翼提供一個漂亮的3D特技飛行表演。這個項目需要將固件升級以增加對「特技」模式的支持。 在特技模式下,用戶可以使用各種常見的3D操作,包括(特技動作)knife-edge, loops, harrier和rolling loops。 實現這將涉及到四元數控制器的一些仔細的使用,但一個好的UI設計能使控制這些技巧的控制桿輸入很容易學習。測試可以在FlightAxis模擬器中完成,實現模擬開發而不會冒外場試飛飛機的風險。

(轉自阿木實驗室)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 無人機 的精彩文章:

亞馬遜再出新專利:無人機搭乘「順風車」節省電量
盤點無人機行業還能與大疆抗衡的公司和機會

TAG:無人機 |