韓飛 吳寶春 陳益 王志遠(yuǎn) 李志剛
摘要:本文介紹一種四足爬行機(jī)器人的組成結(jié)構(gòu)及其控制系統(tǒng)的構(gòu)成??刂葡到y(tǒng)主要由上位機(jī)控制界面和下位機(jī)控制單元組成。上位機(jī)通過java語言編寫調(diào)試控制界面,與下位機(jī)通過串口進(jìn)行通信,下位機(jī)采用STM32作為核心控制器,接收上位機(jī)的相關(guān)控制信息,通過控制舵機(jī)控制器,實(shí)現(xiàn)四足爬行機(jī)器人的行走控制。
關(guān)鍵詞:四足爬行機(jī)器人;STM32;舵機(jī)控制器;Java
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
0 引言
隨著現(xiàn)代科技與人工智能的快速發(fā)展,人類對(duì)機(jī)器人的研究與應(yīng)用也日趨廣泛。近年來,各類新型仿人機(jī)器人、仿生機(jī)器人已然陸續(xù)研發(fā)問世,并逐漸進(jìn)入諸多領(lǐng)域。與眾多款型機(jī)器人相比,四足仿生機(jī)器人是具備爬行動(dòng)物外形、并可發(fā)揮強(qiáng)大行動(dòng)能力的機(jī)器人,采用爬行的方式提供自主行走,通過自身內(nèi)部協(xié)調(diào)處理實(shí)現(xiàn)一些簡單的動(dòng)作。與傳統(tǒng)機(jī)器人相比,四足機(jī)器人具有獨(dú)特鮮明優(yōu)勢(shì),可通過多足的機(jī)械結(jié)構(gòu)交互配合,從而完成以探索和采集作為主要設(shè)定目的的綜合任務(wù)。因此,研究爬行機(jī)器人的結(jié)構(gòu)組成及其控制方法具有至關(guān)重要的課題價(jià)值和現(xiàn)實(shí)意義。
本文首先系統(tǒng)分析四足爬行機(jī)器人結(jié)構(gòu)組成以及設(shè)計(jì)行走控制方法,結(jié)合java語言編寫上位機(jī)調(diào)試界面,通過串口與下位機(jī)STM32核心控制器進(jìn)行通信,核心控制器采用串口通信方式將運(yùn)動(dòng)控制信號(hào)實(shí)時(shí)傳遞給舵機(jī)驅(qū)動(dòng)器控制機(jī)器人舵機(jī)狀態(tài),從而實(shí)現(xiàn)對(duì)爬行機(jī)器人行走的簡單控制。
1 四足爬行機(jī)器人簡介
本文所研究的四足爬行機(jī)器人機(jī)械結(jié)構(gòu)采用成品套件,具有12個(gè)舵機(jī),每條腿上安裝3個(gè)舵機(jī),分布在爬行機(jī)器人的各個(gè)關(guān)節(jié);在安裝舵機(jī)前首先進(jìn)行舵機(jī)狀態(tài)復(fù)位,舵機(jī)復(fù)位后保證舵機(jī)左右或前后擺動(dòng)的幅度均勻,避免舵機(jī)在調(diào)試過程一個(gè)方向無法擺動(dòng)或者堵轉(zhuǎn)而燒壞舵機(jī)。系統(tǒng)控制器采用STM32核心板安裝在機(jī)器人背部,舵機(jī)控制器裝在機(jī)器人身體下部,電池裝在夾縫中。爬行機(jī)器人整體結(jié)構(gòu)如圖1所示。
2 控制系統(tǒng)設(shè)計(jì)
本文研究的爬行機(jī)器人控制系統(tǒng)主要由上位機(jī)控制界面和下位機(jī)控制單元組成,上位機(jī)控制界面采用java語言編寫,通過串口與下位機(jī)通信。下位機(jī)控制單元采用STM32 作為核心控制器,這是由意法半導(dǎo)體公司重點(diǎn)生產(chǎn)的基于超低功耗的ARMCortex-M3處理器內(nèi)核,因其配備一流的外設(shè)、低功耗、最大集成度的特點(diǎn),滿足了用戶對(duì)高性能、低功耗、低成本和經(jīng)濟(jì)實(shí)用的要求。在此,給出控制系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
下位機(jī)控制單元主要由STM32核心控制器、舵機(jī)控制器和12個(gè)舵機(jī)而聯(lián)合構(gòu)建組成。其中,STM32核心控制系統(tǒng)在設(shè)計(jì)上可分解為主控芯片電路、時(shí)鐘電路、下載電路、電源電路等但愿不見;舵機(jī)控制器則是通過串口方式與核心控制器進(jìn)行通信,從而實(shí)現(xiàn)對(duì)舵機(jī)的控制。涉及舵機(jī)控制時(shí),首先需展開舵機(jī)調(diào)試以及動(dòng)作組的設(shè)定,本文則結(jié)合項(xiàng)目組前期研究的機(jī)器人調(diào)試系統(tǒng)來集成展現(xiàn)舵機(jī)狀態(tài)調(diào)試。調(diào)試界面如圖3所示。
通過對(duì)舵機(jī)的調(diào)試,保證了爬行機(jī)器人動(dòng)作的協(xié)調(diào)性和連貫性,對(duì)機(jī)器人爬行控制具有決定性的重要意義。
3 軟件程序設(shè)計(jì)
3.1 上位機(jī)控制界面
上位機(jī)控制界面是由java語言編寫,可用于調(diào)試控制機(jī)器人具體動(dòng)作狀態(tài)。采用串口方式與下位機(jī)進(jìn)行通信,當(dāng)發(fā)送命令時(shí),通過按鍵裝監(jiān)聽的方法,來實(shí)現(xiàn)對(duì)應(yīng)指令發(fā)送。上位機(jī)界面總體結(jié)構(gòu)如圖4所示。
進(jìn)一步地,上位機(jī)界面則如圖5所示。
在上位機(jī)中,CommPortIdentifier.getPortIdentifier(com)用來實(shí)現(xiàn)本地系統(tǒng)的硬件端口(RS-232)標(biāo)準(zhǔn)串口通信,通過安裝應(yīng)用RXTXcomm.jar包,從而管理本地機(jī)器的端口。
3.2 下位機(jī)軟件程序設(shè)計(jì)
STM32核心控制系統(tǒng)中,軟件編寫的程序采用順序控制,整體設(shè)計(jì)相對(duì)簡單,但是不能滿足嵌入式多任務(wù)要求,在工作時(shí),需要等待當(dāng)前命令執(zhí)行完成后,才可以繼續(xù)向下執(zhí)行。軟件流程如圖6所示。
下位機(jī)控制系統(tǒng)在打開電源后,初始化相關(guān)函數(shù),發(fā)送命令至舵機(jī)控制器,使得機(jī)器人保持爬行姿勢(shì),串口連接成功后,等待接受命令。當(dāng)上位機(jī)發(fā)送動(dòng)作命令時(shí),爬行機(jī)器人執(zhí)行由其指定的動(dòng)作響應(yīng)。
4 實(shí)驗(yàn)測(cè)試
在實(shí)現(xiàn)了上位機(jī)界面開發(fā)和下位機(jī)程序調(diào)試后,即需選取設(shè)定四足爬行機(jī)器人動(dòng)作整體調(diào)試,對(duì)其進(jìn)行前進(jìn)、左移、右移、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本功能測(cè)試,四足(1腳、2腳、3腳、4腳)排序采用逆時(shí)針方式,可得實(shí)驗(yàn)現(xiàn)象描述如下:
1)上位機(jī)發(fā)送前進(jìn)命令時(shí),四足爬行機(jī)器人通過1、3腳配合支持形成前移一步的動(dòng)作,然后將2、4腳分別邁到1、3前,再將1、3腳分別還原,即恢復(fù)為初始設(shè)定的位置,完成一套爬行前進(jìn)的動(dòng)作;
2)上位機(jī)發(fā)送左移命令時(shí),四足爬行機(jī)器人通過1、3腳配合逆時(shí)針旋轉(zhuǎn)90度后,將2、4腳順時(shí)針旋轉(zhuǎn)90度,通過把類似的前進(jìn)方式加入,完成左移動(dòng)作;
3)上位機(jī)發(fā)送右移命令時(shí),四足爬行機(jī)器人通過2、4腳配合順時(shí)針旋轉(zhuǎn)90度后,將1、3腳逆時(shí)針旋轉(zhuǎn)90度,通過把類似的前進(jìn)方式加入,完成右移動(dòng)作;
4)上位機(jī)發(fā)送后退命令時(shí),四足爬行機(jī)器人通過2、4腳配合支持形成后移一步的動(dòng)作,然后將1、3腳分別邁到2、4后,再將2、4腳分別還原,即恢復(fù)為初始設(shè)定的位置,完成一套爬行后退的動(dòng)作;
5)上位機(jī)發(fā)送左轉(zhuǎn)命令時(shí),將前進(jìn)加入后,再加入左移,完成左轉(zhuǎn)動(dòng)作;
6)上位機(jī)發(fā)送右轉(zhuǎn)命令時(shí),將前進(jìn)加入后,再加入右移,完成右轉(zhuǎn)動(dòng)作。
5 結(jié)束語
本文應(yīng)用java語言開發(fā)了四足機(jī)器人調(diào)試界面,結(jié)合STM32最小系統(tǒng)與舵機(jī)控制器實(shí)現(xiàn)了四足爬行機(jī)器人行走狀態(tài)的控制。同時(shí)給出了系統(tǒng)的軟硬件設(shè)計(jì),進(jìn)而展開了實(shí)驗(yàn)調(diào)試,系統(tǒng)分析四足機(jī)器人的行走步態(tài),為后續(xù)進(jìn)行機(jī)器人步態(tài)分析及功能算法研究提供了堅(jiān)實(shí)有益的技術(shù)基礎(chǔ)。
參考文獻(xiàn):
[1]李貽斌,李杉,榮學(xué)文,等. 液壓驅(qū)動(dòng)四足仿生機(jī)器人的結(jié)構(gòu)設(shè)計(jì)和步態(tài)規(guī)劃[J].山東大學(xué)學(xué)報(bào)(工學(xué)版),2011,41(5):32-36,45.
[2]錢慶文. 基于STM32的類人機(jī)器人控制系統(tǒng)的研究[D]. 哈爾濱:哈爾濱工程大學(xué),2014.
[3] 韓寶玲,張述玉,羅慶生,等. STM32的小型仿人機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016(1):60-63.
[4]盧士林,李彩霞,張奎慶,等. 基于STM32雙足競(jìng)步機(jī)器人的研究與設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,2016,6(5):107-108.
[5]胡振旺,陳益民,李林.基于STM32的家庭服務(wù)機(jī)器人系統(tǒng)設(shè)計(jì)[J].電子產(chǎn)品世界,2015(9):55-57.
[6]華瑾,曹凱.基于STM32的六足機(jī)器人制作[J].電子世界,2014(14):110-111.
[7]伍立春,王茂森,黃順斌.基于STM32的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].機(jī)械制造與自動(dòng)化,2014(5):150-153,161.
[8]宋怡雯,郭鵬. 基于STM32的雙足機(jī)器人運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)[J].煤礦機(jī)電,2013(5):5-7,8.