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