張?jiān)娚?,韓 劍,李金鵬,劉 玲,李宏輝
(桂林電子科技大學(xué)信息科技學(xué)院,廣西 桂林 541004)
隨著對(duì)機(jī)器人智能本質(zhì)的深入理解,機(jī)器人技術(shù)開始滲透到人類活動(dòng)的各個(gè)領(lǐng)域。服務(wù)機(jī)器人在國(guó)內(nèi)外的研究中有著廣泛的應(yīng)用,特別是在維護(hù)、修理、運(yùn)輸、清潔、結(jié)構(gòu)安全等領(lǐng)域,本文研制的乒乓球拾撿機(jī)器人是自主設(shè)計(jì)的移動(dòng)式乒乓球服務(wù)機(jī)器人。
在乒乓球室內(nèi),在訓(xùn)練或比賽期間,會(huì)有許多乒乓球出界或無效。如果采用人工撿球,工作量大且效率低下。收集乒乓球的機(jī)器人可用于乒乓球場(chǎng),它能迅速找到球的位置并進(jìn)行拾撿,這樣可以擺脫一些繁瑣的工作,大大減輕工作強(qiáng)度,提高人們的生活質(zhì)量。目前,國(guó)內(nèi)大多數(shù)乒乓球培訓(xùn)中心仍然是人工撿球的,市場(chǎng)上的一些自動(dòng)乒乓球拾球機(jī)器人由于結(jié)構(gòu)復(fù)雜、成本較高,未能被廣泛使用。
乒乓球拾撿機(jī)器人以樹莓派裝載Linux 系統(tǒng),并搭建ROS 機(jī)器人操作平臺(tái)作為機(jī)器人的主要控制機(jī)構(gòu),同時(shí)樹莓派還搭載有激光雷達(dá)、攝像頭等傳感器以及吸球裝置。以STM32 作為機(jī)器人的移動(dòng)控制機(jī)構(gòu),搭載有陀螺儀等,可以實(shí)現(xiàn)PID 動(dòng)態(tài)調(diào)節(jié)。乒乓球拾撿機(jī)器人系統(tǒng)功能設(shè)計(jì)如圖1 所示。
圖1 乒乓球拾撿機(jī)器人系統(tǒng)功能設(shè)計(jì)框圖
在圖像處理方面,采用OpenCV 進(jìn)行圖像處理。OpenCV 的優(yōu)勢(shì)在于它擁有400 多個(gè)免費(fèi)的圖像處理功能,涵蓋了廣泛的圖像處理應(yīng)用,從圖像處理到模式識(shí)別,從靜止圖像到運(yùn)動(dòng)視頻,從二維平面到三維攝像機(jī)校準(zhǔn)和三維重建。
乒乓球識(shí)別首先要通過安裝在機(jī)器人載體身上的攝像頭進(jìn)行乒乓球圖像數(shù)據(jù)采集,利用OpenCV圖像處理對(duì)采集到的數(shù)據(jù)進(jìn)行灰度化、RGB 分離、模糊、銳化和膨脹等預(yù)處理,再利用函數(shù)進(jìn)行顏色識(shí)別,霍夫圓檢測(cè)對(duì)預(yù)處理得到的數(shù)據(jù)進(jìn)行二次處理,并且輸出結(jié)果,同時(shí)打印出在二維平面內(nèi)檢測(cè)到的乒乓球的質(zhì)心位置坐標(biāo)和半徑等數(shù)據(jù)[1-3]。乒乓球識(shí)別效果圖如圖2 所示。
圖2 乒乓球識(shí)別效果圖
系統(tǒng)的執(zhí)行機(jī)構(gòu)主要分為兩個(gè)單元:
1)單元一為支撐整個(gè)系統(tǒng)的移動(dòng)機(jī)構(gòu)。移動(dòng)單元負(fù)責(zé)整個(gè)機(jī)器人的移動(dòng)控制,通過ROS 機(jī)器人操作系統(tǒng)對(duì)里程計(jì)(機(jī)器人移動(dòng)角速度、線速度)數(shù)據(jù)進(jìn)行話題發(fā)布,STM32 通過UART 訂閱ROS 機(jī)器人操作系統(tǒng)發(fā)布的話題,對(duì)訂閱到的數(shù)據(jù)進(jìn)行解碼,最后進(jìn)行PID 算法調(diào)節(jié)。
2)單元二為乒乓球拾撿球的執(zhí)行器件。采用類似吸塵器的吸附裝置,吸附裝置有兩個(gè)小功率排氣扇。利用SolidWorks 軟件設(shè)計(jì)結(jié)構(gòu)和外殼,通過3D打印機(jī)打印實(shí)物樣品,再組裝成一個(gè)獨(dú)立的器件,使之達(dá)到一個(gè)密閉的效果,以便于吸球[4-5]。
2.3.1 二維建圖原理
SLAM(simultaneous localization and mapping),也稱為CML(Concurrent Mapping and Localization),即時(shí)定位與地圖構(gòu)建,或并發(fā)建圖與定位。占用柵格地圖的構(gòu)建主要采用粒子濾波的方法,粒子濾波是一種應(yīng)用廣泛的濾波器,可以代替高斯濾波器,它是一個(gè)非參數(shù)濾波器。粒子濾波的步驟分為初始化階段、傳遞階段、校正階段、重采樣階段、濾波階段和最終地圖生成階段。SLAM 平面二維地圖模型如圖3所示。
圖3 SLAM 平面二維地圖模型
2.3.2 導(dǎo)航基本原理
Navigation 棧是一個(gè)2D 導(dǎo)航的集合數(shù)據(jù)包,可以獲取里程信息、傳感器數(shù)據(jù)和目標(biāo)位置,并向移動(dòng)平臺(tái)發(fā)送安全的速度命令。定位過程中,機(jī)器人必須在導(dǎo)航過程中隨時(shí)確定其當(dāng)前位置,Navigation 棧中使用amcl 包來定位。路徑導(dǎo)航部分使用move_base包,move_base 可以接收機(jī)器人周圍的信息(如激光定位器掃描結(jié)果)并創(chuàng)建全局和局部同等模型,機(jī)器人可以無障礙安全地到達(dá)預(yù)定位置。move_base 的路徑規(guī)劃主要分為全局規(guī)劃和局部規(guī)劃,分別采用的是A*算法和DWA(dynamic windowapproach)算法。
隨著現(xiàn)代經(jīng)濟(jì)和社會(huì)的快速發(fā)展,對(duì)機(jī)器人的研究不斷完善和成熟,機(jī)器人技術(shù)的研究已成為現(xiàn)代自動(dòng)化時(shí)代的焦點(diǎn)和熱點(diǎn)。本項(xiàng)目中乒乓球檢測(cè)技術(shù)和乒乓球吸球設(shè)計(jì)可作為未來機(jī)器人發(fā)展的參考。在這個(gè)項(xiàng)目的基礎(chǔ)上,開發(fā)人員可以開發(fā)更多面向服務(wù)的自動(dòng)化機(jī)器人,用于協(xié)作控制和解決復(fù)雜任務(wù)。