吳澤楓,李成剛,宋勇,儲亞東,陳飛翔,吳樹景
(南京航空航天大學 機電學院,江蘇 南京 210016)
隨著國內“機器換人”戰略的全面推進和發展,機器人在生產制造方面的投入力度逐步加大,出現了數量驟升的現象。雖然機器人具備重復勞動、無需停機的優勢,但是在夜以繼日的工作過程中,易發生由于零件磨損或機械疲勞等原因導致的機器故障,從而造成機器停機或維修不及時的嚴重局面,這勢必會嚴重影響到機器人應用企業的生產效益。因此,對本地機器人進行遠程監控顯得尤為重要,通過機器人監控系統來遠程監控機器人的狀態參量(關節的角位移、角速度、角加速度、力/力矩等),對數據進行處理分析,一旦發現數據異常,用戶可在手機APP中通過機器人運動復現、歷史數據查詢和超值報警等功能,快速甄別問題所在,從而及時指派維修工程師到本地對機器人進行維護修理,確保機器人穩定運行。
ABB公司研發了機器人遠程服務系統[1],該系統通過在機器人終端安裝帶有GPRS無線通信網絡功能的服務箱,遠程傳輸數據。該系統可對機器人進行遠程監控、故障診斷和報警。朱心科等人[2]設計了一種水下滑翔機器人監控系統,利用GPRS模塊傳輸數據,實現現場及遠程對水下滑翔機器人的監控。以上基于GPRS模塊開發的監控系統,大多存在高功耗、高資費等不足。李毅等人[3-4]開發了一套飛行吸附機器人無線監控系統,該機器人的核心處理器利用ZigBee無線通信模塊將各種姿態數據發送到客戶端PC機上,進行實時顯示和控制機器人飛行。但由于ZigBee模塊需要通過集中器和網關連入網絡,存在現場部署復雜的缺點。隨著物聯網技術的快速發展,NB-IoT低速率窄帶作為IoT(物聯網)領域一種新興的物聯網通信技術[5],支持低功耗設備在廣域網的蜂窩數據連接。廉小親等人[6-7]開發了一種基于NB-IoT的空調遠程控制系統,該系統采用STM32作為主控制器、NB-IoT技術為核心進行網絡傳輸,并基于華為公司的OceanConnect云平臺進行開發,用戶通過Web客戶端或手機移動端便可對空調進行遠程控制。董玉榮等人[8-9]提出一種基于NB-IoT的智慧停車系統,該系統利用NB-IoT模塊與地磁傳感器采集停車位狀態信息,并將信息傳輸到云端服務器中,用戶通過手機APP即可實時查看城市停車位的狀態信息,并可進行在線預訂、在線支付和車位導航。以上利用NB-IoT模塊開發的遠程監控系統,既簡化了現場安裝部署,又同時具有低功耗、低成本、廣覆蓋、大連接等優勢。本文研究一種基于NB-IoT模塊的機器人監控系統,具有如下優勢:
1)采用NB-IoT模塊作為網絡數據傳輸模塊,通過采集數據后直接傳入網絡,簡化了現場部署,降低了實施成本,并且可同時連接多個機器人進行監控;
2)云服務器擁有強大計算和海量存儲等優點,可對機器人大量的歷史狀態參量進行存儲和處理,有利于維護工程師對其數據進行深入研究和分析;
3)通過使用手機APP可對多個機器人進行遠程監控,更加方便快捷;同時對機器人的三維模型進行運動復現(回放機器人的工作過程),使得用戶監控機器人更加直觀清晰。
整套機器人監控系統架構如圖1所示,其工作過程為:
1)機器人控制系統中的硬件終端(51單片機系統和NB-IoT模塊)通過串口獲取本地機器人的狀態參量數據(各關節的角位移、角速度、角加速度、力/力矩等)后,先對數據分析處理,若數據異常則本地直接報警,并進行數據打包;
2)51單片機系統將其數據經串口傳到NB-IoT物聯網通信模塊;機器人監控系統基于TCP/IP網絡傳輸協議和NB-IoT模塊,通過LPWAN(低功率廣域網絡)技術創建Socket通信接口,建立與云服務器的連接,成功后上傳數據包;
3)云服務器接收數據包并進行解析,將數據分別插入到MySQL數據庫中表格相應的位置;
4)通過移動監測系統,用戶可在手機APP中對機器人進行遠程監控,實現機器人運動復現、歷史數據查詢和超值報警、多機器人監測切換等功能。

圖1 基于NB-IoT模塊的機器人監控系統框架
機器人控制系統的硬件終端電路如圖2所示,主要實現將本地機器人狀態參量數據打包,經串口UART由NB-IoT模塊發送到云服務器的功能。該硬件終端主要包括51單片機、復位電路、晶振電路、NB-IoT模塊、蜂鳴器報警電路。其中,51單片機是一種低功耗、高性能的8位微控制器,同時擁有8 K字節系統可編程Flash存儲器;該硬件電路配有復位電路和晶振電路,其復位電路用于單片機上電復位和手動按鍵復位,晶振電路用來產生單片機工作所需的時鐘頻率,本文中采用11.0592MHz的石英晶振,故其一個機器周期約為1.085μs;NB-IoT模塊用于遠程數據傳輸,本文使用的M5310-A是一種工作在頻段Band3/Band5/Band8的工業級NB-IoT模塊;蜂鳴器報警電路用于現場報警。51單片機、復位電路和晶振電路構成了單片機最小系統板,可以保證單片機系統正常穩定地工作。

圖2 硬件終端電路原理圖
機器人控制系統中硬件終端電路的設計和實現過程如下:
1)利用C語言在Keil軟件中開發51單片機的程序,實現通過異步串口通信獲取本地機器人的狀態參量數據的功能。本文中設置串行口工作方式為10位異步收發(8個數據位,無奇偶校驗,1個停止位),波特率為9600bps;
2)硬件終端中裝有蜂鳴器報警電路,51單片機對獲取的機器人數據進行判斷分析,若數據出現超值等異常情況,機器人控制系統通過控制單片機IO口(P2.0)輸出低電平導通三極管PNP,蜂鳴器直接報警,現場提醒維修工程師及時排查問題;
3)51單片機將機器人數據打包后,由串口UART傳輸到NB-IoT模塊,基于TCP/IP網絡傳輸協議,NB-IoT模塊利用LPWAN技術通過AT指令連接移動蜂窩網絡,經創建Socket通信接口并提出連接云服務器的公網IP和端口Port的連接請求Connect(),通過TCP3次握手獲得云服務器的接收請求Accept()后,便可實現遠程連接,最后通過Send()將數據包發送至云服務器,發送完成后,關閉Socket。
云服務器系統框架圖如圖3所示,主要實現接收來自機器人控制系統的機器人狀態參量數據,并將數據存儲到MySQL數據庫中的功能。
云服務器的設計和實現過程如下:

圖3 云服務器系統框架圖
1)本文的云服務器是基于阿里云公司的服務器進行開發,基于TCP/IP網絡傳輸協議,使用C#語言在Visual Studio軟件中編程。先在云服務器中創建Socket通信接口(圖4),然后利用Bind()方法綁定云服務器本地IP和端口號Port(3306),并進行監聽Listen(),一旦接收到來自硬件終端的連接請求Connect(),由TCP3次握手成功后,建立與機器人控制系統的數據通道;

圖4 Socket通信流程



圖5 MySQL數據庫中的tb_robot 1_torque表格
移動監控系統即手機APP(圖6),主要對機器人進行遠程監控,實現運動復現、歷史數據查詢和超值報警、多機器人監測切換等功能。
手機APP的設計和實現過程如下:
1)將機器人模型導入Unity中。在SolidWorks中將機器人三維模型(UR5協作機器人)轉成IGS格式,接著導入3d Max軟件中,設置尺寸單位和坐標系等參數后,輸出為FBX格式,再導入Unity中完成三維模型的可視化。
2)利用C#語言在Unity中開發手機移動應用,利用UI控件設計機器人模型窗口、歷史數據查詢和超值報警窗口、多機器人監測切換等窗口實現人機交互,并在Visual Studio編輯器編寫腳本功能。
3)通過數據庫訪問技術(SQL語句)對云服務器中MySQL數據庫進行操作(如增、刪、改、查),實現遠程獲取本地機器人的狀態參量數據。
4) 通過選定日期,在機器人模型窗口中可觀察機器人三維模型的運動情況,點擊“啟動”按鈕即可實現運動復現,對機器人的運動過程進行回放,通過“復位”按鈕可使機器人回到初始位置;通過歷史數據查詢和超值報警窗口,可查看機器人各關節在不同時刻對應的狀態參量(如力矩),同時,設定力矩閾值,對超值的力矩數據進行標紅顯示,實現超值報警功能,提醒用戶及時處理;另外,通過設計多機器人監測切換窗口,可同時對多個機器人進行監控,并隨時切換。

圖6 移動監控系統(手機APP)界面
基于NB-IoT模塊的機器人監控系統利用51單片機經串口獲取機器人的狀態參量數據,同時對數據進行綜合分析處理,若出現異常數據則本地蜂鳴器直接報警,現場提醒本地工程師及時對機器人維護;然后,51單片機通過NB-IoT模塊將數據發送到云服務器中的數據庫進行存儲處理。用戶可通過手機APP對機器人進行遠程監控,實現機器人運動復現、歷史數據查詢和超值報警、多機器人監測切換等功能。整套系統硬件終端使用NB-IoT模塊具有功耗低、成本低及現場部署簡單等優勢;手機APP對機器人三維模型進行監控和對多個機器人同時進行監控切換具有可視化效果好、便捷的優點,且該系統結構簡單易實施,非常適合各種機器人用戶對機器人的遠程監控。