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