鄧三星,楊蒙蒙,李克強,韓鑫龍,肖翔宇
(黃河交通學(xué)院 河南省智能制造技術(shù)與裝備工程技術(shù)研究中心,河南焦作,454950)
2022 年8 月12 日,科技部、教育部、工業(yè)和信息化部、交通運輸部、農(nóng)業(yè)農(nóng)村部、國家衛(wèi)生健康委發(fā)布《關(guān)于加快場景創(chuàng)新以人工智能高水平應(yīng)用促進(jìn)經(jīng)濟高質(zhì)量發(fā)展的指導(dǎo)意見》[1],8 月15 日,科技部發(fā)布《關(guān)于支持建設(shè)新一代人工智能示范應(yīng)用場景的通知》[2],還與財政部聯(lián)合發(fā)布《企業(yè)技術(shù)創(chuàng)新能力提升行動方案(2022—2023 年)》[3],國家對人工智能領(lǐng)域科學(xué)研究支持力度高。目前,仿人機器人在諸多領(lǐng)域應(yīng)用廣泛,如地震救援、醫(yī)療服務(wù)等[4~6],本文以STM32 單片機為控制核心,設(shè)計一種仿人機器人,可實現(xiàn)直立行走、轉(zhuǎn)彎、翻滾功能,并對系統(tǒng)進(jìn)行步態(tài)測試。
仿人機器人的步態(tài)行走設(shè)計系統(tǒng)由意法半導(dǎo)體公司的STM32F103RBT6 單片機主控芯片、舵機控制板、舵機與電源四大部分構(gòu)成[7]。為節(jié)約設(shè)計成本,未使用彈性連接件和無線傳感器。
仿人機器人的控制原理是在整個電路通電后,對單片機的復(fù)位引腳施加一個電平信號,以此完成單片機復(fù)位;然后將Keil 軟件中編譯好的操作程序下載到STM32 單片機中,并通過STM32 單片機向開源舵機控制器發(fā)出控制信號;最后由開源舵機控制器控制相應(yīng)的舵機動作,完成預(yù)先設(shè)計的動作,實現(xiàn)步態(tài)行走。
仿人機器人的步態(tài)行走設(shè)計采用的核心部件為STM-32F103RBT6 單片機,最小系統(tǒng)由上電復(fù)位電路、電源供電電路與時鐘電路三部分構(gòu)成,其中電源電路中有5 個數(shù)字電源正極;主時鐘晶振頻率為8MHz,晶振電路為單片機提供定時計數(shù)功能;NRET 引腳正常工作時接3.3V 高電平,同時并聯(lián)一個按鈕開關(guān),按鈕開關(guān)接地,在需要進(jìn)行初始化操作時,按下開關(guān)復(fù)位引腳被賦予低電平即可。
STM32F103RBT6 單片機的核心是 ARM?的Cortex ?-M3,并且內(nèi)置有閃存和SRAM,ARM 的Cortex-M3 處理器是新一代的嵌入式ARM 處理器,它為實現(xiàn)MCU 的需要提供了低成本的平臺、縮減了引腳數(shù)目、降低了系統(tǒng)功耗,同時提供卓越的計算性能和先進(jìn)的中斷系統(tǒng)響應(yīng)。
仿人機器人的步態(tài)行走設(shè)計采用的是開源舵機控制器,該控制器擁有多種給外設(shè)模塊提供電源的接口,供給遙控的手柄接收器接口,以及總線舵機的接口與PWM 舵機的接口,脫機運行按鍵等強大的功能與多種多樣的外部接口。
由于本設(shè)計采用的是總線舵機,所以需用舵機線連接舵機與總線舵機的接口,上電調(diào)試后,就可燒錄程序給單片機經(jīng)開源舵機控制器后就可控制舵機的精準(zhǔn)運動。
開源舵機控制器結(jié)構(gòu)圖如圖1 所示。

圖1 開源舵機控制器結(jié)構(gòu)圖
開源舵機控制器的具體功能參數(shù)如表1 所示。

表1 開源舵機控制器功能參數(shù)表
舵機是一種位置(角度)伺服的驅(qū)動器,適用于角度不斷變化并可以保持的控制系統(tǒng),在高檔遙控玩具,如飛機、潛艇模型、遙控機器人中已經(jīng)得到了普遍應(yīng)用。采用總線舵機控制方案,具有在線調(diào)試、下載程序模塊、離線程序執(zhí)行功能特點[8]。
舵機的內(nèi)部結(jié)構(gòu)如圖2 所示,由一組變速齒輪組、一個微小的直流馬達(dá)、一個提供反饋并可調(diào)電位器及一塊電子控制板組成。其中,高轉(zhuǎn)速的直流馬達(dá)提供了原始動力,帶動減速齒輪組,使之產(chǎn)生高扭力的輸出。

圖2 舵機結(jié)構(gòu)示意圖
舵機是一個經(jīng)典的閉環(huán)反饋系統(tǒng),原動力由電機提供,進(jìn)而帶動齒輪箱,承擔(dān)終端位置檢測反饋任務(wù)的為電位器,線性電位器以比例電壓的形式將轉(zhuǎn)角坐標(biāo)反饋給控制電路板,控制電路板將該信號與輸入的控制信號相比較,然后發(fā)生修正脈沖信號,同時驅(qū)動電機正向或反方向的轉(zhuǎn)動。
電源模塊最核心元件為電池,所選用的電池應(yīng)滿足安全、電池容量大、電池可循環(huán)次數(shù)多、重量小、體積小等條件,還要根據(jù)單片機所需供電電壓等級,設(shè)計電壓等級轉(zhuǎn)換電路。鋰離子電池同等體積下,其電池容量及放電電壓要優(yōu)于其他電池,本設(shè)計采用1500mAh 鋰電池組,電壓轉(zhuǎn)換電路采用AMS1117 穩(wěn)壓器芯片[9]。接通電源開關(guān)后,7.4V 電壓通過兩個不同輸出電壓的AMS1117 穩(wěn)壓器芯片,一路電壓變?yōu)?.3V,供給STM32 單片機使用,另一路電壓輸出為5V。電源模塊如圖3 所示。

圖3 電源模塊電路
當(dāng)系統(tǒng)通電后,初始化程序運行,STM32 單片機為總處理單元,舵機反饋位置、電壓、溫度等信號,通過開源舵機控制器處理經(jīng)過AD 轉(zhuǎn)換后,傳輸至單片機處理,若舵機沒有復(fù)位,則需要先進(jìn)行復(fù)位操作,復(fù)位后即可運行機器人動作組程序。系統(tǒng)主程序流程圖如圖4 所示。

圖4 系統(tǒng)主程序流程圖
本設(shè)計采用的為開源雙足機器人上位機軟件,該上位機軟件界面清晰,軟件主界面如圖5 所示。

圖5 上位機軟件主界面圖
仿人機器人上位機軟件的操作界面為三個區(qū)域,左方六個藍(lán)色圖標(biāo)為舵機控制區(qū)域,每個圖標(biāo)對應(yīng)一個舵機,圖標(biāo)上方有舵機的標(biāo)號,方便區(qū)分,圖標(biāo)下方有白色滑軌和滑塊,用以改變舵機的位置,因為使用的是滑塊調(diào)節(jié),故可實現(xiàn)無級調(diào)節(jié)。
右方靠上位置的方框為動作編輯詳情列表,可以顯示設(shè)定動作的舵機位置,動作執(zhí)行時間與修改動作執(zhí)行順序等,最多可輸入1020 個動作。
右方靠下位置的區(qū)域為按鍵區(qū)域,實現(xiàn)動作組功能設(shè)置,動作編輯完成后可以執(zhí)行保存、修改、更新等操作。
使用上位機軟件時,用USB 數(shù)據(jù)連接PC 端和仿人機器人,打開電腦的設(shè)備管理器,找到連接的仿人機器人設(shè)備,記下COM 端標(biāo)號,打開串口,指示燈變綠,即可進(jìn)行機器人動作的編輯。每設(shè)置好一個動作,點擊添加動作按鈕設(shè)定動作的數(shù)值,將編輯好的動作組文件下載到STM32 單片機中,下載完成后關(guān)閉串口并斷開連接線,按下控制按鍵即可運行動作。
根據(jù)設(shè)計要求,選配系統(tǒng)元器件。主要有六個舵機、舵機之間連接的金屬件、開源舵機控制器、STM32 單片機與亞克力板等。組裝后機器人如圖6 所示。

圖6 仿人機器人整體效果圖
由于組裝時可能對舵機進(jìn)行轉(zhuǎn)動,上電后機器人不是處于直立狀態(tài),因而需要通過舵機調(diào)試板連接舵機與調(diào)試軟件分別對舵機的ID、中位進(jìn)行設(shè)置,使得機器人處于直立狀態(tài)。
將仿人機器人主控芯片與USB 口連接,打開KEIL 軟件,將編寫好的主程序燒錄至單片機中,圖7 為電腦與仿人機器人連接調(diào)試效果圖。

圖7 電腦與仿人機器人連接調(diào)試效果圖
打開上位機軟件,將上位機與機器人連接成功后,就可通過調(diào)整上位機軟件的舵機控制區(qū)來操控舵機轉(zhuǎn)動。
測試一:行走
首先測試機器人的行走,直立狀態(tài)下,行走的第一步首先要改變機器人的重心分布,從而使機器人單腳站立,此時控制另一只腿上的舵機,向前邁步,邁步后調(diào)整好落地角度,注意與另一只腿部舵機的配合,實現(xiàn)平穩(wěn)落地。行走動作組舵機各數(shù)值如表2 所示。

表2 行走動作組舵機數(shù)值表
測試二:轉(zhuǎn)彎
由于本設(shè)計每個關(guān)節(jié)只有兩個自由度,轉(zhuǎn)彎動作需要機器人單腳站立并保持較大的傾斜角度,另一條腿向前邁步,落地的同時,兩條腿上的舵機同時復(fù)位,在舵機扭矩的作用下,機器人即可向單腳傾斜的方向完成轉(zhuǎn)彎。如圖8 所示。

圖8 轉(zhuǎn)彎測試效果圖
轉(zhuǎn)彎動作組舵機數(shù)值如表3 所示。

表3 轉(zhuǎn)彎動作組舵機數(shù)值表
測試三:翻滾
翻滾時需要兩條腿上的舵機同步轉(zhuǎn)動,第一步需要完成機器人的頭部和腳部同時著地,第二步用頭部支撐,抬起腿部,使機器人呈現(xiàn)出倒立的形態(tài),第三步將機器人腿部執(zhí)行第一、第二步機器人頭部動作,即可完成翻轉(zhuǎn)操作。
翻滾動作組舵機數(shù)值如表4 所示。

表4 翻滾動作組舵機數(shù)值表
首先需將測試完畢的動作文件保存,將動作組文件命名并保存,方便后續(xù)修改,保存完畢后,點擊動作組序號,選擇“100”,因為機器人默認(rèn)設(shè)置 100 號動作組為脫機起始動作組號碼,而其余動作組號碼則不能作為脫機動作組起始號碼,下載完成后,如圖9 所示。

圖9 脫機調(diào)試圖
此時點擊關(guān)閉串口按鈕,斷開機器人的連接,將其放在較為平整的地面上,按下控制器上的按鍵,機器人就能脫機運行編輯的動作組文件。
仿人機器人的步態(tài)行走設(shè)計,利用STM32 單片機來控制開源舵機控制器,進(jìn)而操作舵機,完成仿人機器人的行走、轉(zhuǎn)彎、翻滾動作,可實現(xiàn)在線調(diào)試與脫機運行,動作相對穩(wěn)定、姿態(tài)標(biāo)準(zhǔn)。仿人機器人脫機調(diào)試時,能夠做到斷開與上位機的連接后,脫機自動運行編寫好的動作組文件,各模塊配合運行平穩(wěn),舵機角度可無級調(diào)節(jié)、扭矩大,能勝任一些較復(fù)雜動作,動作運行流暢,但是也存在一些問題,例如受限于電池包的重量體積等,故機器人續(xù)航時間較短,不能連續(xù)長時間運行,這些都需要在后期的改進(jìn)中逐步優(yōu)化,本設(shè)計為國內(nèi)外相關(guān)仿人機器人的研究提供了一些借鑒。