伍立春,王茂森,黃順斌
(南京理工大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 210016)
移動(dòng)機(jī)器人的發(fā)展是一個(gè)重要的科研領(lǐng)域,移動(dòng)機(jī)器人可分為車輪式移動(dòng)機(jī)器人、履帶式機(jī)器人及其仿生技術(shù)的運(yùn)動(dòng)機(jī)器人[1]。相對(duì)于輪式和履帶式機(jī)器人來說,足式機(jī)器人對(duì)非結(jié)構(gòu)環(huán)境的適應(yīng)性更強(qiáng),幾乎可以在陸地上的任何地方行走。六足行走機(jī)器人是按照三角步態(tài)行走的,每三足為一組,其行走軌跡并非是直線,而是呈”之”字形的曲線前進(jìn)[2]。設(shè)計(jì)六足仿生機(jī)器人,其三維模型如圖1 所示。每條腿都有3 個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)依靠伺服舵機(jī)驅(qū)動(dòng),整體共有18 個(gè)關(guān)節(jié),需要18 個(gè)舵機(jī)才可以實(shí)現(xiàn)六足機(jī)器人的運(yùn)動(dòng)。
舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng)。能夠在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片機(jī)系統(tǒng)很容易與之接口。鑒于舵機(jī)廣泛的應(yīng)用,文中設(shè)計(jì)了一種基于STM32F103VET6 的機(jī)器人控制系統(tǒng)[3],利用無線遙控收發(fā)器、超聲波傳感器、加速度計(jì)、陀螺儀、GPS 實(shí)現(xiàn)六足機(jī)器人的幾種基本動(dòng)作和自主避障。
控制系統(tǒng)硬件電路主要有3 部分組成:電源部分、主控部分和通信部分[4-5]。

圖1 六足機(jī)器人的三維模型圖
電源部分負(fù)責(zé)給機(jī)器人控制系統(tǒng)的硬件和舵機(jī)供電。在舵機(jī)驅(qū)動(dòng)過程中,為了避免電流波動(dòng)影響機(jī)器人運(yùn)動(dòng)穩(wěn)定性,將舵機(jī)驅(qū)動(dòng)和控制系統(tǒng)分開供電。機(jī)器人使用的舵機(jī)型號(hào)是:EKS-05-08,每個(gè)舵機(jī)的工作電流是30 mA,18個(gè)舵機(jī)同時(shí)工作時(shí)需要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)電源電路
主控部分對(duì)機(jī)器人進(jìn)行集中控制,負(fù)責(zé)機(jī)器人驅(qū)動(dòng)與上位機(jī)的通訊。
a)STM32F103VET6 芯片
STM32F103 是增強(qiáng)型系列高性能的Cortex-M3 32 位的RISC 內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)512k 字節(jié)的閃存和64k 字節(jié)的SRAM),具有增強(qiáng)I/O 端口和聯(lián)接到兩條APB 總線的外設(shè)。所有型號(hào)的器件都包含3 個(gè)12 位的ADC、4 個(gè)通用16 位定時(shí)器和2 個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2 個(gè)I2C 接口、3 個(gè)SPI 接口、2 個(gè)I2S 接口、1 個(gè)SDIO 接口、5 個(gè)USART 接口、一個(gè)USB 接口和一個(gè)CAN 接口。
b)無線遙控收發(fā)器
由于遙控器模塊都有上述的現(xiàn)成產(chǎn)品,采用ASK 調(diào)制方式、超再生、帶解碼、4 路無線收發(fā)模塊,遙控距離50~100 m(開闊地)。無線通信模塊包括無線發(fā)射模塊和無線接收模塊兩部分。發(fā)射器如圖4 所示,接收模塊如圖5 所示。接收模塊左從至右分別為:VT—解碼有效指示輸出腳、D0:D3—四個(gè)控制信號(hào)輸出引腳、VCC—DC5V、GND—負(fù)極、地,根據(jù)發(fā)射端按鍵的不同,可以從D0 到D3 對(duì)應(yīng)的引腳輸出高電平,加載在微機(jī)對(duì)應(yīng)的IO口,當(dāng)單片機(jī)掃描到引腳電平變化時(shí),可以對(duì)應(yīng)做出運(yùn)動(dòng)控制。
c)超聲波傳感器
超聲波傳感器,主要用于六足機(jī)器人自主避障時(shí)對(duì)障礙物的檢測。與紅外傳感器、微波雷達(dá)等測距傳感器相比,超聲波傳感器指向性好,不易受電磁、光線、灰塵、被測對(duì)象顏色、煙霧等影響,而且超聲避障實(shí)現(xiàn)方便,技術(shù)成熟,成本低,成為移動(dòng)機(jī)器人常用的避障方法[6]。

圖4 發(fā)射器

圖5 接收器
采用HY-SRF05 超聲波測距模塊(圖6),該模塊包括超聲波發(fā)射器、超聲波接收器與控制電路三部分,可提供2 cm~450 cm 的非接觸式測距功能,誤差不超過3 mm,感應(yīng)角度不大于15°。5 個(gè)引腳定義如下:VCC—5 V供電;GND—地線;TRIG—觸發(fā)控制信號(hào)輸入;ECHO—回響信號(hào)輸出;OUT—開關(guān)量輸出。工作時(shí)只需要定時(shí)器產(chǎn)生一個(gè)10 us 以上高電平的脈沖觸發(fā)信號(hào)給TRIG,該模塊將通過超聲波發(fā)射器發(fā)出8 個(gè)40 kHz 脈沖信號(hào)并由超聲波接收器檢測回波。超聲波接收器一旦檢測到回波信號(hào)就通過ECHO 引腳輸出脈沖寬度與障礙物距離成正比的回響信號(hào),該回響信號(hào)被STM32F103VET6 捕獲、處理成障礙物距離信息。

圖6 HY-SRF05 超聲波模塊
d)加速度計(jì)傳感器
加速度計(jì)傳感器主要用于檢測x、y、z 三個(gè)方向的加速度。本文采用集成三軸磁力計(jì)和三軸加速計(jì)功能的LSM303DLH 芯片作為加速度計(jì)傳感器,其主要特性如下:
1)磁力計(jì)的測量范圍從1.3 Gauss 到8.1 Gauss 共分7 檔,用戶可以自由選擇,分辨率可以達(dá)到8 MGauss;
2)具有自檢測功能;
3)加速計(jì)采用12 位ADC,可以達(dá)到1 mg 的測量精度。
4)支持睡眠/喚醒功能;
5)IIC 數(shù)字輸出接口。
加速度計(jì)傳感器的應(yīng)用電路和實(shí)物圖分別如圖7 和圖8 所示,通過IIC 接口輸入STM32F103VET6 中。

圖7 加速度計(jì)原理圖

圖8 加速度計(jì)實(shí)物圖
e)陀螺儀傳感器
三軸陀螺儀主要用于檢測機(jī)身角速度,本文采用意法半導(dǎo)體(ST)生產(chǎn)的低功耗、三軸角速度傳感器芯片L3G4200D,其主要特性如下:
1)3 種可選量程,分別為250/500/2 000 dps,低量程數(shù)值用于高精度慢速運(yùn)動(dòng)測量,而高量程則用于測量超快速的手勢(shì)和運(yùn)動(dòng);
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)用電路和實(shí)物圖分別如圖9 和圖10所示,通過IIC 接口輸入STM32F103VET6 中。

圖9 陀螺儀電路圖

圖10 陀螺儀實(shí)物圖
f)GPS
GPS 主要用于機(jī)器人的定位,因?yàn)榧铀俣扔?jì)和陀螺儀組成的捷聯(lián)慣導(dǎo)有時(shí)間積累誤差,在非封閉的地方主要用GPS 定位較合理。采用GPS 芯片SiRF StarⅢ,其主要特性如下:
1)波特率:4 800 bps
2)數(shù)據(jù)輸出電平:同時(shí)具備TTL 電平和RS232 電平
3)定位精度:5 m
4)數(shù)據(jù)輸出接口:DB9 母座
5)供電:5 V
6)數(shù)據(jù)輸出格式:主要解析GPS 推薦定位信息GPRMC
7)天線類型:外置有源GPS 天線
GPS 實(shí)物圖分別如圖11 所示,通過串口輸入STM32F103VET6 中。

圖11 GPS 實(shí)物圖
機(jī)器人的通信部分采用串口和IIC 通信,將USART串口連接到RS232 總線驅(qū)動(dòng)和接收器MAX232 上,并由其將STM32F103VET6 異步通信口的TTL 電平轉(zhuǎn)換為RS232 電平,便于和上位機(jī)通信。機(jī)器人和上位機(jī)通信流程如圖12 所示。超聲波測距傳感器和GPS 的信息需要STM32 的解析、加速度計(jì)和陀螺儀經(jīng)過相應(yīng)的寄存器和數(shù)據(jù)處理用IIC 協(xié)議輸入到STM32 中,最終四者信息通過USART 輸出到上位機(jī)上顯示數(shù)據(jù)。

圖12 機(jī)器人和上位機(jī)的通信的流程圖
在機(jī)器人控制系統(tǒng)中,通過STM32 豐富的外設(shè)處理,配置需要用到的時(shí)鐘、IO 口、串口、定時(shí)器等信息。
詳細(xì)過程如下:無線接收模塊收到信號(hào)后,相應(yīng)的I/O引腳電平會(huì)發(fā)生變化,由已存于數(shù)組中的步態(tài)數(shù)據(jù),經(jīng)過STM32 的定時(shí)器模塊共使用4 個(gè)通用定時(shí)器,每個(gè)定時(shí)器有4 路通道再加上一個(gè)高級(jí)定時(shí)器的2 路通道,可產(chǎn)生18路變占空比、頻率不變的PWM 波[7-10];GPS 通過USART2中斷處理接收到的GPRMC 數(shù)據(jù)后,經(jīng)過STM32 的數(shù)據(jù)解析后,再通過USART1 在上位機(jī)上顯示已解析過的數(shù)據(jù);加速度計(jì)和陀螺儀則通過操作相應(yīng)的寄存器將比力和角速度數(shù)據(jù)經(jīng)IIC 傳輸?shù)絊TM32 后用USART1 在上位機(jī)上顯示;超聲波傳感器利用定時(shí)器產(chǎn)生相應(yīng)的觸發(fā)條件,再利用定時(shí)器的溢出中斷捕獲到數(shù)據(jù),經(jīng)過處理后用USART1 在上位機(jī)上顯示。控制系統(tǒng)軟件流程如圖13 所示。

圖13 控制系統(tǒng)軟件流程圖
PCB 板上電后,系統(tǒng)準(zhǔn)備就緒,通過讀取遙控器的接收端電平狀態(tài),從而執(zhí)行前進(jìn)、后退,左行,右行,左轉(zhuǎn),右轉(zhuǎn),準(zhǔn)備等動(dòng)作;同時(shí)實(shí)時(shí)采集超聲波傳感器、加速度計(jì)、陀螺儀、GPS 的數(shù)據(jù)。機(jī)器人和傳感器的實(shí)物如圖14所示。

圖14 傳感器通訊調(diào)試和機(jī)器人實(shí)物圖
基于STM32 的高性能和豐富的外設(shè)接口,設(shè)計(jì)了六足機(jī)器人運(yùn)動(dòng)控制系統(tǒng),實(shí)現(xiàn)驅(qū)動(dòng)18 個(gè)關(guān)節(jié)運(yùn)動(dòng),實(shí)現(xiàn)了機(jī)器人在地面的穩(wěn)定運(yùn)動(dòng),動(dòng)作具有很好的協(xié)同性并實(shí)時(shí)與上位機(jī)通訊。本文主要是硬件方面的實(shí)現(xiàn),算法方面還需完善的有:加速度計(jì)和陀螺儀組成的慣性導(dǎo)航系統(tǒng)與GPS 模塊融合的組合導(dǎo)航系統(tǒng),用卡爾曼濾波算法對(duì)數(shù)據(jù)進(jìn)行融合以得到最接近真實(shí)的信息[11]。
[1]戴振東,張昊,張明.非連續(xù)約束變結(jié)構(gòu)機(jī)器人運(yùn)動(dòng)機(jī)構(gòu)的仿生[J].科學(xué)通報(bào),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ì)[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,48(4):482-485.
[5]周杰,陳偉海,于守謙.基于ARM 的嵌入式系統(tǒng)在機(jī)器人控制系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(2):271-274.
[6]曹瑞,包空軍.基于超聲波傳感器新技術(shù)的應(yīng)用[J].機(jī)械與電子,2009,(3).
[7]梁峰,王志良,解倫.多舵機(jī)控制在類人機(jī)器人上的應(yīng)用[J].微計(jì)算機(jī)信息,2008,24(2):242-243.
[8]任志敏.基于定時(shí)器定時(shí)的流露舵機(jī)控制電路與研究[J].自動(dòng)化技術(shù)與應(yīng)用,2010,29(8):108-111.
[9]趙杰,郭亮,臧希喆.應(yīng)用于六足機(jī)器人平臺(tái)的舵機(jī)控制器設(shè)計(jì)[J].機(jī)械與電子,2005,(9):48-51..
[10]鐘詠兵,劉澤乾.基于單片機(jī)控制的電動(dòng)舵機(jī)的設(shè)計(jì)與研究[J].彈箭與制導(dǎo)學(xué)報(bào),2003,(3).
[11]徐田來,游文虎,崔平遠(yuǎn).基于模糊自適應(yīng)卡爾曼濾波的INS/GPS 組合導(dǎo)航系統(tǒng)算法研究[J].宇航學(xué)報(bào),2005,26(5).