深圳市鑫匯科股份有限公司 戚 龍
機(jī)器人控制系統(tǒng)是機(jī)器人的大腦,是決定機(jī)器人功能和性能的主要因素。本研究將著重介紹一種基于RC伺服馬達(dá)控制系統(tǒng)的步行機(jī)器人的開(kāi)發(fā)過(guò)程及應(yīng)用。
在社會(huì)經(jīng)濟(jì)、科學(xué)技術(shù)飛速發(fā)展的當(dāng)代,機(jī)器人已經(jīng)是世界各國(guó)大力推動(dòng)的科研領(lǐng)域,特別是雙足機(jī)器人,目前已成為機(jī)器人產(chǎn)業(yè)重點(diǎn)關(guān)注的焦點(diǎn)之一。身為雙足步行機(jī)器人控制核心模塊,控制系統(tǒng)設(shè)計(jì)的優(yōu)劣程度,直接性的決定著機(jī)器人各個(gè)方面的性能。雙足步行機(jī)器人具備結(jié)構(gòu)復(fù)雜、實(shí)時(shí)性要求高以及關(guān)節(jié)眾多的特點(diǎn),尤其在當(dāng)代機(jī)器人產(chǎn)業(yè)快速發(fā)展的推動(dòng)歷下,對(duì)自適應(yīng)能力以及擬人化提出了更高的要求,因此就需要加大對(duì)控制系統(tǒng)的設(shè)計(jì)與研發(fā)工作。
本次設(shè)計(jì)硬件可劃分為三部分,即RC伺服馬達(dá)控制板部分、機(jī)器人結(jié)構(gòu)部分以及電源供應(yīng)部分,運(yùn)行原理為RC馬達(dá)控制板作為主控制核心,負(fù)責(zé)控制電路和降壓電力。機(jī)器人結(jié)構(gòu)方面包括RC伺服馬達(dá)+結(jié)合模塊,其電源供應(yīng)部分設(shè)有穩(wěn)壓器和用于電力供應(yīng)的鋰電池。圖1為本次設(shè)計(jì)硬件架構(gòu)圖:
圖1 系統(tǒng)硬件架構(gòu)圖
本次系統(tǒng)核心采用STM32F103系列增強(qiáng)微控制器,該控制器為意法半導(dǎo)體公司產(chǎn)出,在內(nèi)核方面采用Cortex-m3核心、產(chǎn)自于ARM公司,具備低成本,接觸腳數(shù)小的特點(diǎn),并且執(zhí)行速度好,耗能低,具有先進(jìn)的和中斷系統(tǒng)響應(yīng)功能,支持目前市面主流的多種通訊技術(shù)。此外,在RC伺服馬達(dá)芯片方面,本次設(shè)計(jì)根據(jù)設(shè)計(jì)需要,采用STM32F103C系列(SMT32F103C8T6),這款馬達(dá)芯片設(shè)有4組計(jì)時(shí)器,I/O腳37個(gè),采用LQF48封裝形式,設(shè)有64KFlash。
本次機(jī)器人設(shè)計(jì)硬件部分,通過(guò)RC伺服馬達(dá)+結(jié)合模塊制作而成,該機(jī)器人具備高自由度的特點(diǎn),即決定機(jī)器人靈活度的主要因素,所謂自由度,是讓機(jī)器人機(jī)構(gòu)具備獨(dú)立運(yùn)動(dòng)功能,進(jìn)一步讓機(jī)器人更加接近于人類(lèi)的實(shí)際行為,因此本次設(shè)計(jì)期間,將雙足機(jī)器人機(jī)構(gòu)設(shè)計(jì)為12個(gè)自由度,其中機(jī)器人的骨架部分為結(jié)合模塊,關(guān)節(jié)部位為RC伺服馬達(dá)。圖2展示為雙足機(jī)器人機(jī)構(gòu)示意圖:
圖2 雙足機(jī)器人實(shí)體機(jī)構(gòu)示意圖
圖3展示為本次設(shè)計(jì)雙足機(jī)器人的控制方式架構(gòu)圖:
圖3
在機(jī)器人運(yùn)行期間,關(guān)節(jié)部位的RC伺服馬達(dá),會(huì)接收到RC伺服馬達(dá)控制板三組計(jì)時(shí)器傳輸?shù)腜WM脈波訊號(hào)產(chǎn)生轉(zhuǎn)動(dòng)工作,與此同時(shí),由STM32F103C8T6系統(tǒng)應(yīng)答計(jì)時(shí)器產(chǎn)生中斷,通過(guò)計(jì)時(shí)中斷來(lái)進(jìn)一步實(shí)現(xiàn)RC伺服馬達(dá)的訊號(hào)控制,在控制期間,主要由PWM訊號(hào)脈波的寬度來(lái)決定馬達(dá)運(yùn)動(dòng)的角度,只要增加脈波的寬度,就能夠?qū)崿F(xiàn)對(duì)RC伺服馬達(dá)速度的控制,例如控制人員需讓RC伺服馬達(dá)從0度(寬度0.5ms)發(fā)生旋轉(zhuǎn)工作,一直旋轉(zhuǎn)到180度(寬度2.5ms),假設(shè)該控制系統(tǒng)以每20ms為一周期增加0.1ms寬度,那么就是讓脈波的款寬度從0.5ms增加到2.5ms,脈波以每20ms增加0.1ms速度開(kāi)始運(yùn)動(dòng),具體轉(zhuǎn)動(dòng)時(shí)間的計(jì)算表達(dá)式如下:
在工作過(guò)程中,每周期內(nèi)增加脈波的寬度越大,則表示RC伺服馬達(dá)轉(zhuǎn)動(dòng)速度越快。同時(shí),除了調(diào)整寬度之外,對(duì)馬達(dá)速度的控制還可采用調(diào)整周期的形式,但是在使用該方法階段必須嚴(yán)格符合RC伺服馬達(dá)的具體規(guī)格。
在程序運(yùn)作期間,RC伺服馬達(dá)控制板向RC伺服馬達(dá)發(fā)出的PWM控制信號(hào)由控制器中的計(jì)時(shí)器提供,機(jī)器人在行動(dòng)期間的速度、動(dòng)作就均由計(jì)時(shí)器產(chǎn)生的周期性中斷來(lái)實(shí)現(xiàn),即在終端程序內(nèi),用當(dāng)前的PWM寬度比較機(jī)器人的動(dòng)作信息,如果動(dòng)作大于目前的PWM訊號(hào)寬度,那么就執(zhí)行PWM寬度加運(yùn)算,增加寬度,相反如果小于PWM寬度,就執(zhí)行減法運(yùn)算。具體程序工作流程如上圖4所示,在機(jī)器人準(zhǔn)備操作期間,首先系統(tǒng)執(zhí)行初始化,將機(jī)器人每個(gè)軸中的RC伺服馬達(dá)角度調(diào)整為置中形式,即讓每個(gè)軸脈波寬度保持在1.5ms,此刻機(jī)器人始終處于站立狀態(tài),隨后,程序載入機(jī)器人產(chǎn)生動(dòng)作的數(shù)據(jù)列陣:如下式:
在式2列陣中,列陣第一維度=2,第二維度=12.第一維度表示機(jī)器人運(yùn)動(dòng)期間的動(dòng)作數(shù),第二維度則表示機(jī)器人結(jié)構(gòu)中12個(gè)RC伺服馬達(dá)PWM脈波的寬度,中值大小范圍為500~2500,500表示脈波寬度=0.5s,同理1500表示1.5ms脈波寬度。在機(jī)器人發(fā)生動(dòng)作期間,微控制器中的中斷程序,會(huì)自動(dòng)比計(jì)較每個(gè)軸RC伺服馬達(dá)的脈波寬度,一旦微控制器發(fā)現(xiàn)某一個(gè)RC伺服馬達(dá)的值,同數(shù)據(jù)列陣內(nèi)的值無(wú)法對(duì)應(yīng),則立即對(duì)該馬達(dá)的PWM脈波寬度做加減操作,同時(shí)因?yàn)橹芷谛灾袛喑绦虻拇嬖冢虼讼到y(tǒng)可實(shí)現(xiàn)對(duì)多個(gè)RC伺服馬達(dá)進(jìn)行調(diào)整。在RC伺服馬達(dá)達(dá)到需要角度之后,自動(dòng)停止運(yùn)動(dòng),維持在當(dāng)前狀態(tài),等待其他馬達(dá)通過(guò)運(yùn)動(dòng)達(dá)到設(shè)定角度,直到全部RC伺服馬達(dá)都完成設(shè)定角度運(yùn)動(dòng)之后,才會(huì)執(zhí)行下一列動(dòng)作數(shù)據(jù)列陣。
人在行走過(guò)程中的運(yùn)動(dòng),隸屬于一種周期性反復(fù)運(yùn)動(dòng),以這種周期性運(yùn)動(dòng)模式作為依據(jù)可以對(duì)步行軌跡進(jìn)行合理規(guī)劃,在人走路期間,雙手會(huì)自然擺動(dòng),同雙腿邁動(dòng)方向呈反向,進(jìn)而實(shí)身體保證平衡狀態(tài),但是雙足機(jī)器人并未設(shè)定這種形式的運(yùn)動(dòng)模式,故在設(shè)計(jì)期間為確保機(jī)器人行走期間的穩(wěn)定性,要加強(qiáng)分析機(jī)器人結(jié)構(gòu)重心分配的問(wèn)題,在機(jī)器人運(yùn)動(dòng)期間,當(dāng)抬起左腳,那么中心則會(huì)隨著移動(dòng)改變,重心調(diào)節(jié)出現(xiàn)誤差,雙足機(jī)器人行走階段必然跌倒。所以本次設(shè)計(jì)的雙足機(jī)器人,并未采用運(yùn)算的形式來(lái)設(shè)計(jì)機(jī)器人步伐穩(wěn)定性,而是站在伺服馬達(dá)動(dòng)作的角度上開(kāi)展設(shè)計(jì)工作。雙足機(jī)器人在行進(jìn)階段,數(shù)據(jù)處于靜態(tài)平衡,因此本次將雙足機(jī)器人的行走行為,設(shè)計(jì)為單腳支撐模式和雙腳支撐模式,在單腳支撐模式下,為保障機(jī)器人行走平衡,將重心落在左支撐腳掌內(nèi),在雙腳支撐模式下,則將機(jī)器人重心落到雙腳上,設(shè)計(jì)好重心落點(diǎn),便可保證機(jī)器人平穩(wěn)行走。
在機(jī)器人行動(dòng)之前,為了確保機(jī)器人站立,首先設(shè)定機(jī)器人的站立行為,即通過(guò)RC伺服馬達(dá)控制板向各軸RC伺服馬達(dá)傳輸寬度為1.5ms的PWS脈波。此外。因?yàn)樵诎惭b機(jī)器人階段,難免會(huì)出現(xiàn)一定誤差,因此本次設(shè)計(jì)完成之際,還對(duì)機(jī)器人進(jìn)行各個(gè)軸誤差的調(diào)整工作。表1為12個(gè)軸的誤差角度表:
表1 雙足機(jī)器人12軸誤差角度表
完成誤差調(diào)整后,經(jīng)過(guò)測(cè)試,本次設(shè)計(jì)的機(jī)器人具備獨(dú)立行走、平穩(wěn)行走性能,初步滿足設(shè)計(jì)要求。
結(jié)語(yǔ):在世界機(jī)器人科研產(chǎn)業(yè)中,雙足步行機(jī)器人是一項(xiàng)重要的研究分支,相比其他類(lèi)型機(jī)器人,雙足步行機(jī)器人有著更高的技術(shù)和研究思想要求。本次研究,采用STM32微控制器制作RC伺服馬達(dá)控制板,通過(guò)控制板來(lái)為RC伺服馬達(dá)傳輸PWM脈波控制轉(zhuǎn)動(dòng),進(jìn)一步實(shí)現(xiàn)了雙足機(jī)器人的行走動(dòng)作。但是因經(jīng)濟(jì)上與時(shí)間上的限制,本次的設(shè)計(jì)精細(xì)度還存在諸多不足,為了確保本次設(shè)計(jì)的機(jī)器人各關(guān)節(jié)都可以達(dá)到更高精度的伺服,后續(xù)還需要開(kāi)展整體的協(xié)調(diào)設(shè)計(jì)和平穩(wěn)性的調(diào)整,以便于取得更加完善的設(shè)計(jì)效果。