傅茂龍,孟 文,孟祥印,楊子鐿,郭學(xué)理
(西南交通大學(xué) 機(jī)械工程學(xué)院,成都 610031)
機(jī)器人的發(fā)展歷史可以一直追溯到18世紀(jì)末19世紀(jì)初,英國(guó)的自動(dòng)紡織機(jī)成為機(jī)器人的最早原型。直到21世紀(jì)以來(lái),機(jī)器人技術(shù)在不斷發(fā)展,機(jī)器人技術(shù)被認(rèn)為是對(duì)未來(lái)的產(chǎn)業(yè)具有重大意義的高新技術(shù)之一[1]。機(jī)器人是集成計(jì)算機(jī)、機(jī)械結(jié)構(gòu)及自動(dòng)化技術(shù)的高端智能設(shè)備[2],機(jī)器人可以執(zhí)行各種任務(wù),從日常家務(wù)[3-4]、工業(yè)生產(chǎn)[5-7]、醫(yī)療設(shè)備[8-9]到極端環(huán)境檢測(cè)[10-11]。機(jī)器人為人類提高了生產(chǎn)效率,增強(qiáng)了安全性,改善了生活質(zhì)量,降低了勞動(dòng)成本??偠灾?,機(jī)器人在人類生活中成為了不可或缺的一部分,成為人類最重要的輔助工具之一[12]。
隨著我國(guó)城市建設(shè)工業(yè)化、現(xiàn)代化和智能化的推進(jìn),越來(lái)越多的鐵路、高速公路以及城鎮(zhèn)都配備了排水管溝[13]。排水管溝經(jīng)長(zhǎng)期使用時(shí),需要定期對(duì)排水管溝進(jìn)行檢測(cè),排水管溝系統(tǒng)錯(cuò)綜復(fù)雜,使得排水管溝管理,檢修問(wèn)題尤為突出。最早管溝的維修都是人工進(jìn)行檢修,管溝內(nèi)環(huán)境惡劣,人工進(jìn)入管溝內(nèi)還存在著瘴氣、塌陷等風(fēng)險(xiǎn),導(dǎo)致人工檢測(cè)的效率低下[14]?,F(xiàn)階段結(jié)合機(jī)器人技術(shù),出現(xiàn)了管溝檢測(cè)機(jī)器人代替人工進(jìn)入管溝檢測(cè)[15],管溝機(jī)器人最早出現(xiàn)在歐美國(guó)家,后逐漸引入國(guó)內(nèi),在沿海城市得到了廣泛的應(yīng)用。
管溝檢測(cè)機(jī)器人主要是在鐵路涵洞,公路排水渠以及城市管網(wǎng)進(jìn)行檢測(cè),對(duì)管溝進(jìn)行檢測(cè)、清潔等[16]。管溝檢測(cè)機(jī)器人攜帶一定的傳感器、攝像頭等,進(jìn)入管溝檢測(cè)[17],將管溝內(nèi)的環(huán)境實(shí)時(shí)反饋給工作人員,由工作人員進(jìn)行管溝缺陷的評(píng)估和分析[18]。但是現(xiàn)如今的管溝機(jī)器人還存在著一定的不足,例如:1)操作復(fù)雜、操作界面不夠簡(jiǎn)潔,需要提前對(duì)工作人員進(jìn)行培訓(xùn);2)信號(hào)連接不穩(wěn)定、管溝內(nèi)情況復(fù)雜、距離較長(zhǎng)、傳輸?shù)男盘?hào)容易受干擾,導(dǎo)致指令接收錯(cuò)誤和數(shù)據(jù)中斷;3)機(jī)械結(jié)構(gòu)復(fù)雜、維護(hù)較為困難、機(jī)器人的零件較為昂貴,增加了機(jī)器人的成本[19];檢測(cè)任務(wù)繁重,需要人工進(jìn)行輔助檢測(cè),無(wú)法做到完全智能化。因此,針對(duì)上述的種種問(wèn)題,需要設(shè)計(jì)出一種操作簡(jiǎn)單、通信穩(wěn)定、結(jié)構(gòu)簡(jiǎn)單和智能化的管溝檢測(cè)機(jī)器人[20-21]。
為解決上述管溝機(jī)器人的種種痛點(diǎn),本文設(shè)計(jì)開(kāi)發(fā)了一整套的管溝機(jī)器人自動(dòng)化檢測(cè)系統(tǒng),該系統(tǒng)包含了數(shù)據(jù)處理和指令下發(fā)的PC上位機(jī),管溝機(jī)器人本體,接收上位機(jī)命令的MCU微控制器以及各種執(zhí)行器。所設(shè)計(jì)的管溝機(jī)器人自動(dòng)化檢測(cè)系統(tǒng)可以實(shí)現(xiàn)管溝內(nèi)部檢測(cè),采集管溝內(nèi)圖像數(shù)據(jù)、遠(yuǎn)程指令接收,可視化交互操作界面和自動(dòng)化缺陷判別等功能。研制出管溝機(jī)器人自動(dòng)化檢測(cè)系統(tǒng),經(jīng)實(shí)際實(shí)驗(yàn)測(cè)試,機(jī)器人系統(tǒng)可以準(zhǔn)確地接收PC上位機(jī)的指令進(jìn)行管溝檢測(cè),以及對(duì)管溝缺陷的自動(dòng)缺陷檢測(cè)。
結(jié)合上述管溝機(jī)器人的檢測(cè)任務(wù)要求,設(shè)計(jì)出了一種實(shí)時(shí)性強(qiáng)、性能穩(wěn)定的自動(dòng)化檢測(cè)系統(tǒng)。自動(dòng)化檢測(cè)系統(tǒng)的工作流程為:管溝機(jī)器人進(jìn)入管溝內(nèi)部,PC上位機(jī)對(duì)管溝機(jī)器人和線纜車發(fā)送指令,管溝機(jī)器人接收指令后進(jìn)行前進(jìn)、后退、抬升相機(jī)等操作,采集管溝內(nèi)部的圖像信息。線纜車依據(jù)指令進(jìn)行收放線纜,當(dāng)機(jī)器人在管溝內(nèi)部宕機(jī)時(shí),線纜車將機(jī)器人拖回,回收管溝機(jī)器人。PC上位機(jī)實(shí)時(shí)顯示機(jī)器人的狀態(tài),顯示管溝圖像,電機(jī)轉(zhuǎn)速,抬升角度等信息,PC作為自動(dòng)化檢測(cè)的大腦,對(duì)機(jī)器人、線纜車進(jìn)行控制和監(jiān)控。
自動(dòng)化檢測(cè)系統(tǒng)主要可以分為3層:決策層、管理層及執(zhí)行層。決策層包含了PC上位機(jī)和控制手柄,管理層主要是MCU的微控制器,用于接收決策層的命令和上傳數(shù)據(jù),執(zhí)行層主要是各類電機(jī)和攝像機(jī),完成對(duì)應(yīng)的動(dòng)作。管溝機(jī)器人自動(dòng)化檢測(cè)系統(tǒng)的總體如圖1所示。
圖1 管溝機(jī)器人自動(dòng)化檢測(cè)系統(tǒng)框圖
1)決策層:決策層主要是用于接收工業(yè)攝像機(jī)的圖像信息,可視化機(jī)器人信息,接收機(jī)器人數(shù)據(jù)和下發(fā)控制指令。
2)管理層:管理層包含了管溝機(jī)器人本體和線纜車兩大部分,機(jī)器人本體又包含機(jī)器人車身和機(jī)器人云臺(tái),機(jī)器人本體內(nèi)部采取CAN總線通信進(jìn)行信息交互。管理層和決策層之間采取RS485總線進(jìn)行通信,接收決策層的指令。
3)執(zhí)行層:執(zhí)行層主要是各類電機(jī)、LED燈和傳感器、接收MCU的控制信號(hào),完成對(duì)應(yīng)的動(dòng)作。
PC工控機(jī)承擔(dān)了主要的視覺(jué)檢測(cè)以及運(yùn)動(dòng)控制任務(wù),首先接收工業(yè)攝像機(jī)的圖像信息和機(jī)器人本體傳輸?shù)臓顟B(tài)信息,然后通過(guò)得到的數(shù)據(jù)標(biāo)注出管道缺陷類型和位置,計(jì)算出機(jī)器人本體所需要的電機(jī)速度,最后通過(guò)RS485下發(fā)指令給機(jī)器人本體,機(jī)器人本體控制相應(yīng)執(zhí)行設(shè)備完成作業(yè)。
PC工控機(jī)現(xiàn)階段主要的接口是USB,分析上述需求,需要將USB轉(zhuǎn)換成接收視頻的同軸電纜和RS485總線通信。具體設(shè)計(jì)如下:
1)USB轉(zhuǎn)同軸電纜:USB轉(zhuǎn)同軸電纜中使用的是美樂(lè)威的USB Capture SDI Gen 2,輸入接口支持SDI/HD/3G-SDI,本項(xiàng)目使用的是3G-SDI,最高支持的傳輸距離是150 m。采集的最高分辨率為20 481 080,采集的幀率最高支持120 fps,主機(jī)的接口為USB3.0,兼容USB2.0,主機(jī)即插即用,自動(dòng)檢測(cè)輸入信號(hào)。USB Capture SDI Gen 2如圖2所示。
圖2 美樂(lè)威USB Capture SDI Gen 2
2)USB轉(zhuǎn)RS485:USB轉(zhuǎn)RS485的硬件電路基本方案是先將USB的DP和DM差分信號(hào)轉(zhuǎn)換成TTL串口TX/RX,再將TX/RX轉(zhuǎn)換成RS485的A和B,最終完成USB協(xié)議到RS485協(xié)議的轉(zhuǎn)換。
如圖3所示,使用CH340E芯片將USB轉(zhuǎn)換成TTL的串行通信TX/RX,CH340E內(nèi)置時(shí)鐘無(wú)需外部另接晶振,是MSOP-10的微小型的貼片封裝。TTL轉(zhuǎn)RS485的芯片選擇SP3485EN-L,是SOIC-8的貼片小型封裝,利用CH340E的TNOW引腳對(duì)SP3485EN-L的接收和發(fā)送DE進(jìn)行控制。USB轉(zhuǎn)RS485還添加了LED燈指示現(xiàn)在是否工作,添加濾波電容對(duì)USB進(jìn)來(lái)的5 V進(jìn)行濾波處理。
圖3 USB轉(zhuǎn)RS485原理圖
控制手柄作為決策系統(tǒng)的其中一部分,設(shè)計(jì)的最初目的是方便工作人員在現(xiàn)場(chǎng)對(duì)機(jī)器人進(jìn)行控制,通過(guò)選擇不同的按鍵實(shí)現(xiàn)不同的功能。設(shè)計(jì)的整體思路是手柄+接收發(fā)送器配合,當(dāng)檢測(cè)出按鍵按下時(shí),對(duì)應(yīng)的接收發(fā)送器通過(guò)RS485總線發(fā)出相應(yīng)的指令。如圖4所示,選取STM32F103C8T6作為發(fā)送接收器的主控芯片,選取索尼的PS2進(jìn)行反向破譯,當(dāng)PS2手柄的按鍵按下,通過(guò)2.4 G無(wú)線的接收器,MCU接收到按鍵按下的信息,發(fā)出對(duì)應(yīng)的指令。
圖4 控制手柄硬件框圖
隧道管溝機(jī)器人車身的硬件系統(tǒng)主要是以MCU的主控器為核心,通過(guò)接收上層決策系統(tǒng)下發(fā)的指令,完成相應(yīng)的動(dòng)作。隧道管溝機(jī)器人的MCU的主控板是實(shí)現(xiàn)電機(jī)等閉環(huán)控制的基礎(chǔ),通過(guò)一些采樣電路、通信電路和傳感器模塊,完成對(duì)隧道管溝機(jī)器人的運(yùn)動(dòng)控制。本小節(jié)中,機(jī)器人的車身硬件設(shè)計(jì)考慮從機(jī)器人車身的控制需求和實(shí)際環(huán)境特性出發(fā),機(jī)器人車身主要負(fù)責(zé)的是機(jī)器人本體的前進(jìn)、后退、轉(zhuǎn)彎和云臺(tái)的升降。車身的主控MCU接收到?jīng)Q策系統(tǒng)下發(fā)的指令,實(shí)現(xiàn)對(duì)應(yīng)的操作以及回復(fù)PC工控機(jī)的數(shù)據(jù)請(qǐng)求。
依據(jù)上述的要求,機(jī)器人本體車身的硬件要求有如下幾點(diǎn):
1)MCU主控制器電路;
2)RS485接口電路;
3)CAN接口電路。
隧道管溝機(jī)器人本體車身硬件結(jié)構(gòu)如圖5所示。
圖5 機(jī)器人本體車身硬件結(jié)構(gòu)框圖
隧道管溝機(jī)器人本體車身需要的電壓有:MCU的3.3 V、CAN和RS485接口電路的5 V、繼電器的12 V、光耦隔離的PWM輸出的12 V和電機(jī)所需的24 V。綜上所述,機(jī)器人本體所需要的供電方案有:24 V-DCDC-12 V、24 V-DCDC-5 V和5 V-LDO-3.3 V。
2.4.1 24 V-DCDC-12 V
24 V轉(zhuǎn)12 V的DCDC方案選擇的開(kāi)關(guān)電源芯片是,LM2678S-12 V,是TI(德州儀器)推出的新型的DCDC芯片。LM2678S-12 V具有內(nèi)置電阻調(diào)節(jié),固定輸出12 V電壓,輸入的電壓從8~40 V。具有高達(dá)92%的轉(zhuǎn)換效率,260 kHz的固定轉(zhuǎn)換頻率,待機(jī)電流僅為50 μA,使用的溫度范圍為-40~+125°,能夠滿足絕大部分的使用要求,而且使用起來(lái)簡(jiǎn)單,無(wú)需外接太多元器件即可完成轉(zhuǎn)換。使用LM2678S-12 V進(jìn)行轉(zhuǎn)換的電路如圖6所示。
圖6 24 V-DCDC-12 V
2.4.2 24 V-DCDC-5 V
依據(jù)上述針對(duì)一些接口電路的供電需求,需要將24 V轉(zhuǎn)換成5 V給CAN接口芯片供電??紤]到經(jīng)濟(jì)實(shí)惠、穩(wěn)定可靠的要求,選擇了這款LM2595S-5.0RG,TO263的貼片封裝。LM2595S-5.0RG是一款經(jīng)典的PWM控制的DCDC(穩(wěn)壓電源轉(zhuǎn)換器),具有3 A的大電流驅(qū)動(dòng)能力,相較于其他芯片具有高效率、較低的紋波和高線性的調(diào)節(jié)率等特點(diǎn)。該芯片的占空比調(diào)節(jié)范圍為0~100%,寬輸入電壓從0~45 V,有3.3 V、5 V和12 V的固定輸出版本和可調(diào)輸出版本。項(xiàng)目中使用的是5 V的固定輸入版本,具有150 kHz的固定的工作頻率,內(nèi)置了電流過(guò)流保護(hù)和過(guò)溫防護(hù),還帶有ON-OFF的遲滯開(kāi)關(guān)功能,單價(jià)便宜,適用于多種設(shè)備。項(xiàng)目中使用LM2595S-5.0RG將24 V轉(zhuǎn)換成5 V的電路原理如圖7所示。
圖7 24 V-DCDC-5 V電路原理圖
2.4.3 5 V-LDO-3.3 V
考慮到MCU主控芯片需要的電源紋波更小,所以不能選擇DCDC方案,應(yīng)該選擇LDO方案。LDO(低壓差線性穩(wěn)定器)體積更小、精度更高、紋波更小,但是轉(zhuǎn)換效率不高。綜上所述,LDO不宜壓降太大,所以選擇上文中24 V-DCDC-5 V后的5 V作為芯片的輸入電壓。本項(xiàng)目選擇的芯片是較為實(shí)惠的UMW(友臺(tái)半導(dǎo)體)的AMS1117-3.3的固定輸出版本,輸出的電流為1 A,具有電流過(guò)流保護(hù),輸出電壓的精度控制在2%以內(nèi),工作溫度范圍為-40~+125 ℃。AMS1117-3.3的使用比較簡(jiǎn)單,一般為3個(gè)引腳、一個(gè)輸入、一個(gè)輸出和接地。輸出端接入兩個(gè)電容進(jìn)行濾波,輸出接兩個(gè)電容進(jìn)行去耦,AMS1117-3.3的使用電路如圖8所示。
圖8 5 V-LDO-3.3 V電路原理圖
CAN總線是一種支持多主多從的分布式實(shí)時(shí)串行通信,因?yàn)槠渫ㄐ诺母呖煽啃院透咝阅艿玫搅藦V泛的應(yīng)用,因本項(xiàng)目中機(jī)器人本體內(nèi)部通信選擇了CAN總線,所以需要對(duì)CAN接口電路進(jìn)行設(shè)計(jì)。
本項(xiàng)目選用的CAN收發(fā)器是PHILIPS(飛利浦)推出的高銷量的TJA1050T,這款CAN收發(fā)器完全兼容了“ISO 11898”標(biāo)準(zhǔn),最高速率可達(dá)1 Mbaud,具有輸入保護(hù)和熱保護(hù),支持的電壓為3.3~5 V,最高支持110個(gè)節(jié)點(diǎn),不使用的節(jié)點(diǎn)不干擾總線傳輸。CAN收發(fā)器的使用原理如圖9所示。
圖9 CAN接口電路
TJA1050T在本項(xiàng)目使用的電源輸入為5 V,圖中CAN收發(fā)電路在點(diǎn)對(duì)點(diǎn)通信時(shí),CAN_H和CAN_L直接需要串接120 Ω,提升抗干擾的能力,確??偩€能夠快速進(jìn)入隱形狀態(tài),以及消除反射的能力。當(dāng)CAN作為其中一個(gè)端點(diǎn)時(shí),需要去除120 Ω,這時(shí)候只需要將JP2插針的跳線帽拔除即可,這樣CAN接口電路既可點(diǎn)對(duì)點(diǎn)通信,也可多機(jī)通信。
RS485接口電路和CAN接口電路一致,都是采取差模傳輸方式,差模傳輸方式在傳輸過(guò)程中兩條雙絞線受到的干擾是同時(shí)存在的,在接收端接收雙絞線的電平進(jìn)行差值計(jì)算,相較于傳統(tǒng)的共模傳輸,大大增強(qiáng)了傳輸?shù)目垢蓴_性。
RS485通信是一種半雙工的通信方式,傳輸?shù)木唧w最遠(yuǎn)可以達(dá)到1 500 m,傳輸?shù)墓材k妷悍秶鸀?6~+6 V,傳輸?shù)淖罡咚俾誓軌蜻_(dá)到10 Mbps,理論最多的接收節(jié)點(diǎn)可達(dá)128個(gè),本項(xiàng)目中主要是利用RS485總線進(jìn)行機(jī)器人外部通信的構(gòu)建。
本項(xiàng)目使用的RS485收發(fā)器接口芯片是TI(德州儀器)的SN75176BDR,采取的封裝是SOP8的貼片封裝,符合且超出了國(guó)際的ANSI標(biāo)準(zhǔn),具有三狀態(tài)的驅(qū)動(dòng)和接收,具有熱關(guān)斷的保護(hù)措施,5 V的電源供電,比較適合在嘈雜的環(huán)境下的長(zhǎng)距離的通信。本項(xiàng)目中RS485使用的電路原理如圖10所示。
圖10 RS485接口電路
RS485和CAN接口電路一樣,都需要增加電阻提升抗干擾性,所以在JP4當(dāng)中增添了120 Ω,當(dāng)作為點(diǎn)對(duì)點(diǎn)通信時(shí),需要將跳線帽連接JP4,使得120添加進(jìn)電路中。當(dāng)作為其中一個(gè)節(jié)點(diǎn)時(shí),不需要額外的串接電阻,這時(shí)將JP4的跳線帽拔下,即可完成作為一個(gè)節(jié)點(diǎn)進(jìn)行使用。JP4巧妙的設(shè)計(jì)使得整個(gè)隧道管溝機(jī)器人自動(dòng)化系統(tǒng)能夠完成外部多機(jī)的遠(yuǎn)距離通信。
直流無(wú)刷電機(jī)、直流無(wú)刷驅(qū)動(dòng)器以及驅(qū)動(dòng)的電路原理如圖11所示,為保證隔離MCU主控電路,添加光耦進(jìn)行電路隔離,防止電機(jī)旋轉(zhuǎn)產(chǎn)生的反電動(dòng)勢(shì)燒壞MCU。
圖11 電機(jī)驅(qū)動(dòng)隔離光耦電路
圖12 RS485總線報(bào)文結(jié)構(gòu)示意圖
自動(dòng)化管溝檢測(cè)系統(tǒng)的PC為聯(lián)想工控機(jī),CPU為i5-9300H,顯卡為RTX 1050Ti。管溝機(jī)器人本體的MCU芯片為STM32F407ZET6,控制手柄的MCU芯片為STM32F103C8T6,線纜車的MCU芯片為STM32F407IGT6。相機(jī)為索尼工業(yè)攝像機(jī),支持1 080 P 30 Hz和720 P 60 Hz兩種格式視頻。機(jī)器人內(nèi)部CAN通信選擇的芯片為T(mén)JA1050T,外部RS485總線通信的芯片為SN75176BDR。云臺(tái)步進(jìn)電機(jī)為鳴志ML42HS2L4240的42步進(jìn)電機(jī),機(jī)器人行走的直流無(wú)刷電機(jī)為AM-BL45100AE2406空心杯無(wú)刷電機(jī)。結(jié)合上述的基礎(chǔ)器件,所設(shè)計(jì)的硬件電路基本符合設(shè)計(jì)需求,能夠滿足遠(yuǎn)距離的RS485通信、多機(jī)的CAN通信、100 m同軸電纜視頻傳輸,滿足自動(dòng)化管溝檢測(cè)所需要的功能。
依據(jù)上一小節(jié)的硬件設(shè)計(jì)要求,隧道管溝機(jī)器人本體內(nèi)部采取CAN總線,機(jī)器人外部采取RS485總線。
CAN總線是一種串行的協(xié)議總線,CAN總線的標(biāo)識(shí)位決定了消息的優(yōu)先級(jí)和對(duì)應(yīng)的功能,利用CAN總線的非破壞性的仲裁機(jī)制,高優(yōu)先級(jí)的消息繼續(xù)發(fā)送,低優(yōu)先級(jí)的消息停止發(fā)送。CAN總線在消息出錯(cuò)后會(huì)自動(dòng)重發(fā),CAN總線的效率非常高而且比較穩(wěn)定。
在本項(xiàng)目中,主要選擇的是CAN總線的數(shù)據(jù)幀格式,最高支持的數(shù)據(jù)大小為8 byte。CAN總線的數(shù)據(jù)幀分成了標(biāo)準(zhǔn)幀和擴(kuò)展幀,數(shù)據(jù)幀由7個(gè)部分組成,分別是:起始段(SOF)、仲裁段、控制段、數(shù)據(jù)段(0~8 byte)、CRC校驗(yàn)段和結(jié)束段(EOF),擴(kuò)展幀比標(biāo)準(zhǔn)幀在仲裁段上多了18 bit,仲裁段從11 bit變成了29 bit。
利用CAN總線的仲裁機(jī)制,也將接入CAN總線的設(shè)備仲裁段進(jìn)行編號(hào),如表1所示。
表1 自定義CAN協(xié)議設(shè)備ID
本項(xiàng)目中將每一個(gè)CAN設(shè)備節(jié)點(diǎn)設(shè)計(jì)成一個(gè)三層的對(duì)象,底層驅(qū)動(dòng)層提供CAN的收發(fā)接口,底層驅(qū)動(dòng)只負(fù)責(zé)數(shù)據(jù)的發(fā)送與接收,不用關(guān)心數(shù)據(jù)的類型和大小。共享內(nèi)存被應(yīng)用程序和驅(qū)動(dòng)共享,共享內(nèi)存中保存了設(shè)備的數(shù)據(jù),應(yīng)用層負(fù)責(zé)修改和復(fù)位共享內(nèi)存里的數(shù)據(jù),將修改完成后的數(shù)據(jù)保存在共享內(nèi)存中,最后再由應(yīng)用層交付給底層驅(qū)動(dòng)層進(jìn)行發(fā)送。
管溝機(jī)器人車體、線纜車和決策系統(tǒng)之間采取RS485的電氣接口,RS-485是在485遠(yuǎn)程傳輸方式上規(guī)定了電氣屬性,為了保證遠(yuǎn)距離傳輸,RS485設(shè)計(jì)為差分傳輸,抑制了共模干擾。
工業(yè)自動(dòng)化領(lǐng)域在以RS485作為硬件層上建立的應(yīng)用層協(xié)議Modbus,Modbus是一種串行通信的應(yīng)用層協(xié)議,目前已經(jīng)在工業(yè)自動(dòng)化中使用非常廣泛。Modbus是一主多從的應(yīng)用層協(xié)議,Master是主機(jī),其他總線上的都是Slave(從機(jī)),每一個(gè)從機(jī)都擁有自己的設(shè)備地址,所有通信均由主機(jī)發(fā)起,從機(jī)不能主動(dòng)發(fā)起通信,從機(jī)與從機(jī)也無(wú)法通信。
本項(xiàng)目參照Modbus RTU協(xié)議,定義管溝機(jī)器人系統(tǒng)的應(yīng)用層協(xié)議,如下所示,報(bào)文每個(gè)段的描述如圖2所示。報(bào)文段的固定幀頭是0x55,固定數(shù)值,節(jié)點(diǎn)地址總共5個(gè),分別是:PC工控機(jī)為主機(jī),地址為0x00,控制手柄地址為0x01,隧道管溝機(jī)器人本體地址為0x02,線纜車的地址為0x03以及一個(gè)廣播地址0xFF。設(shè)備地址是某一個(gè)節(jié)點(diǎn)內(nèi)部的地址,例如機(jī)器人本體內(nèi)部的直流無(wú)刷電機(jī)地址定義為0x01,抬升的步進(jìn)電機(jī)為0x02。CRC16是CRC的一種校驗(yàn)方法,選取的多項(xiàng)式是8 005,多項(xiàng)式為x16+x15+x2+1。
PC上位機(jī)是整個(gè)管溝機(jī)器人自動(dòng)化系統(tǒng)的大腦,作為決策層的主控制器,它負(fù)責(zé)傳感器的數(shù)值監(jiān)控,管溝回傳視頻的實(shí)時(shí)缺陷檢測(cè),工程信息數(shù)據(jù)的讀取和保存以及作為RS485通信協(xié)議的主站。綜合上述功能需求,PC上位機(jī)的軟件設(shè)計(jì)主要包含5大部分:控制部分、運(yùn)動(dòng)監(jiān)控、缺陷檢測(cè)、信息管理和協(xié)議主站,PC上位機(jī)的功能如圖13所示。
圖13 PC上位機(jī)功能示意圖
控制手柄作為管溝機(jī)器人決策層的輔助工具,其主要任務(wù)是幫助工作人員在現(xiàn)場(chǎng)控制機(jī)器人本體以及線纜車的運(yùn)行,控制手柄的軟件設(shè)計(jì)主要包括掃描按鍵、讀取按鍵值和發(fā)送指令。
嵌入式掃描按鍵的方式有外部中斷掃描和狀態(tài)機(jī)FIFO按鍵掃描,本項(xiàng)目使用的索尼PS2的按鍵多達(dá)16個(gè),若使用外部中斷掃描需要使用中斷號(hào)16個(gè),這對(duì)于MCU控制器是一筆不小的資源消耗,綜上所述,選擇了狀態(tài)機(jī)FIFO方式進(jìn)行按鍵掃描。
狀態(tài)機(jī)全稱為有限狀態(tài)機(jī),是嵌入式領(lǐng)域一種常用的編程思想,狀態(tài)機(jī)將一個(gè)復(fù)雜的問(wèn)題轉(zhuǎn)換成階段性問(wèn)題,每個(gè)階段有不同的處理方法。將按鍵的狀態(tài)分為:松開(kāi)、抖動(dòng)、按下、長(zhǎng)按、重復(fù)按和釋放,通過(guò)反復(fù)檢測(cè)按鍵狀態(tài)實(shí)現(xiàn)軟件消抖、長(zhǎng)按和重復(fù)按功能。
管溝機(jī)器人管理層的軟件設(shè)計(jì)主要是對(duì)于MCU控制板的程序設(shè)計(jì),主要的任務(wù)有以下幾部分:操作系統(tǒng)移植、協(xié)議棧構(gòu)建及多線程程序運(yùn)行。
4.3.1 RTOS的移植
MCU的RTOS選擇的是RT-Thread,RT-Thread是中國(guó)在2006年開(kāi)發(fā)的開(kāi)源中立、社區(qū)發(fā)展起來(lái)的一款實(shí)時(shí)操作系統(tǒng)。RT-Thread的移植步驟主要分為4個(gè)步驟:配置系統(tǒng)時(shí)鐘、實(shí)現(xiàn)OS節(jié)拍、BSP板級(jí)初始化和堆內(nèi)存初始化。
4.3.2 協(xié)議棧移植
協(xié)議棧的移植主要是將自定義的CAN,RS485協(xié)議的CAN_Init.c、CAN_Init.h、CAN_BSP.c、CAN_BSP.h、RS485_Init.c、RS485_Init.h、RS485_BSP.c、RS485_BSP.h等文件添加進(jìn)不同的控制板工程。CAN_Init和RS485_Init提供了CAN、RS485的底層驅(qū)動(dòng)層,驅(qū)動(dòng)層為上層應(yīng)用提供接受和發(fā)送功能。CAN_BSP和RS485_BSP提供了項(xiàng)目?jī)?nèi)的協(xié)議解析規(guī)則,設(shè)備ID和消息組包功能,應(yīng)用程序直接調(diào)用該文件的API即可接入總線協(xié)議。
4.3.3 多線程程序運(yùn)行
利用RT-Thread的多線程機(jī)制,在MCU控制器中創(chuàng)建了4個(gè)線程,分別是:主線程、空閑線程、消息處理線程及PID計(jì)算線程。主線程用于處理主要任務(wù)和創(chuàng)建其他線程,例如外設(shè)初始化、堆棧初始化、初始化線程、啟動(dòng)線程和LED閃爍,LED閃爍用于顯示MCU是否正常工作??臻e線程用于監(jiān)測(cè)MCU運(yùn)行狀態(tài),記錄系統(tǒng)空閑時(shí)間,當(dāng)長(zhǎng)期未接收到RS485的指令時(shí),UART_IT_RXNE空閑標(biāo)志位置位1,開(kāi)始計(jì)時(shí),當(dāng)空閑線程的運(yùn)行時(shí)間達(dá)到所設(shè)置的空閑時(shí)間上限,將一些耗能設(shè)備進(jìn)行關(guān)閉。消息處理線程對(duì)中斷中接收到的消息進(jìn)行處理,對(duì)協(xié)議進(jìn)行解析后,執(zhí)行相應(yīng)的動(dòng)作。
4.3.4 直流無(wú)刷電機(jī)PID控制軟件設(shè)計(jì)
在MCU的控制板上實(shí)現(xiàn)直流無(wú)刷電機(jī)的PID速度控制算法,需要考慮MCU的資源少以及計(jì)算速度慢等問(wèn)題,因此,將原有的位置式PID改成了增量式PID。增量式的PID算法如下所示:
△u(v)=u(v)-u(v-1)=Kp[e(v)-e(v-1)]+
(1)
在MCU中使用增量式PID有以下幾個(gè)優(yōu)點(diǎn):1)計(jì)算時(shí)間更短,無(wú)需計(jì)算當(dāng)前轉(zhuǎn)速和目標(biāo)轉(zhuǎn)速的差值,只需要計(jì)算前一時(shí)刻的輸出量的差值,更符合MCU的實(shí)時(shí)性要求;2)增量式PID無(wú)需保存歷史數(shù)據(jù),只需要最近3次的PID輸出值,同時(shí)也大大節(jié)約了MCU的資源;3)增量式PID在實(shí)現(xiàn)的過(guò)程中無(wú)需考慮積分飽和微分噪聲的情況,使控制器更穩(wěn)定,性能更好。
在MCU中定義PID結(jié)構(gòu)體{PID_t},設(shè)置定時(shí)器時(shí)間為50 ms,即每50 ms使用霍爾傳感器對(duì)直流無(wú)刷電機(jī)進(jìn)行一次速度采樣,同時(shí)更新電機(jī)電壓PWM的占空比。
圖14為PID計(jì)算線程的運(yùn)行流程圖,每隔50 ms更新一次PID計(jì)算值。
圖14 直流無(wú)刷電機(jī)PID算法執(zhí)行流程
Qt搭建的PC上位機(jī)如圖15所示,軟件主界面中間為管溝機(jī)器人的攝像機(jī)顯示部分,軟件主界面下方為機(jī)器人的控制按鍵,包括機(jī)器人的前進(jìn)后退和速度選擇。右邊三列按鍵為機(jī)器人云臺(tái)的動(dòng)作控制,包括云臺(tái)升降、旋轉(zhuǎn)等動(dòng)作。
圖15 PC上位機(jī)測(cè)試界面
主界面下方圓盤(pán)為機(jī)器人前置LED燈光旋鈕,旋鈕控制燈光強(qiáng)度。
自動(dòng)化管溝檢測(cè)系統(tǒng)的測(cè)試主要包括以下幾部分:
1)RS485的遠(yuǎn)程通信;
2)CAN的多機(jī)通信;
3)PC接收同軸電纜視頻。
調(diào)節(jié)電機(jī)和燈光的RS485示例協(xié)議如下:[0x55 0x00 0x05 0x51 0x02 0x00 CRC_H CRC_L];[0x55 0x00 0x05 0x55 0x05 0x00 CRC_H CRC_L],第4字節(jié)為對(duì)應(yīng)的設(shè)備,第5字節(jié)為設(shè)備的對(duì)應(yīng)操作。PC向機(jī)器人發(fā)送上述協(xié)議,機(jī)器人進(jìn)行云臺(tái)抬升和調(diào)節(jié)LED燈光等操作,實(shí)現(xiàn)機(jī)器人的遠(yuǎn)程控制。
CAN通信協(xié)議示例如下所示:[0xF1 0x01 0x00 0x01 0x00 0x00 0x00 0x00],CAN數(shù)據(jù)幀第1~2字節(jié)為具體設(shè)備ID,第4個(gè)字節(jié)為操作命令。上述CAN協(xié)議為控制直流無(wú)刷電機(jī)正向旋轉(zhuǎn),控制管溝機(jī)器人前進(jìn)。
圖15右邊為工程屬性信息,Qt利用SQLite3小型數(shù)據(jù)庫(kù),存儲(chǔ)每一個(gè)工程的具體信息。
綜上所述,所設(shè)計(jì)的管溝機(jī)器人系統(tǒng)整體運(yùn)行過(guò)程可靠,可以穩(wěn)定可靠地完成管溝檢測(cè)的任務(wù),解決了管溝機(jī)器人系統(tǒng)的不足之處。
本文以PC和MCU微處理器為核心部件,結(jié)合相關(guān)的攝像機(jī),傳感器和電機(jī)等,搭建了管溝檢測(cè)機(jī)器人的自動(dòng)化檢測(cè)系統(tǒng)。首先分析了機(jī)器人技術(shù)和管溝的城市化建設(shè)的發(fā)展,針對(duì)現(xiàn)有的管溝機(jī)器人系統(tǒng)的痛點(diǎn),開(kāi)發(fā)了一整套的管溝機(jī)器人系統(tǒng)。首先明確了管溝機(jī)器人的整體系統(tǒng)框架,分析機(jī)器人所需要的硬件,使用EDA軟件設(shè)計(jì)出機(jī)器人所需的硬件。分析對(duì)應(yīng)的MCU的功能,移植實(shí)時(shí)操作系統(tǒng)RT-Thread,將MCU的任務(wù)劃分為多線程,提高軟件的實(shí)時(shí)性和性能。利用有限狀態(tài)機(jī)的思想,設(shè)計(jì)按鍵的FIFO按鍵掃描框架,減少中斷占用,提高效率。在MCU中添加增量式的PID調(diào)速算法,提高了機(jī)器人的運(yùn)動(dòng)控制精度,加強(qiáng)了機(jī)器人的運(yùn)動(dòng)控制性能。
針對(duì)管溝的復(fù)雜環(huán)境,在人工無(wú)法完成檢測(cè)的任務(wù)時(shí),管溝機(jī)器人將發(fā)揮它的作用,代替人工去管溝內(nèi)檢測(cè),提高工作效率,保護(hù)工作人員的生命安全。本文設(shè)計(jì)的管溝檢測(cè)機(jī)器人自動(dòng)化系統(tǒng),可以在人工的輔助下完成對(duì)應(yīng)的操作,未來(lái)將更進(jìn)一步地提升機(jī)器人系統(tǒng)的效率和性能,為工作人員提供更為完善的檢測(cè)服務(wù)。