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

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

Aerotenna 借助賽靈思 Zynq SoC 器件 的處理能力和 I/O 功能,實現(xiàn)首次 ArduPilot 兼容無人機 (UAV) 飛行
2016-05-27
關(guān)鍵詞: 無人機 3D建模 處理器 SoC芯片

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

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

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

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

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

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

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

  為什么選擇 Zynq SoC?

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

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

  Zynq SoC 在處理能力和 I/O 功能方面具有明顯優(yōu)勢:雙核 ARM 處理器與 FPGA 邏輯相結(jié)合,可實現(xiàn)一種軟硬件協(xié)同設(shè)計方法,從而能夠?qū)⒁徊糠謺r序

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

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

1.jpg

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

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

  什么是 ARDUPILOT?

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

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

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

  顯著改進

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

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

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

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

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

  任重道遠的征程

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

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

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

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

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

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

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

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

2.jpg

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


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