伍立春,王茂森,黃順斌
(南京理工大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 210016)
移動機(jī)器人的發(fā)展是一個重要的科研領(lǐng)域,移動機(jī)器人可分為車輪式移動機(jī)器人、履帶式機(jī)器人及其仿生技術(shù)的運(yùn)動機(jī)器人[1]。相對于輪式和履帶式機(jī)器人來說,足式機(jī)器人對非結(jié)構(gòu)環(huán)境的適應(yīng)性更強(qiáng),幾乎可以在陸地上的任何地方行走。六足行走機(jī)器人是按照三角步態(tài)行走的,每三足為一組,其行走軌跡并非是直線,而是呈”之”字形的曲線前進(jìn)[2]。設(shè)計六足仿生機(jī)器人,其三維模型如圖1 所示。每條腿都有3 個關(guān)節(jié),每個關(guān)節(jié)依靠伺服舵機(jī)驅(qū)動,整體共有18 個關(guān)節(jié),需要18 個舵機(jī)才可以實現(xiàn)六足機(jī)器人的運(yùn)動。
舵機(jī)是一種位置伺服的驅(qū)動器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng)。能夠在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片機(jī)系統(tǒng)很容易與之接口。鑒于舵機(jī)廣泛的應(yīng)用,文中設(shè)計了一種基于STM32F103VET6 的機(jī)器人控制系統(tǒng)[3],利用無線遙控收發(fā)器、超聲波傳感器、加速度計、陀螺儀、GPS 實現(xiàn)六足機(jī)器人的幾種基本動作和自主避障。
控制系統(tǒng)硬件電路主要有3 部分組成:電源部分、主控部分和通信部分[4-5]。
圖1 六足機(jī)器人的三維模型圖
電源部分負(fù)責(zé)給機(jī)器人控制系統(tǒng)的硬件和舵機(jī)供電。在舵機(jī)驅(qū)動過程中,為了避免電流波動影響機(jī)器人運(yùn)動穩(wěn)定性,將舵機(jī)驅(qū)動和控制系統(tǒng)分開供電。機(jī)器人使用的舵機(jī)型號是:EKS-05-08,每個舵機(jī)的工作電流是30 mA,18個舵機(jī)同時工作時需要0.6 A 的電流,可以使用LM2575S-5 產(chǎn)生5 V 電壓為舵機(jī)單獨(dú)供電,電路如圖2 所示。STM32F103VET6控制系統(tǒng)需要為I/O 引腳和內(nèi)部調(diào)壓器供電,可用AMS1117-3.3產(chǎn)生3.3V 的穩(wěn)壓電源,電路如圖3 所示。
圖2 機(jī)器人舵機(jī)電源電路
圖3 控制系統(tǒng)電源電路
主控部分對機(jī)器人進(jìn)行集中控制,負(fù)責(zé)機(jī)器人驅(qū)動與上位機(jī)的通訊。
a)STM32F103VET6 芯片
STM32F103 是增強(qiáng)型系列高性能的Cortex-M3 32 位的RISC 內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲器(高達(dá)512k 字節(jié)的閃存和64k 字節(jié)的SRAM),具有增強(qiáng)I/O 端口和聯(lián)接到兩條APB 總線的外設(shè)。所有型號的器件都包含3 個12 位的ADC、4 個通用16 位定時器和2 個PWM定時器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2 個I2C 接口、3 個SPI 接口、2 個I2S 接口、1 個SDIO 接口、5 個USART 接口、一個USB 接口和一個CAN 接口。
b)無線遙控收發(fā)器
由于遙控器模塊都有上述的現(xiàn)成產(chǎn)品,采用ASK 調(diào)制方式、超再生、帶解碼、4 路無線收發(fā)模塊,遙控距離50~100 m(開闊地)。無線通信模塊包括無線發(fā)射模塊和無線接收模塊兩部分。發(fā)射器如圖4 所示,接收模塊如圖5 所示。接收模塊左從至右分別為:VT—解碼有效指示輸出腳、D0:D3—四個控制信號輸出引腳、VCC—DC5V、GND—負(fù)極、地,根據(jù)發(fā)射端按鍵的不同,可以從D0 到D3 對應(yīng)的引腳輸出高電平,加載在微機(jī)對應(yīng)的IO口,當(dāng)單片機(jī)掃描到引腳電平變化時,可以對應(yīng)做出運(yùn)動控制。
c)超聲波傳感器
超聲波傳感器,主要用于六足機(jī)器人自主避障時對障礙物的檢測。與紅外傳感器、微波雷達(dá)等測距傳感器相比,超聲波傳感器指向性好,不易受電磁、光線、灰塵、被測對象顏色、煙霧等影響,而且超聲避障實現(xiàn)方便,技術(shù)成熟,成本低,成為移動機(jī)器人常用的避障方法[6]。
圖4 發(fā)射器
圖5 接收器
采用HY-SRF05 超聲波測距模塊(圖6),該模塊包括超聲波發(fā)射器、超聲波接收器與控制電路三部分,可提供2 cm~450 cm 的非接觸式測距功能,誤差不超過3 mm,感應(yīng)角度不大于15°。5 個引腳定義如下:VCC—5 V供電;GND—地線;TRIG—觸發(fā)控制信號輸入;ECHO—回響信號輸出;OUT—開關(guān)量輸出。工作時只需要定時器產(chǎn)生一個10 us 以上高電平的脈沖觸發(fā)信號給TRIG,該模塊將通過超聲波發(fā)射器發(fā)出8 個40 kHz 脈沖信號并由超聲波接收器檢測回波。超聲波接收器一旦檢測到回波信號就通過ECHO 引腳輸出脈沖寬度與障礙物距離成正比的回響信號,該回響信號被STM32F103VET6 捕獲、處理成障礙物距離信息。
圖6 HY-SRF05 超聲波模塊
d)加速度計傳感器
加速度計傳感器主要用于檢測x、y、z 三個方向的加速度。本文采用集成三軸磁力計和三軸加速計功能的LSM303DLH 芯片作為加速度計傳感器,其主要特性如下:
1)磁力計的測量范圍從1.3 Gauss 到8.1 Gauss 共分7 檔,用戶可以自由選擇,分辨率可以達(dá)到8 MGauss;
2)具有自檢測功能;
3)加速計采用12 位ADC,可以達(dá)到1 mg 的測量精度。
4)支持睡眠/喚醒功能;
5)IIC 數(shù)字輸出接口。
加速度計傳感器的應(yīng)用電路和實物圖分別如圖7 和圖8 所示,通過IIC 接口輸入STM32F103VET6 中。
圖7 加速度計原理圖
圖8 加速度計實物圖
e)陀螺儀傳感器
三軸陀螺儀主要用于檢測機(jī)身角速度,本文采用意法半導(dǎo)體(ST)生產(chǎn)的低功耗、三軸角速度傳感器芯片L3G4200D,其主要特性如下:
1)3 種可選量程,分別為250/500/2 000 dps,低量程數(shù)值用于高精度慢速運(yùn)動測量,而高量程則用于測量超快速的手勢和運(yùn)動;
2)IIC/SPI 數(shù)字輸出接口;
3)16 位角速度數(shù)據(jù)輸出、8 位溫度數(shù)據(jù)輸出;
4)集成低通、高通濾波器,用戶可自行設(shè)置帶寬;
5)供電2.4 V~3.6 V,兼容1.8 V 電壓IO 口,支持?jǐn)嚯娂八吣J?
6)內(nèi)部集成FIFO、溫度傳感器;
7)高抗撞擊能力。
三軸陀螺儀的應(yīng)用電路和實物圖分別如圖9 和圖10所示,通過IIC 接口輸入STM32F103VET6 中。
圖9 陀螺儀電路圖
圖10 陀螺儀實物圖
f)GPS
GPS 主要用于機(jī)器人的定位,因為加速度計和陀螺儀組成的捷聯(lián)慣導(dǎo)有時間積累誤差,在非封閉的地方主要用GPS 定位較合理。采用GPS 芯片SiRF StarⅢ,其主要特性如下:
1)波特率:4 800 bps
2)數(shù)據(jù)輸出電平:同時具備TTL 電平和RS232 電平
3)定位精度:5 m
4)數(shù)據(jù)輸出接口:DB9 母座
5)供電:5 V
6)數(shù)據(jù)輸出格式:主要解析GPS 推薦定位信息GPRMC
7)天線類型:外置有源GPS 天線
GPS 實物圖分別如圖11 所示,通過串口輸入STM32F103VET6 中。
圖11 GPS 實物圖
機(jī)器人的通信部分采用串口和IIC 通信,將USART串口連接到RS232 總線驅(qū)動和接收器MAX232 上,并由其將STM32F103VET6 異步通信口的TTL 電平轉(zhuǎn)換為RS232 電平,便于和上位機(jī)通信。機(jī)器人和上位機(jī)通信流程如圖12 所示。超聲波測距傳感器和GPS 的信息需要STM32 的解析、加速度計和陀螺儀經(jīng)過相應(yīng)的寄存器和數(shù)據(jù)處理用IIC 協(xié)議輸入到STM32 中,最終四者信息通過USART 輸出到上位機(jī)上顯示數(shù)據(jù)。
圖12 機(jī)器人和上位機(jī)的通信的流程圖
在機(jī)器人控制系統(tǒng)中,通過STM32 豐富的外設(shè)處理,配置需要用到的時鐘、IO 口、串口、定時器等信息。
詳細(xì)過程如下:無線接收模塊收到信號后,相應(yīng)的I/O引腳電平會發(fā)生變化,由已存于數(shù)組中的步態(tài)數(shù)據(jù),經(jīng)過STM32 的定時器模塊共使用4 個通用定時器,每個定時器有4 路通道再加上一個高級定時器的2 路通道,可產(chǎn)生18路變占空比、頻率不變的PWM 波[7-10];GPS 通過USART2中斷處理接收到的GPRMC 數(shù)據(jù)后,經(jīng)過STM32 的數(shù)據(jù)解析后,再通過USART1 在上位機(jī)上顯示已解析過的數(shù)據(jù);加速度計和陀螺儀則通過操作相應(yīng)的寄存器將比力和角速度數(shù)據(jù)經(jīng)IIC 傳輸?shù)絊TM32 后用USART1 在上位機(jī)上顯示;超聲波傳感器利用定時器產(chǎn)生相應(yīng)的觸發(fā)條件,再利用定時器的溢出中斷捕獲到數(shù)據(jù),經(jīng)過處理后用USART1 在上位機(jī)上顯示??刂葡到y(tǒng)軟件流程如圖13 所示。
圖13 控制系統(tǒng)軟件流程圖
PCB 板上電后,系統(tǒng)準(zhǔn)備就緒,通過讀取遙控器的接收端電平狀態(tài),從而執(zhí)行前進(jìn)、后退,左行,右行,左轉(zhuǎn),右轉(zhuǎn),準(zhǔn)備等動作;同時實時采集超聲波傳感器、加速度計、陀螺儀、GPS 的數(shù)據(jù)。機(jī)器人和傳感器的實物如圖14所示。
圖14 傳感器通訊調(diào)試和機(jī)器人實物圖
基于STM32 的高性能和豐富的外設(shè)接口,設(shè)計了六足機(jī)器人運(yùn)動控制系統(tǒng),實現(xiàn)驅(qū)動18 個關(guān)節(jié)運(yùn)動,實現(xiàn)了機(jī)器人在地面的穩(wěn)定運(yùn)動,動作具有很好的協(xié)同性并實時與上位機(jī)通訊。本文主要是硬件方面的實現(xiàn),算法方面還需完善的有:加速度計和陀螺儀組成的慣性導(dǎo)航系統(tǒng)與GPS 模塊融合的組合導(dǎo)航系統(tǒng),用卡爾曼濾波算法對數(shù)據(jù)進(jìn)行融合以得到最接近真實的信息[11]。
[1]戴振東,張昊,張明.非連續(xù)約束變結(jié)構(gòu)機(jī)器人運(yùn)動機(jī)構(gòu)的仿生[J].科學(xué)通報,2007,52(2):236-239.
[2]許小云,顏國正,丁國清.微型六足機(jī)器人及其三角步態(tài)的研究[J].光學(xué)精密工程,2002,10(4):392-396.
[3]蒙博宇.STM32 自學(xué)筆記[M].北京:北京航空航天大學(xué)出版社,2012.
[4]劉森,慕春棣,趙明國.基于ARM 嵌入式系統(tǒng)的擬人機(jī)器人控制器的設(shè)計[J].清華大學(xué)學(xué)報(自然科學(xué)版),2008,48(4):482-485.
[5]周杰,陳偉海,于守謙.基于ARM 的嵌入式系統(tǒng)在機(jī)器人控制系統(tǒng)中的應(yīng)用[J].微計算機(jī)信息,2007,23(2):271-274.
[6]曹瑞,包空軍.基于超聲波傳感器新技術(shù)的應(yīng)用[J].機(jī)械與電子,2009,(3).
[7]梁峰,王志良,解倫.多舵機(jī)控制在類人機(jī)器人上的應(yīng)用[J].微計算機(jī)信息,2008,24(2):242-243.
[8]任志敏.基于定時器定時的流露舵機(jī)控制電路與研究[J].自動化技術(shù)與應(yīng)用,2010,29(8):108-111.
[9]趙杰,郭亮,臧希喆.應(yīng)用于六足機(jī)器人平臺的舵機(jī)控制器設(shè)計[J].機(jī)械與電子,2005,(9):48-51..
[10]鐘詠兵,劉澤乾.基于單片機(jī)控制的電動舵機(jī)的設(shè)計與研究[J].彈箭與制導(dǎo)學(xué)報,2003,(3).
[11]徐田來,游文虎,崔平遠(yuǎn).基于模糊自適應(yīng)卡爾曼濾波的INS/GPS 組合導(dǎo)航系統(tǒng)算法研究[J].宇航學(xué)報,2005,26(5).