帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
以HT46R24建構模組化機器人
 

【作者: 郭智宏,蘇國嵐,禕瞵,莊政憲】   2011年04月28日 星期四

瀏覽人次:【11701】

機器人是一個由許多的子系統構成的複雜系統,傳統的設計方式是將這許多的子系統,建構在一起,因此在開發、製造及後續的維護上,就須要有專業人員,也會需要較多的成本與時間;由於這樣的系統過於複雜,之後就開始有模組化的架構出現,也就是將機器人的各個功能予以模組化,然後再將這些模組連接起來組成機器人,但此種方式仍有些問題存在,由於各個模組間的通訊、連接方式及參數設定並無標準化,因此仍然需要專業人員來進行,雖然可以減少一些時間與成本,但事實上仍無法解決機器人系統複雜的問題,因此本文即提出一個以HOLTEK單晶片為模組核心,並且透過標準的通訊介面I2C與通訊協定,使得機器人的各個模組都能快速連接,而達到”隨插即用”的功能,並且透過一個易使用的介面,讓維護人員或使用者,能夠快速的知道那些模組已經連接,以及對連線的模組進行設定,使得機器人的建構與維護能夠更為快速,並且由於”隨插即用”的特性,不論開發人員或使用者,都能夠依照自己的需求來更換模組,讓機器人的建構更加靈活快速,也使機器人的應用更為廣泛。


系統架構

機器人的系統架構如圖一,分為三個部分,模組化系統主要就是構成機器人所需的馬達驅動與控制、電力偵測與控制、環境偵測、機器人狀態感測及避障偵測等模組,利用這些模組來將機器人建構起來。在本文中所有模組所使用的單晶片皆為盛群公司所生產的,之所以會選用盛群公司的產品,主要原因有三,(1)單晶片為RISC結構,使用學習方便,(2)具備A/D、D/A、PWM及I2C與RS232等功能,且整合在一顆IC中功能強大,(3)價格低廉、取得容易由於盛群為台灣本地公司,相關資料、晶片及技術資源容易取得,因此我們選用盛群的單晶片來作為機器人模組的主控晶片。


在馬達驅動與控制部分,負責接收控制命令,並且將命令轉換成驅動馬達動作,而控制機器人的運動。電力偵測與控制則是負責偵測機器人電力消耗,與機器人電力的規劃,讓機器人系統能夠正常。環境偵測與機器人狀態感測部分,則是負責偵測外界與機器人內部狀態,依照感測的目的可分為用來偵測環境舒適度與保全功能的環境感測、機器人方位與傾斜狀態的感測等。而避障感測則是用來偵測機器人所在環境中的障礙物,然後利用偵測的結果,作為機器人運動決策與路徑規畫的依據;在工業級電腦(IPC)的部分則是用來將所有模組化系統的資料做一有效的整合與顯示,然後透過軟體與易使用的介面,使機器人能夠快速且有效的被控制,並且在機器人發生問題時,也能夠快速的被發現與解決;而最後一部分部分則是組裝機器人的基本元素包含機器人的配線組裝,與電池電力系統等等,接下來我們將詳細介紹各部份模組與功能。



《圖一  機器人系統架構圖》
《圖一 機器人系統架構圖》

馬達控制與驅動模組

在馬達控制與驅動模組上,我們採用的架構是將馬達的控制器與驅動器分開,會這樣設計的原因是,當有較大馬達扭力需求時,僅需要更換馬達驅動器即可,如此可以增加整個的彈性。本文所設計的機器人是以伺服馬達為主,整個馬達控制與驅動的架構如圖二,在機器人上我們使用兩顆伺服馬達來讓機器人運動,每個馬達都具備有一個驅動模組,在驅動模組方面可分為兩部分,一個為功率驅動部分,這部分可依馬達的扭力大小而更換,另外一部分則為馬達控制,在馬達控制部分,主要是將運動控制命令轉換成實際驅動的信號,在這個系統中,我們採用的是PWM (Pulse Width Modulation)的控制方式,透過調整脈波寬度來控制馬達,同時驅動模組也會接收伺服馬達上的編碼器信號,透過編碼器信號來確認馬達是否有照控制命令動作,若無則作補償,最後驅動模組還會將編碼器的資料,與驅動模組的狀態,回傳到伺服馬達控制器。


伺服馬達控制器的功能在於整合馬達驅動器的資料,可以讓機器人的主控系統不用隨時去監控馬達的狀態,並且這個控制器能夠連接更多個馬達驅動器,主控系統可以把馬達的運動命令給控制器後,控制器就會將命令給對應的馬達,並且在必要時將資料回傳給主控系統,如此可以讓機器人的系統更有效率。


另外在系統中還有一個運動控制資料整合模組,這個模組主要的功能在於將馬達控制器,及與運動相關的感測模組,如避障模組、機器人姿態模組、機器人方位模組等資料做整合,並且在主控系統需要,或是各模組有重要資料要回傳主控系統時,將資料彙整回傳,並且隨時接收主控系統的命令來傳輸給各模組。事實上這樣的機制,就是分散式系統,透過這樣的設計,讓所有與運動有關的資訊都被整合後,再回傳給主控系統,而主控系統要下命令時,也不用分別對每個模組發出命令,僅需透過此模組即可。



《圖二  馬達驅動與運動控制架構圖》
《圖二 馬達驅動與運動控制架構圖》

電力系統

由於機器人本身的動力來源是電池,因此電池的狀態與電力的消耗狀態,即成為機器人能否正常運作的重要課題之一,圖三即為電力偵測與預估系統的架構圖,在這個圖中大致可分為兩部分,第一個部分是電力量測,在電力量測部分我們可以量測電壓與電流,並且各自使用了四個感測器,會如此的設計,除了要增加量測的精密度與準確性,以及防止因為單一感測器故障,就使量測功能喪失,因此我們做了這樣的設計。


由於盛群晶片本身即具有多通道的A/D轉換器,因此可以即時的將電壓及電流感測器的信號,轉換成數位資料,而電力預估部分即透過這些資料,來進行電力預估。在電力偵測及錯誤隔離方法中,我們在電力模組的單晶片中,放進了冗長資料管理(redundant management method)這個演算法。將電壓及電流感測器的資料作分析,然後預估電力系統的剩餘時間,並且將這些資料,傳輸回主控系統,監控並作為機器人運作的參考資料。


《圖三  電力偵測與預估系統架構圖》
《圖三 電力偵測與預估系統架構圖》

機器人避障系統

機器人在運動時,環境中通常會有障礙物出現,我們利用了反射型紅外線與超音波感測器來作為障礙物的偵測,會這樣設計是因為紅外線對於透明的障礙物,及反射率較高的物體較不容易偵測,而超音波則是對較近的物體不易偵測,因此我們利用這兩種感測器的互補特性,來偵測機器人周圍的障礙物。


在反射型紅外線部分,其架構如圖四,我們用了八個反射型紅外線感測器,由於反射型紅外線的輸出信號是12V,因此必須先經過信號轉換,然後才可以輸入到單晶片中,單晶片會將這8個感測器的信號整合在一起,然後透過通訊介面傳輸到主控系統,除此之外還會將每個感測器的信號,以LED來顯示,以提供運作及維護的參考。


《圖四  反射型紅外線避障系統架構圖》
《圖四 反射型紅外線避障系統架構圖》

在超音波避障模組部分,我們採用的是Polaroid 6500系列的感測器,由於超音波感測器須要有驅動及計算距離的電路,因此我們把感測器接上驅動電路,感測器再經過驅動電路後,驅動電路即會將超音波的量測資料,轉換成相對應的電壓信號,此時就可以透過單晶片上的A/D轉換,將電壓信號轉換成實際距離。在這個避障模組中,我們使用了8個超音波感測器,讓機器人能夠確實且精確的偵測機器人周遭的障礙物;感測模組在接收每個超音波傳回的距離值後,會把這些資料整合傳輸到主控系統,讓機器人作避障及運動的決策。



《圖五  超音波避障系統架構圖》
《圖五 超音波避障系統架構圖》

狀態感測系統

機器人在環境運動時,除了要躲避障礙物外,還要能夠偵測自己的方向與姿態,如此才能夠確認機器人的運動方位與位置;另外由於環境中不一定都是平坦的地形,因此當有較陡或下坡地形出現時,若機器人無法偵測姿態,則將有可能使機器人失去重心,而傾倒損壞,方位感測及姿態感測方塊圖如圖六。


在機器人方位部分,我們採用的是Hitachi HM55B 電子羅盤模組,它的原理是利用本身與地磁的相互關係,而偵測出方向;由於電子羅盤模組本身已經做好所有的信號處理與轉換,因此單晶片可以直接以命令的方式,直接讀取電子羅盤中的角度資料,然後將所讀取到的資料傳回給主控系統。


在機器人姿態偵測部分,我們採用的是加速度計,加速度計的工作原理是藉由內部氣體的蒸發效應,透過四個感測器來偵測傾斜角度;我們所採用的加速度計是Memsic 2125雙軸加速度計,這個加速度計的輸出是把X及Y軸的傾斜角度,以PWM方式輸出,也就是輸出脈波寬度會隨著角度不同而改變,因此我們只要計算脈波寬度,就能夠得到傾斜角度,而單晶片就是負責計算感測器回傳的傾斜角度資料,然後回傳給主控系統。



《圖六  加速度及電子羅盤系統架構圖》
《圖六 加速度及電子羅盤系統架構圖》

環境感測系統

當我們完成了機器人的大部分模組後,我們想讓機器人能夠偵測環境的狀況,如溫度、濕度及照度等,除此之外我們也想讓機器人能夠偵測災害的發生,因此我們設計了一個溫濕度三合一的模組,以及一個火災偵測模組,透過這兩個模組,讓機器人能夠為人們的生活提供服務。


在溫濕照模組中,我們採用的溫溼度感測器是SHT11,這個感測器本身已具備溫濕度感測及處理電路,因此我們可以透過通訊介面,直接讀取溫濕度的資料;而在照度感測器部分,我們使用的是hamamatsu公司所生產的照度感測器S1133,這個感測器基本上是一個光電晶體,他會隨著光線的強度而改變輸出電流的大小,由於他的輸出是電流,因此我們設計了一個驅動電路,將感測器信號轉換成電壓,並且作相關的補償與校正,然後再由單晶片的A/D轉換器,將電壓信號轉成數位資料,此模組的方塊圖如圖七。



《圖七  溫濕照三合一系統架構圖》
《圖七 溫濕照三合一系統架構圖》

火災感測模組部分,我們使用的是R2868光電感測器,他的工作原理是利用光電管中兩個高壓閘極來感應波長在185~260um間的紫外線,其感應峰值波長為220um,而一般火焰所發出的光譜波長剛好符合這個感測器,因此我們用來偵測火焰信號;在這個感測模組上我們裝設了三個火焰感測器,藉由多個感測器使用多數決之方法,來確認火焰是否真的出現,以防止假信號造成誤動作,由於這個感測器需要高壓驅動,因此我們透過驅動電路驅動感測器,並且將信號轉換成單晶片可以接收的信號後,然後再由單晶片藉由三個感測器的信號,來判斷是否真的有火焰產生,並將感測器資料與偵測狀態,回傳給主控系統。


通訊介面與協定

在完成了所有的硬體模組後,接下來要處理的就是如何將所有的模組連接在一起,以及處理各模組的資料。圖八即為整個機器人系統的通訊結構方塊圖,在通訊結構部分,由於I2C是屬於主從式架構,因此必須要有一個MASTER端,來輪詢所有模組以獲得資料,但也因此造成一個問題,就是如果所有的資料都需要由主控系統來輪詢讀取,那勢必會耗用主控系統的資源,除此之外也將使主控系統的選用受到限制,為了解決這樣的問題,我們設計了一個模組資料傳輸裝置,利用這個裝置去讀取所有模組的資料,然後將模組資料打包成一個資料封包,然後再傳輸給主控系統,如此主控系統就能快速的獲得模組資料。


在通訊協定部分,我們利用資料封包的架構,設計出一個標準的模組資料封包,其結構如表一,每個模組均使用相同的封包結構,在這個結構中包含幾個部分:


  • ■Slave ID:這個部分是用來描述是哪個模組所傳輸的資料,由於我們已經將每個模組賦予不同的ID,因此可以由ID來辨認是哪個模組。


  • ■資料傳送長度:這個部分是用來描述模組所傳輸的資料長度有多少Byte,以便主控系統解析資料。


  • ■資料接收長度:這個部分是用來描述當主控端要將資料傳輸給模組(如設定參數)時,總共傳送了多少長度的設定資料。


  • ■資料內容:這個部分是真實的模組資料,長度隨著不同模組而有不同。


  • ■檢查和:這個部分是用來作資料確認用的,透過檢查和的機制,可以確保資料在傳輸過程中的正確性。



在定義完模組的傳輸結構後,資料傳輸模組即會輪詢每個模組,並且將連線正常的模組資料讀回,讀回後就會將所有有回傳的模組資料,予以打包成一個封包,然後傳輸到主控系統,而這個資料的封包結構,如表3-2所示。在這個結構中包含幾個部分:


  • ■ SLAVE 數量:這個部分是用來描述封包中總共有幾個模組的封包資料,以表二為例,我們使用的方式是模組數量加224,會這樣設計是因為資料封包的長度可能相當長,並且每個模組的資料封包中,都已經包含了檢查和,所以如果再對整個資料封包作檢查和,將可能耗用很多時間,但還是要確保資料的完整性,因此利用這樣的機制,讓資料封包能夠具備資料偵錯的功能,也不會耗用時間。


  • ■模組資料:這部分即是各模組的真實資料封包,由於資料傳輸模組是依照ID的順序輪詢模組,因此模組資料封包也會按照ID的順序依次排好。


  • ■檢查碼:這個部分是用來表達資料封包的結束點,當主控系統收到此碼,即代表資料封包已經結束。



在模組資料傳輸裝置部分,我們為了考慮通用性,因此我們選擇’RS232為輸出到主控端的通訊介面,因為RS232幾乎所有的微處理機、電腦都具備,並且已在工業界使用相當長的時間,並且也可以透過簡單的電路,將其轉換成RS422、RS485甚至是網路,因此讓整個機器人系統的主控器選擇彈性較大。



《圖八  通訊介面方塊圖》
《圖八 通訊介面方塊圖》
(表一) 模組資料封包結構
Slave ID 碼 資料傳送長度 資料接收長度 資料內容 檢查和

(表二) 資料整合封包結構
SLAVE 數量 Slave 1 裝置 Slave 2 裝置 ~~~ Slave 15 裝置 檢查碼
1~15 + 224         88

機器人系統實現

在詳細介紹完機器人的每個模組與通訊系統後,我們即將這些模組組裝起來,使其成為一個完整的機器人系統。圖九即為整個機器人組裝的架構,在這個架構中最底層安裝的就是馬達與輪子,使機器人具備運動能力,往上一層則是機器人的動力來源電池,電池安裝在此,可以讓機器人的重心降低,使機器人在運動時能更平穩;電池的上方即是各個機器人的模組,所有機器人的模組都安裝在此層,如此可以讓機器人的維護較容易。而在機器人的周圍,我們放置了兩層的紅外線與超音波的避障感測模組,這是因為考量到僅放一層時,可能會有感測死角,因此放置了兩層。而最上面兩層則是主控器與人機介面,在主控器部分,我們使用的是工業電腦,並且設計相關軟體與人機介面,使機器人系統能夠受到控制及應用來執行工作。圖十為實際機器人的實體照片。



《圖九  機器人結構圖》
《圖九 機器人結構圖》

《圖十  機器人實體圖》
《圖十 機器人實體圖》

接下來我們將介紹機器人的人機介面,圖十一是整個機器人系統的主控中心,這個畫面大致上可分為3個部分:


  • ■此區主要是設定主控器的RS232通訊介面的參數,透過這個設定,讓機器人上的模組資料傳輸裝置,能夠與主控器溝通。


  • ■此區為各個模組的連線與通訊狀態,由於我們的設計是可以讓每個模組都能隨插即用,因此當有模組加入或移除,都可以由此看到狀態,並且可以看到詳細的資料傳輸方向、資料長度及詳細的傳輸資料。


  • ■此區為馬達參數調整區,由於在實際應用時,所用的馬達會有不同,因此針對這些差異,我們可以透過此介面,來調整馬達驅動模組的參數,並且可以做馬達的校正與調整,讓馬達能夠發揮最高效率。




《圖十一  模組連接與參數設定畫面》
《圖十一 模組連接與參數設定畫面》

接下來我們介紹使用者的操作介面如圖十二,在這個介面中,為了讓人能夠容易辨別各項資訊,因此大量採用圖形的方式來表現,並且適度的將每個模組的資料以數值顯示,讓操作者能夠快速的了解機器人的資訊;除此之外還提供了手動控制機器人的功能,讓使用者可以遙控機器人運動。接下來我們將詳細說明畫面中每個部份的功能。


@小標: (A)


■A1:此區為火焰感測模組資訊,由於模組上有三個火焰感測器,畫面上F1、F2、F3即為三個火焰感測器資料顯示區,當有信號時會顯示為”1”,而模組會以這個資料來作多數決,判定是否有火焰,而回傳發現火焰,並在FIRE的地方顯示”1”。


■A2:此區為溫濕照模組的資料顯示區,其中H代表的是濕度,Lux代表的是照度,T則是溫度。


(B)

■B1:此區是反射型紅外線模組的資訊,前面我們提到,我們使用了兩層反射型紅外線,而每一層各有8個感測器,因此在這裡也分為兩層來顯示,當有物體進入感測範圍時,畫面上的相對位置就會變成紅色,透過這樣的表達,讓操作者可以快速知道障礙物狀態。


■B2:此區為超音波感測模組資訊,跟上面一樣也是有兩層,所以這裡會將每個感測器的量測值顯示出來,在這裡我們已經將數值轉換成公分,因此可以清楚知道目前哪個方向、距離多遠處有物體。


(C)

■C1:此區是電子羅盤模組的資訊,我們除了以文字的方式,來表達目前機器人的角度及方位外,也以指針羅盤的方式,用圖形來表達機器人的方位。


■C2:此區是兩軸加速計的資訊,在這裡我們可以看到兩軸加速計的數值,並且模組利用這兩軸感測器的資料,來換算出目前的加速度與運動方位角。


■C3:此區為機器人電力狀態資訊,因為模組上各有四個電壓及電流感測器,因此這裡也會顯示所有感測器的資料,同時模組上有冗長資料管理的演算法,因此模組也會將估測結果回傳,並顯示在此。


(D)

■D1:此區是簡易的馬達參數調整,由於每個馬達特性不同,因此除了在前面的參數設定中進行詳細的調整外,操作者也可以利用此區,進行簡單的調整。


■D2:此區是機器人的手動控制區,操作者可以利用此區來控制機器人運動,並可切換手動與自走模式。



《圖十二  模組數值與狀態畫面》
《圖十二 模組數值與狀態畫面》

結論與展望

我們利用盛群的單晶片,將構成機器人的馬達驅動、電力控制、姿態及方位感測、環境感測等主要模組建構出來,並且透過I2C介面將這些模組串接起來,除此之外還可以隨時以”隨插即用”的方式,加入或移除模組,透過這樣的設計,讓機器人不論再組裝或維護上,都能夠簡單而快速的達成,同時也因為這樣的設計,讓機器人的成本大幅降低。


在操控人機介面部分,我們儘量以圖形的方式,來表達模組的狀態與資料,讓操作者能夠快速且清楚的知道目前機器人的狀態,另外為了讓操作者能夠更快速的知道機器人的姿態與運動狀態,我們還將這些資訊另外以整合的畫面來表達,如此也讓操作者能夠不被其他資訊干擾,快速掌握機器人的狀態。


我們利用單晶片模組建構了一個機器人系統,基本上這些模組已經涵蓋了所有機器人的主要功能,當然機器人還有許多不同的種類,以及不同功能的需求,未來我們將繼續秉持著模組化的架構,開發出更多功能更強,以及更多不同應用層面的模組,讓機器人系統能夠更人性化,更容易融入人類的生活中。


相關文章
意法半導體的邊緣AI永續發展策略:超越MEMS迎接真正挑戰
為嵌入式系統注入澎湃動力 開啟高效能新紀元
嵌入式系統的創新:RTOS與MCU的協同運作
STM32MP25系列MPU加速邊緣AI應用發展 開啟嵌入式智慧新時代
STM32 MCU產品線再添新成員 STM32H7R/S與STM32U0各擅勝場
comments powered by Disqus
相關討論
  相關新聞
» 韓國研發突破性半導體封裝技術 大幅提升產能並降成本
» 美國聯邦通訊委員會發布新規定 加速推動C-V2X技術
» DigiKey第16屆年度DigiWish佳節大放送活動即將開始
» 台灣PCB產業南進助攻用人 泰國產學合作跨首步
» AI推升全球半導體製造業Q3罕見成長 動能可望延續至年底


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.3.144.47.115
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw