陳 勇,徐海達,謝星宇,周趙鳳
(浙大城市學(xué)院工程學(xué)院,杭州 310015)
中國的鋼管產(chǎn)業(yè)的技術(shù)裝備水平、技術(shù)含量、鋼管品種規(guī)格接近強國水平,同時中國的鋼管產(chǎn)量占世界鋼管產(chǎn)量的50%以上[1]。不合格的焊管會對日常生產(chǎn)生活產(chǎn)生極大的危害,為保障焊管產(chǎn)品的生產(chǎn)質(zhì)量,焊管的無損檢測極為重要。目前已有采用超聲、電磁和渦流等檢測系統(tǒng)對焊管進行探傷檢測[2]。本文設(shè)計的于鋼管內(nèi)窺無損檢測機器人具有適應(yīng)性強、結(jié)構(gòu)簡單等特點,具有遙控操控、實時圖像采集與傳輸?shù)裙δ?,?yīng)用于焊管檢測上可減少工人工作量和提高生產(chǎn)效率。
機器人基于Arduino UNO R3開發(fā)板與nRF24L01芯片的無線信號的傳輸通訊,實現(xiàn)遠距離的小車操控,同時利用Robot-Link V5.0 MT型WiFi模塊搭配支持UVC免驅(qū)和mjpeg輸出的攝像頭完成焊管內(nèi)壁的圖像采集及傳輸?shù)娜蝿?wù)。機器人工作原理如圖1所示。
圖1 工作原理
為了簡化鋼管內(nèi)窺無損檢測機器人的機械結(jié)構(gòu),便于后期的組裝、調(diào)試和升級優(yōu)化,決定使之模塊化,將小車的整體結(jié)構(gòu)分為底盤模塊和機械臂模塊兩大部分。底盤模塊實現(xiàn)小車在管道內(nèi)的移動,機械臂模塊實現(xiàn)管道內(nèi)的圖像采集。機器人結(jié)構(gòu)設(shè)計如圖2所示。
圖2 機器人裝配圖和爆炸圖
底盤模塊主要由車底板、電機以及電機支架、車輪和其他連接件組裝而成。其中底板采用亞克力板,板上均布M3大小的圓孔,方便底板與其他配件組裝,并為其增加功能預(yù)留空間。為了提高機器人的機動性,使之能夠輕易避障,適應(yīng)更加惡劣的地形和環(huán)境,本文設(shè)計的異形輪具有較強的針對性,如圖3所示,主要由圓柱和圓錐兩部分組成,其錐形母線是與管壁的曲率半徑一致的曲線,這使得輪子能更好地貼合管道內(nèi)壁,增加摩擦力,提高了牽引力,降低了小車打滑的幾率。同時車輪的圓柱部分的保留使其可像普通車輪一樣在水平的路面上行駛。同時采用橡膠材質(zhì),制作工藝比較成熟,橡膠在一定程度上還可以吸收地面的少量震動。小車采用JGB37-520型電機提供動力,能滿足其工作的動力要求。
圖3 異形輪
機械臂模塊由圖像采集模塊、二自由度云臺、U型短板、L型短板和若干連接件按圖4所示的1、2、3順序依次連接而成。可按照焊管的管徑大小或者其他具體情況用不同的連接件組裝,靈活性大。
圖4 機械臂模塊
其中機械臂中起到主要作用的就是舵機,是實現(xiàn)圖像大范圍采集的活動載體,選擇合適扭矩和轉(zhuǎn)動范圍的舵機十分重要,本文采用DS3218型數(shù)字舵機。該舵機運行的時候可以產(chǎn)生一個周期為20 ms,寬度為1.5 ms基準信號,這個基準信號就是電位器的基準。將獲得的直流偏置電壓與舵機內(nèi)部的電位器的電壓比較,獲得電壓差輸出[3]。電壓差的數(shù)值大小決定電機的角度,正負號決定電機的轉(zhuǎn)動方向。假設(shè)電壓差的絕對值等于零,說明當(dāng)前角度與所給角度相同,電機停止轉(zhuǎn)動,其工作原理如5所示。
圖5 舵機工作原理
3.1.1 主控板以及擴展板
Arduino Uno是一款基于ATmega328P的單片機控制板[4]。Bigfish擴展板和擴展板Birdmen是“探索者”平臺設(shè)備中的兩塊綜合擴展板,通過擴展板連接的電路可靠穩(wěn)定。
Arduino UNO R3硬件主板與擴展板Bigfish、擴展板Birdmen各接口是一一對應(yīng)的,只要上下堆疊即可使用。
3.1.2 nRF24L01與通信
nRF24L01是一款工作在2.4~2.5 GHz通用ISM頻段的單片無線收發(fā)器芯片,可以通過SPI接口設(shè)置其輸出功率、協(xié)議的設(shè)置和頻道選擇等。Arduino Uno與nRF24L01連接如圖6所示。
圖6 Arduino發(fā)送端、接收端與nRF24L01無線芯片連接
Arduino Uno與nRF24L01之間的通信采用SPI方式。由Motorola公司提出的一種同步串行數(shù)據(jù)傳輸標準[5]。使用RF24庫的SPI的通信過程簡述如下。
(1)進行初始化,使用const uint64_t pipe=0xE8 E8F0F0E1LL語句定義一個通道(其中“0xE8E8F0F0 E1LL”可替換為其他傳輸通道編號),每個設(shè)備都會自動配對一樣通道編號設(shè)備。然后用RF24.begin()語句開啟芯片,使芯片處于工作狀態(tài)。
(2)發(fā)送數(shù)據(jù)。調(diào)用RF24.openWritingPipe(uint64_t pipe),這個參數(shù)是之前一開始定義的傳輸通道編號,然后調(diào)用RF24.write(const void*buf,uint8_t len)來傳輸信息。
(3)接收數(shù)據(jù)。調(diào)用RF24.openReadingPipe(int num,uint64_t pipe)來聲明接收數(shù)據(jù)的通道(可用共6個渠道),調(diào)用RF24.startListening()方法來開始接收數(shù)據(jù),調(diào)用RF24.available()來知道是否有信息傳進來,若有數(shù)據(jù)傳輸,返回true,否則返回false。數(shù)據(jù)內(nèi)容可以調(diào)用RF24.read(void*buf,uint8_t len)來獲取。
3.2.1 實現(xiàn)遙控移動與轉(zhuǎn)向
(1)搖桿控制
利用擴展板Birdmen上的雙搖桿分別實現(xiàn)小車的移動控制和云臺舵機的轉(zhuǎn)動。具體操作方式如圖7所示。
圖7 搖桿操作方式
擴展板Birdmen上的雙搖桿實質(zhì)上是兩個搖桿電位器,擴展板Birdmen上的每個單獨的搖桿有2個輸入接口和2個模擬量輸出接口。輸入接口包括電壓+5 V接口和接GND接口,模擬量輸出接口包括1個對應(yīng)X軸電壓變化量的接口和1個對應(yīng)Y軸電壓變化量接口。每個10 kΩ的電位器的阻值會隨著搖桿擺動的方向及其程度的不同而變化。搖桿電阻器在初始狀態(tài)下接通5 V電壓后,模擬量接口X、Y輸出的數(shù)字量映射為電壓是2.5 V左右,當(dāng)搖桿在X軸方向偏移時,輸出的電壓值在0~5 V之間變化;當(dāng)搖桿在Y軸方向偏移時輸出電壓值的變化和搖桿在X軸方向偏移時類似。
(2)機器人移動與轉(zhuǎn)向
本文采用4電機驅(qū)動,此方案是指4個車輪由單獨的電機各自驅(qū)動,通過調(diào)節(jié)不同驅(qū)動電機或不同組驅(qū)動電機的轉(zhuǎn)速或轉(zhuǎn)向,而改變各車輪組的運行速度或者轉(zhuǎn)動方向(即差速原理),實現(xiàn)機器人在復(fù)雜彎管道內(nèi)的差動轉(zhuǎn)向功能[5]。這個方案具有過彎管時電機控制多樣化和電機布置方式多樣化等特點。
移動具體控制方式如圖8所示。
圖8 差速原理
在Arduino中調(diào)用pinMode(D5,OUTPUT)(“D5”處可替換成任意D系列接口,即與直流電機連接的擴展板Bigfish接口)初始化擴展板Bigfish接口。調(diào)用digitalWrite(D5,HIGH/LOW)使D5接口輸入高/低電平,因為直流電機有兩個針腳,所以要再使用該語句,但該語句的“D5”要替換成另一個D系列接口,比如digitalWrite(D6,HIGH/LOW),這樣才可以實現(xiàn)電機轉(zhuǎn)動/停轉(zhuǎn)。當(dāng)兩個針腳輸出有壓差的時候,電機轉(zhuǎn)動。
(3)二自由度云臺的控制
如圖9所示,該云臺由2個舵機組成,具有2個旋轉(zhuǎn)自由度,分別可以繞圖中1軸和2軸旋轉(zhuǎn),兩個舵機分別有180°的旋轉(zhuǎn)角度,將圖中位置設(shè)置為舵機的中間位置,則每個舵機可以旋轉(zhuǎn)范圍為-90°~90°。當(dāng)右舵機保在中間位置時左舵機可繞2軸上下旋轉(zhuǎn)180°,當(dāng)右舵機繞1軸旋轉(zhuǎn)90°的時候左舵機繞2軸轉(zhuǎn)動90°,此時左舵機可繞2軸左右旋轉(zhuǎn)180°,從而使得攝像頭可以在空間中的半球內(nèi)區(qū)域旋轉(zhuǎn)。將圖像采集模塊安裝在二自由度云臺上,滿足圖像采集的任務(wù)要求。
圖9 二自由度舵機云臺
在Arduino中調(diào)用Servo庫中的Servo number(“number”可輸入任意英文/數(shù)字名稱)定義舵機名稱,調(diào)用number.attach(3)(“3”處可替換成可輸出PWM波的任意D系列接口)語句將舵機名稱與Arduino的I/O接口相綁定。調(diào)用number.write(90)(“90”處可任意替換為0~180范圍內(nèi)的數(shù)字)控制舵機轉(zhuǎn)動至的角度值。
3.2.2 實現(xiàn)圖像采集與傳輸
視頻傳輸采用基于MTK7620N芯片的Robot-Link V5.0 MT型WiFi模塊,預(yù)刷open wrt固件,采用DSSS、OFDM、BPSK、QPSK、CCK和QAM基帶調(diào)制技術(shù),能自適應(yīng)路由器等設(shè)備的無線熱點。支持MIMO技術(shù),最大連接速率可達300 Mb/s。外接2T2R雙天線,傳輸距離可達30 m。
為配合該模塊,圖像采集由支持UVC免驅(qū)和mjpeg輸出的攝像頭來實現(xiàn)。模塊與攝像頭通過USB接口連接。模塊與攝像頭需要5 V供電,因此直接由Arduino 5 V輸出供電,連接方式如圖10所示。
圖10 圖傳模塊與arduino接線方法
與Robot-Link V5.0 MT型WiFi模塊有配套的圖像顯示軟件,其客戶端界面如圖11所示。只要電腦連接上wifi-robots.com開頭的信號即可使用,軟件還支持拍照及錄像功能。
圖11 圖像顯示軟件客戶端界面
本文在通信和供電兩個方面上,使用無線模塊和電池供電,避免長距離的電纜外接,減少小車負重,便于小車行進。機器人上安裝的攝像頭帶有轉(zhuǎn)動功能,遠程操作器可以操作攝像頭方位調(diào)整動作,支持對管道進行全方位掃描。通過Arduino與nRF24L01的數(shù)據(jù)通信實現(xiàn)遠程遙控,對小車進行靈活、精準地控制,并為管內(nèi)檢測提供了一種可行的方案;機器人車型也為鋼管內(nèi)窺無損檢測機器人提供了一個可拓展可實踐的結(jié)構(gòu)設(shè)計方案。