《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > Zynq SoC推動無人機平臺高速發(fā)展

Zynq SoC推動無人機平臺高速發(fā)展

Aerotenna 借助賽靈思 Zynq SoC 器件 的處理能力和 I/O 功能,實現(xiàn)首次 ArduPilot 兼容無人機 (UAV) 飛行
2016-05-27

  無人機 (UAV) 和無人機行業(yè)正在迅猛發(fā)展并成功進軍新的商業(yè)和消費市場。無人機的發(fā)展?jié)摿Σ粩嗤苿有碌膭?chuàng)新型應用發(fā)展,例如 3D 建模、軍事援助和交付服務。

  問題在于這些應用正日漸復雜化,要求越來越高的處理能力和越來越多的 I/O(輸入 / 輸出)接口,但可用的無人機平臺并沒有以相同的步伐發(fā)展。隨著飛行所需的軟硬件的持續(xù)發(fā)展,大多數(shù)無人機平臺的功能已經達到極限。

  Aerotenna 的研究小組已經成功試飛一款無人機,該無人機采用賽靈思 Zynq?-7000 All Programmable SoC 構建的板件。這次飛行標志著 Aerotenna 實施高計算強度微波傳感產品發(fā)布計劃的開始。該小組選用 Zynq SoC 的原因是其他同類解決方案無法提供所需的處理能力。采用這種新的平臺(圖 1),Aerotenna 計劃通過部署自己的微波型防撞系統(tǒng)來改善無人飛行體驗。

  當今無人機技術的局限無人機行業(yè)發(fā)展的主要動力一直源于飛行變得盡量經濟實惠價,簡化和刪除一切不必要的功能。若用戶想要購買的產品恰恰是能以最簡單的方式滿足用戶需求的產品,這便是件好事。但是,對 Aerotenna 這樣的開發(fā)商來說,其任務是尋求新的、復雜的應用,因此有必要開發(fā)和構建屬于自己的無人機平臺,使其能夠為自己的創(chuàng)意提供處理速度支持。

  當今的標準無人機平臺受到的另一個重大局限是,缺乏對處理器的輸入輸出連接。因此,飛行控制系統(tǒng)很容易占用處理器的最大容量和 I/O 功能,給新傳感器和新應用留下的空間很小。

  標準處理器板所包含的大部分 I/O 已經被飛行所需的各種組件占用殆盡。這些功能組件包括用于量化飛行器方向的慣性測量傳感器、用于判斷高度的氣壓計和高度計以及用于對用戶輸入進行解碼的 RC 接收器。任何用于添加更多特性的剩余 I/O 不能提供太多選擇,一般局限于滿足最常見的需求,比如攝像頭或用于導航的 GPS。市場上目前尚不存在一種能夠兼容多種不同類型傳感器和外部接口的單個平臺。

  Aerotenna 的研發(fā)團隊認為突破這些局限的途徑是全新開發(fā)一種板件設計。Aerotenna 一直在優(yōu)化一種新的無人機平臺,該平臺將在其他平臺表現(xiàn)差強人意的方面嶄露頭角。Aerotenna 使用賽靈思提供的 Zynq SoC 器件來實現(xiàn)這一目標。其優(yōu)異的設計將提供新一代 UAV 所需的顯著增強的處理器速度和 I/O 功能。

  為什么選擇 Zynq SoC?

  Aerotenna 選擇 All Programmable Zynq SoC 作為構建我們強大平臺的基礎。Zynq SoC 芯片內部的雙核 ARM? Cortex?-A9 APU 能實現(xiàn)無與倫比的處理器速度。在芯片結構、多處理器功能及 I/O 訪問速度方面,市場上的廉價無人機平臺解決方案均無法與 Zynq SoC 匹敵。因此 Zynq SoC 是新一代平臺的理想選擇。

  目前,市場上的大部分飛行控制平臺均基于微控制器單元 (MCU)。由于處理能力及 I/O 擴展能力有限,該架構會制約傳感器融合的潛力。

  Zynq SoC 在處理能力和 I/O 功能方面具有明顯優(yōu)勢:雙核 ARM 處理器與 FPGA 邏輯相結合,可實現(xiàn)一種軟硬件協(xié)同設計方法,從而能夠將一部分時序

  關鍵型處理任務交付給可編程邏輯來處理。與基于 MCU 的平臺相比,Zynq SoC 具有更豐富的 I/O 外設和存儲器接口功能。選擇 Zynq SoC 的另一個原因是,飛行控制程序可能會相當龐大,并且要求極為高速的 CPU,而 Zynq SoC 能夠輕松地駕馭飛行控制程序的復雜性。同時,該器件還有大量剩余功能,為飛行控制程序的擴展留出了充裕的空間。

  目前存在多種類型的飛行軟件程序,它們都行為各異且復雜性不同。Aerotenna 決定使用的飛行控制軟件名為 ArduPilot,這是由運行在 Dronecode 上的 APM(自動駕駛儀)提供的。它比大多數(shù)飛行控制軟件復雜,但提供大量較簡單程序所不具備的

1.jpg

  圖 1 - Aerotenna 一直以來開發(fā)的概念無人機采用先進的傳感技術及 Zynq SoC 支持的強大處理平臺。

  ArduPilot 飛行控制系統(tǒng)的復雜性隨著開源社區(qū)為 APM 項目添加的內容越來越多而不斷增加。功能,例如路點導航和多種飛行模式,以滿足用戶的特定應用。

  什么是 ARDUPILOT?

  ArduPilot 是一種專為無人機構建的開源自動駕駛儀軟件程序。該軟件程序由開發(fā)人員和愛好者組成的龐大群體不斷更新和改進。從最初為開源 Arduino 微處理器構建的相當簡單的軟件起步,不斷壯大和復雜化,APM 項目如今已經兼容眾多無人機平臺。目前,該程序內含超過 70 萬行代碼,是一種非常精細的飛行控制系統(tǒng)。

  該代碼分為兩個部分:高層次層和硬件抽象層 (HAL)。高層次層負責調度任務及根據輸入的數(shù)據做出決策。HAL 是用于訪問硬件的存儲器的低層次代碼。只需調整用于平臺專用存儲器訪問的 HAL,這種代碼結構劃分就能將整個系統(tǒng)移植到其他平臺。   而且,不管采用什么樣的平臺,上層次的代碼只負責以相同的方式從 HAL 中提取數(shù)據。

  隨著開源社區(qū)為 APM 項目添加的內容越來越多,ArduPilot 飛行控制系統(tǒng)日趨復雜。因此,行業(yè)已經達到硬件的極限,正期待新一代能夠推動持續(xù)增長的平臺問世。

  顯著改進

  將 ArduPilot 移植到 Zynq SoC 的初步工作(由谷歌無人機討論組的 John Williams 牽頭)于 2014 年完成,該工作為將 APM 移植到同一賽靈思平臺上鋪平了道路。隨著無人機令人驚嘆的新世界的開啟,Williams 注意到 Zynq SoC 在提供定制 I/O 和實時圖像處理方面的巨大潛力。有趣的是,Williams 是開發(fā) PetaLinux 初始工具的公司 PetaLogix 的創(chuàng)始人。

  賽靈思于 2012 年收購了這家公司。

  Aerotenna 團隊從硬件和固件兩個方向繼續(xù)推動這些設計工作,并于 2015 年 10 月完成采用 Zynq SoC 的 ArduPilot 的首飛。Aerotenna 團隊在 PetaLinux 操作系統(tǒng)上運行 ArduPilot 飛行控制軟件。 這一驚世壯舉標志著無人機技術和功能的一次飛躍。

  在處理能力和 I/O 功能方面,Aerotenna 團隊的飛行控制解決方案遠遠領先于同類的其他無人機解決方案,這都歸功于 Zynq SoC 中的雙 ARM 內核。這一飛躍將為眾多需要更強計算能力的新無人機應用打開大門。借助于為愛好者以及開發(fā)人員構建的充足硬件接口,Aerotenna 團隊旨在確保提供切實的改進。無人機平臺是在 Linux 操作系統(tǒng)上運行的,由于 Linux 的可編程性和多功能性,這種平臺容納多種類型應用的靈活性更高。作為最為強大的用戶可編程操作系統(tǒng)之一,Linux 讓Aerotenna 團隊得以按照自己的需要精確地定制系統(tǒng)。

  Aerotenna 團隊在商用現(xiàn)成的 DJI F550 機身上完成了首次飛行測試,并計劃在更多機身上測試其基于 Zynq SoC 的飛行控制器。Aerotenna 團隊準備以八角片上駕駛儀 (OcPoC) 平臺構成部分的形式推出這款平臺。

  任重道遠的征程

  全新打造一套定制化飛行控制平臺是一次任重道遠的征程,這不僅需要理想的工程人員團隊,還需要完成大量的學習,才能完成。從無到有,需要對該系統(tǒng)做出大量的決策。為了運行飛行控制程序,必須使用操作系統(tǒng)。實時操作系統(tǒng) (RTOS) 即時處理進入的數(shù)據,造成的緩存延遲可忽略不計。因此,RTOS 非常適用于運行飛行控制等時間敏感型任務。其缺陷在于難以將這類系統(tǒng)與 ArduPilot 接口,因為部分數(shù)據處理任務需要在操作系統(tǒng)自身重新實現(xiàn)。

  這就是 Aerotenna 團隊轉而選擇 Linux 操作系統(tǒng)的原因。雖然 Linux 操作系統(tǒng)不是實時系統(tǒng),但實現(xiàn)軟硬件聯(lián)合設計要容易得多,進而能將系統(tǒng)的多功能性最大化。賽靈思提供名為 PetaLinux 的強大嵌入式 Linux 操作系統(tǒng),該系統(tǒng)可與 Zynq SoC 及其他賽靈思器件兼容的。

  由于多軸飛行器天性不穩(wěn)定,測量機身的慣性和高度是實現(xiàn)穩(wěn)定的關鍵。

  建造并運行這個系統(tǒng)的路線圖看起來相當復雜,Aerotenna 團隊必須克服重重嚴峻的挑戰(zhàn)。這個過程的第一步是使用 FPGA 開發(fā)軟件來開發(fā)系統(tǒng)設計,并為驅動器接口編寫和創(chuàng)建全新的 IP。核心是位于硬件層且能以極快速度處理數(shù)據的嵌入式流程。隨后,必須使用定制系統(tǒng)設計來部署 PetaLinux。最后,Aerotenna 團隊編譯并修改了 ArduPilot 系統(tǒng),使之能夠在 PetaLinux 和新平臺上運行。

  Aerotenna 團隊分階段解決這個問題,實現(xiàn)了概念驗證。Aerotenna 團隊的工作首先是接收和檢測 RC 信號,然后為單個電機供電。在最后演示該概念設計后,Aerotenna 團隊著手擴展 ArduPilot 賴以運行的 OcPoC 與傳感器間的接口。全新編寫自己的設備驅動程序是一個重大挑戰(zhàn)。實現(xiàn)成功飛行最關鍵的傳感器包括加速計、陀螺儀和氣壓計。由于多軸飛行器天性不穩(wěn)定,

  測量機身的慣性和高度對穩(wěn)定性至關重要。所有這些都必須

  通過使用正確的通信協(xié)議配置在 Aerotenna 團隊的 FPGA 硬件設計中,并最終包含到其 PetaLinux 操作系統(tǒng)內。

  ArduPilot 代碼庫包含超過 70 萬行代碼,因此一項重大任務就是讓系統(tǒng)在全新的平臺上運行。由于沒有方便的界面以供調試慣性傳感器、電動機和 RC 控制器(對其他平臺一般在高質量的圖形用戶界面下完成),團隊不得不細調數(shù)百個存儲的參數(shù)值,手動調試整個系統(tǒng)。調試是必要的,因為每個硬件組件都有細微差別,這會導致產生的

2.jpg

  圖 2 - OcPoC 系統(tǒng)將成為首款受 Zynq SoC 芯片支持的商用版飛行控制平臺。


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。