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