《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 基于繪圖板程序的家政機器人室內(nèi)定位系統(tǒng)實現(xiàn)
基于繪圖板程序的家政機器人室內(nèi)定位系統(tǒng)實現(xiàn)
來源:電子技術(shù)應用2011年第10期
李彥松,陳 祥,胡 永,王祖強
(山東大學 信息科學與工程學院,山東 濟南250100)
摘要: 針對目前家政服務機器人在可視化定位上的不足,提出一種將房屋布局圖加載到上位機繪圖板程序中,通過在上位機上繪制路線,實時控制家政服務機器人位置的方案。在該系統(tǒng)中,上位機按照RS-232協(xié)議傳輸路線信息到無線模塊并發(fā)送,機器人端采用Altera公司的SoPC技術(shù),使用Nios II軟核作為核心處理器讀取無線模塊接收到的信息,并控制機器人按指定路線在室內(nèi)行駛。系統(tǒng)具有很好的實用性。
關(guān)鍵詞: FPGA NiosII 室內(nèi)定位
中圖分類號: TP242.6
文獻標識碼: A
文章編號: 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)濟發(fā)展的高速化,人們的生活節(jié)奏也越來越快,家政機器人DR(Domestic Robot),因能夠代替人完成家政服務工作而受到了更多都市市民的青睞。目前,低端DR以單一的輸入功能如清潔功能等重復性作業(yè)為主,缺乏與用戶的交互;高端DR雖然功能完善,但是價格昂貴,不易為普遍用戶接受。本文設(shè)計的系統(tǒng)是通過上位機的路線繪制程序與用戶進行交互,以低成本便捷的方式實現(xiàn)對DR的室內(nèi)定位控制(Indoor Positioning Control),具有很好的實用性。
1 系統(tǒng)結(jié)構(gòu)
    系統(tǒng)整體構(gòu)架分為上位機信息發(fā)送系統(tǒng)和機器人子系統(tǒng)兩個部分。上位機端采用VB編寫的繪制路線程序作為可視控制平臺,實現(xiàn)房屋布局圖載入、行進路線繪制、坐標提取、路線信息計算與無線傳輸?shù)裙δ?。機器人處理子系統(tǒng)采用FPGA芯片作為核心處理器,結(jié)合SoPC技術(shù)和Verilog硬件描述語言以完成對FPGA芯片的配置、Nios II軟核實現(xiàn)路線信息的無線接收、提取路線信息。使用Verilog硬件描述語言搭建電機和舵機的PWM控制模塊,控制電機與舵機配合,完成路線的行駛。其系統(tǒng)框圖如圖1所示。



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

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

 


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

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

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

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