基于ARM+μc/os Ⅱ的教學機器人控制系統(tǒng)設計與實現(xiàn)
1.引言
本文引用地址:http://2s4d.com/article/152625.htm近年來隨著人工智能技術、計算機技術等相關技術的發(fā)展,對智能機器人的研究越來越多。在教育領域,許多院校已在學生中開設了機器人學方面的有關課程。為了滿足機器人學方面的有關課程教學示范和實驗教學的需求,我們研制開發(fā)了全方位的輪式移動機器人,可以作為各種智能控制方法(包括動態(tài)避障、群體協(xié)作策略)的良好載體,同時又可以方便的構成網(wǎng)絡化的分布式系統(tǒng),開展多智能體的調(diào)度、規(guī)劃等研究。本文全面介紹了這種移動機器人的控制系統(tǒng)體系結構,包括傳感器、通訊、伺服控制、軟件構成等,并給出了實驗結果,證明了系統(tǒng)的可行性。
2、機器人控制系統(tǒng)的硬件方案選擇與設計
本機器人控制器采用“主控器+伺服控制器”的形勢。伺服控制器負責完成單關節(jié)的位置閉環(huán),在機器人控制中,要求運動平穩(wěn)無超調(diào),所以伺服控制器的運算任務很繁重。主控制器主要完成除伺服控制器所作的位置閉環(huán)以外的所有工作,包括上位機命令接收,機器人狀態(tài)監(jiān)視、顯示,根據(jù)一定的控制算法實現(xiàn)空間軌跡插補以及傳感器信息綜合處理等工作。所以主控制器的任務也很繁重。
2.1 主控制器選擇
在移動教學機器人系統(tǒng)中, 應用工業(yè)計算機作為其控制系統(tǒng)核心成本高,體積大,功耗大,而采用8位或者16位單片機,又存在硬件資源有限、運算和處理速度有限的困擾,很難應用模糊控制等智能控制理論。 S3C44B0X是SAMSUNG公司推出的一個基于ARM7TDMI核的低功耗的高性價比的32位處理器,它可以在60MHZ頻率下運行,采用3級流水線結構 [4] ,處理能力大大超過8/16位的單片機,接近PC機,可以支持大屏幕的液晶顯示,提供功能強大的圖形用戶界面,另外基于ARM的控制器可以內(nèi)嵌實時操作系統(tǒng),克服了傳統(tǒng)基于單片機的控制系統(tǒng)的軟件“前后臺”形式造成的實時性差的缺點[1][5]。S3C44B0X有8個外部中斷,兩個帶有握手協(xié)議的UART接口,另外具有SPI和I2C接口、RTC和5個16位的PWM控制器、8路10位AD以及LCD控制器等[4]。它豐富的模塊很大程度上可以減少控制器的體積,增加系統(tǒng)的可靠性??刂葡到y(tǒng)硬件結構如圖1所示(系統(tǒng)中共有3個伺服驅(qū)動單元和電機,限于篇幅只畫了一個)。包括由S3C44B0X構成的主控制器,由LM629構成的伺服控制部分,通過UART形成的通訊電路、由LMD18200構成的功率放大電路、直流電機構成的執(zhí)行機構、傳感器電路等。
2.2 位置伺服模塊
在機器人控制中,以單片機為核心構成位置閉環(huán)或者半閉環(huán)控制系統(tǒng),不僅外圍電路結構復雜,而且軟件中軌跡插補運算比較煩瑣,難取得好的效果。而采用美國國家半導體公司生產(chǎn)的可編程全數(shù)字運動控制芯片LM629可以解決上述問題。它具有32位的位置、速度和加速度寄存器,內(nèi)置PID算法,其參數(shù)可以修改;支持實時讀取和設定速度、加速度以及位置等運動參數(shù),內(nèi)置的梯形圖發(fā)生器能夠自動生成速度曲線,平穩(wěn)地加速、減速,支持增量式光電碼盤的四倍頻輸入,適用于由正交增量式光電編碼器提供位置反饋的交直流伺服控制系統(tǒng),能完成高性能數(shù)字運動控制中的實時計算工作(插補周期341微妙),可以方便的與橋式功率放大電路構成位置或速度閉環(huán)系統(tǒng)。LM629通過數(shù)據(jù)總線和控制總線與主控制器接口,其原理圖如圖2所示,主控制器將關節(jié)轉動的角位移、角加速度等命令參數(shù)通過總線傳遞給LM629,LM629在接到S3C44B0X的指令后可以按照設定的控制方式(P、PI、PID)完成位置閉環(huán)控制。它通過500線的增量式碼盤的A、B、Z信號構成位置反饋環(huán)節(jié)。LM629每個伺服周期進行一次位置、速度的檢查,如果未達到指定的位置或速度,則繼續(xù)運動或者加速,將要達到指定位置時會自動的按照設定的加速度進行減速,完成關節(jié)空間的位置閉環(huán)控制。這樣不僅克服了運動超調(diào)的現(xiàn)象,而且使得系統(tǒng)加減速時運行平穩(wěn)。
2.3 功率放大模塊
系統(tǒng)的功率放大部分以LMD18200為核心。LMD18200是美國國家半導體公司推出的專用于直流電動機驅(qū)動的H橋組件,同一芯片上集成了四個DMOS管,組成一個標準的H型驅(qū)動橋,外接很少的器件就可以完成直流電機的驅(qū)動。它瞬間驅(qū)動電流可達6A,正常工作電流可達3A,無“shot-through”電流。LMD18200提供雙極性驅(qū)動方式和單極性驅(qū)動方式[4]。由于雙極性電流波動大,功率損耗較大,所以系統(tǒng)中采用單極性驅(qū)動。
具體的接口電路如圖2所示(本機器人采用3個全方位正交輪,通過3個輪子配合,機器人可以完成任意方向的運動,限于篇幅圖中只畫出一個輪子的相關電路),LM629根據(jù)PID控制算法在PWM引腳輸出占空比變化但頻率固定的PWM信號,通過光電隔離加到LMD18200的5腳,這個PWM信號的占空比通過LMD18200可調(diào)節(jié)電機速度,LM629的DIR腳的高低電平可控制電機的正反轉。為了減少功率電源部分對控制器部分的影響,這兩個信號的連接都通過了光電隔離器件TLP521,如圖2所示。引腳2、10接直流電機電樞,正轉時電流的方向從引腳2流到引腳10;反轉時相反。此電路驅(qū)動功率大,穩(wěn)定性好,實現(xiàn)方便,體積小,安全可靠。
2.4 通訊模塊
通訊模塊使用S3C44B0X的UART1連接一個無線通訊模塊,主要從上位機接收世界坐標系的位置、速度指令。由于S3C44B0X的UART可以在高達115200波特率下正常工作,并且具有獨特的多字節(jié)的FIFO結構,當采用中斷方式接受數(shù)據(jù)時只有滿足觸發(fā)深度時才會產(chǎn)生數(shù)據(jù)可用的中斷,很大程度上可以減少處理器響應中斷的次數(shù),提高了處理器運行效率。UART硬件上具有監(jiān)視“溢出錯誤、奇偶錯誤、幀錯誤”等錯誤的功能,并且提供相應的中斷向量。實時性好,軟件編寫方便。
圖3 系統(tǒng)主控制器、位置伺服單元、功率單元的接口
2.5 傳感器模塊和液晶模塊
機器人上安裝的4個超聲傳感器模塊用來探測周圍2米內(nèi)的障礙物信息。有單獨的處理器進行數(shù)據(jù)處理,通過總線接口掛接在S3C44B0X的總線上。液晶模塊主要用來顯示系統(tǒng)的一些運行狀態(tài),也是通過總線接口連接在主控制器上。在此限于篇幅不做贅述。
2.6 系統(tǒng)的可靠性和低功耗設計措施
為了增加系統(tǒng)的可靠性,減少功率電路對弱電的干擾,系統(tǒng)中使用2組不共地的電源。S3C44B0X最小系統(tǒng)使用的3.3V電源和光電編碼器使用的5V電源為1組,24V的功率電源以及LMD18200用的5伏電源為一組。兩個電源之間的信號傳輸通過光電隔離器件TLP521隔離。編碼器信號以及LM629的時鐘信號都經(jīng)過施密特觸發(fā)器整形。另外使用了S3C44B0X本身的WDT模塊。
為了減少系統(tǒng)的功耗,主要采取了以下措施(1):主控制器將未使用的外圍模塊如SPI、定時器1、I2C等關閉;(2):主控制器控制機器人在到達指定位置而沒有新的任務(通過串口接收)之前控制LMD18200進入剎車狀態(tài),這時LMD18200腳4置邏輯高電平、腳5置邏輯低電平,H橋中所有晶體管關斷,每個輸出端只有約1.5mA的偏流;(3):主控制執(zhí)行完(2)中的步驟后進入空閑模式,其各個寄存器的值可以保存,當有新的中斷產(chǎn)生時將喚醒主控制器進入正常工作狀態(tài)。
為了增加系統(tǒng)的可靠性,利用LMD18200的保護功能設計了系統(tǒng)過流過熱的保護。LMD18200內(nèi)部具有過流保護的測量電路,在LMD18200的8腳輸出電流取樣信號,典型值為377 µA/A[4]。接一個對地電阻R2,通過電阻上的電壓和給定的電壓比較來監(jiān)測輸出過流情況。LMD18200提供溫度報警信號,芯片結溫達145℃時,LMD18200的9腳變?yōu)榈碗娖健_@些保護信號通過光電隔離以后傳輸給S3C44B0X,實現(xiàn)過熱過流的監(jiān)視。
3、控制系統(tǒng)的軟件組織
軟件平臺是基于移植到S3C44B0X的實時多任務操作系統(tǒng)UC/OS II。它是基于優(yōu)先級、搶占式的實時內(nèi)核,主要提供了任務管理、進程調(diào)度、任務間通信及內(nèi)存管理等功能,具有源代碼公開、可移植性好等特點,采用全占先多任務機制,可支持56 個用戶任務,其中斷管理功能提供了深達255層的中斷嵌套。通過uC/ OS II 進行多任務的管理,任務處于休眠、等待(掛起) 、就緒、運行、中斷5種狀態(tài)之一[5]。它避免了傳統(tǒng)的前后臺方式下實時性差、任務混亂及多任務調(diào)試困難等缺點[1,7]。此系統(tǒng)中有如下4個用戶任務,Task1:接收上位機命令;Task2:軌跡規(guī)劃;Task3:系統(tǒng)狀態(tài)監(jiān)視,Task4系統(tǒng)狀態(tài)發(fā)送和顯示。任務的優(yōu)先級是依次降低的。任務之間通過郵箱完成信息的交換與資源的共享。主控制器通過Task1接收上位機的位置和速度指令。由于上位機發(fā)送指令是隨機的,而下位機除了接受上位機的指令外還要處理其它的事情,為了保證運動過程中命令的不丟失,采取了兩種措施:首先將該任務設置為優(yōu)先級最高的用戶任務,另外主處理器允許UART1的接收中斷,并根據(jù)指令的長度將接收緩沖區(qū)的觸發(fā)深度設置為12字節(jié)。(根據(jù)需要,此處上位機發(fā)送給下位機的指令每幀長度為12字節(jié),S3C44B0X的UART接收觸發(fā)深度可以軟件編程設置為4、8、12、16字節(jié))。當上位機不發(fā)送指令時,該任務處于掛起狀態(tài),當上位機發(fā)送12字節(jié)命令時,將激發(fā)UART中斷。在該中斷服務程序中喚醒Task1進入就緒態(tài)。由于它具有最高的優(yōu)先級,所以可以馬上執(zhí)行,從接收緩沖區(qū)中接收上位機的指令。這樣避免了單個字節(jié)就激發(fā)中斷而導致主處理器頻繁的響應中斷的情況和沒有實時操作系統(tǒng)的前后臺調(diào)度方式中命令丟失的情況。Task2根據(jù)傳感器提供的機器人的當前位置信息和障礙物信息以及接收到的上位機指令進行世界坐標系中的總體任務規(guī)劃、機器人運動學逆解,生成下一個節(jié)拍每個關節(jié)應該轉動的角位移、轉動的角速度,然后通過總線寫到相應的LM629的寄存器中,這個任務的優(yōu)先級僅低于Task1,運行周期100毫秒。Task3主要處理傳感器的信息,運行周期100毫秒。包括通過LM629的狀態(tài)寄存器獲得當前編碼器的信息,再經(jīng)過運動學計算得到機器人當前位置信息,通過超聲傳感器獲得當前機器人周圍障礙物的信息,通過LMD18200獲得的功率放大器的過熱過流信息。另外下位機的一些運行狀態(tài),如當前位置、障礙物信息等也需要發(fā)送給上位機同時送液晶模塊顯示,這個由Task4來完成,這個任務具有最低的優(yōu)先級,運行周期300毫秒。
系統(tǒng)的軟件在ADS1.2下調(diào)試通過。由于ARM7TDMI中沒有MMU(內(nèi)存管理單元),所以其操作系統(tǒng)和用戶程序要編譯在一起,最后生成一個文件。在這一點上不同于在DOS或Windows下的概念,它的操作系統(tǒng)和用戶程序是分開的,而且可以由多個應用程序同時存在于主機中。另外在ADS1.2下可以使用c語言進行軟件開發(fā),并且可以使用數(shù)學庫,縮短了軟件開發(fā)周期。
4、實驗結果
采用上述的軟硬件設計方法,我們設計了用于檢驗各類控制算法的教學機器人平臺,并在上邊做了系列的實驗,圖4是上位機控制機器人從世界坐標系的(0,0)點運動到(3m ,2m),然后以該點為圓心,以1.5m為半徑,開始圓周運動,圓周運動的起點和終點為(1.5m,2m)。圖中虛線是理想軌跡,黑線是實際軌跡。移動機器人的實際軌跡偏離理想軌跡的最大誤差約10cm,但是達到了位置精度的要求。誤差主要面是由于輪子對的地面的相對滑動以及機械精度引起。該實驗證明了系統(tǒng)的可行性。
5、結束語
ARM處理器的豐富的硬件資源以及高速流水線結構給各種智能控制算法提供了可能;另外采用μc/osⅡ操作系統(tǒng),增強了系統(tǒng)的實時性,避免了前后臺方式下任務調(diào)度困難,實時性差的缺點??傊?,采用32位的ARM處理器和實時操作系統(tǒng)μc/osⅡ來構成機器人的控制器,具有體積小,功耗低,實時性好、處理速度遠遠超過單片機等優(yōu)點,可以取得很好的效果。
pid控制器相關文章:pid控制器原理
評論