鄒子敬,齊 潔,張嘉衡
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 上海 201620; 2.東華大學(xué) 數(shù)字化紡織服裝技術(shù)教育部工程研究中心, 上海 201620)
?
基于Zabbix的嵌入式機(jī)器人運行狀態(tài)監(jiān)控系統(tǒng)
鄒子敬1,2,齊潔1,2,張嘉衡1,2
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 上海 201620; 2.東華大學(xué) 數(shù)字化紡織服裝技術(shù)教育部工程研究中心, 上海 201620)
以開源監(jiān)控軟件Zabbix為平臺,以嵌入式機(jī)器人為對象,開發(fā)了基于無線通信的嵌入式機(jī)器人運行狀態(tài)數(shù)據(jù)采集和監(jiān)控系統(tǒng)。該監(jiān)控系統(tǒng)由被監(jiān)控嵌入式機(jī)器人、監(jiān)控服務(wù)器、監(jiān)控客戶端代理、遠(yuǎn)程登錄終端以及基于特定代碼的數(shù)據(jù)采集與傳輸方法等構(gòu)成,可以監(jiān)控機(jī)器人的電池狀態(tài)、速度、與各方向障礙物距離等運行狀態(tài)參數(shù)。
嵌入式機(jī)器人; Zabbix; 監(jiān)控; secureCRT
隨著機(jī)器人技術(shù)的飛速發(fā)展,機(jī)器人已成為生活智能、工業(yè)智能的重要組成部分。隨著機(jī)器人產(chǎn)業(yè)的高智能性、高自主性,機(jī)器人工作任務(wù)更加多樣,工作環(huán)境更加復(fù)雜,工作負(fù)載越來越高,而影響機(jī)器人使用壽命、導(dǎo)致工作故障的因素也越來越多。但目前嵌入式機(jī)器人并沒有一套針對工作狀態(tài)的可視化操作界面,現(xiàn)有的機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)往往依賴于機(jī)器人廠商所提供的監(jiān)控平臺,不但不具有通用性,而且往往價格昂貴,使很多致力于機(jī)器人行業(yè)的小公司望而卻步[1]。目前對于嵌入式機(jī)器人的工作狀態(tài)完全依賴于有經(jīng)驗的機(jī)器人工程師對工作實際情況的分析,并沒有深入到系統(tǒng)層面,對于嵌入式機(jī)器人的CPU工作負(fù)載、詳細(xì)實時運行狀態(tài)更是一無所知,這對于長期、高效、安全地使用機(jī)器人是不利的,而且也不利于對機(jī)器人的新功能集成與二次開發(fā),所以有必要開發(fā)一套針對于嵌入式機(jī)器人運行狀態(tài)、CPU參數(shù)實時反饋的可視化監(jiān)控系統(tǒng)。
監(jiān)控系統(tǒng)作為工業(yè)自動化不可或缺的重要組成部分,能夠快速定位系統(tǒng)故障,實時反映系統(tǒng)的運行狀態(tài),作為工業(yè)自動化的眼睛,在如今更加智能化、人性化的時代有著重要的意義。監(jiān)控系統(tǒng)在互聯(lián)網(wǎng)行業(yè)早已廣泛存在,各種開源的監(jiān)控軟件也以優(yōu)秀的數(shù)據(jù)采集性能、良好的界面展示體現(xiàn)監(jiān)控的價值。但是目前監(jiān)控的思想還比較局限,傳統(tǒng)制造業(yè)多數(shù)還依賴于有經(jīng)驗的工程師進(jìn)行故障處理,這是十分低效的。本文將互聯(lián)網(wǎng)行業(yè)對服務(wù)器性能的監(jiān)控思想應(yīng)用于新興的機(jī)器人產(chǎn)業(yè),以提供良好交互的監(jiān)控數(shù)據(jù)顯示。將監(jiān)控系統(tǒng)應(yīng)用于機(jī)器人產(chǎn)業(yè)、傳統(tǒng)制造業(yè)等行業(yè),對實現(xiàn)工業(yè)產(chǎn)品高效的故障排查以及良好的人機(jī)交互具有重要的現(xiàn)實意義。
本文從監(jiān)控系統(tǒng)的搭建、嵌入式機(jī)器人運行狀態(tài)參數(shù)的獲取與通信、數(shù)據(jù)監(jiān)控三個方面進(jìn)行闡述。監(jiān)控系統(tǒng)的整體架構(gòu)及操作流程如圖1、圖2所示。
圖1 嵌入式機(jī)器人監(jiān)控系統(tǒng)整體架構(gòu)圖
圖2 嵌入式機(jī)器人監(jiān)控系統(tǒng)操作流程圖
本文采用開源監(jiān)控軟件Zabbix作為監(jiān)控系統(tǒng)的主體,Zabbix-server包括Zabbix-server、監(jiān)控數(shù)據(jù)庫、Web端頁面三個組成部分。通過數(shù)據(jù)傳輸終端登錄嵌入式機(jī)器人操作系統(tǒng),并將機(jī)器人運行數(shù)據(jù)保存在數(shù)據(jù)傳輸終端,數(shù)據(jù)傳輸終端將數(shù)據(jù)傳遞給作為監(jiān)控終端的Windows機(jī)器,Windows機(jī)器再將數(shù)據(jù)傳遞給虛擬機(jī)上的監(jiān)控服務(wù)器,完成監(jiān)控。
1.1Zabbix簡介
本文采用開源的監(jiān)控軟件Zabbix作為監(jiān)控系統(tǒng)的主體,Zabbix是一種基于Web端的可視化的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)性能監(jiān)視的企業(yè)級解決方案。Zabbix能夠監(jiān)視多種網(wǎng)絡(luò)參數(shù),并且提供靈活的告警機(jī)制,擁有良好的圖表顯示界面,支持多種數(shù)據(jù)格式的傳輸,采用經(jīng)典的C/S(Server/Client)模式對指定網(wǎng)絡(luò)設(shè)備的性能進(jìn)行監(jiān)控[2]。Zabbix主要用于對網(wǎng)絡(luò)參數(shù)的監(jiān)控,但不局限于此,鑒于其強(qiáng)大的數(shù)據(jù)傳輸能力,以及優(yōu)秀的圖表顯示功能,本文采用其用于嵌入式機(jī)器人運行狀態(tài)的監(jiān)控。如圖3所示為Zabbix的系統(tǒng)架構(gòu)圖。
圖3 Zabbix架構(gòu)圖
1.2Zabbix-server安裝與數(shù)據(jù)庫配置
Zabbix系統(tǒng)依賴于Linux操作系統(tǒng)(本文中采用Windows機(jī)器上Linux虛擬機(jī)的形式),以及Apache、php、mysql等軟件,分別用于Zabbix的Web端顯示以及監(jiān)控數(shù)據(jù)的存儲。在上述軟件環(huán)境中進(jìn)行Zabbix-server的源碼編譯與安裝[3]。
本文采用的監(jiān)控系統(tǒng)數(shù)據(jù)庫為mysql數(shù)據(jù)庫,由于當(dāng)使用root用戶啟動Zabbix進(jìn)程時,系統(tǒng)會自動切換到Zabbix用戶,所以需要在Linux系統(tǒng)中添加一個Zabbix用戶組以及Zabbix用戶。登錄數(shù)據(jù)庫創(chuàng)建Zabbix用戶,并且賦予權(quán)限;創(chuàng)建名為Zabbix的數(shù)據(jù)庫,數(shù)據(jù)庫采用UTF-8的編碼格式;在Zabbix-server端的服務(wù)器上的MySQL數(shù)據(jù)庫中創(chuàng)建Zabbix用戶,并設(shè)置Zabbix用戶的對應(yīng)密碼;以Zabbix用戶登錄MySQL后,使用Zabbix源碼包中的schema.sql、images.sql、data.sql對Zabbix庫進(jìn)行初始化操作。完成數(shù)據(jù)庫配置后,在Zabbix-server.conf文件中修改對應(yīng)數(shù)據(jù)庫信息的配置項。Windows機(jī)器在瀏覽器中輸入虛擬機(jī)IP完成Zabbix登錄后,Zabbix部分顯示界面如圖4所示。
圖4 Zabbix Web操作界面
2.1Khepera IV機(jī)器人簡介
Khepera IV是一款高端桌面機(jī)器人。其周身設(shè)置有8個紅外傳感器,用于感知距離、環(huán)境光線或者測量障礙物,范圍從2 mm~250 mm,每個傳感器間隔45°。同時配有5個超聲波傳感器(左右各2個,正前方1個),用于近距離探測,范圍從250 mm~2 500 mm。正前方有1個彩色攝像頭。此外還有三軸陀螺儀、三軸加速度計等傳感器、直流有刷電機(jī)以及一些開源軟件,使人能夠創(chuàng)建復(fù)雜的行為。圖5所示為Khepera IV機(jī)器人的三視圖。
部分組成點:1.發(fā)光二極管;2.串行線(S)連接器;3.復(fù)位按鈕;4.編碼輪來選擇運行模式;5.紅外線接近傳感器;6.電池充電器插孔;7.開關(guān)電池開關(guān)。圖5 Khepera IV機(jī)器人三視圖
2.2機(jī)器人運行狀態(tài)參數(shù)
Khepera IV機(jī)器人需要在Linux環(huán)境下進(jìn)行代碼編譯,其目前能夠支持的功能有行進(jìn)間避障以及定點移動等。Khepera IV機(jī)器人通過自帶的超聲波傳感器和紅外傳感器進(jìn)行測距,能夠探知與障礙物的距離。機(jī)器人的三種控制方式包括:速度控制、位置控制以及空閑模式。速度值由機(jī)器人的異步電機(jī)所控制,異步電機(jī)的轉(zhuǎn)速采用脈寬調(diào)制(PMW),而機(jī)器人的位置則通過對編碼器進(jìn)行脈沖計數(shù)來記錄經(jīng)過的距離。綜上所述,機(jī)器人的運行狀態(tài)參數(shù)包括:速度、位置、與障礙物的距離、電池的使用情況、CPU負(fù)載程度等。
2.3數(shù)據(jù)采集與通信
2.3.1SSH協(xié)議簡介
SSH(Secure Shell)協(xié)議主要用于在非安全的網(wǎng)絡(luò)環(huán)境中進(jìn)行安全的遠(yuǎn)程登錄和其他網(wǎng)絡(luò)服務(wù)[4]。與其他非安全性的網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議FTP、Telnet等不同,SSH協(xié)議提供了一套基于公鑰與私鑰的認(rèn)證系統(tǒng),用于服務(wù)器的遠(yuǎn)程登錄。
SSH協(xié)議結(jié)構(gòu)包括傳輸層協(xié)議、用戶認(rèn)證層協(xié)議、連接層協(xié)議。基于上述體系結(jié)構(gòu)以及SSH協(xié)議成熟的密鑰體系,SSH的連接建立過程為:
(1)協(xié)議版本協(xié)商
首先需要統(tǒng)一兩個連接方的協(xié)議版本以及軟件版本。此過程基于TCP協(xié)議,由發(fā)出連接請求方打開22號端口,等待被請求方的連接,完成TCP連接后,由請求方發(fā)出TCP請求,用于統(tǒng)一協(xié)議版本等,被請求方響應(yīng)TCP請求,返回協(xié)議版本號等。
(2)加密算法統(tǒng)一
協(xié)議版本統(tǒng)一后需要進(jìn)行加密算法的確認(rèn)與統(tǒng)一,雙方將自己支持的公鑰算法列表、加密算法列表發(fā)送給對方,雙方通過DH交換算法協(xié)商出統(tǒng)一的算法列表,用于會話加密。
(3)用戶認(rèn)證
由請求方發(fā)送本方的用戶名以及認(rèn)證方法等作為報文內(nèi)容發(fā)送給被請求方,被請求方使用該認(rèn)證方法進(jìn)行認(rèn)證,若認(rèn)證失敗,則返回失敗內(nèi)容進(jìn)行再次認(rèn)證,直到認(rèn)證成功或者認(rèn)證超時。
(4)會話請求與交互
完成用戶認(rèn)證與請求方的會話請求后,建立SSH連接的雙方可以在加密模式下進(jìn)行數(shù)據(jù)傳輸。
2.3.2數(shù)據(jù)通信的實現(xiàn)
通過在機(jī)器人操作系統(tǒng)中設(shè)置基于本地路由器的WiFi模式,采用secureCRT通過SSH協(xié)議登錄到機(jī)器人操作系統(tǒng),完成由機(jī)器人運行代碼保存在機(jī)器人操作系統(tǒng)上的機(jī)器數(shù)據(jù)的傳輸。
由于機(jī)器人的操作系統(tǒng)不支持Zabbix-agent端的安裝,所以無法直接將運行數(shù)據(jù)傳遞給Zabbix-server端,在機(jī)器人的操作系統(tǒng)上編寫代碼,使用sz下載命令將機(jī)器人的運行數(shù)據(jù)下載到本地的Windows機(jī)器上,采用Linux系統(tǒng)的crontab定時任務(wù),定時執(zhí)行sz下載命令,將機(jī)器人運行狀態(tài)文件從遠(yuǎn)程登錄終端定時下載到監(jiān)控客戶端,并且更新監(jiān)控客戶端上已有的機(jī)器人運行狀態(tài)數(shù)據(jù)文件。通過以上方法完成機(jī)器人的數(shù)據(jù)采集以及數(shù)據(jù)通信。
圖6 Zabbix添加監(jiān)控項流程圖
在完成了監(jiān)控系統(tǒng)的搭建以及數(shù)據(jù)的采集和傳輸后,需要將傳輸?shù)奖镜豔indows機(jī)器上的運行數(shù)據(jù)作為監(jiān)控項傳遞給Windows機(jī)器上的作為Zabbix-server端的Linux虛擬機(jī),以實施監(jiān)控。采用Zabbix-agent數(shù)據(jù)通信方式對Windows機(jī)器采集到的機(jī)器人運行數(shù)據(jù)進(jìn)行監(jiān)控。由于Zabbix-server端所在的虛擬機(jī)與Zabbix-agent所在的Windows機(jī)器處在同一網(wǎng)段下,所以server端與agent可以基于TCP/IP協(xié)議進(jìn)行數(shù)據(jù)交互。完成在Windows機(jī)器上Zabbix-agent端的安裝與啟動后,在server端的Web頁面添加監(jiān)控,在Web端的configuration下的host中選擇Create host,創(chuàng)建被監(jiān)控主機(jī),IP地址選擇本地的Windows機(jī)器IP地址,選擇剛創(chuàng)建的監(jiān)控主機(jī)中的item項,創(chuàng)建監(jiān)控項。Zabbix中添加監(jiān)控的流程如圖6所示。
表1所示為監(jiān)控項電池余量的創(chuàng)建實例。
表1 定義一個監(jiān)控項的創(chuàng)建實例
需要在Zabbix_agentd.conf文件中配置特定腳本代碼實現(xiàn)對監(jiān)控客戶端自定義監(jiān)控項的數(shù)據(jù)監(jiān)控,配置如下:
UserParameter=robot[*]
C:Python26python
C:UsersAdministratorDesktop obot.py $1
其中,robot[*]代表監(jiān)控項名稱,*表示能夠傳入任意參數(shù)。由于機(jī)器人的運行狀態(tài)數(shù)據(jù)以鍵值對的形式保存在本地,采用python腳本以正則匹配的方式讀取各項的值,返回給server端,其中$1為傳入的參數(shù)。部分腳本代碼如下:
import os
import sys
import re
stat = sys.argv[1]
for i in open('C:\Users\Administrator\Desktop\robot.txt','r'):
i=i.replace(' ','')
y=re.search(stat,i)
if y:
result=i.split(':')[1]
print result
sys.exit()
else:
continue
表2所示為機(jī)器人在某一時刻運行狀態(tài)的數(shù)據(jù)及說明。
表2 定義機(jī)器運行參數(shù)
4.1機(jī)器人各個運行參數(shù)的監(jiān)控顯示
機(jī)器人運行了20 min左右,各個參數(shù)的監(jiān)控數(shù)據(jù)如圖7~圖10。
圖7 機(jī)器人的電池余量
圖8 機(jī)器人右輪速度
圖9 與左邊障礙物的距離
圖10 機(jī)器人右輪行駛總里程
4.2監(jiān)控結(jié)果分析
本文測試選取了監(jiān)控項中最具代表性的4項,即機(jī)器人的電池余量、機(jī)器人右輪的行駛速度、與左邊方向的障礙物距離以及機(jī)器人右輪行駛的總里程數(shù)。其中電池余量隨著機(jī)器人的運行顯示逐漸減少的趨勢;車輪的速度由于行駛過程中會出現(xiàn)避障、轉(zhuǎn)彎等運行方式,所以速度呈隨機(jī)性分布,但變化范圍不大;由于機(jī)器人的初始位置處于障礙物中,所以超聲波傳感器探測的距離值較小,此時的速度也較小;右輪的總里程數(shù)是由機(jī)器人內(nèi)部的編碼器脈沖計數(shù)所統(tǒng)計,表示的是機(jī)器人從初始狀態(tài)開始的行駛距離,所以呈遞增趨勢。監(jiān)控數(shù)據(jù)每1 min刷新一次,實時性高,與實際情況相符,達(dá)到了監(jiān)控預(yù)期效果。
自動化、智能化已經(jīng)滲透到了各個領(lǐng)域,監(jiān)控系統(tǒng)作為自動化的一雙眼睛,可以第一時間發(fā)現(xiàn)故障,告知相關(guān)工作者。本文采用傳統(tǒng)的網(wǎng)絡(luò)監(jiān)控軟件Zabbix實現(xiàn)對可移動機(jī)器人的運行狀態(tài)的數(shù)據(jù)監(jiān)控,通過良好的數(shù)據(jù)圖表顯示以完成對機(jī)器人性能的監(jiān)控,達(dá)到對機(jī)器人透明、高效的使用。本文提出的方法可以移植到具有操作系統(tǒng)的黑盒型智能設(shè)備、工業(yè)機(jī)器,還可以集中監(jiān)控機(jī)器人集群,對于高效、快速地定位故障、排除故障,提高系統(tǒng)性能具有重要的意義。
[1] 劉磊.工業(yè)機(jī)器人遠(yuǎn)程診斷服務(wù)系統(tǒng)的設(shè)計開發(fā)[D].大連:大連理工大學(xué),2014.
[2] 張朝陽. 利用Zabbix進(jìn)行系統(tǒng)和網(wǎng)絡(luò)管理[J].計算機(jī)時代,2008(10):19-22.
[3] 姚仁捷.Zabbix監(jiān)控系統(tǒng)深度實踐[M].北京:電子工業(yè)出版社,2014.
[4] 張國防. 基于SSH協(xié)議的Linux遠(yuǎn)程管理[J].計算機(jī)安全,2014(12):37-39.
Running state monitoring system of embedded robot based on Zabbix
Zou Zijing1,2,Qi Jie1,2,Zhang Jiaheng1,2
(1.School of Information Science and Technology, Donghua University, Shanghai 201620, China; 2.Engineering Research Center of Digitized Textile and Fashion Technology, Ministry of Education, Donghua University, Shanghai 201620, China)
In this paper, we used the opensource software Zabbix as a monitoring platform, and the embedded robot as the monitored object, developed the monitoring system of the state of embedded robot which based on the wireless communication. The monitoring system of embedded robot state is composed of embedded robot, monitor server, monitor client, remote login terminal, and the method of data acquisition and data transmission which based on given code. The monitoring system of embedded robot can be used to monitor the state of the robot's battery, speed and distance from obstacles.
embedded robot; Zabbix; monitoring; secureCRT
TP399;TP242.6
A
10.19358/j.issn.1674- 7720.2016.15.024
2016-04-14)
鄒子敬(1992-),男,碩士,主要研究方向:多智能體協(xié)同控制與優(yōu)化。
齊潔(1978-),通信作者,女,博士,副教授,主要研究方向:多智能體協(xié)同控制與優(yōu)化。E-mail:qijie@dhu.edu.cn。
張嘉衡(1992-),男,碩士,主要研究方向:多智能體協(xié)同控制與優(yōu)化。
引用格式:鄒子敬,齊潔,張嘉衡. 基于Zabbix的嵌入式機(jī)器人運行狀態(tài)監(jiān)控系統(tǒng)[J].微型機(jī)與應(yīng)用,2016,35(15):82-85.