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

圖1 開源舵機控制器結構圖
開源舵機控制器的具體功能參數如表1 所示。

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

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

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

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

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

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

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

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

圖8 轉彎測試效果圖
轉彎動作組舵機數值如表3 所示。

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

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

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