何 蕓
(云南交通職業(yè)技術(shù)學(xué)院,昆明 650500)
中國是個(gè)蔬菜、水果種植大國,改革開放以來,農(nóng)村青壯年外出務(wù)工,導(dǎo)致農(nóng)忙時(shí)節(jié)出現(xiàn)勞動(dòng)力短缺現(xiàn)象。果蔬種植與農(nóng)業(yè)勞動(dòng)力短缺之間的矛盾日益突出,而替代勞動(dòng)力只能通過采摘機(jī)器人技術(shù)的發(fā)展和研究來解決。新時(shí)代背景下,以網(wǎng)絡(luò)通訊為介質(zhì)的機(jī)器人技術(shù)逐漸成為大家研究的熱點(diǎn)。本文采用TCP網(wǎng)絡(luò)通訊協(xié)議設(shè)計(jì)的采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng),能夠?qū)崿F(xiàn)對(duì)遠(yuǎn)程視頻監(jiān)控,可以給果蔬采摘機(jī)器人的研究開發(fā)帶來一定的促進(jìn)作用。
TCP/IP協(xié)議網(wǎng)絡(luò)中傳輸層具有TCP協(xié)議及用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol)UDP協(xié)議。TCP是一種面向連接的協(xié)議,在數(shù)據(jù)傳輸前,必須建立可靠的連接,多用于對(duì)可靠性要求較高的場合。結(jié)合系統(tǒng)對(duì)視頻數(shù)據(jù)的要求,視頻圖像的傳輸采用TCP的Socket網(wǎng)絡(luò)編程實(shí)現(xiàn)。
客戶端發(fā)起連接請(qǐng)求,第1次握手,發(fā)送初始序號(hào)J至服務(wù)端,服務(wù)端允許連接,確認(rèn)信號(hào)ACK為1。因?yàn)橐呀邮盏叫蛱?hào)為J的數(shù)據(jù)包,所以下一個(gè)接收的數(shù)據(jù)包序號(hào)為J+1,所以返回確認(rèn)號(hào)Ack=J+1,進(jìn)行第2次握手。同時(shí),發(fā)送服務(wù)端初始序號(hào)K,客戶端接收確認(rèn)信息準(zhǔn)備建立連接,完成第3次握手,向服務(wù)器發(fā)送序列號(hào)K+1。同理,返回確認(rèn)號(hào)也在K的基礎(chǔ)上加1。當(dāng)數(shù)據(jù)傳輸完成后,需要斷開連接時(shí),同樣具有一個(gè)“4次揮手”的過程。
在建立TCP連接的過程中,必須經(jīng)過“3次握手”,而斷開連接,則需要4次揮手。3次握手過程示意圖如圖1所示;4次揮手過程示意圖如圖2所示。
圖1 3次握手過程示意圖Fig.1 The schematic diagram of the three handshake process
圖2 4次揮手過程示意圖Fig.2 The schematic diagram of the four wave process
第1次揮手,客戶端發(fā)送FIN報(bào)文,關(guān)閉客戶端到服務(wù)端的數(shù)據(jù)的發(fā)送,客戶端進(jìn)入半關(guān)閉狀態(tài);第2次揮手,當(dāng)服務(wù)端接收FIN成功后,此時(shí),服務(wù)端到客戶端的數(shù)據(jù)發(fā)送功能還未關(guān)閉,服務(wù)端仍可發(fā)送數(shù)據(jù),發(fā)送應(yīng)答與序號(hào),其確認(rèn)號(hào)Ack=M+1與3次握手?jǐn)?shù)據(jù)傳輸原理相同;第3次揮手,服務(wù)端發(fā)送FIN報(bào)文,關(guān)閉服務(wù)端的數(shù)據(jù)發(fā)送功能,服務(wù)端進(jìn)入半關(guān)閉狀態(tài);第4次揮手,客戶端收到FIN報(bào)文后,進(jìn)入等待狀態(tài),同時(shí)發(fā)送應(yīng)答、確認(rèn)號(hào),服務(wù)端進(jìn)入完全關(guān)閉狀態(tài)。
TCP通信協(xié)議的Socket網(wǎng)絡(luò)編程,如圖3所示。
圖3 TCP的Socket網(wǎng)絡(luò)編程過程Fig.3 Socket network programming process of TCP
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)包含PC機(jī)、環(huán)境監(jiān)測攝像頭和采摘機(jī)器人等部分,系統(tǒng)整體框架如圖4所示。
圖4 采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)結(jié)構(gòu)Fig.4 The structure of remote video monitoring system for picking robot
遠(yuǎn)程視頻監(jiān)控系統(tǒng)的PC機(jī)是整個(gè)系統(tǒng)的監(jiān)測中心,負(fù)責(zé)對(duì)采摘機(jī)器人的行走、作業(yè)進(jìn)行實(shí)時(shí)監(jiān)控;環(huán)境監(jiān)測攝像頭布置在采摘機(jī)器人作業(yè)環(huán)境周邊;采摘機(jī)器人由ARM控制器、機(jī)器人運(yùn)動(dòng)結(jié)構(gòu)、紅外測距傳感器、USB攝像機(jī)和無線網(wǎng)絡(luò)組成。
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng),可以為采摘機(jī)器人提供周邊環(huán)境信息,為其正常的作業(yè)進(jìn)行巡航、監(jiān)測和報(bào)警等監(jiān)測。采摘機(jī)器人可以采用無線通訊方式將PC機(jī)實(shí)時(shí)發(fā)送視頻圖像信息,以及接收和執(zhí)行PC機(jī)發(fā)送的控制指令信息。
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)主要負(fù)責(zé)整個(gè)系統(tǒng)的圖像采集、數(shù)據(jù)傳輸和對(duì)機(jī)器人的預(yù)警等控制,其硬件結(jié)構(gòu)是實(shí)現(xiàn)采摘機(jī)器人遠(yuǎn)程視頻圖像采集、圖像處理、接收和執(zhí)行PC機(jī)發(fā)送的控制指令信息的基礎(chǔ),是整個(gè)控制系統(tǒng)的載體。根據(jù)系統(tǒng)需求,采用模塊化的思想進(jìn)行設(shè)計(jì),通過無線網(wǎng)絡(luò)保持和PC的實(shí)時(shí)信息共享,根據(jù)上位機(jī)設(shè)定的程序,對(duì)采摘機(jī)器人作業(yè)過程進(jìn)行調(diào)整和控制,并實(shí)時(shí)將數(shù)據(jù)信息發(fā)送給PC機(jī)。采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)如圖5所示。
圖5 采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)圖Fig.5 Hardware structure of remote video surveillance system for picking robot
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)的硬件主要包括EXYNOS4412處理器、SDRAM、Nand Flash、USB攝像頭、電源管理單元、無線路由器、網(wǎng)絡(luò)通訊模塊和PC機(jī)等。
結(jié)合采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)對(duì)硬件的要求,選用的微處理器單元必須要具備成本低、體積小、運(yùn)算速度快、性能卓越、穩(wěn)定性高,以及功耗低等特點(diǎn)。ARM架構(gòu)微處理器性能參數(shù)比較如表1所示。
通過對(duì)各個(gè)內(nèi)核體系和微處理器運(yùn)行速度和性價(jià)比,可以看出:采用Cortex-A9內(nèi)核的Exynos4412性價(jià)比和處理速度較高,能夠滿足采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)對(duì)硬件的要求。因此,本文選用韓國三星公司的Exynos4412作為系統(tǒng)的核心。
表1 ARM架構(gòu)微處理器性能參數(shù)比較Table 1 Comparison of performance parameters of ARM ARCHITECTURE MICROPROCESSOR
Exynos4412是一款基于ARM Cortex-A9內(nèi)核體系的四核微處理器,每個(gè)核心的運(yùn)行頻率都有1.4GHz,最高可達(dá)1.6GHz,運(yùn)算能力達(dá)到2000DMIPS;另外,該處理器配備了64kB一級(jí)緩存(D/L Cache)以及1MB二級(jí)緩存(L2 Cache),可以實(shí)現(xiàn)更高主頻的高性能運(yùn)算能力。該芯片支持MMU和內(nèi)存映射管理,具有更高的主頻和更豐富的外設(shè),具有穩(wěn)定性強(qiáng)、可靠性高、能適用于對(duì)性能和處理能力有更高要求的嵌入式系統(tǒng)應(yīng)用場合,適用于對(duì)CCD攝像機(jī)采集到的視頻圖像信息的處理與傳輸。Exynos4412內(nèi)部資源如圖6所示。
圖6 Exynos4412內(nèi)部資源圖Fig.6 The internal resource diagram of Exynos4412
Exynos4412微處理器的主要優(yōu)勢包括:CPU主頻可達(dá)1.6GHz*4核;內(nèi)存:1GB+DDR3,F(xiàn)CK頻率:400MHz;閃存4GB eMMC,最高可擴(kuò)展為16GB;網(wǎng)口為1個(gè)10/100M自適應(yīng)以太網(wǎng)RJ45接口(采用DM9621);串口為2個(gè)DB9式RS232串口(另有4個(gè)TTL電平串口);USB為USB Host 2.0接口。
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)軟件設(shè)計(jì)主要包括圖像采集、行走控制和傳感器信息采集等,設(shè)計(jì)流程如圖7所示。
圖7 采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)軟件設(shè)計(jì)流程圖Fig.7 Software design flow chart of remote video surveillance system for picking robot
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)的圖像獲取包括采摘機(jī)器人USB攝像頭和環(huán)境監(jiān)測攝像頭組兩部分,二者實(shí)現(xiàn)了對(duì)USB攝像和有線連接攝像頭的圖像采集。采摘機(jī)器人自身搭載的USB攝像頭可以自主旋轉(zhuǎn),能夠?qū)?duì)作業(yè)環(huán)境進(jìn)行自動(dòng)化圖像掃描;另外,環(huán)境監(jiān)測攝像頭組在上下90°及左右270°內(nèi)進(jìn)行旋轉(zhuǎn)掃描,實(shí)現(xiàn)多方向的機(jī)器人作業(yè)環(huán)境的圖像采集。
1)交叉編譯環(huán)境的搭建。嵌入式系統(tǒng)的交叉開發(fā)是在PC機(jī)上完成Linux系統(tǒng)的Bootloader、Kernel和fs文件系統(tǒng),然后下載移植到目標(biāo)板運(yùn)行。本文選用內(nèi)核版本是Linux3-14,交叉工具鏈版本為gcc-4.6.4。其安裝流程如下:
Step1:解壓工具鏈壓縮包;
Step2:在環(huán)境變量文件中添加已解壓的工具鏈路徑;
Step3:測試該工具鏈?zhǔn)欠癜惭b正確,安裝成功后繼續(xù)進(jìn)行后面的流程。
2)Linux系統(tǒng)內(nèi)核的裁剪。Linux系統(tǒng)內(nèi)核是整個(gè)嵌入式平臺(tái)運(yùn)行的基礎(chǔ),為了讓系統(tǒng)在Exynos4412平臺(tái)上穩(wěn)定的運(yùn)行,對(duì)Linux內(nèi)核需要進(jìn)行一定程度的裁剪。將linux-3.14.tar.xz 拷貝到/home/linux 下并解壓,然后運(yùn)行make menuconfig,并在配置菜單中依次對(duì)CPU、NANDFlash、Netwoking、USB,以及ramdisk 文件系統(tǒng)等進(jìn)行配置與裁剪,配置過程不再贅述。
3)文件系統(tǒng)的移植。本系統(tǒng)采用RamDisk作為嵌入式系統(tǒng)的fs文件系統(tǒng),實(shí)際上是從內(nèi)存中劃出一部分作為一個(gè)分區(qū)使用,換句話說,就是把內(nèi)存一部分當(dāng)作硬盤使用,方便用戶存放文件。RamDisk文件系統(tǒng)制作流程如下:
Step1:下載并配置busybox工具;
Step2:編譯、安裝、新建RamDisk文件系統(tǒng)所需目錄;
Step3:添加庫,添加inittab、fstab、init.d和profile等系統(tǒng)啟動(dòng)文件;
Step4:將busybox得到的文件夾制作一個(gè)大小為8M 的鏡像文件,然后進(jìn)行格式化、創(chuàng)建initrd目錄作為掛載點(diǎn)、將鏡像文件掛載到/mnt/initrd下、復(fù)制到ramdisk目錄下,最后進(jìn)行格式化為uboot 識(shí)別的fs文件系統(tǒng)格式。
遠(yuǎn)程視頻監(jiān)控系統(tǒng)通過采摘機(jī)器人自身的USB攝像頭采集作業(yè)環(huán)境的圖像信息,該攝像頭驅(qū)動(dòng)采用Linux3.14內(nèi)核中的視頻驅(qū)動(dòng)模型V4L2驅(qū)動(dòng)程序。該驅(qū)動(dòng)最大的優(yōu)勢是可以自定義驅(qū)動(dòng)緩沖數(shù)量,另外用戶空間需要V4L2的操作,可以針對(duì)性地在底層實(shí)現(xiàn)相應(yīng)的驅(qū)動(dòng)。USB攝像頭圖像采集流程如圖8所示。
圖8 USB攝像頭圖像采集流程圖Fig.8 USB camera image acquisition flow chart
為了驗(yàn)證采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)是否符合設(shè)計(jì)要求,是否滿足遠(yuǎn)程監(jiān)測功能,在某獼猴桃種植區(qū)進(jìn)行了實(shí)際采摘作業(yè),驗(yàn)證其是否具有可行性。結(jié)果表明:PC機(jī)的監(jiān)測軟件可以實(shí)現(xiàn)USB攝像頭和環(huán)境監(jiān)測攝像頭畫面的切換,能夠?qū)崿F(xiàn)拍攝圖片和錄制食品等功能;另外,還可以根據(jù)監(jiān)測到的環(huán)境信息,控制機(jī)器人進(jìn)行避障運(yùn)動(dòng)。PC機(jī)監(jiān)測軟件實(shí)際監(jiān)測畫面如圖9所示。
圖9 PC機(jī)監(jiān)測軟件實(shí)際監(jiān)測畫面Fig.9 The actual monitoring picture of PC monitoring software
試驗(yàn)表明:PC機(jī)的監(jiān)測軟件可以實(shí)現(xiàn)USB攝像頭和環(huán)境監(jiān)測攝像頭畫面的切換,可以根據(jù)需求旋轉(zhuǎn)攝像頭,已拍攝多方位的環(huán)境圖片;另外,該軟件還可以根據(jù)環(huán)境狀況控制采摘機(jī)器人的運(yùn)動(dòng)狀態(tài),驗(yàn)證了系統(tǒng)的可行性和可靠性。
采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)運(yùn)用了嵌入式、Linux技術(shù)、圖像采集和無線網(wǎng)絡(luò)傳輸技術(shù),將視頻監(jiān)控系統(tǒng)應(yīng)用于采摘機(jī)器人中,可以實(shí)現(xiàn)對(duì)采摘過程的實(shí)時(shí)監(jiān)控,并能及時(shí)對(duì)作業(yè)中的緊急狀況進(jìn)行處理。采用TCP網(wǎng)絡(luò)通訊協(xié)議,搭載高性能的EXYNOS4412微處理器,并結(jié)合Linux操作系統(tǒng),實(shí)現(xiàn)了采摘機(jī)器人遠(yuǎn)程視頻監(jiān)控系統(tǒng)。試驗(yàn)測試表明:PC機(jī)的監(jiān)測軟件能夠從多方位拍攝采摘環(huán)境圖片,還可以根據(jù)環(huán)境狀況控制采摘機(jī)器人的運(yùn)動(dòng)狀態(tài),驗(yàn)證了系統(tǒng)的可行性和可靠性。