關(guān)鍵詞: 雙輪機(jī)器人 消防 圖像識別 軌道交通
中圖分類號: TU998.1;TP242 文獻(xiàn)標(biāo)識碼: A 文章編號: 1672-3791(2023)16-0074-04
在軌道交通的消防安全領(lǐng)域中,消防機(jī)器人除了應(yīng)用于火災(zāi)撲救外,更多的還是對各類消防重點(diǎn)隱患場所的巡邏和檢查,以及對各類易引發(fā)消防安全事故的突發(fā)、異常行為進(jìn)行及時(shí)監(jiān)控,特別是在客流量集中、重點(diǎn)管控、重點(diǎn)巡查的場所,如設(shè)備間、變電站、客流通道等地方[1]。這就需要消防機(jī)器人能夠基于機(jī)器視覺技術(shù)或其他傳感器技術(shù)對發(fā)生異常行為和現(xiàn)象進(jìn)行圖像采集、分析、識別和判斷,然后進(jìn)行預(yù)警。雙輪機(jī)器人具有靈活小巧、移動(dòng)迅速的特點(diǎn),適用于消防巡邏或偵察作業(yè)[2],本文主要是對其運(yùn)動(dòng)平衡原理、硬件結(jié)構(gòu)和圖像識別技術(shù)應(yīng)用進(jìn)行了分析和探索。
1 雙輪消防機(jī)器人平衡原理
雙輪消防機(jī)器人是在左、右兩個(gè)電機(jī)驅(qū)動(dòng)下,實(shí)現(xiàn)行走機(jī)構(gòu)不傾倒并能平穩(wěn)直立行走的一種移動(dòng)式機(jī)器人。雙輪消防機(jī)器人在外力的推拉下,它的行走機(jī)構(gòu)仍能保持不傾覆[3]。與三輪行走機(jī)構(gòu)、四輪行走機(jī)構(gòu)不同,雙輪行走機(jī)構(gòu)只是靠雙輪進(jìn)行支撐,一般情況下容易發(fā)生傾斜,從而導(dǎo)致傾覆。為了行走機(jī)構(gòu)的兩個(gè)驅(qū)動(dòng)輪時(shí)刻保持平衡,可以采用驅(qū)動(dòng)輪來回移動(dòng)的方式來抵消行走機(jī)構(gòu)的傾斜角度與傾斜角速度,這樣可以達(dá)到保持行走機(jī)構(gòu)直立而不傾倒的效果。圖1 是雙輪移動(dòng)平衡原理圖,且傾斜角度和角速度是雙輪消防機(jī)器人保持平衡移動(dòng)的關(guān)鍵[3]。
雙輪消防機(jī)器人采用負(fù)反饋機(jī)制來實(shí)現(xiàn)對傾斜角度和角速度的控制,從而達(dá)到運(yùn)動(dòng)平衡,以實(shí)現(xiàn)行走控制。雙輪消防機(jī)器人行走機(jī)構(gòu)采用左、右兩個(gè)輪子接觸地面,車體的傾斜只會(huì)發(fā)生在輪子滾動(dòng)的方向上,輪子的轉(zhuǎn)動(dòng)控制得當(dāng),就能夠抵消行走機(jī)構(gòu)在一個(gè)方向上傾斜的趨勢,從而達(dá)到車體平衡[3]。
根據(jù)此原理,機(jī)器人傾角和傾角速度數(shù)據(jù)的采集是控制機(jī)器人直立行走的關(guān)鍵。在硬件設(shè)計(jì)中,采用集成傳感器陀螺儀采集行走機(jī)構(gòu)的傾角和傾角速度等數(shù)據(jù)[4],并通過軟件程序控制調(diào)整機(jī)器人車輪的加速度,從而消除行走機(jī)構(gòu)的傾角。
2 雙輪消防巡邏機(jī)器人功能模塊設(shè)計(jì)
雙輪消防機(jī)器人其具有響應(yīng)速度快、靈活程度高和復(fù)雜地形的通過能力強(qiáng)的優(yōu)勢。因其配備足式結(jié)構(gòu),使其既可以充分發(fā)揮輪式移動(dòng)的速度優(yōu)勢,又可以通過彈跳實(shí)現(xiàn)越障,保持了足式機(jī)器人本身的機(jī)動(dòng)越障優(yōu)勢,還能做到整體動(dòng)作靈活、跳躍更為敏捷。雙輪消防機(jī)器人的構(gòu)型是目前消防機(jī)器人研究的熱門,結(jié)合了輪、足兩者優(yōu)勢的一種消防移動(dòng)機(jī)器人構(gòu)型。雙輪消防機(jī)器人適用于軌道交通車站、設(shè)備間、車廂等場所,可以應(yīng)用于消防安全巡檢、檢查等應(yīng)用場景。
雙輪消防巡邏機(jī)器人的功能模塊設(shè)計(jì)如圖2 所示。其整體功能模塊由主控機(jī)構(gòu)、行走機(jī)構(gòu)和巡查機(jī)構(gòu)這3 部分組成[5]。其中,主控機(jī)構(gòu)包括主控板、通信裝置和電源裝置[5],是機(jī)器人平臺的主要控制部分;行走機(jī)構(gòu)包括拓展控制板和兩組驅(qū)動(dòng)輪(含輪胎),是機(jī)器人平臺的主要行走部分;巡查機(jī)構(gòu)是機(jī)器人平臺執(zhí)行消防安全作業(yè)的主要設(shè)備,包括攝像裝置、舵機(jī)云臺等,用于消防安全巡邏作業(yè),并可以根據(jù)需要安裝其他的傳感器裝置,如超聲波、溫濕度、氣體、煙霧、火焰等傳感器。
3 雙輪消防巡邏機(jī)器人硬件結(jié)構(gòu)設(shè)計(jì)
雙輪消防巡邏機(jī)器人的硬件結(jié)構(gòu)包括主控板、拓展控制板、攝像裝置、舵機(jī)云臺、通信裝置、電源裝置、機(jī)器人底板等部分,其硬件與組裝效果具體見圖3。其中主控板為可編程控制器,是機(jī)器人平臺的中央控制部分;拓展控制板在主控板上方,與主控板連接在一起,是機(jī)器人平臺行走機(jī)構(gòu)移動(dòng)驅(qū)動(dòng)的主要控制部分,內(nèi)置陀螺儀等測量裝置,用于機(jī)器人雙輪平衡移動(dòng)的測量控制,并為主控板提供了更多拓展接口,以便能夠連接不同的傳感器裝置;拓展控制板下方連接著兩組驅(qū)動(dòng)輪裝置,驅(qū)動(dòng)輪裝置是行走機(jī)構(gòu)移動(dòng)的主要執(zhí)行部分,安裝有帶橡膠釘?shù)姆来蚧喬?,由拓展控制板?qū)動(dòng)控制執(zhí)行行走功能;通信裝置與拓展控制板通過USB接口連接,為主控板和拓展控制板提供無線Wi-Fi 通信功能,用于傳送數(shù)據(jù)[6];底板是機(jī)器人平臺行走機(jī)構(gòu)的連接支架,下方連接著驅(qū)動(dòng)輪并安裝有電源裝置,上方為主控板、拓展控制板、通信裝置、舵機(jī)云臺和攝像裝置提供了安裝支撐;舵機(jī)云臺安裝在底板上面,設(shè)置有兩組舵機(jī),擁有兩個(gè)自由度,為攝像裝置提供左右和上下轉(zhuǎn)動(dòng)控制,增大了設(shè)置裝置的視覺空間和巡查范圍;攝像裝置是機(jī)器人主要的巡查裝備,為機(jī)器人提供了機(jī)器視覺視頻監(jiān)控功能和圖像識別功能;電源裝置位于底板下方,為機(jī)器人平臺各個(gè)部分提供充足的電壓電流。
4 軌道交通雙輪消防機(jī)器人的圖像識別應(yīng)用
利用雙輪消防機(jī)器人移動(dòng)靈活、便捷的特點(diǎn),為雙輪消防機(jī)器人增設(shè)視頻攝像裝置,通過視頻攝像頭對消防隱患區(qū)域進(jìn)行巡檢偵察,將其作為消防偵察巡邏機(jī)器人進(jìn)行使用。
軌道交通雙輪消防機(jī)器人使用Python 程序設(shè)計(jì)語言獲取視頻攝像裝置的應(yīng)用程序,以及使用圖像顏色空間模型的轉(zhuǎn)換實(shí)現(xiàn)對目標(biāo)圖像中某些顏色特征進(jìn)行查找和追蹤[7]。并實(shí)現(xiàn)在HSV 顏色模型下,通過調(diào)節(jié)顏色信息H、飽和度S、亮度V 的區(qū)間值,在機(jī)器人視覺視頻中對選定的顏色進(jìn)行追蹤標(biāo)示。
程序1 使用Python-OpenCV 應(yīng)用程序讀取機(jī)器人視頻攝像裝置的視頻數(shù)據(jù)并顯示,實(shí)現(xiàn)對視頻圖像的獲取。
#程序1:讀取機(jī)器人攝像裝置的視頻數(shù)據(jù)顯示
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print('Cannot open camera')
exit()
while True:
ret,frame = cap.read()
if not ret:
print(\"can't receive frame.\")
break
cv.imshow('frame',frame )
if cv.waitKey(20) == 27:
break
cap.release()
cv.destroyAllWindows()
5 實(shí)現(xiàn)對視頻中某一顏色的跟蹤
程序2 使用圖像顏色模型轉(zhuǎn)換來實(shí)現(xiàn)對機(jī)器人視覺視頻中某一顏色的跟蹤效果。
#程序2:對視覺視頻中某一顏色的識別跟蹤
import cv2 as c_cv
import numpy as c_np
def trace_color_demo():
capture = c_cv.VideoCapture(0)
while True:
c_ret, c_frame = capture.read()
if c_ret == False:
break
c_hsv = c_cv.cvtColor(c_frame, c_cv.COLOR_BGR2 HSV)
c_lower_hsv = c_np.array([0, 0, 221])
c_upper_hsv = c_np.array([180, 30, 255])
c_mask = cv. inRange(c_hsv, c_lower_hsv, c_upper_hsv)
c_cv.imshow(\"video\", c_frame)
c_cv.imshow(\"mask\", c_mask)
if c_cv.waitKey(20) == 27:
break
trace_color_demo()
cv.waitKey(0)
cv.destroyAllWindows()
圖4 是實(shí)現(xiàn)對視頻圖像中某一顏色的識別圖。
6 實(shí)現(xiàn)對圖像中多種顏色的捕捉分析
程序3 通過圖像顏色模型轉(zhuǎn)換實(shí)現(xiàn)對視覺視頻圖像中多種顏色的捕捉分析效果。
#程序3:對視覺視頻中多個(gè)顏色的捕捉識別
import numpy as c_np
import cv2 as c_cv
c_font = c_cv.FONT_HERSHEY_SIMPLEX
c_lower_red = c_np.array([0, 127, 128])
c_higher_red = c_np.array([10, 255, 255])
c_lower_green = c_np.array([35, 110, 106])
c_higher_green = c_np.array([77, 255, 255])
c_cap = c_cv.VideoCapture(0)
if (c_cap.isOpened()):
while (True):
c_ret, c_frame = c_cap.read()
c_img_hsv = c_cv. cvtColor(c_frame, c_cv. COLOR_BGR2HSV)
c_mask_red = c_cv. inRange(c_img_hsv, c_lower_red, c_higher_red)
c_mask_green = c_cv. inRange(c_img_hsv, c_lower_green, c_higher_green)
c_mask_green = c_cv.medianBlur(c_mask_green, 7)
c_mask_red = c_cv.medianBlur(c_mask_red, 7)
c_mask = c_cv. bitwise_or(c_mask_green, c_mask_red)
c_image1, c_cnts1, c_hierarchy1 = c_cv. findContours
(mask_red, c_cv. RETR_EXTERNAL, c_cv. CHAIN_APPROX_NONE)
c_image2, c_cnts3, c_hierarchy3 = c_cv.findContours
(c_mask_green, c_cv. RETR_EXTERNAL, c_cv. CHAIN_APPROX_NONE)
for cnt in c_cnts1:
(x, y, w, h) = cv.boundingRect(cnt)
c_cv. rectangle(c_frame, (x, y), (x + w, y + h), (0, 0,255), 2)
c_cv.putText(c_frame, 'red', (x, y - 5), font, 0.7, (0, 0,255), 2)
for cnt in c_cnts3:
(x, y, w, h) = c_cv.boundingRect(cnt)
c_cv.rectangle(c_frame, (x, y), (x + w, y + h), (0, 255,0), 2)
c_cv.putText(c_frame, 'green', (x, y - 5), c_font, 0.7,(0, 255, 0), 2)
c_cv.imshow('frame', frame)
c_k = c_cv.waitKey(20) amp; 0xFF
if c_k == 27:
break
c_cv.waitKey(0)
c_cv.destroyAllWindows()
圖5 是實(shí)現(xiàn)對圖像中多種顏色的分析圖。
從圖5 可以看出,通過顏色空間模型變換,可以實(shí)現(xiàn)視頻圖像獲取多個(gè)目標(biāo)物體的多種顏色捕捉。
7 結(jié)語
通過對雙輪機(jī)器人的平衡原理、運(yùn)動(dòng)模型及結(jié)構(gòu)分析,并建立運(yùn)動(dòng)學(xué)方程,同時(shí)通過程序設(shè)計(jì),通過顏色空間模型變換,實(shí)現(xiàn)了視頻圖像獲取多個(gè)目標(biāo)物體的多種顏色捕捉。