劉溯奇,蔣正鋒,陸偉艷
(廣西民族師范學(xué)院,崇左 532200)
近年來,機(jī)器人技術(shù)的應(yīng)用開始從制造業(yè)向非制造領(lǐng)域擴(kuò)展,比如宇宙探索、海底探查、管道鋪設(shè)和檢修、醫(yī)療、軍事、服務(wù)、娛樂等方面。從而基于非結(jié)構(gòu)環(huán)境、極限環(huán)境下的先進(jìn)機(jī)器人技術(shù)及應(yīng)用研究已成為機(jī)器人技術(shù)研究和發(fā)展的主要方向。機(jī)器人技術(shù)的發(fā)展從來離不開其他技術(shù)的發(fā)展,計算機(jī)技術(shù)就是其中之一,而嵌入式系統(tǒng)就是計算機(jī)技術(shù)發(fā)展最快和應(yīng)用最廣泛的技術(shù)之一,人們稱之為后PC時代。近年來,由于嵌入式處理器的高度發(fā)展,嵌入式系統(tǒng)在體積、價格、功耗、性能、穩(wěn)定性等方面有明顯的突出優(yōu)勢,因此,機(jī)器人無論從控制系統(tǒng)的結(jié)構(gòu)還是機(jī)器人的智能程度等方面都得到了很大提高。所以,研究機(jī)器人及其控制系統(tǒng),嵌入式技術(shù)發(fā)揮了越來越重要的作用[1]。
隨著我國社會經(jīng)濟(jì)和城市建設(shè)的迅速發(fā)展,在人們物質(zhì)生活水平不斷提高的同時,環(huán)境也遭受了越來越多的污染,人類賴以生存的水資源也不例外。水面污染對人類的水源構(gòu)成很大的威脅,湖泊尤其是旅游勝地和市內(nèi)人工湖泊,更是無法逃避漂浮物污染的厄運(yùn),舉目可見各種日常消費(fèi)品的包裝物在湖面上漂浮。污染的加劇需要根治,但是,水面污染的治理是一項(xiàng)長期艱難的任務(wù),是全人類必須面對的共同問題。用人工清理水面漂浮物只是權(quán)宜之計,有些危險水域人工是無法勝任的。因此,設(shè)計了基于嵌入式技術(shù)的小型湖面漂浮物清掃機(jī)器人,用于完成這一工作。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)操作簡單、安全平穩(wěn)、經(jīng)濟(jì)環(huán)保、適應(yīng)性和實(shí)用性強(qiáng),具有較深遠(yuǎn)的理論意義和應(yīng)用推廣價值[2]。
小型湖面漂浮物清掃機(jī)器人系統(tǒng)總體設(shè)計方案如圖1 所示,該方案總體來說,可分為兩部分:一部分是清掃機(jī)器人結(jié)構(gòu)。它由船體、尾部的回收拖網(wǎng)、在水面上行走的一對驅(qū)動輪以及對應(yīng)的一對直流電機(jī)構(gòu)成機(jī)器人的本體結(jié)構(gòu),并在本體結(jié)構(gòu)上搭載了硬件控制系統(tǒng)(ARM11)和多種傳感器等相關(guān)設(shè)備,如USB 攝像頭、電機(jī)驅(qū)動控制板、WiFi 模塊等。第二部分是以無線路由器為中心節(jié)點(diǎn)構(gòu)成的遠(yuǎn)程控制與監(jiān)控網(wǎng)絡(luò)。該部分主要由帶寬較大、傳輸速率較高和傳輸距離達(dá)500m 之遠(yuǎn)的無線路由器,具有無線網(wǎng)卡、安裝有監(jiān)控軟件、便于攜帶的遠(yuǎn)程控制用筆記本電腦,一端通過有線方式連接到無線路由器的上行端口、另一端通過其他途徑連接到Internet的有線路由器,多臺接入Internet的遠(yuǎn)程監(jiān)控計算機(jī)所組成。其目的是通過有線和無線傳輸通道實(shí)現(xiàn)對清掃機(jī)器人的遠(yuǎn)程控制,并獲取機(jī)器人采集到的實(shí)時視頻圖像,以便進(jìn)一步觀察和決策,最終完成湖面漂浮物垃圾的清理工作。
圖1 系統(tǒng)總體方案設(shè)計圖
清掃機(jī)器人控制系統(tǒng)主要完成遠(yuǎn)程控制計算機(jī)發(fā)來的命令識別,并做出相應(yīng)的動作,實(shí)時采集機(jī)器人周圍的視頻圖像,然后通過WiFi 信道傳輸給遠(yuǎn)程控制機(jī)等。對系統(tǒng)進(jìn)行功能模塊化劃分,本系統(tǒng)可劃分為以下六大模塊:視頻圖像采集模塊(USB 攝像頭);人機(jī)交互模塊;USB 接口的WiFi 模塊;程序下載模塊;電機(jī)驅(qū)動模塊和電源管理模塊。各模塊之間的關(guān)系如圖2 所示。
核心控制板模塊采用FriendlyARM 公司的Tiny6410開發(fā)板[3],該開發(fā)板外圍接口比較完備,引出了很多I/O、數(shù)據(jù)和地址總線,適合二次開發(fā)。
視頻采集模塊采用的是包含中星微公司ZC0301P 芯片的USB 攝像頭,ZC0301P 芯片內(nèi)部集成了CMOS的圖像感光芯片、JPEG 硬件壓縮引擎和USB 設(shè)備控制接口,可通過它采集得到壓縮了的MJPEG 格式的視頻流數(shù)據(jù),并可由USB 接口傳輸?shù)絻?nèi)存進(jìn)行處理。
圖2 硬件控制系統(tǒng)(ARM11)結(jié)構(gòu)示意圖
系統(tǒng)需要兩種電源,分別是5V,12V。5V 電源用于核心板供電,12V 電源主要對電機(jī)驅(qū)動模塊供電。為了避免引起干擾,需要設(shè)計電源模塊,因此選用了開關(guān)電源芯片LM2576 作為電壓變換核心器件,它能承受最大達(dá)3A的電流輸出。整個機(jī)器人所需的能量由12V 電瓶提供。
WiFi 模塊采用的是USB 接口的無線網(wǎng)卡TL-WN321G+,采用Ralink 公司的RT73 芯片,無線傳輸速率高達(dá)54Mbps,傳輸距離可達(dá)100~300m,能夠滿足控制系統(tǒng)對遙控距離的要求。
程序下載模塊主要完成啟動程序和應(yīng)用程序的下載,本系統(tǒng)提供兩種下載方式,并口下載和串口下載。并口下載通過并口線與JTAG 調(diào)試接口連接完成PC 與S3C6410的通訊,串口下載通過RS232 串口線連接電路板上COM 口與PC 進(jìn)行通訊[4]。
電機(jī)驅(qū)動模塊是機(jī)器人的重要組成部分,它和電機(jī)、驅(qū)動輪組成機(jī)器人的執(zhí)行機(jī)構(gòu),完成機(jī)器人的向前、向后、轉(zhuǎn)向等運(yùn)動動作。
由于直流電機(jī)具有良好的線性調(diào)速特性,簡單的控制功能,較高的效率,優(yōu)異的動態(tài)特性等,因此廣泛應(yīng)用在控制系統(tǒng)中。本設(shè)計采用的是1 片L298N電機(jī)驅(qū)動芯片驅(qū)動2個直流電機(jī),采用PWM 調(diào)速原理控制直流電機(jī)達(dá)到控制機(jī)器人的運(yùn)動動作。
L298N 可驅(qū)動兩個直流電機(jī),OUT1,OUT2 和OUT3,OUT4 之間分別接2個電機(jī)。IN1 與IN2,IN3與IN4 腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),ENA,ENB 接控制使能端,控制電機(jī)的停轉(zhuǎn)[5]。為了消除電機(jī)運(yùn)轉(zhuǎn)對硬件控制系統(tǒng)(ARM11)的干擾,從控制板的控制引腳出來的信號,經(jīng)過1 片TLP521-4的4 路光電耦合器信號隔離,通過脈寬調(diào)制控制光電耦合器的開關(guān)達(dá)到控制L298N 驅(qū)動芯片,并達(dá)到控制電機(jī)按照所需的速度運(yùn)轉(zhuǎn)的目的。其電機(jī)驅(qū)動電路如圖3 所示。
圖3 電機(jī)驅(qū)動模塊原理圖
軟件設(shè)計主要分為兩部分:一是遠(yuǎn)程控制端應(yīng)用軟件的開發(fā),主要工作是發(fā)送控制命令,遠(yuǎn)程控制清掃機(jī)器人的前進(jìn)、后退、轉(zhuǎn)向和作業(yè)工作等動作,并控制清掃機(jī)器人開啟USB 攝像頭采集機(jī)器人周圍水域的視頻信息,通過WiFi 無線信道傳回到控制端并顯示。二是清掃機(jī)器人控制系統(tǒng)軟件的開發(fā),主要包括操作系統(tǒng)移植、WiFi 模塊和USB 攝像頭模塊驅(qū)動移植、視頻采集程序的實(shí)現(xiàn)、視頻服務(wù)器的構(gòu)建、電機(jī)模塊驅(qū)動程序設(shè)計和系統(tǒng)應(yīng)用軟件設(shè)計等工作。
操作系統(tǒng)移植包括引導(dǎo)加載程序Bootloader、內(nèi)核裁剪、配置與編譯、根文件系統(tǒng)的制作與移植等。引導(dǎo)加載程序負(fù)責(zé)上電時初始化目標(biāo)板,裝載內(nèi)核到內(nèi)存,把引導(dǎo)參數(shù)傳遞給內(nèi)核,然后執(zhí)行內(nèi)核。在內(nèi)核裁剪和配置時,需要保證系統(tǒng)的功能,然后保證
支持硬件電路正常工作。
WiFi 模塊采用的是USB 接口的無線網(wǎng)卡TL-WN321G+,Linux-2.6.36 內(nèi)核提供了對該模塊的支持,因此,配置內(nèi)核的時候,選上該模塊驅(qū)動即可。
視頻采集模塊采用的是USB 攝像頭,用于完成清掃機(jī)器人周邊水域的視頻采集,傳回到遠(yuǎn)程控制端后,可人工判別湖面漂浮物的所在位置。由于Linux-2.6.36 內(nèi)核已包含萬能USB 攝像頭驅(qū)動,所以在配置內(nèi)核的時候,選上該模塊驅(qū)動即可。
Linux 下的視頻采集是基于Video4Linux(V4L)或Video4Linux2(V4L2)提供的接口函數(shù)來實(shí)現(xiàn)的。V4L 或V4L2是Linux 中關(guān)于視頻設(shè)備的內(nèi)核,它為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù)。在應(yīng)用程序中可利用V4L 或V4L2 結(jié)合I/O 控制函數(shù)如open、read、write、close、內(nèi)存映射等來操作攝像頭進(jìn)行視頻數(shù)據(jù)采集,隨后可進(jìn)行數(shù)據(jù)壓縮。
視頻采集完成之后,通過網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程控制端計算機(jī)的瀏覽器,遠(yuǎn)程控制端就可以通過瀏覽器實(shí)時了解機(jī)器人周圍水域情況。為了完成該功能,需要實(shí)現(xiàn)嵌入式web 服務(wù)器構(gòu)建和視頻服務(wù)器的設(shè)計。Web 服務(wù)器建立,采用的是thttpd 服務(wù)器,它是多任務(wù)的http 服務(wù)器,支持認(rèn)證和CGI 程序,對其進(jìn)行配置和編譯,并集成到Linux 操作系統(tǒng)中。在此基礎(chǔ)上,開發(fā)相應(yīng)的視頻服務(wù)端軟件和應(yīng)用軟件。
Linux 操作系統(tǒng)下驅(qū)動程序的編寫有固定的模式,編寫驅(qū)動程序的主要工作就是編寫子函數(shù),如open、read、write、ioctl 等,并填充file_operations的各個域。編寫好之后,可以以模塊的形式或直接編譯進(jìn)內(nèi)核的方式,使Linux 內(nèi)核支持對電機(jī)模塊的控制。
本設(shè)計采用WiFi 技術(shù),以無線路由器為組網(wǎng)中心節(jié)點(diǎn),構(gòu)建了一個局域網(wǎng)絡(luò),將小型湖面漂浮物清掃機(jī)器人和無線遠(yuǎn)程控制PC 機(jī)等接入網(wǎng)絡(luò)中。通過無線遠(yuǎn)程控制PC 機(jī)或遠(yuǎn)程監(jiān)控計算機(jī)的控制界面,可向機(jī)器人發(fā)出采集視頻圖像的指令,并可通過WiFi 信道傳回來的視頻圖像,判斷漂浮物的方向和所在位置,然后發(fā)出行走指令控制機(jī)器人運(yùn)動到漂浮物處,收集湖面垃圾。經(jīng)不同湖面的多次實(shí)驗(yàn)表明,該系統(tǒng)傳輸信息穩(wěn)定可靠,機(jī)器人運(yùn)行平穩(wěn),收集垃圾效率高,通過采用大功率的無線路由器,其最遠(yuǎn)遙控距離可達(dá)500 米左右。因此,該機(jī)器人及其構(gòu)建的系統(tǒng)具有較高的應(yīng)用價值。
[1]郝衛(wèi)東,陳亮,曹德新.基于嵌入式技術(shù)的智能機(jī)器人系統(tǒng)研究[J].電子技術(shù)應(yīng)用,2009(2):30-34.
[2]張蕾蕾.湖面清掃智能機(jī)器人的控制[D].沈陽:沈陽理工大學(xué),2008.3.
[3]廣州友善之臂計算機(jī)科技有限公司.Mini6410 用戶手冊[EB/OL].http://www.arm9.net/mini6410- um.asp/ Mini6410 用戶手冊.pdf,2010.
[4]劉溯奇,郝衛(wèi)東,林添成,等.基于嵌入式的視覺巡線機(jī)器人系統(tǒng)設(shè)計[J].工程設(shè)計學(xué)報,2008,15(2):94-96.
[5]S.T.Corp.L298N UserManual[EB/OL].http://www.st.com/internet/analog/product/ 63147.jsp/L298N.pdf,2000.