本節書摘來自華章出版社《機器人作業系統ros原理與應用》一 書中的第1章,第1.2節,作者:周興社 楊剛 王岚,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
智能機器人所具備的感覺、規劃、動作和協同等能力确定了其硬體的組成與結構。為了感覺和識别對象和環境,其需要豐富的内部傳感器和外部傳感器;為了作用于對象并影響周圍環境,其需要多種能力的動作執行器;智能機器人的核心是一個相當發達的“大腦”——控制計算機,其用于實作機器人的實時管控和智能處理;智能機器人具有人機協同、多機器人協作等能力,是以需要配置多樣化互動接口和網絡通信接口。綜上所述其硬體組成如圖1-1所示。
(1)内部傳感器組
完成機器人自身位置、速度、力度等實時測量和感覺,為實作伺服控制提供依據。
位置(位移)傳感器:感覺機器人目前位置和位移狀态,其又可分為直線移動傳感器和角位移傳感器;例如,實作角位移感覺的光電編碼器能夠得到對應于編碼器初始鎖定位置的驅動軸瞬時角度值。當裝置感受到壓力時,隻要讀出每個關節編碼器的讀數,就能及時調整伺服控制的給定值,以防止機器人啟動時産生過于劇烈的運動。

速度和加速度傳感器:主要用于感覺旋轉運動的速度,常用光電脈沖式轉速傳感器來實作;加速度傳感器可用于測量機器人的動态控制信号,一般由速度測量進行推演。主流的傳感器有應力傳感器和振動式加速度傳感器。
力覺傳感器:主要用于測量兩個物體之間的作用力分量和力矩分量。主要有半導體型力覺傳感器、轉矩傳感器及基于弦振動原理的力覺傳感器等。例如,斯坦福研究所研制的光腕力傳感器是由6個小型差動變壓器組成的,能夠測量作用于腕部x、y和z三個方向的動力及各軸動轉矩。
(2)外部傳感器組
通過視覺、觸覺及聲覺等的感覺,實作智能機器人及時反映環境變化、自主調整自身行為的能力。
視覺傳感器:機器視覺已成為智能機器人的主要感覺手段,微型化智能數字錄影機是其主要選擇。
觸覺傳感器:用于感覺動作執行器與對象的接觸及其程度;微型開關是觸覺傳感器的常用選擇,隔離式雙态接觸傳感器、矩陣傳感器、光反射觸覺傳感器等也是新發展的觸覺傳感器。
聲覺傳感器:用于感受和解釋氣體(非接觸感受)、液體或固體(接觸感受)中的聲波。聲波傳感器可以從簡單的聲波存在檢測到複雜的聲波頻率分析,直到對連續自然語言中單獨語音和詞彙的辨識。
滑覺傳感器:用于檢測物體的滑動。當要求智能機器人抓住特性未知的物體時,必須确定最适當的握力值,是以要事先檢測出握力不夠時所産生的物體滑動信号。目前已有基于光學和利用晶體接收器等不同原理的滑覺傳感器,後者的檢測靈敏度與滑動方向無關。
其他外傳感器:用于智能移動機器人的距離感覺的雷射測距儀、聲呐傳感器等距離傳感器;用于感覺環境溫度的接觸式或非接觸式溫度傳感器;用于檢測物體的存在和測量距離的超音波接近度傳感器等。
(3)驅動與作動器
驅動與作動器是驅動智能機器人活動的動力機構。驅動器可将電能、液壓能和氣壓能轉化為機器人的動力,并驅動自身移動或機械臂關節的移動。
驅動電動機是智能機器人的基本驅動器:機器人驅動器的本質問題是控制電動機,控制電動機的轉數就可以控制機器人移動的距離和方向、機械臂的彎曲度或移動距離等,驅動電動機主要有步進電動機和伺服電動機。步進電動機是通過給内部多個線圈依次施加脈沖電流實作電動機的連續轉動,改變脈沖的頻率即可改變電動機的轉速,改變施加脈沖的順序即可改變電動機的轉動方向,實作機器人的位置控制。而伺服電動機是一個連續轉動的直流電機,通過閉環回報控制回路,以實作精确的位置控制。
新型驅動器可實作優良的特色驅動特性:靜電驅動器可利用電荷間引力和排斥力的互相作用順序驅動電極而産生平移或旋轉;形狀記憶合金驅動器由于具有形狀記憶效應,即力作用後會發生彈性變形;壓電效應驅動器在外力作用下不僅幾何尺寸會發生變化,而且内部也會出現極化,當外力消失時,材料重新恢複到原來的狀态,電場也随即消失,是以稱為壓電效應;為了更好地模拟生物體的運動功能以應用于智能機器人,目前已經研制出了各種不同類型的人工肌肉。
(4)控制計算機
控制計算機可實作智能機器人的智能感覺、認知了解、決策控制、任務協同等處理與管理任務。其發展具有以下趨勢:
從通用到專用,從聯機到嵌入:采用通用計算機作為機器人的計算與控制平台,與機器人主體通過專線或網絡線上連接配接,這是早期的純軟體解決方案,其具有系統開發的友善性和功能實作的靈活性,但其難以支援智能機器人的內建性、移動性及微型化等需求。是以,采用嵌入式計算機,配置專用處理硬體的軟硬體結合解決方案成為智能機器人控制計算機的主流方案。例如,采用大規模內建電路晶片微控制器(mcu)作為智能機器人控制計算機,其内部內建中央處理器單元(cpu)、各種存儲器(ram、rom、eprom、eeprom和flash rom)、多種輸入/輸出接口等衆多功能部件,一片晶片構成了一個基本的嵌入式微型計算系統。例如,意法半導體(gt)公可研發的微控制器stm32 f7已在新一代智能機器人系統中得到了應用。
從單處理器到多處理器,從集中結構到分布結構:随着智能機器人智能程度的不斷提高,其處理系統對實時性、資料量和計算要求的不斷提高,采用高性能嵌入式處理器與高速dsp處理器、單片微控制器結合組成的異構多處理器成為智能機器人處理平台的主要方式;随着智能傳感器的發展,大型智能工業機器人的功能與結構更加複雜,集中處理方式已經難以滿足功能擴充、結構演化的需求,基于機器人内部網絡的分布式處理成為一種新型結構。
(5)人機互動與網絡通信接口
為了實作智能機器人與操作人員的互動與協同,以及與其他智能機器人的通信與協作,智能機器人必須配置多樣化的人機互動與網絡通信接口。
人機互動多樣化:機器人的人機互動實作了操作人員參與智能機器人控制并與機器人交流。最早的機器人人機互動的方式是通過滑鼠、鍵盤等接觸式接口實作的,互動方式呈機械化。随着傳感器技術的發展,機器人人機互動的方式展現出了多樣化。基于視覺或語音的人機互動方式是主流互動方式之一,但其感覺範圍和操作員的臨場感受到了限制;基于穿戴式裝置的互動方式可以大大增強操作員的臨場感,但價格昂貴,以及對人類肢體的束縛使其目前還難以大範圍推廣;采用深度錄影機擷取人手三維位置資料、采用慣性測量單元擷取人手三維姿态資料形成混合傳感器的互動方法,可實作人與機器人之間基于手勢的自然互動;為了突破傳統機器人控制的專用複雜性與封閉性,有研究者創新地将iphone等智能手機和先進的互動技術(如multi-touch、加速計等)與機器人技術有機融合,實作了具有基于hmm和人體動作控制解析能力的高易用性人機接口;誕生于20世紀的虛拟現實眼鏡基于眼球追蹤技術,具有良好的沉浸性和實時互動性,已成為聊天等智能服務機器人的主流人機互動方式;利用4g技術接入internet建構具有實時網絡視訊回報的遠端智能機器人控制平台,可形成控制靈活、無距離限制的高友好度的機器人人機互動模式;未來的智能機器人人機互動是一種包括語音、肢體動作、面部特征等綜合的自然人機互動方式。
多機協同網絡化:在工業、軍事等應用領域,往往需要發揮多個智能機器人的功能分布及時空分布等特點,多機器人協同操作,共同完成預定的複雜任務,這就需要相應的通信網絡對其提供支援。基于有線區域網路和無線區域網路通信技術及其應用已經普及,多智能機器人通信網絡大多在有線區域網路或無線區域網路的基礎上依據多機器人組成結構和應用場景等特點進行擴充和優化實作。例如,多移動機器人采用ad hoc網絡,依據多機器人的主從結構采用c/s通信控制,為了組網的友善性和增強抗毀性采用點對點的對等通信模式等。需要優化之處主要是提高網絡通信的實時性和可靠性、網絡組織的靈活性和快捷性。
除了上述智能機器人的機械本體和硬體組成之外,軟體系統也是智能機器人的重要組成部分。其運作在智能機器人特定的硬體平台之上,不僅實作了機器人運動位置控制、姿态軌迹計劃、操作順序管理、人機友好互動及多機通信與協同等功能,而且支援智能機器人軟體與系統的仿真、開發、測試與驗證等環節。
1.?智能機器人的軟體系統結構
智能機器人的軟體系統一般分為運作時支援系統和仿真開發平台兩大部分。如圖1-2所示。
運作時支援系統駐留在智能機器人的處理機平台之上,通常采用階層化結構。自底向上的第一層是開源多任務作業系統linux或專用嵌入式實時作業系統,其除了實作基本的處理資源管理、多任務排程之外,還實作了與智能機器人硬體驅動的适配;第二層是核心通用構件層,實作運動控制、坐标變換、人機互動等通用功能;第三層是特定應用構件層,其實作圖像處理、路徑規劃、定位導航等應用支援功能。三個層次分别面對不同的功能需求,對應于不同層次的開發,系統中各個層次内部均是由若幹個功能相對應的系統構件組成的,這些功能構件互相協作共同實作該層次所提供的功能。
智能機器人仿真開發平台可以在主控端上運作,主要支援實作智能機器人運作軟體的高效開發。不僅支援智能機器人的模型建構,而且具有驅動描述、程式設計語言支援等能力;不僅支援功能設計驗證,而且具有運作環境仿真、動态可視示範等能力。由此可知,智能機器人仿真開發平台是其軟體系統必不可少的一部分,并且具有面向特定領域的适應性和智能化軟體應用開發的高效性等特點。
2.?智能機器人作業系統
如前所述,可以将智能機器人看作一個特殊用途的專用嵌入式控制系統,猶如智能手機作為移動終端專用嵌入式系統,配置安卓等作業系統後,不僅使用友善,而且有利于高效應用開發,更可通過app下載下傳無限擴充其能力,智能機器人也可配置相應的作業系統。智能機器人作業系統的主要功能是屏蔽異構的機器人硬體資源,實作實時多任務排程與分布式實時通信、支援多模式人機互動,并支援智能機器人應用軟體的高效開發,進而有效管理機器人硬體與軟體資源。智能機器人作業系統的實作存在多種途徑,主流途徑是基于已有的linux、windows等作業系統核心,依據智能機器人的特點與需求進行優化和擴充,也有完全設計适應智能機器人特點的全新作業系統。需要說明的是,有的雖稱為智能機器人作業系統,但其本質已超越了傳統計算機作業系統的職能,以智能機器人中間件和開發環境為主體。
3.?智能機器人軟體構件化
構件化是一種提高機器人軟體重用性和降低系統設計難度的主流方法。實作機器人軟體系統構件化的前提是機器人系統從功能上被分解成了各種可重用的構件。為此需要建立構件的靜态模型和運作時模型,并設計基于模型的構件接口定義語言,不同構件之間的通信可通過相應的中間件來實作,最終通過構件之間的聚集和整合高效地形成完整的機器人軟體系統。
首先,機器人系統被分成控制系統和被控系統。控制系統是機器人控制軟體或者算法,被控系統是機器人硬體。為了實作機器人系統的構件化設計和軟體的重用,可采用基于構件的抽象模型以解除控制系統和被控系統之間的緊耦合。如圖1-3a所示,機器人中間件把機器人系統分成軟體系統和硬體系統兩個部分,機器人中間件的下層是機器人硬體系統,由不同的傳感器、執行器和其他硬體裝置組成。中間件的上層是機器人控制軟體,由不同的機器人軟體構件、控制算法和服務組成。機器人中間件隐藏了底層硬體的異構性,同時還提供了獨立于機器人硬體系統的構件接口,這些接口可用于上層構件或具體應用。為了提高軟體的可重用性,機器人軟體系統被分解成一系列的不同類型和不同粒度的可重用軟構件。
在圖1-3b中,水準方向的機器人系統被分成不同的功能構件。這些不同功能構件的設計開發者能夠專注于他們各自的功能實作,機器人系統內建者能夠根據标準接口快速地內建不同的功能構件并開發機器人軟體系統,而不需要了解功能構件特定的實作細節。
在垂直方向存在4種不同程度細粒度的構件,這些都是基于不同程度的抽象和重用性,具體如下。
原子構件:原子構件适合于硬體元件有直接聯系的唯一構件,其是一種特殊的硬體抽象,并且提供了對高層構件調用的統一接口,如電動機控制原子構件、傳感器控制原子構件等。
複合構件:根據一些功能需求群組合規則,一些原子構件被組合在一起形成複合構件,這些構件提供了更高層次和更大粒度的構件抽象。
算法構件:算法構件是一種與平台獨立的機器人算法實作,或者是一般機器人控制算法,如路徑規劃、卡爾曼濾波等。
應用構件:應用構件包括原子構件、複合構件和算法構件各種類型構件的組合,用于實作機器人系統的應用功能。
4.?智能機器人開源共享軟體
目前世界上各大工業機器人廠商均開發了各自的機器人軟體系統。這些軟體系統往往是私有且封閉的,廠商隻提供了固定的操作方式和十分有限的程式設計接口供使用者使用。對于機器人研發者來說,如果購買這些廠商的機器人進行進一步研發,會受到很多限制;而自行開發從底層到上層的完整軟體系統,又會成本過高并且不現實。
另外,雖然不同的機器人和不同的應用環境對機器人軟體系統的要求是不同的,但是有不少功能是每個開發者都要面對的共性問題,比如坐标變換、子產品間通信等。如果每個研發者都要自行開發這些共性功能,不僅浪費時間,分散研發者的資源,并且使研發者無法充分投入到更有意義及價值的目标研發中。
針對這些問題的解決需求,開放源代碼的機器人作業系統(robotoperating system,ros)應運而生。2010年willow garage公司釋出了開源機器人作業系統ros,很快在機器人研究領域展開了學習和使用ros的熱潮。其宗旨在于建構一個能夠整合不同研究成果,實作算法釋出、代碼重用的機器人軟體平台。ros中實作了大量的機器人技術中的共性問題,這使得ros的使用者可以充分複用ros中已有的高品質代碼,而不必自己重複開發。