基于CAN總線的仿人機(jī)器人分布式控制系統(tǒng)
1引言
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,各種新型的控制方式應(yīng)用于機(jī)器人控制。分布式控制系統(tǒng)是在計(jì)算機(jī)監(jiān)督控制系統(tǒng)、直接數(shù)字控制系統(tǒng)和計(jì)算機(jī)多級(jí)控制系統(tǒng)的基礎(chǔ)上發(fā)展起來(lái)的,是生產(chǎn)過(guò)程的一種比較完善的控制與管理系統(tǒng)。與計(jì)算機(jī)多級(jí)控制系統(tǒng)相比,分布式控制系統(tǒng)在結(jié)構(gòu)上更加靈活、布局更為合理和成本更低。分布式控制結(jié)構(gòu)成為機(jī)器人控制系統(tǒng)發(fā)展的方向。文[2]中作者設(shè)計(jì)了一種基于CAN總線的分布式的仿人機(jī)器人的控制系統(tǒng)。
為此,我們研制了新型的小型仿人機(jī)器人控制系統(tǒng)。本實(shí)驗(yàn)室研制的小型仿人機(jī)器人各關(guān)節(jié)采用舵機(jī)控制,根據(jù)要求,本設(shè)計(jì)需要實(shí)現(xiàn)小型仿人機(jī)器人腿部的運(yùn)動(dòng)控制,達(dá)到小型化,低功耗。
2小型仿人娛樂(lè)機(jī)器人分布式控制系統(tǒng)
2.1總體方案設(shè)計(jì)
本文研究的小型仿人娛樂(lè)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)由主控制器ARM9,C8051F320單片機(jī)與4片CD4017外部計(jì)數(shù)器構(gòu)成的控制單元組成,控制結(jié)構(gòu)簡(jiǎn)單靈活。USB通信方案滿足了主從控制和通信速度的需求。關(guān)節(jié)執(zhí)行機(jī)構(gòu)采用舵機(jī),控制方法簡(jiǎn)單實(shí)用??傮w控制方式簡(jiǎn)圖見(jiàn)圖1。
主控制器端,采用ARM9(S3C2410)作為管理控制器負(fù)責(zé)協(xié)調(diào)控制,向單片機(jī)發(fā)送規(guī)劃好的運(yùn)動(dòng)控制數(shù)據(jù)并擴(kuò)展語(yǔ)音,視頻等。S3C2410主控制器有一個(gè)USB host,連接C8051F320單片機(jī)。
單片機(jī)端,利用C8051F320中的PCA捕捉比較模塊產(chǎn)生PWM控制信號(hào)。當(dāng)單片機(jī)通過(guò)USB總線接收到由ARM管理控制器發(fā)來(lái)的數(shù)據(jù)包時(shí),根據(jù)設(shè)定的對(duì)應(yīng)關(guān)系將數(shù)據(jù)包中16位控制數(shù)據(jù)轉(zhuǎn)化為PCA比較值,由PCA模塊產(chǎn)生相應(yīng)占空比的PWM控制信號(hào),分別輸出給4片CD4017外部計(jì)數(shù)器。同時(shí)PCA模塊還定時(shí)產(chǎn)生一路復(fù)位脈沖,同時(shí)發(fā)送給4片CD4017,確保CD4017多路PWM輸出與單片機(jī)接收到多舵機(jī)控制數(shù)據(jù)對(duì)應(yīng)關(guān)系正確。C8051F320控制器電路板如圖2。
CD4017外部計(jì)數(shù)器將CP引角輸入的PWM轉(zhuǎn)化為多路PWM,分別控制與之相連的各舵機(jī)轉(zhuǎn)動(dòng),實(shí)現(xiàn)各桿件位置的開(kāi)環(huán)控制。CD4017引腳功能及排列如圖3。
2.2 USB通信的實(shí)現(xiàn)
在計(jì)算機(jī)和單片機(jī)的控制數(shù)據(jù)傳輸領(lǐng)域內(nèi),長(zhǎng)期以來(lái)廣泛的使用RS-232,RS-485等通信方式,這些通信方式訊的實(shí)時(shí)性較差, 故障率較高, 出現(xiàn)故障時(shí), 不容易排查[3]。不能夠滿足小型仿人機(jī)器人的實(shí)時(shí)性和大批量數(shù)據(jù)傳輸?shù)囊?。USB總線通信方式作為新一代計(jì)算機(jī)外設(shè)的接口技術(shù),隨著USB技術(shù)的日益成熟,及獨(dú)特的優(yōu)點(diǎn)(對(duì)多種設(shè)備的廣泛適用性,自動(dòng)配置,容易擴(kuò)充,易于連接,熱插拔,即插即用、高可靠性,低成本,低功耗等),應(yīng)用前景非常廣泛[4]。
本控制系統(tǒng)中的管理控制器ARM9(S3C2410)集成了一個(gè)USB host,采用Linux操作系統(tǒng);C8051F320器件集成了全速/低速USB功能控制器,用于實(shí)現(xiàn)USB接口的外部設(shè)備,均支持USB2.0通信協(xié)議。單片機(jī)端設(shè)計(jì)了通信固件程序和應(yīng)用程序,用于接收USB通信內(nèi)容。
2.3基于C8051單片機(jī)和CD4017外部計(jì)數(shù)器的關(guān)節(jié)控制器設(shè)計(jì)
采用一片單片機(jī)與4片CD4017外部計(jì)數(shù)器的關(guān)節(jié)控制器設(shè)計(jì)方案,極大限度的精簡(jiǎn)了硬件數(shù)量,節(jié)省了空間,降低了軟硬件出錯(cuò)的可能性,也為系統(tǒng)運(yùn)動(dòng)功能的擴(kuò)展提供了足夠空間和靈活性(自由度數(shù)量設(shè)置可在36個(gè)以內(nèi)任意增減)。
基于C8051的設(shè)計(jì)中有很多方法用于產(chǎn)生PWM波形:軟件循環(huán)、查詢或中斷驅(qū)動(dòng)的定時(shí)器等。使用可編程計(jì)數(shù)器陣列PCA產(chǎn)生PWM相對(duì)于任何查詢機(jī)制(基于軟件或定時(shí)器而言)可以大大降低所需要的CPU帶寬,并可以消除在中斷驅(qū)動(dòng)的基于定時(shí)器的設(shè)計(jì)中因中斷延遲不一致而產(chǎn)生的時(shí)序抖動(dòng)。PCA由一個(gè)專用的16位計(jì)數(shù)器/定時(shí)器和5個(gè)16位捕捉/比較模塊組成。每個(gè)捕捉/比較模塊有其自己的I/O線。計(jì)數(shù)器/定時(shí)器由一個(gè)可編程的時(shí)基信號(hào)驅(qū)動(dòng)。計(jì)數(shù)器/定時(shí)器有一個(gè)16位的計(jì)數(shù)器/定時(shí)器寄存器、一個(gè)用于選擇時(shí)間基準(zhǔn)的方式寄存器和一個(gè)包含計(jì)數(shù)器/定時(shí)器運(yùn)行控制及各模塊捕捉/比較標(biāo)志的控制寄存器。每個(gè)捕捉/比較模塊有一個(gè)用于選擇模塊工作方式的配置寄存器和一個(gè)16位的捕捉/比較寄存器。每個(gè)捕捉/ 比較模塊的工作方式都可以被獨(dú)立配置。由于所有的捕捉/比較模塊共享一個(gè)時(shí)間基準(zhǔn),因此它們同步工作[5][6]。本文研究的小型娛樂(lè)機(jī)器人關(guān)節(jié)控制器設(shè)計(jì)中,將PCA配置為獨(dú)立工作;每個(gè)模塊的中斷服務(wù)程序只影響該模塊的捕捉/比較寄存器。PCA方式寄存器和配置寄存器設(shè)置一次后不再改變,讓計(jì)數(shù)器/定時(shí)器寄存器自由運(yùn)行。
在高速輸出方式,每當(dāng)PCA計(jì)數(shù)器與模塊的16位捕捉/比較寄存器發(fā)生匹配時(shí),模塊I/O線的引腳上的邏輯電平將發(fā)生高低轉(zhuǎn)換,并可以選擇產(chǎn)生中斷。本應(yīng)用程序中選擇了該中斷。
CD4017基本功能是對(duì)CP端輸入脈沖的個(gè)數(shù)進(jìn)行十進(jìn)制計(jì)數(shù),并按照輸入脈沖的個(gè)數(shù)順序?qū)⒚}沖分配在Y0~Y9這10個(gè)輸出端,計(jì)滿10個(gè)數(shù)后計(jì)數(shù)器復(fù)零,同時(shí)CO端輸出一個(gè)進(jìn)位脈沖。當(dāng)CR端有正脈沖輸入時(shí),該脈沖的上升沿將觸發(fā)CD4017復(fù)位,此時(shí)Y1~Y9輸出均變?yōu)榈碗娖?,只有Y0腳輸出變?yōu)楦唠娖剑士梢岳肅R的正脈沖輸入中斷計(jì)數(shù)[7]。
本文研究的小型娛樂(lè)仿人機(jī)器人控制系統(tǒng)方案中,一個(gè)CD4017輸出7路脈沖,分別發(fā)送給7個(gè)舵機(jī)。
3 實(shí)驗(yàn)
控制系統(tǒng)硬件實(shí)物連接圖如圖4。
機(jī)器人步行實(shí)驗(yàn)完成5步的向前行和5步的后退的行走過(guò)程。步行實(shí)驗(yàn)過(guò)程如圖5。
4 結(jié)論
根據(jù)小型仿人機(jī)器人的機(jī)構(gòu)特點(diǎn)和性能要求,構(gòu)建了以ARM9為主控制器的小型仿人機(jī)器人控制系統(tǒng)。設(shè)計(jì)開(kāi)發(fā)了C8051USB單片機(jī)和CD4017外部計(jì)數(shù)器組成關(guān)節(jié)控制器,該關(guān)節(jié)控制器能夠?qū)崿F(xiàn)多舵機(jī)的協(xié)調(diào)控制任務(wù)。實(shí)踐證明,采用該結(jié)構(gòu)之后,整個(gè)機(jī)器人系統(tǒng)的模塊化程度更高,系統(tǒng)的裝配和調(diào)試更加方便。控制系統(tǒng)實(shí)現(xiàn)了小型化、低功耗,而且機(jī)器人行走穩(wěn)定性。