《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于繪圖板程序的家政機(jī)器人室內(nèi)定位系統(tǒng)實(shí)現(xiàn)
基于繪圖板程序的家政機(jī)器人室內(nèi)定位系統(tǒng)實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第10期
李彥松,陳 祥,胡 永,王祖強(qiáng)
(山東大學(xué) 信息科學(xué)與工程學(xué)院,山東 濟(jì)南250100)
摘要: 針對(duì)目前家政服務(wù)機(jī)器人在可視化定位上的不足,提出一種將房屋布局圖加載到上位機(jī)繪圖板程序中,通過在上位機(jī)上繪制路線,實(shí)時(shí)控制家政服務(wù)機(jī)器人位置的方案。在該系統(tǒng)中,上位機(jī)按照RS-232協(xié)議傳輸路線信息到無線模塊并發(fā)送,機(jī)器人端采用Altera公司的SoPC技術(shù),使用Nios II軟核作為核心處理器讀取無線模塊接收到的信息,并控制機(jī)器人按指定路線在室內(nèi)行駛。系統(tǒng)具有很好的實(shí)用性。
關(guān)鍵詞: FPGA NiosII 室內(nèi)定位
中圖分類號(hào): TP242.6
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)10-0026-03
Implement of domestic robot′s indoor positioning control with VB drawing program
Li Yansong,Chen Xiang,Hu Yong,Wang Zuqiang
College of Information Science and Engineering, Shandong University, Jinan 250100,China
Abstract: For the shortages in positional visualization of domestic robots, a convenient method used to locate and control robots is proposed by loading the building layout with VB program. Messages are sent from PC to wireless communication block according to the RS-232 contact and the SoPC technique of Altera Company is adopted to use Nios II soft core as the processor dealing with the messages that are received by the robot. With the method we proposed, the robot can move to the exact position and finish the homework assigned as soon as it receives the data of its position at present time and commands. The system has very good applition Value.
Key words : FPGA;Nios II;indoor positioning system


    隨著經(jīng)濟(jì)發(fā)展的高速化,人們的生活節(jié)奏也越來越快,家政機(jī)器人DR(Domestic Robot),因能夠代替人完成家政服務(wù)工作而受到了更多都市市民的青睞。目前,低端DR以單一的輸入功能如清潔功能等重復(fù)性作業(yè)為主,缺乏與用戶的交互;高端DR雖然功能完善,但是價(jià)格昂貴,不易為普遍用戶接受。本文設(shè)計(jì)的系統(tǒng)是通過上位機(jī)的路線繪制程序與用戶進(jìn)行交互,以低成本便捷的方式實(shí)現(xiàn)對(duì)DR的室內(nèi)定位控制(Indoor Positioning Control),具有很好的實(shí)用性。
1 系統(tǒng)結(jié)構(gòu)
    系統(tǒng)整體構(gòu)架分為上位機(jī)信息發(fā)送系統(tǒng)和機(jī)器人子系統(tǒng)兩個(gè)部分。上位機(jī)端采用VB編寫的繪制路線程序作為可視控制平臺(tái),實(shí)現(xiàn)房屋布局圖載入、行進(jìn)路線繪制、坐標(biāo)提取、路線信息計(jì)算與無線傳輸?shù)裙δ?。機(jī)器人處理子系統(tǒng)采用FPGA芯片作為核心處理器,結(jié)合SoPC技術(shù)和Verilog硬件描述語言以完成對(duì)FPGA芯片的配置、Nios II軟核實(shí)現(xiàn)路線信息的無線接收、提取路線信息。使用Verilog硬件描述語言搭建電機(jī)和舵機(jī)的PWM控制模塊,控制電機(jī)與舵機(jī)配合,完成路線的行駛。其系統(tǒng)框圖如圖1所示。



2.1.2 串口無線模塊
    PC機(jī)路線繪制程序?qū)⑿畔⒋虬ㄟ^串口傳輸?shù)綗o線模塊CC1100-232后發(fā)送出去。CC1100是TI公司的高性能無線通信芯片,采用串口工作方式,可以工作在433 MHz/868 MHz/915 MHz公用頻段,串口速率為1.2 Kb/s~38.4 Kb/s。在無線傳感器、家庭自動(dòng)化、機(jī)器人控制等領(lǐng)域有著廣泛的應(yīng)用。
2.2 機(jī)器人子系統(tǒng)
    機(jī)器人子系統(tǒng)的功能是實(shí)現(xiàn)路線信息的接收與執(zhí)行,由FPGA處理器、CC1100-232無線模塊、機(jī)器人模型組成。
2.2.1 機(jī)器人模型
    微元路線的準(zhǔn)確實(shí)現(xiàn)需要機(jī)器人根據(jù)路線信息準(zhǔn)確地行走,機(jī)器人模型設(shè)計(jì)的關(guān)鍵在于行進(jìn)部分的設(shè)計(jì),本系統(tǒng)的機(jī)器人行進(jìn)部分由兩個(gè)從動(dòng)輪、一個(gè)帶碼盤的驅(qū)動(dòng)輪、光電對(duì)管TCRT5000和電機(jī)模組組成。驅(qū)動(dòng)輪的電機(jī)模組分為130電機(jī)和5010舵機(jī)兩部分,電機(jī)與舵機(jī)安裝于驅(qū)動(dòng)輪上,電機(jī)帶動(dòng)驅(qū)動(dòng)輪轉(zhuǎn)動(dòng),舵機(jī)帶動(dòng)驅(qū)動(dòng)輪旋轉(zhuǎn)。PWM波可以控制電機(jī)、舵機(jī)轉(zhuǎn)動(dòng),調(diào)節(jié)PWM波的占空比可以改變電機(jī)轉(zhuǎn)速和舵機(jī)的轉(zhuǎn)動(dòng)角度。在驅(qū)動(dòng)輪上帶有碼盤和光電對(duì)管TCRT5000,兩者結(jié)合可以準(zhǔn)確地記錄驅(qū)動(dòng)輪轉(zhuǎn)動(dòng)了多少碼格。
    機(jī)器人的行進(jìn)方式有兩種:(1)舵機(jī)偏轉(zhuǎn)為0°時(shí),電機(jī)作用驅(qū)動(dòng)輪,機(jī)器人直線行駛;(2)舵機(jī)偏轉(zhuǎn)90°時(shí),電機(jī)作用驅(qū)動(dòng)輪,機(jī)器人繞幾何中心點(diǎn)轉(zhuǎn)動(dòng),如圖4所示。

    每次微元的路線機(jī)器人的執(zhí)行方式都是舵機(jī)擺至90°,電機(jī)驅(qū)動(dòng)輪行進(jìn)使機(jī)器人繞中心點(diǎn)轉(zhuǎn)動(dòng)相應(yīng)轉(zhuǎn)角,然后舵機(jī)擺正,電機(jī)驅(qū)動(dòng)機(jī)器人行走微元路線相應(yīng)的距離。
2.2.2 FPGA控制模塊
    系統(tǒng)采用Altera Cyclone III EP3C16 FPGA芯片,Verilog硬件描述語言完成復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)。Altera公司的SoPC技術(shù)可自定義IP核配置NIOS軟核,可定制性高[1]。通過軟硬件協(xié)同設(shè)計(jì)使整個(gè)系統(tǒng)的FPGA實(shí)現(xiàn)更加靈活與高效。

 


    本系統(tǒng)使用Nios II系統(tǒng)通過C語言編寫UART串口模塊程序,與串口無線模塊CC1100-232進(jìn)行通信提取路線信息,控制PIO口進(jìn)行相應(yīng)的中斷檢測(cè)與中斷服務(wù)。軟件設(shè)計(jì)的整個(gè)流程可以在Nios IDE環(huán)境中完成。在Nios II系統(tǒng)開發(fā)過程中,使用寄存器操作方式訪問PIO口[2]:即定義一個(gè)寄存器結(jié)構(gòu)體,然后通過訪問結(jié)構(gòu)體元素的方式讀寫PIO口數(shù)據(jù),如圖5所示。

    使用Verilog語言搭建電機(jī)與舵機(jī)的控制模塊以及光電對(duì)管的計(jì)數(shù)模塊,如圖6所示。圖中,電機(jī)部分:cp50m為50 MHz時(shí)鐘輸入端;jian為光電對(duì)管檢測(cè)輸入端,內(nèi)部計(jì)數(shù)器完成對(duì)它的計(jì)數(shù);en為參數(shù)設(shè)置使能;len[15..0]為計(jì)數(shù)預(yù)設(shè)定值,由Nios II軟核根據(jù)路線信息計(jì)算得出參考值;dir為電機(jī)轉(zhuǎn)向控制輸入端,根據(jù)輸入控制信號(hào)ctrl1、ctrl2完成對(duì)電機(jī)控制。pwm輸出信號(hào)實(shí)現(xiàn)電機(jī)轉(zhuǎn)速控制,finish信號(hào)負(fù)責(zé)動(dòng)作執(zhí)行完畢后向Nios II軟核發(fā)送完成信息。舵機(jī)部分:為了方便控制舵機(jī)只需要旋轉(zhuǎn)0°或90°即可,控制時(shí)通過pulse輸出端輸出周期為20 ms、高電平為0.5 ms的PWM波,舵機(jī)轉(zhuǎn)向即為0°;輸出周期 20 ms,高電平為1.5 ms的PWM波, 舵機(jī)轉(zhuǎn)向即為90°。舵機(jī)轉(zhuǎn)向由dir控制。

    通過Nios II系統(tǒng)與電機(jī)舵機(jī)控制模塊完成對(duì)FPGA核心處理器的配置后,整個(gè)系統(tǒng)搭建完畢,F(xiàn)PGA控制器框圖如圖7所示。
2.2.3 機(jī)器人子系統(tǒng)路線信息執(zhí)行過程
    機(jī)器人子系統(tǒng)執(zhí)行時(shí),串口無線模塊CC1100-232接收由發(fā)射端傳遞的路線信息,數(shù)據(jù)接收完成后相應(yīng)信號(hào)管腳置高。Nios II系統(tǒng)相應(yīng)的IO口檢測(cè)后產(chǎn)生中斷,啟動(dòng)中斷函數(shù),通過串口讀取接收模塊信息(接收信息包含路線的長度和轉(zhuǎn)角兩部分內(nèi)容)。
    驅(qū)動(dòng)輪的直徑為5 cm,驅(qū)動(dòng)輪上碼盤的碼格數(shù)為100個(gè),設(shè)計(jì)數(shù)值為x1,則其行進(jìn)距離L為:
  
    若機(jī)器人按照式(1)直行某確定距離L,應(yīng)根據(jù)式(4)設(shè)置好相應(yīng)的計(jì)數(shù)值x1;若使機(jī)器人旋轉(zhuǎn)某個(gè)角度θ,應(yīng)根據(jù)式(5)設(shè)置好相應(yīng)的計(jì)數(shù)值x2。
    分析設(shè)定好光電計(jì)數(shù)器的預(yù)設(shè)定值后就可以啟動(dòng)機(jī)器人行進(jìn)。首先是轉(zhuǎn)角,舵機(jī)偏轉(zhuǎn)90°后,Nios II系統(tǒng)將轉(zhuǎn)角預(yù)設(shè)定值x2傳給電機(jī)模塊len[15..0],然后驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)讓機(jī)器人旋轉(zhuǎn),驅(qū)動(dòng)輪轉(zhuǎn)動(dòng)時(shí)碼盤的遮光部分使光電對(duì)管斷開檢測(cè)管腳為0,透光部分使光電對(duì)管正常工作檢測(cè)管腳為1,計(jì)數(shù)器對(duì)檢測(cè)管腳的脈沖計(jì)數(shù)。當(dāng)計(jì)數(shù)值與預(yù)設(shè)值相等時(shí),機(jī)器人轉(zhuǎn)角完成,此時(shí)finish信號(hào)置高,Nios II系統(tǒng)檢測(cè)到此信號(hào)后就會(huì)控制舵機(jī)模塊使舵機(jī)擺正,接著加載距離信息的預(yù)設(shè)值x1,進(jìn)行直線行進(jìn),執(zhí)行完畢后機(jī)器人系統(tǒng)進(jìn)入等待下一次路線信息接收狀態(tài)。
    本文闡述了一種采用繪圖板上位機(jī)實(shí)現(xiàn)的可視化家政機(jī)器人控制方法。利用FPGA配置靈活性的特點(diǎn),結(jié)合Altera公司的SoPC技術(shù),使整個(gè)系統(tǒng)軟硬件協(xié)調(diào)配合完成信息傳遞和處理。位置可視化的優(yōu)勢(shì)在于可更方便地讓使用者對(duì)DR進(jìn)行實(shí)時(shí)的調(diào)度,以更加人性化的方式方便了行動(dòng)不便的使用者。本方法以其易于實(shí)現(xiàn)和控制的特點(diǎn)為家政機(jī)器人定位系統(tǒng)提供了一個(gè)有效可行的方案。
參考文獻(xiàn)
[1] 赫建國,倪德克,鄭燕.基于Nios II內(nèi)核的FPGA電路系統(tǒng)設(shè)計(jì).第1版[M].北京:電子工業(yè)出版社,2010:110-142.
[2] 周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程.第1版[M].北京:北京航空航天大學(xué)出版社,2006:194-218.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。