教學機器人

教學機器人

教學機器人是為了滿足機器人學方面的有關課程教學示範和實驗教學的需求而研製開發的全方位輪式移動機器人,可以作為各種智能控制方法(包括動態避障、群體協作策略)的良好載體,同時又可以方便的構成網路化的分散式系統,開展多智能體的調度、規劃等研究。

引言


近年來隨著人工智慧技術、計算機技術等相關技術的發展,對智能機器人的研究越來越多。在教育領域,許多院校已在學生中開設了機器人學方面的有關課程。為了滿足機器人學方面的有關課程教學示範和實驗教學的需求,我們研製開發了全方位的輪式移動機器人。本文全面介紹了這種移動機器人的控制系統體系結構,包括感測器、通訊、伺服控制、軟體構成等,並給出了實驗結果,證明了系統的可行性。

機器人控制系統的硬體方案選擇與設計


本機器人控制器採用“主控器+伺服控制器”的形勢。伺服控制器負責完成單關節的位置閉環,在機器人控制中,要求運動平穩無超調,所以伺服控制器的運算任務很繁重。主控制器主要完成除伺服控制器所作的位置閉環以外的所有工作,包括上位機命令接收,機器人狀態監視、顯示,根據一定的控制演演算法實現空間軌跡插補以及感測器信息綜合處理等工作。所以主控制器的任務也很繁重。

主控制器選擇

在移動教學機器人系統中, 應用工業計算機作為其控制系統核心成本高,體積大,功耗大,而採用8位或者16位單片機,又存在硬體資源有限、運算和處理速度有限的困擾,很難應用模糊控制等智能控制理論。 S3C44B0X是SAMSUNG公司推出的一個基於ARM7TDMI核的低功耗的高性價比的32位處理器,它可以在60MHZ頻率下運行,採用3級流水線結構,處理能力大大超過8/16位的單片機,接近PC機,可以支持大屏幕的液晶顯示,提供功能強大的圖形用戶界面,另外基於ARM控制器可以內嵌實時操作系統,克服了傳統基於單片機的控制系統的軟體“前後台”形式造成的實時性差的缺點。S3C44B0X有8個外部中斷,兩個帶有握手協議的UART介面,另外具有SPI和I2C介面、RTC和5個16位的PWM控制器、8路10位AD以及LCD控制器等。它豐富的模塊很大程度上可以減少控制器的體積,增加系統的可靠性。控制系統硬體結構如圖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提供雙極性驅動方式和單極性驅動方式。由於雙極性電流波動大,功率損耗較大,所以系統中採用單極性驅動。
具體的介面電路如圖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。接一個對地電阻R2,通過電阻上的電壓和給定的電壓比較來監測輸出過流情況。LMD18200提供溫度報警信號,晶元結溫達145℃時,LMD18200的9腳變為低電平。這些保護信號通過光電隔離以後傳輸給S3C44B0X,實現過熱過流的監視。

控制系統的軟體組織


軟體平台是基於移植到S3C44B0X的實時多任務操作系統UC/OS II。它是基於優先順序、搶佔式的實時內核,主要提供了任務管理、進程調度、任務間通信及內存管理等功能,具有源代碼公開、可移植性好等特點,採用全佔先多任務機制,可支持56 個用戶任務,其中斷管理功能提供了深達255層的中斷嵌套。通過uC/ OS II 進行多任務的管理,任務處於休眠、等待(掛起) 、就緒、運行、中斷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Ⅱ來構成機器人的控制器,具有體積小,功耗低,實時性好、處理速度遠遠超過單片機等優點,可以取得很好的效果。