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