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