主頁 > 知識庫 > 如何設(shè)計機器人處理器?

如何設(shè)計機器人處理器?

熱門標簽:電話機器人接通率 膠州企業(yè)辦理400電話 唐山電銷自動外呼系統(tǒng) 西安電銷外呼系統(tǒng)加盟 標準地圖標注樣式 天津三五防封電銷卡 外呼系統(tǒng)投訴電話 邢臺聯(lián)通400電話申請 瑪沁企業(yè)如何做地圖標注
機器人是否需要專用的芯片支持?要想開發(fā)機器人芯片,首先必須弄清楚是否有這方面的需求。一方面,盡管今天能實用的機器人數(shù)量還比較少,但在可預期的未來,很多人相信會誕生一批經(jīng)濟適用、量大面廣的現(xiàn)象級產(chǎn)品,就像無人機、無人車一樣,由于其功能的豐富,其總數(shù)量甚至會達到百億級,超過個人電腦、手機的數(shù)量。如此龐大的應用空間,按照過去計算機的發(fā)展經(jīng)驗,必然伴生孕育著新型計算系統(tǒng),所以未來機器人系統(tǒng)需要芯片這一點比較肯定。接著,另外一個問題,是否需要設(shè)計專用芯片?今天現(xiàn)行的如CPU、DSP、GPU、神經(jīng)網(wǎng)絡(luò)或他們的組合是否就夠用了?這個問題還需要從機器人的功能角度出發(fā)去分析。一方面,我們會賦予機器人更多的智能能力,使他能夠聽說看甚至決策;另一方面,機器人也將具有越來越強運動能力。而這些都是現(xiàn)行芯片所解決不好的,我們認為今天機器人無法大規(guī)模普及,和他們的能力不足直接相關(guān),而這種能力除了算法方面的改進外,性能的大幅提升也是必要的。因此,我們認為需要設(shè)計面向機器人的專用芯片,以解決機器人在應用中的若干問題,為未來機器人的大發(fā)展提供硬件基礎(chǔ)。 現(xiàn)行機器人的計算系統(tǒng) 當前已存在著很多不同種類的機器人,這些機器人均已集成了不同類型的計算系統(tǒng)。在傳統(tǒng)工業(yè)控制系統(tǒng)中,可編程邏輯控制器(PLC)使用較廣,但在服務類機器人中,更多基于嵌入式通用處理器,以方便集成計算機軟件以及智能算法上的進步。本文以商業(yè)上應用較多的情感機器人、工業(yè)機器人和移動服務機器人為例,介紹這些機器人載體中所使用的計算系統(tǒng),其他如軍事機器人、太空機器人、特種機器人在底層計算系統(tǒng)上有類似之處,就不一一介紹: 情感機器人:情感機器人主要功能是和人進行語音和視覺上的交流,是目前較為常見的一類機器人,這類機器人通常具有較強的語音和視覺處理能力,但運動能力較弱。為了快速開發(fā),情感機器人通常使用主流嵌入式芯片提供計算能力,如ARM、Intel ATOM處理器等。當然,對情感機器人而言,還需要具有聯(lián)網(wǎng)功能,通過云計算模式提供語音交互、問題回答等功能。 工業(yè)機器人:工業(yè)機器人和情感機器人不同,這一類機器人通常限制在特定應用場景,和人交互不多,它們對對語音和視覺處理能力要求不高,但往往需要較強的實時運動控制功能,以完成特定任務。在工業(yè)機器人中,可編程邏輯控制器(PLC)使用較多,PLC是一種微處理器化的控制器,輸出側(cè)重于對電機等動力設(shè)備進行控制的模擬信號。PLC計算內(nèi)核一般為單片機,51、PIC、AVR等單片機都有用于PLC中。PLC對單片機進行了二次開發(fā),在穩(wěn)定性和編程語言(使用電氣工程師所熟悉的梯形圖語言)等方面進行了優(yōu)化。 移動服務機器人:常見的如掃地機器人、無人機、無人駕駛等,以完成特點服務功能,這類機器人的特點是應用場景復雜多變,運動能力強。需要具備自我定位導航能力和姿態(tài)控制能力。其背后使用的計算平臺和移動速度以及應用場景密切相關(guān)。速度較慢,硬件平臺使用嵌入式ARM芯片就可滿足計算能力需求。移動速度較快的,如無人機和無人駕駛領(lǐng)域,往往對環(huán)境感知處理要求也比較高,目前通?;贕PU提供算力支持。 由于快速移動機器人對計算能力需求較大,這一領(lǐng)域一個趨勢是專用ASIC芯片,如輔助駕駛Mobileye。最近,特斯拉也有相關(guān)專用芯片設(shè)計的計劃,國內(nèi)也有創(chuàng)業(yè)公司如地平線正在開展這方面工作。 云化的計算能力是未來機器人計算系統(tǒng)的一個發(fā)展方向。云端引擎具有三個主要好處:(1)能提供更強大的計算能力,接入云端的機器人自身不再需要裝自帶繁重的計算裝備;(2)能提供大數(shù)據(jù)存儲和分析能力,使機器人可以非常迅速地分享從大數(shù)據(jù)中挖掘出的規(guī)律和知識;(3)能提供多機協(xié)同能力。歐盟和美國在這方面部署了一些很有意思的研究工作。歐盟在2011年開展了RoboEarth研究項目,幫助機器人建立自己的互聯(lián)網(wǎng)和知識庫,為機器人提供一個巨大的網(wǎng)絡(luò)和數(shù)據(jù)庫來幫助其共享信息,并互相學習各自的行為、技能和環(huán)境,以達到一種經(jīng)驗共享、互相學習的理想狀態(tài)。美國斯坦福大學等高校開展的RoboBrain項目,旨在建立一種新的、主要面向機器人的同時能供任何要執(zhí)行的設(shè)備自由訪問的大規(guī)模知識引擎,相當于建立一套面向機器人的搜索引擎。 另一方面,樹莓派、Arduino等快速開發(fā)板,由于其極強的易開發(fā)性和接口豐富性,在一些較低計算量需求的控制場景也有應用。Intel中國研究院研發(fā)了基于FPGA的HERO機器人開發(fā)平臺,開發(fā)者可以根據(jù)應用自己決定和設(shè)計邏輯。 智能機器人芯片的主要負載總結(jié) 芯片的設(shè)計取決于負載的特點。要想設(shè)計面向特定領(lǐng)域的芯片,首先要清楚芯片上運行的主要負載特點。智能機器人和傳統(tǒng)計算機不太一樣,除了需要較強的智能計算外,還需要較強的感知交互能力、姿態(tài)控制能力、運動能力等: 感知交互負載:機器人的感知信息往往是多通道的,包含語音、視覺、觸覺、嗅覺等。感知信息的處理分為初級處理和智能處理兩大類。初級處理主要是對傳感器數(shù)據(jù)進行降噪、篩選等,主要用的算法核心包含傅里葉分析、小波變換等,智能處理主要是采用機器學習算法。交互則更多涉及語音、圖像合成等幾何計算算法以及深度神經(jīng)網(wǎng)絡(luò)處理。 姿態(tài)控制負載:在一些立體移動機器人系統(tǒng)中,需要有較強的姿態(tài)控制功能。以多軸無人機為例,主要算法包含:對姿態(tài)傳感器進行去噪及融合的濾波算法,互補濾波和卡爾曼濾波用得較多;姿態(tài)算法,主要是根據(jù)濾波后的傳感器信息計算出自身在地理空間坐標系中的三維位置,姿態(tài)平衡算法,一般采用PID(比例-積分-微分)算法進行反饋調(diào)節(jié)。算法的核心操作可以抽象為矩陣計算等。 移動導航負載:SLAM(同步定位導航)算法是機器人自主導航中使用較多的一類算法,根據(jù)前端傳感器的不同,又可主要分為激光SLAM和視覺SLAM, SLAM通常可分為前端預處理、匹配、地圖融合等三個大步驟。預處理主要是對激光、深度傳感器等數(shù)據(jù)進行優(yōu)化,主要算法包含濾波算法等;匹配是將局部環(huán)境數(shù)據(jù)匹配到已經(jīng)建立的地圖位置上,主要算法包含ICP(迭代最近點)、圖優(yōu)化Bundle Adjustment計算等;地圖融合就是將新數(shù)據(jù)拼接到原始地圖中完成更新,主要算法有Bag-of-Words(BOW) loop closure(回環(huán))檢測等。盡管有很多步驟,SLAM算法的核心操作主要還是集中在圖形計算方面。 關(guān)節(jié)運動控制負載:機器人運動學是機器人運動控制的基礎(chǔ),包含正運動學和逆運動學。正運動學是給定每個關(guān)節(jié)變量(角度或長度),求解機器人的位姿;逆運動學,即給定機器人的位姿,求解機器人各個關(guān)節(jié)的關(guān)節(jié)變量。正逆運動學求解,核心操作是矩陣計算,但由于規(guī)模大,對于高自由度機器人情況更糟。逆運動學方程求解過程比較特殊,使用GPU并不是特別高效。 控制決策負載:機器人控制決策有兩大類方法:基于專家系統(tǒng)和基于新型機器學習方法。強化學習方法由于考慮了與外界的交互作為系統(tǒng)優(yōu)化指標,非常適合于機器人的控制決策中。在人機圍棋大戰(zhàn)中,Google的AlphaGo和AlphaZero就是采用了這一算法。在這一類負載中,核心操作主要是神經(jīng)網(wǎng)絡(luò)。 除了上述這些主要負載需求以外,機器人芯片還有些特別的需求,比如要求更高的安全性和可靠性。 我們在智能機器人芯片設(shè)計上的一些探索 中科院計算所從2015年開始研制面向智能機器人的芯片,進行了一些初步探索,總體目標是希望能為未來具有為豐富功能和更強智能能力的機器人提供通用高性能計算平臺,下面就介紹我們在這方面取得的一些成果。 基于機器人負載特征的分析結(jié)論,我們設(shè)計了一個取名為Dadu的機器人智能處理器平臺。這個名字最初來源于我們能支持大自由度的機器人,后來結(jié)合智能計算方面的擴展,形成了雙核結(jié)構(gòu):一個智能核和一個運動核。智能核為一個低功耗神經(jīng)網(wǎng)絡(luò)處理器,其主要功能是加速視音頻感知交互負載和基于神經(jīng)網(wǎng)絡(luò)的控制決策負載;運動核主要是一個高速的運動方程求解加速器和一些向量計算部件,其主要功能是加速逆運動方程求解和姿態(tài)控制及移動導航負載中用到的幾何圖形處理。 圖1. Dadu智能機器人芯片 智能核 神經(jīng)網(wǎng)絡(luò)處理器是當前芯片領(lǐng)域的一個研究熱點,商業(yè)上也已經(jīng)有一些較為成熟的方案,如寒武紀的DianNao系列、Google的TPU系列、Intel的Movidius等。為了高效處理神經(jīng)網(wǎng)絡(luò)中大量的張量操作,處理器通常設(shè)計為脈動陣列結(jié)構(gòu)、2D PE陣列結(jié)構(gòu)和乘加樹等結(jié)構(gòu)。但由于神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)創(chuàng)新活躍,新結(jié)構(gòu)層出不窮,不同網(wǎng)絡(luò)、不同層之間計算組織形式差異很大。當前,通用神經(jīng)網(wǎng)絡(luò)處理器設(shè)計存在較為嚴重的“利用率墻”的問題,也即:由于固定的硬件結(jié)構(gòu)和新的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)流的不吻合,導致通用神經(jīng)網(wǎng)絡(luò)處理器的內(nèi)部計算資源利用率低的問題,比如Google的TPU,在運行AlphaGo時,整個PE的利用率為46.2%,運行LSTM網(wǎng)絡(luò)模型時,PE利用率更低,只有8.2%。 和TPU等定位不同,面向機器人的神經(jīng)網(wǎng)絡(luò)處理器設(shè)計更側(cè)重于嵌入式、低功耗特性。提高并行效率,是打破利用率墻的重要手段,也是提高實際能效比的關(guān)鍵技術(shù)。我們在這方面做出了一些探索。 發(fā)表于2017年體系結(jié)構(gòu)領(lǐng)域會議HPCA上的論文[1],我們首先從特征圖(feature map)、神經(jīng)元(Neuro)、神經(jīng)突觸(Synaps) 三個層次研究了并行化的方法,并進而提出了神經(jīng)網(wǎng)絡(luò)計算并行化劃分的八種方法: SFSNSS(單特征圖、單神經(jīng)元、單神經(jīng)突觸)、SFMNSS、SFSNMS、SFMNMS、MFSNSS、MFSNMS、MFMNSS、MFMNMS。在此基礎(chǔ)上,我們提出了一種強靈活性的硬件數(shù)據(jù)流架構(gòu)(FlexFlow),它的主要原理是其同時支持多種并行方式,利用多種并行方式的互補效應來彌補單一并行方式的不足,從而實現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的高效計算。 圖2. Flexflow 結(jié)構(gòu) 神經(jīng)網(wǎng)絡(luò)計算中的卷積操作和數(shù)據(jù)通常是按照卷積核粒度去組織的,不同神經(jīng)網(wǎng)絡(luò)、不同層的卷積核大小不一樣,會導致利用率和數(shù)據(jù)復用有較大變化。存在兩種數(shù)據(jù)級并行:卷積核內(nèi)并行和卷積核間并行。卷積核內(nèi)并行,是將屬于相同卷積核位置但是不同輸入圖層的n個像素同時進行卷積運算。每個操作將若干個數(shù)據(jù)權(quán)重對加載到PE,在整個卷積核窗口(k×k)重復這個操作,最后累加這些運算結(jié)果得到和數(shù)。卷積核內(nèi)并行,是將同一個輸入圖層中的一個或幾個卷積核k×k窗口傳送到PE并行計算。對于深度卷積神經(jīng)網(wǎng)絡(luò)的大部分層的圖層數(shù)量都很多,采用卷積核間并行方式,PE 的利用率很高。但是,在神經(jīng)網(wǎng)絡(luò)的前幾層層,輸入圖層數(shù)量較少,卷積核比較大,卷積步長一般遠小于卷積核大小,從硬件利用率角度它們顯然更適合于通過卷積核內(nèi)并行化來加速。 我們提出了一種 C-Brain結(jié)構(gòu)[2],通過自適應的卷積核并行,可根據(jù)配置,選擇合適的卷積核并行方法,在硬件上有效支持前幾層的核內(nèi)并行,和后續(xù)層的核間并行,綜合利用并行優(yōu)勢,有效提高了計算部件的利用率。同時采用“卷積核分割”的并行方法,使卷積核內(nèi)并行方案易于將數(shù)據(jù)映射到硬件上,進一步提高了PE的利用率。 2. 運動核 機器人需要通過關(guān)節(jié)控制實現(xiàn)類似于人類肢體的一些功能,如移動、行走和抓取等等。在機器人學中,每個關(guān)節(jié)提供一個自由度。一般來講,機器人的自由度越多(關(guān)節(jié)越多),機器人功能就越強大,運動就越靈活。工業(yè)機械臂一般只有6-7個自由度,而NASA的Valkyrie機器人具有44個自由度。如果實現(xiàn)一個像人一樣靈活的機器人,就需要上百個自由度。 圖3. 關(guān)節(jié)控制中的正運動學方程和逆運動學方程 機器人運動學包含正運動學和逆運動學,其中逆運動學是關(guān)節(jié)控制的關(guān)鍵。其要解決的問題是:給定機器人的位姿,求解機器人各個關(guān)節(jié)的關(guān)節(jié)變量。下圖是逆運動方程求解的過程。 圖4.逆運動學方程求解過程 可以看出,每次求解變化量,都是對變換矩陣求逆和矩陣乘的過程。目前,常用方法基于雅克比的求解,但是對大自由度機器人來講,基于雅克比的方法非常耗時,不能滿足機器人控制的實時性要求,最快的機器人逆運動學求解方法在求解100自由度機器人的逆運動學方程仍需要1秒鐘左右的時間,很難滿足機器人控制的實時性要求。為此,我們提出了兩種方法: Dadu-N:將逆運動學方程求解的過程近似為神經(jīng)網(wǎng)絡(luò)計算的過程。通過設(shè)計一個深度神經(jīng)網(wǎng)絡(luò),將大量初始化位姿、目標位姿以及相應的夾角變化作為數(shù)據(jù)進行神經(jīng)網(wǎng)路訓練,得到一組權(quán)重。實際場景關(guān)節(jié)控制時,以初始位姿和目標位姿為輸入數(shù)據(jù),通過神經(jīng)網(wǎng)絡(luò)的推斷過程,得到夾角變化數(shù)據(jù)。使用該方法的好處是,求解過程的復雜度和自由度無關(guān),而只和選擇的神經(jīng)網(wǎng)絡(luò)的復雜度有關(guān),實現(xiàn)了計算復雜度和自由度解耦,自由度越高,加速比越大。 Dadu-S: 在上述雅克比求解過程中,主要耗時過程發(fā)生在矩陣J求逆。我們通過將雅克比矩陣求逆近似為對雅克比矩陣求轉(zhuǎn)置: 來減少計算量,但該方法引入一個參數(shù) ,需要通過多次迭代求出近似解,這一過程難以并行。我們改變直接求解的思路,采用 “投機求解”的思路。在每次迭代時,生成若干個參數(shù)值(投機值) , ,..., ,依據(jù)這些不同的參數(shù)值可以得到多個關(guān)節(jié)變量更新值θ,經(jīng)過多次迭代最終找到滿足精度要求的關(guān)節(jié)變量θ。由于多個參數(shù)值的計算及后續(xù)的關(guān)節(jié)變量更新值計算之間沒有依賴,可以通過并行處理單元同時執(zhí)行,從而加速求解速度。相比原雅克比轉(zhuǎn)置法,該方法可以減少97%的迭代次數(shù)。 根據(jù)投機求解的方法[3],設(shè)計了相應的硬件加速器,用以提供更高的求解速度以及更高的能效比。該加速器可以在12ms內(nèi)求解100自由度機器人的逆運動學問題,相比原方法可以提速1000倍,相比GPU版實現(xiàn)可以提速30倍左右。同時,相比GPU,該加速器的能效比可以提升700多倍。 結(jié)論 盡管機器人研究很熱,但機器人處理器的研究尚處于萌芽階段。本文介紹了我們在機器人智能處理器領(lǐng)域的一些探索性工作,應該說這項工作還比較初步,甚至“未來機器人領(lǐng)域會不會有一個被廣泛接受的通用芯片形態(tài)”這個問題,我們目前都不能很好回答。但創(chuàng)新研究的一個目的就是解決探索未知世界道路上的不確定性,無論是科學價值還是應用前景,機器人智能芯片領(lǐng)域都值得探索。

標簽:赤峰 白銀 銅陵 福建 湖南 寶雞 湘西 陽江

巨人網(wǎng)絡(luò)通訊聲明:本文標題《如何設(shè)計機器人處理器?》,本文關(guān)鍵詞  如何,設(shè)計,機器人,處理器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何設(shè)計機器人處理器?》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何設(shè)計機器人處理器?的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章