萬偉豪,李子健,李國豪,張 碩,彭 程,李嘉岑
(南京工程學(xué)院自動化學(xué)院,南京 211167)
隨著經(jīng)濟(jì)的發(fā)展,環(huán)保問題仍然是建設(shè)美好社會的一大重要難題。在城市中,類似易拉罐、塑料瓶、廢紙團(tuán)等生活垃圾也時常出現(xiàn)在路面上或是水面上,此時最適宜于水陸兩棲智能清潔機(jī)器發(fā)揮作用,對路面和水面的垃圾進(jìn)行清理。過去數(shù)十年中,機(jī)器人在各個領(lǐng)域都有了較大發(fā)展,用途廣泛,智能清潔機(jī)器人在其中的發(fā)展尤為突出。智能清潔機(jī)器人本身作為一個獨(dú)立的功能模塊可運(yùn)用到其余中小型智能機(jī)器人上,因其環(huán)境適應(yīng)性強(qiáng),在水面工作可極大節(jié)省人力物力。同時,智能清潔機(jī)器人通過神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí),可智能地對不同種垃圾進(jìn)行分類和處理,解決環(huán)境問題的同時,對垃圾分類也提供了較為高效的處理手段。在此介紹一種水陸兩棲智能清潔機(jī)器人的設(shè)計(jì)方案。該型機(jī)器人具有智能避障、智能識別、自動清潔等功能,可以替代人工完成陸地和水面清潔任務(wù)。通過神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí),通過微處理器,例如樹莓派構(gòu)成下位機(jī)進(jìn)行功能實(shí)現(xiàn)。
所設(shè)計(jì)的智能清潔機(jī)器人,基本框架主要包括智能車車體框架以及內(nèi)部以樹莓派為基礎(chǔ)的Linux操作系統(tǒng),主要基于ARM 架構(gòu)搭建。使用的樹莓派型號為Raspberry 4B,其電路板實(shí)物及各部分功能如圖1 所述。樹莓派本質(zhì)是一臺嵌入式計(jì)算機(jī),設(shè)計(jì)基于這一特性,以其作為基本框架,通過編寫相關(guān)程序,來實(shí)現(xiàn)所設(shè)計(jì)智能車的視覺、目標(biāo)拾取等動作。
圖1 Raspberry 4B 電路板
在樹莓派上完成搭建64 位Linux 操作系統(tǒng)后,為完成智能車的設(shè)計(jì)目的,采用OpenCV 函數(shù)庫來實(shí)現(xiàn)部分功能。
OpenCV 函數(shù)庫主要包括Cv(實(shí)現(xiàn)計(jì)算機(jī)視覺功能和完成計(jì)算機(jī)對圖像的處理)、HighGui(包含各種簡單函數(shù)的工具包)、Calib3b 和Photo(完成攝像機(jī)的成像和安裝有關(guān)攝影計(jì)算的函數(shù)庫),以及API(增加代碼的運(yùn)算速度)等模塊。
所設(shè)計(jì)機(jī)器人的完成品是一架水陸兩棲垃圾拾取小車,在陸地及水面進(jìn)行垃圾拾取工作。小車的硬件部分主要包括車體、機(jī)械臂、控制模塊、驅(qū)動模塊、測距及測速模塊、實(shí)時定位及導(dǎo)航模塊等。
車體由水路推進(jìn)系統(tǒng)、防水外殼等組成??紤]到智能車需要在水中工作,車體需要加裝聚氨酯發(fā)泡材料來實(shí)現(xiàn)較好的耐水性和抗腐蝕性。同時安裝一對推進(jìn)螺旋槳,實(shí)現(xiàn)智能車在水中的正常運(yùn)動。在小車主體搭建完成后,需要加裝防水外殼,避免水中工作時發(fā)生芯片短路。
為了保證垃圾夾取的可靠性足夠高,選取3 自由度的機(jī)械臂來保證夾取空間范圍的廣度。機(jī)械臂的結(jié)構(gòu)設(shè)計(jì)圖如圖2 所示。
圖2 機(jī)械臂結(jié)構(gòu)圖
在機(jī)械臂前段增設(shè)一個可以旋轉(zhuǎn)的連接軸,為機(jī)械爪賦予旋轉(zhuǎn)能力,在夾取物品時即可靈活調(diào)整機(jī)械爪的角度,令接觸更貼合。機(jī)械爪夾取端帶有鋸齒,保證夾取穩(wěn)定可靠。
控制模塊以樹莓派主板為主體部分,用以完成數(shù)據(jù)分析、視覺成像、物體識別等處理任務(wù)。由于樹莓派主板的集成度較高,導(dǎo)致某些情況下主板的散熱性能較差,為了確保產(chǎn)品能夠在某些極端條件下正常工作,選擇在主板CPU、內(nèi)存芯片、USB 管理芯片上加裝三塊散熱片。本設(shè)計(jì)安裝了樹莓派4B 雙風(fēng)扇外殼,確保產(chǎn)品能夠更合理地固定在車體上,保持穩(wěn)定,同時還能確保良好的散熱效果[1]。
驅(qū)動模塊選用BTS7960B 型高壓雙路H 橋直流電機(jī)驅(qū)動芯片。該芯片能夠提供43A 電流輸出,電流輸出范圍相比較其他電機(jī)驅(qū)動模塊較大,在5.5V~27V 的范圍內(nèi)能夠輕松驅(qū)動大功率直流電機(jī)且不易發(fā)生短路。驅(qū)動模塊集成了多項(xiàng)保護(hù)機(jī)制,如過流保護(hù)、過熱保護(hù)和電路短路保護(hù)等。
BTS7960B 驅(qū)動板如圖3 所示。它的芯片內(nèi)置了兩路H 橋電路,可以實(shí)現(xiàn)正向、反向和制動等多種控制。輸入控制信號為PWM 和兩個電平信號(IN1和IN2)。該配置的響應(yīng)速度較快,工作穩(wěn)定性良好,能夠滿足大多數(shù)直流電機(jī)需要的驅(qū)動要求。另外,在過流或溫度過高時,芯片會自動停止輸出電流并發(fā)出報(bào)警信號。如果電機(jī)電路短路,芯片內(nèi)置的FS 功能會自動切斷輸出并返回故障信號。為了使該設(shè)計(jì)在某些特殊工作地形也能較為平穩(wěn)地運(yùn)行并能快速改變行駛速度,設(shè)計(jì)了測速和測量行駛里程的功能。選取可裝載在電機(jī)上的Hohner Automaton Z25M 光電編碼器測速模塊,該編碼器的體積很小,其抗壓性、耐用性及防污性都滿足工作環(huán)境的要求[2]。
圖3 BTS7960B 驅(qū)動板
為了使智能小車能夠較為準(zhǔn)確地提前預(yù)判其預(yù)設(shè)行駛道路上的行人或者障礙物,設(shè)計(jì)使用激光測距方法加以輔助。此處選取VL52L0X 型激光測距感器。該型產(chǎn)品測量障礙物以及勘測前方物體距離的精度較高。它通過四根杜邦線連接至樹莓派的GPIO口(SDA、SCL、5V、GND)。其中的5V 和GND 接口是固定連接,另外兩個接口通過在系統(tǒng)終端配置接口連接,使用相對靈活。相比其他的測距傳感器,這樣的連接方式也較為簡便。
導(dǎo)航功能設(shè)計(jì)完成后,為了使智能小車能夠準(zhǔn)確地在工作區(qū)域內(nèi)尋找并抓取垃圾或其他物品,采用RPLidar A2 激光雷達(dá)來實(shí)現(xiàn)智能小車的實(shí)時定位功能,實(shí)物如圖4 所示。該型雷達(dá)與前一代相比,精度大幅提高,能夠減少智能小車工作時的失誤,同時還可完成較大范圍的定位和導(dǎo)航,為智能小車提供更大的掃描范圍。出于經(jīng)濟(jì)性考慮,此處未選取功能相似但成本較為高昂的A3 版本。
圖4 RPLidar A2 激光雷達(dá)
針對智能小車的功能目標(biāo)進(jìn)行程序設(shè)計(jì),首先選擇最簡單的實(shí)例,利用樹莓派和OpenCV 實(shí)現(xiàn)智能小車對黃球的追蹤。
4.1.1 圖像采集與預(yù)處理
使用現(xiàn)有OpenCV 庫所提供的cv.VideoCapture來進(jìn)行攝像頭的采集。采集到圖像后,通過一系列的圖像預(yù)處理操作,例如顏色空間轉(zhuǎn)換、閾值化處理、圖像濾波等,獲取到需要的目標(biāo)圖像信息[3]。具體的實(shí)現(xiàn)方式可按照以下代碼進(jìn)行:
中華民族的偉大復(fù)興最終一定表現(xiàn)為文化復(fù)興。文化自信的提出標(biāo)志著文化復(fù)興的道路已經(jīng)鋪開,中國特色社會主義文化建設(shè)已經(jīng)踏上新的歷史征程;同時,還昭示著中國人開始致力于占據(jù)人類社會道義的制高點(diǎn),在解決好中國問題的同時,還要給世界提供中國智慧。 中國是個小世界,世界是個大中國; 前現(xiàn)代、現(xiàn)代、后現(xiàn)代時間上繼起,在中國卻空間上并存;這一具有“世情”特色的中國國情,要求中國人承擔(dān)“天降大任”的世界使命。有理由相信,曾經(jīng)長期占據(jù)人類文化制高點(diǎn)的中國,一定會重登世界之巔,為人類的文化進(jìn)步貢獻(xiàn)出中國人的智慧與力量。
4.1.2 目標(biāo)檢測與跟蹤
利用OpenCV 庫提供的cv.findContours()函數(shù)進(jìn)行目標(biāo)輪廓的提取,并通過輪廓面積、長寬比等特征判斷是否為目標(biāo)。同時,還需要使用cv.KalmanFilter來實(shí)現(xiàn)目標(biāo)跟蹤功能。具體功能實(shí)現(xiàn)可按照以下代碼進(jìn)行:
在對圖像閾值化處理的過程中,可通過更改設(shè)定數(shù)值,來實(shí)現(xiàn)智能小車對不同顏色目標(biāo)的處理[4]。
為了使智能小車根據(jù)目標(biāo)位置和方向信息生成控制信號,在小車系統(tǒng)中,可以使用PWM 調(diào)節(jié)電機(jī)速度,使用電機(jī)驅(qū)動模塊控制電機(jī)轉(zhuǎn)向[5-6]??刂菩盘柹傻膶?shí)現(xiàn)可參考以下代碼:
該部分程序?qū)崿F(xiàn)的功能是令智能小車簡單地向目標(biāo)前進(jìn),并且根據(jù)距離調(diào)節(jié)速度。對于更高級更復(fù)雜的設(shè)計(jì)目標(biāo),還需要對其進(jìn)行部分程序修改并完善圖像庫來實(shí)現(xiàn)[7]。
在實(shí)際使用場景之下,按如下步驟對智能小車的目標(biāo)完成情況進(jìn)行調(diào)試:
第一步:數(shù)據(jù)采集與圖像處理
第二步:垃圾分類
使用OpenCV 中的圖像算法進(jìn)行運(yùn)算處理。該算法在圖像特征提取、圖像采集、圖像處理與推理等方面都有非常完善的功能,可以快速準(zhǔn)確地實(shí)現(xiàn)對垃圾分類的操作。
第三步:控制與執(zhí)行
將處理后的圖像特征輸入垃圾識別算法中,并計(jì)算出所屬類別。通過編程將驅(qū)動小車的控制信號輸出到輪胎驅(qū)動系統(tǒng),使小車能夠按照要求對垃圾進(jìn)行分類運(yùn)輸。
第四步:安全性檢驗(yàn)
為確保垃圾分類小車的安全性,在程序設(shè)計(jì)中結(jié)合激光測距傳感器,使智能車能夠提前探測到前方的行人或者障礙物[8],做到安全運(yùn)轉(zhuǎn),避免不必要的事故發(fā)生。
在實(shí)際調(diào)試中智能小車對垃圾物品的攝像識別效果如圖5 所示。
圖5 垃圾物體識別效果
樹莓派是一款非常容易上手且便于攜帶的微型電腦,其預(yù)裝Linux 操作系統(tǒng)中可供安裝的函數(shù)庫類型豐富,功能強(qiáng)大。以樹莓派為基礎(chǔ)的設(shè)計(jì)水陸兩棲機(jī)器人系統(tǒng),設(shè)計(jì)上都是圍繞其自身特點(diǎn),使其發(fā)揮最大優(yōu)勢。所設(shè)計(jì)機(jī)器人的內(nèi)外部結(jié)構(gòu)及相應(yīng)的編程控制方法,均基于理論與實(shí)踐相結(jié)合的原則系統(tǒng)化地設(shè)計(jì)完成,并在實(shí)用場合驗(yàn)證了其正確性,可為未來相關(guān)研究提供一種思路。以垃圾清除智能小車為形式的產(chǎn)品研究,只是智能機(jī)器人行業(yè)探索的一小部分,而智能機(jī)器人行業(yè)本身,也必將在發(fā)展中進(jìn)一步融入現(xiàn)代工業(yè)社會,制造更多的發(fā)展機(jī)遇。