吳澤楓,李成剛,宋勇,儲亞東,陳飛翔,吳樹景
(南京航空航天大學(xué) 機電學(xué)院,江蘇 南京 210016)
隨著國內(nèi)“機器換人”戰(zhàn)略的全面推進(jìn)和發(fā)展,機器人在生產(chǎn)制造方面的投入力度逐步加大,出現(xiàn)了數(shù)量驟升的現(xiàn)象。雖然機器人具備重復(fù)勞動、無需停機的優(yōu)勢,但是在夜以繼日的工作過程中,易發(fā)生由于零件磨損或機械疲勞等原因?qū)е碌臋C器故障,從而造成機器停機或維修不及時的嚴(yán)重局面,這勢必會嚴(yán)重影響到機器人應(yīng)用企業(yè)的生產(chǎn)效益。因此,對本地機器人進(jìn)行遠(yuǎn)程監(jiān)控顯得尤為重要,通過機器人監(jiān)控系統(tǒng)來遠(yuǎn)程監(jiān)控機器人的狀態(tài)參量(關(guān)節(jié)的角位移、角速度、角加速度、力/力矩等),對數(shù)據(jù)進(jìn)行處理分析,一旦發(fā)現(xiàn)數(shù)據(jù)異常,用戶可在手機APP中通過機器人運動復(fù)現(xiàn)、歷史數(shù)據(jù)查詢和超值報警等功能,快速甄別問題所在,從而及時指派維修工程師到本地對機器人進(jìn)行維護(hù)修理,確保機器人穩(wěn)定運行。
ABB公司研發(fā)了機器人遠(yuǎn)程服務(wù)系統(tǒng)[1],該系統(tǒng)通過在機器人終端安裝帶有GPRS無線通信網(wǎng)絡(luò)功能的服務(wù)箱,遠(yuǎn)程傳輸數(shù)據(jù)。該系統(tǒng)可對機器人進(jìn)行遠(yuǎn)程監(jiān)控、故障診斷和報警。朱心科等人[2]設(shè)計了一種水下滑翔機器人監(jiān)控系統(tǒng),利用GPRS模塊傳輸數(shù)據(jù),實現(xiàn)現(xiàn)場及遠(yuǎn)程對水下滑翔機器人的監(jiān)控。以上基于GPRS模塊開發(fā)的監(jiān)控系統(tǒng),大多存在高功耗、高資費等不足。李毅等人[3-4]開發(fā)了一套飛行吸附機器人無線監(jiān)控系統(tǒng),該機器人的核心處理器利用ZigBee無線通信模塊將各種姿態(tài)數(shù)據(jù)發(fā)送到客戶端PC機上,進(jìn)行實時顯示和控制機器人飛行。但由于ZigBee模塊需要通過集中器和網(wǎng)關(guān)連入網(wǎng)絡(luò),存在現(xiàn)場部署復(fù)雜的缺點。隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,NB-IoT低速率窄帶作為IoT(物聯(lián)網(wǎng))領(lǐng)域一種新興的物聯(lián)網(wǎng)通信技術(shù)[5],支持低功耗設(shè)備在廣域網(wǎng)的蜂窩數(shù)據(jù)連接。廉小親等人[6-7]開發(fā)了一種基于NB-IoT的空調(diào)遠(yuǎn)程控制系統(tǒng),該系統(tǒng)采用STM32作為主控制器、NB-IoT技術(shù)為核心進(jìn)行網(wǎng)絡(luò)傳輸,并基于華為公司的OceanConnect云平臺進(jìn)行開發(fā),用戶通過Web客戶端或手機移動端便可對空調(diào)進(jìn)行遠(yuǎn)程控制。董玉榮等人[8-9]提出一種基于NB-IoT的智慧停車系統(tǒng),該系統(tǒng)利用NB-IoT模塊與地磁傳感器采集停車位狀態(tài)信息,并將信息傳輸?shù)皆贫朔?wù)器中,用戶通過手機APP即可實時查看城市停車位的狀態(tài)信息,并可進(jìn)行在線預(yù)訂、在線支付和車位導(dǎo)航。以上利用NB-IoT模塊開發(fā)的遠(yuǎn)程監(jiān)控系統(tǒng),既簡化了現(xiàn)場安裝部署,又同時具有低功耗、低成本、廣覆蓋、大連接等優(yōu)勢。本文研究一種基于NB-IoT模塊的機器人監(jiān)控系統(tǒng),具有如下優(yōu)勢:
1)采用NB-IoT模塊作為網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊,通過采集數(shù)據(jù)后直接傳入網(wǎng)絡(luò),簡化了現(xiàn)場部署,降低了實施成本,并且可同時連接多個機器人進(jìn)行監(jiān)控;
2)云服務(wù)器擁有強大計算和海量存儲等優(yōu)點,可對機器人大量的歷史狀態(tài)參量進(jìn)行存儲和處理,有利于維護(hù)工程師對其數(shù)據(jù)進(jìn)行深入研究和分析;
3)通過使用手機APP可對多個機器人進(jìn)行遠(yuǎn)程監(jiān)控,更加方便快捷;同時對機器人的三維模型進(jìn)行運動復(fù)現(xiàn)(回放機器人的工作過程),使得用戶監(jiān)控機器人更加直觀清晰。
整套機器人監(jiān)控系統(tǒng)架構(gòu)如圖1所示,其工作過程為:
1)機器人控制系統(tǒng)中的硬件終端(51單片機系統(tǒng)和NB-IoT模塊)通過串口獲取本地機器人的狀態(tài)參量數(shù)據(jù)(各關(guān)節(jié)的角位移、角速度、角加速度、力/力矩等)后,先對數(shù)據(jù)分析處理,若數(shù)據(jù)異常則本地直接報警,并進(jìn)行數(shù)據(jù)打包;
2)51單片機系統(tǒng)將其數(shù)據(jù)經(jīng)串口傳到NB-IoT物聯(lián)網(wǎng)通信模塊;機器人監(jiān)控系統(tǒng)基于TCP/IP網(wǎng)絡(luò)傳輸協(xié)議和NB-IoT模塊,通過LPWAN(低功率廣域網(wǎng)絡(luò))技術(shù)創(chuàng)建Socket通信接口,建立與云服務(wù)器的連接,成功后上傳數(shù)據(jù)包;
3)云服務(wù)器接收數(shù)據(jù)包并進(jìn)行解析,將數(shù)據(jù)分別插入到MySQL數(shù)據(jù)庫中表格相應(yīng)的位置;
4)通過移動監(jiān)測系統(tǒng),用戶可在手機APP中對機器人進(jìn)行遠(yuǎn)程監(jiān)控,實現(xiàn)機器人運動復(fù)現(xiàn)、歷史數(shù)據(jù)查詢和超值報警、多機器人監(jiān)測切換等功能。
圖1 基于NB-IoT模塊的機器人監(jiān)控系統(tǒng)框架
機器人控制系統(tǒng)的硬件終端電路如圖2所示,主要實現(xiàn)將本地機器人狀態(tài)參量數(shù)據(jù)打包,經(jīng)串口UART由NB-IoT模塊發(fā)送到云服務(wù)器的功能。該硬件終端主要包括51單片機、復(fù)位電路、晶振電路、NB-IoT模塊、蜂鳴器報警電路。其中,51單片機是一種低功耗、高性能的8位微控制器,同時擁有8 K字節(jié)系統(tǒng)可編程Flash存儲器;該硬件電路配有復(fù)位電路和晶振電路,其復(fù)位電路用于單片機上電復(fù)位和手動按鍵復(fù)位,晶振電路用來產(chǎn)生單片機工作所需的時鐘頻率,本文中采用11.0592MHz的石英晶振,故其一個機器周期約為1.085μs;NB-IoT模塊用于遠(yuǎn)程數(shù)據(jù)傳輸,本文使用的M5310-A是一種工作在頻段Band3/Band5/Band8的工業(yè)級NB-IoT模塊;蜂鳴器報警電路用于現(xiàn)場報警。51單片機、復(fù)位電路和晶振電路構(gòu)成了單片機最小系統(tǒng)板,可以保證單片機系統(tǒng)正常穩(wěn)定地工作。
圖2 硬件終端電路原理圖
機器人控制系統(tǒng)中硬件終端電路的設(shè)計和實現(xiàn)過程如下:
1)利用C語言在Keil軟件中開發(fā)51單片機的程序,實現(xiàn)通過異步串口通信獲取本地機器人的狀態(tài)參量數(shù)據(jù)的功能。本文中設(shè)置串行口工作方式為10位異步收發(fā)(8個數(shù)據(jù)位,無奇偶校驗,1個停止位),波特率為9600bps;
2)硬件終端中裝有蜂鳴器報警電路,51單片機對獲取的機器人數(shù)據(jù)進(jìn)行判斷分析,若數(shù)據(jù)出現(xiàn)超值等異常情況,機器人控制系統(tǒng)通過控制單片機IO口(P2.0)輸出低電平導(dǎo)通三極管PNP,蜂鳴器直接報警,現(xiàn)場提醒維修工程師及時排查問題;
3)51單片機將機器人數(shù)據(jù)打包后,由串口UART傳輸?shù)絅B-IoT模塊,基于TCP/IP網(wǎng)絡(luò)傳輸協(xié)議,NB-IoT模塊利用LPWAN技術(shù)通過AT指令連接移動蜂窩網(wǎng)絡(luò),經(jīng)創(chuàng)建Socket通信接口并提出連接云服務(wù)器的公網(wǎng)IP和端口Port的連接請求Connect(),通過TCP3次握手獲得云服務(wù)器的接收請求Accept()后,便可實現(xiàn)遠(yuǎn)程連接,最后通過Send()將數(shù)據(jù)包發(fā)送至云服務(wù)器,發(fā)送完成后,關(guān)閉Socket。
云服務(wù)器系統(tǒng)框架圖如圖3所示,主要實現(xiàn)接收來自機器人控制系統(tǒng)的機器人狀態(tài)參量數(shù)據(jù),并將數(shù)據(jù)存儲到MySQL數(shù)據(jù)庫中的功能。
云服務(wù)器的設(shè)計和實現(xiàn)過程如下:
圖3 云服務(wù)器系統(tǒng)框架圖
1)本文的云服務(wù)器是基于阿里云公司的服務(wù)器進(jìn)行開發(fā),基于TCP/IP網(wǎng)絡(luò)傳輸協(xié)議,使用C#語言在Visual Studio軟件中編程。先在云服務(wù)器中創(chuàng)建Socket通信接口(圖4),然后利用Bind()方法綁定云服務(wù)器本地IP和端口號Port(3306),并進(jìn)行監(jiān)聽Listen(),一旦接收到來自硬件終端的連接請求Connect(),由TCP3次握手成功后,建立與機器人控制系統(tǒng)的數(shù)據(jù)通道;
圖4 Socket通信流程
圖5 MySQL數(shù)據(jù)庫中的tb_robot 1_torque表格
移動監(jiān)控系統(tǒng)即手機APP(圖6),主要對機器人進(jìn)行遠(yuǎn)程監(jiān)控,實現(xiàn)運動復(fù)現(xiàn)、歷史數(shù)據(jù)查詢和超值報警、多機器人監(jiān)測切換等功能。
手機APP的設(shè)計和實現(xiàn)過程如下:
1)將機器人模型導(dǎo)入Unity中。在SolidWorks中將機器人三維模型(UR5協(xié)作機器人)轉(zhuǎn)成IGS格式,接著導(dǎo)入3d Max軟件中,設(shè)置尺寸單位和坐標(biāo)系等參數(shù)后,輸出為FBX格式,再導(dǎo)入Unity中完成三維模型的可視化。
2)利用C#語言在Unity中開發(fā)手機移動應(yīng)用,利用UI控件設(shè)計機器人模型窗口、歷史數(shù)據(jù)查詢和超值報警窗口、多機器人監(jiān)測切換等窗口實現(xiàn)人機交互,并在Visual Studio編輯器編寫腳本功能。
3)通過數(shù)據(jù)庫訪問技術(shù)(SQL語句)對云服務(wù)器中MySQL數(shù)據(jù)庫進(jìn)行操作(如增、刪、改、查),實現(xiàn)遠(yuǎn)程獲取本地機器人的狀態(tài)參量數(shù)據(jù)。
4) 通過選定日期,在機器人模型窗口中可觀察機器人三維模型的運動情況,點擊“啟動”按鈕即可實現(xiàn)運動復(fù)現(xiàn),對機器人的運動過程進(jìn)行回放,通過“復(fù)位”按鈕可使機器人回到初始位置;通過歷史數(shù)據(jù)查詢和超值報警窗口,可查看機器人各關(guān)節(jié)在不同時刻對應(yīng)的狀態(tài)參量(如力矩),同時,設(shè)定力矩閾值,對超值的力矩數(shù)據(jù)進(jìn)行標(biāo)紅顯示,實現(xiàn)超值報警功能,提醒用戶及時處理;另外,通過設(shè)計多機器人監(jiān)測切換窗口,可同時對多個機器人進(jìn)行監(jiān)控,并隨時切換。
圖6 移動監(jiān)控系統(tǒng)(手機APP)界面
基于NB-IoT模塊的機器人監(jiān)控系統(tǒng)利用51單片機經(jīng)串口獲取機器人的狀態(tài)參量數(shù)據(jù),同時對數(shù)據(jù)進(jìn)行綜合分析處理,若出現(xiàn)異常數(shù)據(jù)則本地蜂鳴器直接報警,現(xiàn)場提醒本地工程師及時對機器人維護(hù);然后,51單片機通過NB-IoT模塊將數(shù)據(jù)發(fā)送到云服務(wù)器中的數(shù)據(jù)庫進(jìn)行存儲處理。用戶可通過手機APP對機器人進(jìn)行遠(yuǎn)程監(jiān)控,實現(xiàn)機器人運動復(fù)現(xiàn)、歷史數(shù)據(jù)查詢和超值報警、多機器人監(jiān)測切換等功能。整套系統(tǒng)硬件終端使用NB-IoT模塊具有功耗低、成本低及現(xiàn)場部署簡單等優(yōu)勢;手機APP對機器人三維模型進(jìn)行監(jiān)控和對多個機器人同時進(jìn)行監(jiān)控切換具有可視化效果好、便捷的優(yōu)點,且該系統(tǒng)結(jié)構(gòu)簡單易實施,非常適合各種機器人用戶對機器人的遠(yuǎn)程監(jiān)控。