甄富帥,宋光明,毛巨正,劉盛松,宋愛國
(1.東南大學(xué)儀器科學(xué)與工程學(xué)院,江蘇南京 210096;2.國網(wǎng)江蘇省電力有限公司,江蘇南京 210024)
在復(fù)雜多樣的自然界環(huán)境中,生物蛇的運(yùn)動(dòng)表現(xiàn)出良好的靈活性和環(huán)境適應(yīng)性。與傳統(tǒng)的輪式機(jī)器人相比,通過仿照生物蛇的骨骼結(jié)構(gòu)和運(yùn)動(dòng)形式所設(shè)計(jì)的蛇形機(jī)器人更具操作性,是仿生機(jī)器人領(lǐng)域中的研究熱點(diǎn),其實(shí)際應(yīng)用包括科學(xué)探險(xiǎn)、空間檢測(cè)、災(zāi)難搜查等[1-3]。
目前,大多數(shù)蛇形機(jī)器人主要用來執(zhí)行探索任務(wù),但該類機(jī)器人只能被動(dòng)性地適應(yīng)環(huán)境,缺乏自主作業(yè)能力,其在探索方面的應(yīng)用受到了限制[4]。此外,蛇形機(jī)器人是一種具有多個(gè)關(guān)節(jié)的串聯(lián)機(jī)器人,過多的自由度使得其運(yùn)動(dòng)控制器的實(shí)現(xiàn)過程過于復(fù)雜[5]。
針對(duì)以上問題,本文設(shè)計(jì)了一種基于STM32的夾爪式蛇形機(jī)器人控制系統(tǒng)。該系統(tǒng)具有集成度高、操作簡單的特點(diǎn)。系統(tǒng)中機(jī)器人具有5種運(yùn)動(dòng)模式,具備抓取與搬運(yùn)功能,能夠在復(fù)雜環(huán)境中實(shí)現(xiàn)信息采集任務(wù),有效提高了蛇形機(jī)器人的自主作業(yè)能力與環(huán)境探索能力。
蛇形機(jī)器人控制系統(tǒng)的整體結(jié)構(gòu)如圖1所示,主要包括計(jì)算機(jī)控制終端、機(jī)器人運(yùn)動(dòng)系統(tǒng)和檢測(cè)系統(tǒng)3部分。計(jì)算機(jī)控制終端主要用于機(jī)器人的步態(tài)切換控制與狀態(tài)監(jiān)控。機(jī)器人運(yùn)動(dòng)系統(tǒng)由RA8-U35總線型直流伺服電機(jī)組成,通過關(guān)節(jié)間的相互配合與約束來實(shí)現(xiàn)不同的運(yùn)動(dòng)步態(tài),此外,在機(jī)器人的頭部關(guān)節(jié)安裝機(jī)械夾爪以提高機(jī)器人的主動(dòng)作業(yè)能力和可操作性[6]。檢測(cè)系統(tǒng)以STM32控制板為核心,通過掛載多種傳感器采集不同的環(huán)境信息,具有良好的可擴(kuò)展性[7]。在遠(yuǎn)程操控機(jī)器人夾爪關(guān)節(jié)抓取物體時(shí),操作人員常常使夾爪電機(jī)過度工作[8],從而導(dǎo)致電機(jī)不正常發(fā)熱甚至損壞電機(jī),因此在夾爪關(guān)節(jié)處安裝FSR402壓力傳感器用于判斷是否已完成抓取任務(wù)。
圖1 蛇形機(jī)器人系統(tǒng)框圖
首先,控制計(jì)算機(jī)產(chǎn)生步態(tài)控制指令,通過串口有線通信的方式將控制指令發(fā)送給STM32控制板,然后STM32對(duì)控制指令進(jìn)行解析,將指令信息通過轉(zhuǎn)換電路傳遞給總線型直流電機(jī),電機(jī)根據(jù)指令信息執(zhí)行相應(yīng)的動(dòng)作,并將角度信息返回給STM32控制板。此外STM32通過AD采樣模塊和串口通信模塊收集不同的傳感器采集到的環(huán)境信息,將其與電機(jī)反饋角度一同傳遞給計(jì)算機(jī)監(jiān)控端。
機(jī)器人底層控制器芯片選用STM32F407VET6單片機(jī),該芯片采用Cortex-M4內(nèi)核,168 MHz工作頻率,具有豐富的片上外設(shè)資源和通用I/O接口,具有較強(qiáng)的運(yùn)算能力、較低的功耗和較好的擴(kuò)展能力[9]。本系統(tǒng)中底層功能模塊主要包括電機(jī)信號(hào)轉(zhuǎn)換模塊、線性電壓轉(zhuǎn)換模塊和CH340有線通信模塊,還包括ADC采樣模塊、串口通信模塊、穩(wěn)壓電路模塊等常見模塊?;赟TM32的底層控制器整體結(jié)構(gòu)如圖2所示。
由于本系統(tǒng)中選用的RA8-U35總線型直流伺服電機(jī)屬于3線接口總線電機(jī),信號(hào)線DATA的TX和RX端分時(shí)復(fù)用一根TTL電平線,因此需要將其轉(zhuǎn)換成STM32能夠識(shí)別的雙線TTL接口。電機(jī)信號(hào)轉(zhuǎn)換電路如圖3所示,采用74HC126D四緩沖器芯片和SN74LVC1G04反相器芯片連接而成。在DATA信號(hào)輸入端、74HC126D芯片的13號(hào)引腳和SN74LVC1G04芯片的2號(hào)引腳分別接入上拉電阻,保證TX信號(hào)與DATA端的信號(hào)總是同步的,TX工作時(shí)RX電平不發(fā)生變化,即不會(huì)導(dǎo)致串口自發(fā)自收。最終的結(jié)果為TX發(fā)送數(shù)據(jù)時(shí)不讓RX檢測(cè)到數(shù)據(jù),TX空閑時(shí)RX接收其他節(jié)點(diǎn)的數(shù)據(jù)不受影響。
圖3 電機(jī)信號(hào)轉(zhuǎn)換電路圖
為保護(hù)夾爪電機(jī),本系統(tǒng)中采用FSR402壓力傳感器讀取夾爪抓取目標(biāo)物體時(shí)的受力情況,壓力越大,電阻越小。其特點(diǎn)是無需獲取精確的壓力值,只測(cè)試夾爪受力是否超過某一閾值,即可判斷是否完成抓取任務(wù)。為方便STM32采集數(shù)據(jù),需將電阻值轉(zhuǎn)換成電壓值,因此設(shè)計(jì)電阻線性電壓轉(zhuǎn)換電路如圖4所示。圖中,R0為傳感器可變電阻,采用LM324四運(yùn)算放大器與電阻組成轉(zhuǎn)換電路。其中,U4A為電壓跟隨器,起到緩沖、隔離、阻抗匹配的作用。U4B為恒流控制電路,保證了流過傳感器電阻的電流不變。U4C為差分比例運(yùn)算電路,作用是獲取電阻值對(duì)應(yīng)的電壓值,并做適當(dāng)比例調(diào)整。最終可得輸出電壓公式為式(1):
圖4 線性電壓轉(zhuǎn)換電路圖
(1)
目前系統(tǒng)采用計(jì)算機(jī)控制終端與STM32有線通信方式,通過CH340N芯片實(shí)現(xiàn)TTL串口信號(hào)與USB信號(hào)之間的轉(zhuǎn)換。CH340N是一種專為USB總線設(shè)計(jì)的轉(zhuǎn)接芯片,內(nèi)置時(shí)鐘,無需外部晶振,其通信電路原理圖如圖5所示。在芯片電源輸入端外接退耦電容,起到濾波作用。
圖5 CH340通信電路圖
本文設(shè)計(jì)的運(yùn)動(dòng)控制系統(tǒng)程序分為計(jì)算機(jī)控制終端的上位機(jī)程序和蛇形機(jī)器人底層STM32控制程序,程序結(jié)構(gòu)如圖6所示。上位機(jī)程序的主要功能包括蛇形機(jī)器人運(yùn)動(dòng)模式遠(yuǎn)程控制和系統(tǒng)狀態(tài)監(jiān)控。STM32控制程序主要功能包括傳感器數(shù)據(jù)采集和蛇形機(jī)器人運(yùn)動(dòng)控制。
圖6 運(yùn)動(dòng)控制系統(tǒng)程序結(jié)構(gòu)圖
上位機(jī)人機(jī)交互軟件界面如圖7所示。操作人員可以通過該軟件遠(yuǎn)程控制蛇形機(jī)器人執(zhí)行相應(yīng)的運(yùn)動(dòng)指令或是執(zhí)行抓取動(dòng)作。除此之外,上位機(jī)程序會(huì)對(duì)蛇形機(jī)器人采集到的環(huán)境信息和狀態(tài)信息進(jìn)行收集和展示,如果出現(xiàn)錯(cuò)誤情況,如夾爪電機(jī)上的壓力傳感器受力超過閾值,會(huì)在界面上顯示相應(yīng)的報(bào)警信息。
圖7 上位機(jī)人機(jī)交互界面
3.2.1 控制器選型
目前對(duì)蛇形機(jī)器人的運(yùn)動(dòng)控制主要分為三種方法[10]:
(1)基于蛇形曲線的控制方法,將蛇形曲線作為蛇形機(jī)器人的控制曲線,一般用于實(shí)現(xiàn)二維蜿蜒運(yùn)動(dòng)步態(tài);
(2)基于數(shù)學(xué)模型的控制方法,能夠?qū)崿F(xiàn)機(jī)器人復(fù)雜、精確的運(yùn)動(dòng)控制,但對(duì)機(jī)器人的自適應(yīng)控制較差,且實(shí)現(xiàn)過程過于復(fù)雜;
(3)基于CPG的控制方法,相比于前兩種方法,CPG通過模擬生物體神經(jīng)中樞系統(tǒng)對(duì)整個(gè)機(jī)體發(fā)送控制命令,自發(fā)地產(chǎn)生周期性控制信號(hào),更適合實(shí)現(xiàn)高冗余度、多關(guān)節(jié)機(jī)器人的控制。
因此,為簡化控制復(fù)雜度,本文采用CPG的方式來控制蛇形機(jī)器人。常見的CPG網(wǎng)絡(luò)可分為基于神經(jīng)元的CPG網(wǎng)絡(luò)和基于非線性振蕩器的CPG網(wǎng)絡(luò)。其中前者結(jié)構(gòu)十分貼合生物模型,但構(gòu)建過程復(fù)雜,輸出信號(hào)并不完全平滑,會(huì)降低機(jī)器人的運(yùn)動(dòng)效率;而后者結(jié)構(gòu)簡單,通常情況下具有更少的控制參數(shù)。常見的非線性振蕩器有Hopf振蕩器、Kuramoto振蕩器和Matsuoka振蕩器等。此外,研究表明生物的CPG機(jī)制應(yīng)該是具有分層結(jié)構(gòu)的,這種結(jié)構(gòu)能夠有效降低機(jī)器人的控制復(fù)雜度[11]。
本文在運(yùn)動(dòng)控制器中引入基于Hopf振蕩器的CPG方法,將運(yùn)動(dòng)過程分為2層處理,第1層用于生成基本運(yùn)動(dòng)信號(hào),第2層用于信號(hào)去耦合,優(yōu)化控制曲線。其優(yōu)勢(shì)在于,可以使機(jī)器人實(shí)現(xiàn)更多的運(yùn)動(dòng)步態(tài),并且可將部分計(jì)算過程進(jìn)行封裝,簡化操作過程。
3.2.2 基于Hopf振蕩器的雙層CPG運(yùn)動(dòng)控制器
根據(jù)調(diào)研,第1層Hopf振蕩器輸出信號(hào)[10]可表示為式(2):
(2)
式中:xi(t)和yi(t)分別為振蕩器產(chǎn)生的2種輸出信號(hào)曲線;θxi和θyi為輸出角度信號(hào),可任選其中一個(gè)作為蛇形機(jī)器人水平關(guān)節(jié)電機(jī)的控制信號(hào),另一個(gè)作為蛇形機(jī)器人豎直關(guān)節(jié)電機(jī)的控制信號(hào),用來實(shí)現(xiàn)機(jī)器人三維空間的運(yùn)動(dòng)。
第1層控制器的兩種輸出信號(hào)相互耦合,具有恒定的相位差,因此很適合用來控制具有2種關(guān)節(jié)類型的蛇形機(jī)器人,但缺點(diǎn)是2種輸出信號(hào)在某些情況下具有相同的變化趨勢(shì),不利于信號(hào)動(dòng)態(tài)調(diào)節(jié),因此在式(2)的基礎(chǔ)上引入第2層控制模型,其表達(dá)式如式(3):
(3)
式中:(1+e-τ(t-Δt-σ))-1為文獻(xiàn)[11]中提到的Sigmoid屏蔽函數(shù),作用是過濾掉Hopf振蕩器初始階段的不穩(wěn)定信號(hào),使蛇形機(jī)器人能夠執(zhí)行軟啟;kx和ky分別為2個(gè)輸出信號(hào)的幅值系數(shù);Δθ為水平關(guān)節(jié)的偏移角度,用于實(shí)現(xiàn)轉(zhuǎn)彎運(yùn)動(dòng);Δt為信號(hào)θyi沿時(shí)間軸的偏移量,用于調(diào)節(jié)兩種關(guān)節(jié)的相位關(guān)系以及關(guān)節(jié)運(yùn)動(dòng)的執(zhí)行時(shí)機(jī);p(t)是信號(hào)θxi的平滑過渡函數(shù),其動(dòng)態(tài)特性如式(4):
(4)
式中:t1和t2分別為關(guān)節(jié)輸出信號(hào)平滑切換的開始時(shí)間與結(jié)束時(shí)間;y0為切換后的信號(hào)幅值變化系數(shù)。
本文所設(shè)計(jì)的雙層運(yùn)動(dòng)控制器能夠驅(qū)動(dòng)蛇形機(jī)器人完成蜿蜒、側(cè)移、側(cè)滾、蠕動(dòng)和轉(zhuǎn)彎運(yùn)動(dòng)5種基本運(yùn)動(dòng)步態(tài)。設(shè)第1層控制器的振蕩頻率為2π,信號(hào)幅值為1,第2層控制器的Sigmoid屏蔽函數(shù)為1-e-5t,則其不同步態(tài)的控制參數(shù)如表1所示,對(duì)應(yīng)的信號(hào)曲線如圖8所示,其中,轉(zhuǎn)彎運(yùn)動(dòng)需要改變式(3)的Δθ參數(shù),其他參數(shù)與蜿蜒運(yùn)動(dòng)相同。
表1 蛇形機(jī)器人不同運(yùn)動(dòng)步態(tài)的控制參數(shù)
(a)側(cè)滾運(yùn)動(dòng)
(b)蠕動(dòng)運(yùn)動(dòng)
(c)蜿蜒運(yùn)動(dòng)切換轉(zhuǎn)彎運(yùn)動(dòng)
(d)蜿蜒運(yùn)動(dòng)切換側(cè)移運(yùn)動(dòng)圖8 蛇形機(jī)器人不同運(yùn)動(dòng)步態(tài)的控制信號(hào)
基本運(yùn)動(dòng)實(shí)驗(yàn)主要測(cè)試蛇形機(jī)器人的運(yùn)動(dòng)性能,根據(jù)時(shí)間和運(yùn)動(dòng)距離計(jì)算平均運(yùn)動(dòng)速度。測(cè)試過程中,蛇形機(jī)器人夾爪不夾取物體,即只測(cè)試空載情況下的運(yùn)動(dòng)性能。經(jīng)過多次實(shí)驗(yàn),可測(cè)得蛇形機(jī)器人的運(yùn)動(dòng)性能如表2所示。該蛇形機(jī)器人能夠順利實(shí)現(xiàn)5種運(yùn)動(dòng)步態(tài),其中蜿蜒運(yùn)動(dòng)的切向運(yùn)動(dòng)效率最高,側(cè)滾運(yùn)動(dòng)的法向運(yùn)動(dòng)效率最高,側(cè)移運(yùn)動(dòng)是一種三維運(yùn)動(dòng),可實(shí)現(xiàn)斜向運(yùn)動(dòng),蠕動(dòng)運(yùn)動(dòng)通常用于狹窄環(huán)境或摩擦力較低的管道,轉(zhuǎn)彎運(yùn)動(dòng)是帶偏轉(zhuǎn)角度的蜿蜒運(yùn)動(dòng),運(yùn)動(dòng)更加靈活。多種運(yùn)動(dòng)模式有效提高了蛇形機(jī)器人的環(huán)境探索能力。
表2 蛇形機(jī)器人運(yùn)動(dòng)性能
自主作業(yè)實(shí)驗(yàn)主要測(cè)試蛇形機(jī)器人抓取和搬運(yùn)物體的能力,蛇形機(jī)器人實(shí)物圖如圖9所示。測(cè)試過程中,操作人員可根據(jù)機(jī)器人所處環(huán)境的不同切換不同的運(yùn)動(dòng)步態(tài),并且能夠隨時(shí)從上位機(jī)獲取機(jī)器人采集到的各項(xiàng)環(huán)境指標(biāo)??蓽y(cè)得蛇形機(jī)器人的抓取、搬運(yùn)能力數(shù)據(jù)表如表3所示,該控制系統(tǒng)有效提高了蛇形機(jī)器人的自主作業(yè)能力。
(a)抓取目標(biāo)物體
(b)光滑管道中搬運(yùn)物體
(c)運(yùn)送物體圖9 蛇形機(jī)器人實(shí)物圖
表3 蛇形機(jī)器人抓取、搬運(yùn)能力
本文設(shè)計(jì)了一種基于STM32的夾爪式蛇形機(jī)器人控制系統(tǒng),完成了機(jī)器人底層控制器的硬件電路設(shè)計(jì)與搭建。該系統(tǒng)可根據(jù)需要掛載多種傳感器,能夠采集溫濕度、煙霧氣體等多種環(huán)境指標(biāo)。機(jī)器人頭部關(guān)節(jié)安裝了夾爪用于實(shí)現(xiàn)目標(biāo)物體抓取與搬運(yùn)任務(wù),提高了機(jī)器人的可操作性。引入一種基于Hopf振蕩器的雙層CPG控制方法,簡化了蛇形機(jī)器人的控制過程,使其能夠?qū)崿F(xiàn)蜿蜒、側(cè)移、側(cè)滾、蠕動(dòng)和轉(zhuǎn)彎運(yùn)動(dòng)5種運(yùn)動(dòng)步態(tài)。最后通過實(shí)驗(yàn)表明該控制系統(tǒng)有效提高了蛇形機(jī)器人的自主作業(yè)能力和環(huán)境探索能力。