背景
隨著人工智慧技術、計算機技術等相關技術的發展,對智慧型機器人的研究越來越多。在教育領域,許多院校已在學生中開設了機器人學方面的有關課程。為了滿足機器人學方面的有關課程教學示範和實驗教學的需求,我們研製開發了全方位的輪式移動機器人,可以作為各種智慧型控制方法(包括動態避障、群體協作策略)的良好載體,同時又可以方便的構成網路化的分散式系統,開展多智慧型體的調度、規劃等研究。本文全面介紹了這種移動機器人的控制系統體系結構,包括感測器、通訊、伺服控制、軟體構成等,並給出了實驗結果,證明了系統的可行性。
優點與獨特性
教學用機器人是一種適合大中專學生的具有開放式特徵的實訓實驗平台,是多種高科技的融合,可以完成電工、電子、單片機、機械設計、感測器、人工智慧、機電控制、數位訊號處理等許多課程的幾百個實訓實驗。模糊控制、行為控制、人工智慧、機器人學、多生命體、導盲機器人、智慧型家用電器等學科領域在實訓實驗中可以都得到更好理解和掌握,從而更好的使學生的綜合能力得以提高。
教學機器人的作用主要以展示機械結構、運動特徵和功能關係為主,相對於工業機器人,具有它的特殊性:首先,一台教學機器人相當於一個試驗平台,要能顯示多種運動性能,因此,套用環境廣泛,功能多樣。其次,其製造加上精度略低於工業機器人,且性價比高。另外,教學機器人體積小,重量輕。對此,專用性強的工業機器人的研製方法不能滿足這樣的要求。
硬體選擇設計
本機器人控制器採用“主控器+伺服控制器”的形勢。伺服控制器負責完成單關節的位置閉環,在機器人控制中,要求運動平穩無超調,所以伺服控制器的運算任務很繁重。主控制器主要完成除伺服控制器所作的位置閉環以外的所有工作,包括上位機命令接收,機器人狀態監視、顯示,根據一定的控制算法實現空間軌跡插補以及感測器信息綜合處理等工作。所以主控制器的任務也很繁重。
主控制器選擇
在移動教學機器人系統中, 套用工業計算機作為其控制系統核心成本高,體積大,功耗大,而採用8位或者16位單片機,又存在硬體資源有限、運算和處理速度有限的困擾,很難套用模糊控制等智慧型控制理論。 S3C44B0X是SAMSUNG公司推出的一個基於ARM7TDMI核的低功耗的高性價比的32位處理器,它可以在60MHZ頻率下運行,採用3級流水線結構 [4] ,處理能力大大超過8/16位的單片機,接近PC機,可以支持大螢幕的液晶顯示,提供功能強大的圖形用戶界面,另外基於ARM的控制器可以內嵌實時作業系統,克服了傳統基於單片機的控制系統的軟體“前後台”形式造成的實時性差的缺點[1][5]。S3C44B0X有8個外部中斷,兩個帶有握手協定的UART接口,另外具有SPI和I2C接口、RTC和5個16位的PWM控制器、8路10位AD以及LCD控制器等[4]。它豐富的模組很大程度上可以減少控制器的體積,增加系統的可靠性。控制系統硬體結構如圖1所示(系統中共有3個伺服驅動單元和電機,限於篇幅只畫了一個)。包括由S3C44B0X構成的主控制器,由LM629構成的伺服控制部分,通過UART形成的通訊電路、由LMD18200構成的功率放大電路、直流電機構成的執行機構、感測器電路等。
位置伺服模組
在機器人控制中,以單片機為核心構成位置閉環或者半閉環控制系統,不僅外圍電路結構複雜,而且軟體中軌跡插補運算比較煩瑣,難取得好的效果。而採用美國國家半導體公司生產的可程式全數字運動控制晶片LM629可以解決上述問題。它具有32位的位置、速度和加速度暫存器,內置PID算法,其參數可以修改;支持實時讀取和設定速度、加速度以及位置等運動參數,內置的梯形圖發生器能夠自動生成速度曲線,平穩地加速、減速,支持增量式光電碼盤的四倍頻輸入,適用於由正交增量式光電編碼器提供位置反饋的交直流伺服控制系統,能完成高性能數字運動控制中的實時計算工作(插補周期341微妙),可以方便的與橋式功率放大電路構成位置或速度閉環系統。LM629通過數據匯流排和控制匯流排與主控制器接口,其原理圖如圖2所示,主控制器將關節轉動的角位移、角加速度等命令參數通過匯流排傳遞給LM629,LM629在接到S3C44B0X的指令後可以按照設定的控制方式(P、PI、PID)完成位置閉環控制。它通過500線的增量式碼盤的A、B、Z信號構成位置反饋環節。LM629每個伺服周期進行一次位置、速度的檢查,如果未達到指定的位置或速度,則繼續運動或者加速,將要達到指定位置時會自動的按照設定的加速度進行減速,完成關節空間的位置閉環控制。這樣不僅克服了運動超調的現象,而且使得系統加減速時運行平穩。
功率放大模組
系統的功率放大部分以LMD18200為核心。LMD18200是美國國家半導體公司推出的專用於直流電動機驅動的H橋組件,同一晶片上集成了四個DMOS管,組成一個標準的H型驅動橋,外接很少的器件就可以完成直流電機的驅動。它瞬間驅動電流可達6A,正常工作電流可達3A,無“shot-through”電流。LMD18200提供雙極性驅動方式和單極性驅動方式[4]。由於雙極性電流波動大,功率損耗較大,所以系統中採用單極性驅動。
具體的接口電路如圖2所示(本機器人採用3個全方位正交輪,通過3個輪子配合,機器人可以完成任意方向的運動,限於篇幅圖中只畫出一個輪子的相關電路),LM629根據PID控制算法在PWM引腳輸出占空比變化但頻率固定的PWM信號,通過光電隔離加到LMD18200的5腳,這個PWM信號的占空比通過LMD18200可調節電機速度,LM629的DIR腳的高低電平可控制電機的正反轉。為了減少功率電源部分對控制器部分的影響,這兩個信號的連線都通過了光電隔離器件TLP521,如圖2所示。引腳2、10接直流電機電樞,正轉時電流的方向從引腳2流到引腳10;反轉時相反。此電路驅動功率大,穩定性好,實現方便,體積小,安全可靠。
通訊模組
通訊模組使用S3C44B0X的UART1連線一個無線通訊模組,主要從上位機接收世界坐標系的位置、速度指令。由於S3C44B0X的UART可以在高達115200波特率下正常工作,並且具有獨特的多位元組的FIFO結構,當採用中斷方式接受數據時只有滿足觸發深度時才會產生數據可用的中斷,很大程度上可以減少處理器回響中斷的次數,提高了處理器運行效率。UART硬體上具有監視“溢出錯誤、奇偶錯誤、幀錯誤”等錯誤的功能,並且提供相應的中斷向量。實時性好,軟體編寫方便。
感測器模組
機器人上安裝的4個超聲感測器模組用來探測周圍2米內的障礙物信息。有單獨的處理器進行數據處理,通過匯流排接口掛接在S3C44B0X的匯流排上。液晶模組主要用來顯示系統的一些運行狀態,也是通過匯流排接口連線在主控制器上。在此限於篇幅不做贅述。
可靠性低功耗
為了增加系統的可靠性,減少功率電路對弱電的干擾,系統中使用2組不共地的電源。S3C44B0X最小系統使用的3.3V電源和光電編碼器使用的5V電源為1組,24V的功率電源以及LMD18200用的5伏電源為一組。兩個電源之間的信號傳輸通過光電隔離器件TLP521隔離。編碼器信號以及LM629的時鐘信號都經過施密特觸發器整形。另外使用了S3C44B0X本身的WDT模組。
為了減少系統的功耗,主要採取了以下措施(1):主控制器將未使用的外圍模組如SPI、定時器1、I2C等關閉;(2):主控制器控制機器人在到達指定位置而沒有新的任務(通過串口接收)之前控制LMD18200進入剎車狀態,這時LMD18200腳4置邏輯高電平、腳5置邏輯低電平,H橋中所有電晶體關斷,每個輸出端只有約1.5mA的偏流;(3):主控制執行完(2)中的步驟後進入空閒模式,其各個暫存器的值可以保存,當有新的中斷產生時將喚醒主控制器進入正常工作狀態。
為了增加系統的可靠性,利用LMD18200的保護功能設計了系統過流過熱的保護。LMD18200內部具有過流保護的測量電路,在LMD18200的8腳輸出電流取樣信號,典型值為377 µA/A[4]。接一個對地電阻R2,通過電阻上的電壓和給定的電壓比較來監測輸出過流情況。LMD18200提供溫度報警信號,晶片結溫達145℃時,LMD18200的9腳變為低電平。這些保護信號通過光電隔離以後傳輸給S3C44B0X,實現過熱過流的監視。
軟體組織
軟體平台是基於移植到S3C44B0X的實時多任務作業系統UC/OS II。它是基於優先權、搶占式的實時核心,主要提供了任務管理、進程調度、任務間通信及記憶體管理等功能,具有原始碼公開、可移植性好等特點,採用全占先多任務機制,可支持56 個用戶任務,其中斷管理功能提供了深達255層的中斷嵌套。通過uC/ OS II 進行多任務的管理,任務處於休眠、等待(掛起) 、就緒、運行、中斷5種狀態之一[5]。它避免了傳統的前後台方式下實時性差、任務混亂及多任務調試困難等缺點[1,7]。此系統中有如下4個用戶任務,Task1:接收上位機命令;Task2:軌跡規劃;Task3:系統狀態監視,Task4系統狀態傳送和顯示。任務的優先權是依次降低的。任務之間通過信箱完成信息的交換與資源的共享。主控制器通過Task1接收上位機的位置和速度指令。由於上位機傳送指令是隨機的,而下位機除了接受上位機的指令外還要處理其它的事情,為了保證運動過程中命令的不丟失,採取了兩種措施:首先將該任務設定為優先權最高的用戶任務,另外主處理器允許UART1的接收中斷,並根據指令的長度將接收緩衝區的觸發深度設定為12位元組。(根據需要,此處上位機傳送給下位機的指令每幀長度為12位元組,S3C44B0X的UART接收觸發深度可以軟體編程設定為4、8、12、16位元組)。當上位機不傳送指令時,該任務處於掛起狀態,當上位機傳送12位元組命令時,將激發UART中斷。在該中斷服務程式中喚醒Task1進入就緒態。由於它具有最高的優先權,所以可以馬上執行,從接收緩衝區中接收上位機的指令。這樣避免了單個位元組就激發中斷而導致主處理器頻繁的回響中斷的情況和沒有實時作業系統的前後台調度方式中命令丟失的情況。Task2根據感測器提供的機器人的當前位置信息和障礙物信息以及接收到的上位機指令進行世界坐標系中的總體任務規劃、機器人運動學逆解,生成下一個節拍每個關節應該轉動的角位移、轉動的角速度,然後通過匯流排寫到相應的LM629的暫存器中,這個任務的優先權僅低於Task1,運行周期100毫秒。Task3主要處理感測器的信息,運行周期100毫秒。包括通過LM629的狀態暫存器獲得當前編碼器的信息,再經過運動學計算得到機器人當前位置信息,通過超聲感測器獲得當前機器人周圍障礙物的信息,通過LMD18200獲得的功率放大器的過熱過流信息。另外下位機的一些運行狀態,如當前位置、障礙物信息等也需要傳送給上位機同時送液晶模組顯示,這個由Task4來完成,這個任務具有最低的優先權,運行周期300毫秒。
系統的軟體在ADS1.2下調試通過。由於ARM7TDMI中沒有MMU(記憶體管理單元),所以其作業系統和用戶程式要編譯在一起,最後生成一個檔案。在這一點上不同於在DOS或Windows下的概念,它的作業系統和用戶程式是分開的,而且可以由多個應用程式同時存在於主機中。另外在ADS1.2下可以使用c語言進行軟體開發,並且可以使用數學庫,縮短了軟體開發周期。
實驗結果
採用上述的軟硬體設計方法,我們設計了用於檢驗各類控制算法的教學機器人平台,並在上邊做了系列的實驗,圖4是上位機控制機器人從世界坐標系的(0,0)點運動到(3m ,2m),然後以該點為圓心,以1.5m為半徑,開始圓周運動,圓周運動的起點和終點為(1.5m,2m)。圖中虛線是理想軌跡,黑線是實際軌跡。移動機器人的實際軌跡偏離理想軌跡的最大誤差約10cm,但是達到了位置精度的要求。誤差主要面是由於輪子對的地面的相對滑動以及機械精度引起。該實驗證明了系統的可行性。
結束語
ARM處理器的豐富的硬體資源以及高速流水線結構給各種智慧型控制算法提供了可能;另外採用μc/osⅡ作業系統,增強了系統的實時性,避免了前後台方式下任務調度困難,實時性差的缺點。總之,採用32位的ARM處理器和實時作業系統μc/osⅡ來構成機器人的控制器,具有體積小,功耗低,實時性好、處理速度遠遠超過單片機等優點,可以取得很好的效果。
未來發展
教學機器人在現代實驗教學中發揮的作用是顯而易見的。在不斷學習和摸索過程中,教學機器人可以在如下幾個方面進行功能擴展。
( 1) 當今的教學機器人大多只有運動和控制系統而無感覺系統,因此感測器的加入無疑將大大提高教學機器人的智慧型化程度。
( 2) 目前的教學機器人可以與遊戲手柄、 PLC以及諸多輸入輸出設備相連線,但在這方面的一系列相關設備做得還並不完善 ,還應加強這方面軟體和硬體的研發工作。
( 3) 目前的教學機器人的手爪是單一的,且只有開和關及鏇轉幾個動作,如果把手爪做成可調換的,將大大增加手爪的功能,擴大教學機器人實驗教學領域。
教學機器人的擴展方向還有很多,包括軟體、硬體、相關外設等等,都有待於我們做進一步的探索和研究。發展後的教學機器人不但可以進行實驗教學,還可以進行更多的工業機器人工作模擬,從而為更好地培養機器人方面基礎人才做更多的貢獻。
總之,全面自動化無疑已成為未來大多數產業發展的總趨勢,計算機和機器人也日趨成為社會發展的兩大支柱。在大力發展計算機技術的同時,絕不應該忽視機器人技術的不斷完善與提高。努力發展機器人技術,努力培養機器人創新、操作人才已成當務之急。 可以預見,機器人在我國的發展前景將十分廣闊!