普 邑,楊 哲,王新勇
(1.鄭州宇通客車股份有限公司,鄭州 450061;2.河南科技大學(xué),洛陽 471023)
隨著全民健身理念的持續(xù)普及,體育鍛煉逐漸走進大眾的生活。在眾多體育運動中,乒乓球運動以其時尚、觀賞性高的特點被大眾普遍認(rèn)可。同時乒乓球作為一項深受大眾喜歡的體育運動也越來越普及。面對訓(xùn)練結(jié)束后散落一地的乒乓球,如何快速高效的拾取是個很令人頭疼的問題。人工的方法不外乎有雇傭球童和運動員自行拾取兩種方法,但前者的費用較高,而后者對運動員的體能又是更多地消耗。為此,迫切需要開發(fā)一種能夠自動撿取乒乓球的機器人。
OpenMV[1]是一個開源、低成本、功能強大的機器視覺模塊,它以STM32為核心,集成了高性能攝像頭芯片,在小巧的硬件模塊上,可用C語言高效地實現(xiàn)了核心機器視覺算法,并提供了Python編程接口,為開發(fā)應(yīng)用人員提供了極大的方便。近年來,不少開發(fā)人員使用OpenMV平臺在目標(biāo)跟蹤[2]、智能小車[3,4]、尋的賽車[5]、撿網(wǎng)球[6]等系統(tǒng)中應(yīng)用,取得了很好的效果。在對圖像的處理方面,Lab色彩模式[7]越來越受到人們的青睞。該模式是由國際照明委員會于1976年提出的,在表述顏色上也分為三個通道:明度通道L(Luminosity)和兩個顏色通道a和b。L通道表示明度從暗到亮的變化,a通道表示從深綠色到灰色再到亮粉紅色的過渡,b通道表示從亮藍色到灰色再到黃色的過渡。因此,Lab是基于人對顏色的感覺,Lab中的數(shù)值描述正常視力的人能夠看到的所有顏色,它描述的是顏色的顯示方式,而不是設(shè)備生成顏色所需的特定色料的數(shù)量,所以Lab被視為與設(shè)備無關(guān)的顏色模型。顏色色彩管理系統(tǒng)使用Lab作為色標(biāo),以將顏色從一個色彩空間轉(zhuǎn)換到另一個色彩空間。
本文基于OpenMV嵌入式機器視覺平臺,對從攝像頭采集的圖像,采用Lab色彩模型提取顏色特征,設(shè)計一種全自動撿球機器人系統(tǒng)。本設(shè)計實現(xiàn)的功能包括:機器人全自動尋找并定位小球,運動控制平臺移動到小球附近,利用滾筒式撿球機構(gòu)回收小球。該系統(tǒng)可取代人工撿球,以解放人力勞動。
基于OpenMV的撿球機器人融合交叉了自動控制、現(xiàn)代無線通訊、圖像識別處理、傳感器等多種技術(shù),如圖1所示,其主要由識別定位小球的圖像處理平臺和控制機器人移動的運動控制平臺以及電源模塊三大部分組成。
圖像處理平臺主要由STM32主控制器、OV7725攝像頭、串口硬件電路等組成,主要負(fù)責(zé)尋找視野范圍內(nèi)特定顏色和大小的小球,并通過串口及時向運動控制平臺發(fā)送小球的位置和距離信息。運動控制平臺負(fù)責(zé)解析圖像處理平臺發(fā)送的小球位置數(shù)據(jù)信息,進一步規(guī)劃機器人的運動路徑,并控制機器人運動到小球附近,最后機器人通過滾筒式撿球機構(gòu)回收小球。電源模塊主要由MP2480DN和AMS1117降壓芯片組成,用于提供24V、5V和3.3V三種不同的電壓。同時運動控制平臺還提供無線遙控功能,便于在光線環(huán)境復(fù)雜的情況下手動遙控機器人進行撿球。
圖1 撿球機器人系統(tǒng)結(jié)構(gòu)圖
圖2所示是滾筒式撿球器,當(dāng)滾筒在地面滾動時即可輕易將乒乓球壓入撿球器內(nèi)。這種方案的優(yōu)點是容錯性好,噪音很小,撿球效率較高,結(jié)構(gòu)簡便且適合輪式機器人使用。
圖2 滾筒式撿球機構(gòu)
撿球機器人的硬件部分主要分為電源、圖像處理平臺和運動控制平臺三大部分,電源部分主要包括電池和電壓轉(zhuǎn)換電路;圖像處理平臺包括STM32F765微處理器、OV7725攝像頭和LCD顯示屏;運動控制平臺包括STM32F405微處理器、紅外光電傳感器、RM35直流無刷電機及其驅(qū)動和滾筒式撿球機構(gòu)。具體結(jié)構(gòu)組成如圖3所示。
圖3 控制系統(tǒng)結(jié)構(gòu)
根據(jù)MP2482DN手冊提供的典型應(yīng)用電路,我們只需計算調(diào)整電阻R1和R2即可得到不同的輸出電壓,輸出電壓與電阻R1和R2的關(guān)系如式(1)所示:
(1)
系統(tǒng)中需要的輸出電壓為5V,同時電阻精度有限,所以選擇阻值較大的電阻進行配比,在這里選取的R1為124K,R2為23.7K。所設(shè)計的降壓電路原理圖如圖4所示。
圖4 24V-5V降壓電路原理圖
基于OpenMV撿球機器人的軟件總體流程圖如圖5所示,首先分別進行圖像處理平臺和運動控制平臺的硬件初始化,初始化完成之后機器人先進入巡航模式,如果在攝像頭視野內(nèi)發(fā)現(xiàn)目標(biāo)小球,立即計算其位置信息并通過串口打包發(fā)送到運動控制平臺。而運動控制平臺在初始化完成后便等待圖像處理平臺數(shù)據(jù)的來臨,一旦接收到串口發(fā)送來的數(shù)據(jù),立即開始解析串口數(shù)據(jù)包得到小球的位置信息,隨后控制機器人運動到小球附近。機器人移動到規(guī)定距離后,機器人的撿球裝置開始工作,進行撿球,而且撿球裝置可以同時收集多個目標(biāo)球,容錯性很好。
圖5 軟件總體流程圖
在顏色識別的過程中,將彩色格式轉(zhuǎn)換為Lab顏色空間模型,通過設(shè)置L,a,b三者的閾值來進行顏色追蹤的。閾值的范圍決定了可識別物體的精度,一般來說,范圍越小,可識別出來的物體就越精確。閾值范圍越小,目標(biāo)物體在進行識別的過程中也會造成目標(biāo)物體識別大小上的損失,甚至可能造成識別不出來目標(biāo)物體,所以閾值的范圍選取是十分重要的。Lab顏色模型不僅可以表示RGB顏色模型中的所有顏色,而且還能表現(xiàn)它們不能表現(xiàn)的色彩。它使用L、a、b三個通道即亮度和a、b兩個基本的要素來描述顏色,反映了人類視覺的生理特征。我們使用的是OpenMV IDE中的Threshold Editor工具進行閾值調(diào)整,閾值調(diào)整好以后的效果圖如圖6所示。
圖6 顏色閾值調(diào)整
運動控制平臺開機后首先進行運動控制平臺的硬件初始化,初始化完成之后機器人開始進行巡航。當(dāng)紅外光電傳感器檢測到前方有障礙時,機器人會自動進入避障模式躲避障礙[8],直到前方障礙消失,機器人繼續(xù)進行巡航。
運動控制平臺接收到圖像處理平臺發(fā)來的串口數(shù)據(jù)后,開始進行串口數(shù)據(jù)解析并驗證本次數(shù)據(jù)是否有效,如果解析所得的數(shù)據(jù)有效時,運動控制平臺通過控制電機轉(zhuǎn)動從而達到控制機器人運動的目的。當(dāng)攝像頭視野內(nèi)沒有小球存在時,機器人再次進入巡航模式進行巡航。
RM3508直流無刷電機的調(diào)速過程如下:首先進行C620電調(diào)參數(shù)初始化,設(shè)置C620電調(diào)為CAN總線指令控制模式,通過對C620發(fā)送調(diào)速指令,RM3508電機開始開環(huán)運行。然后再通過CAN總線指令讀取回RM3508電機編碼器反饋的速度值,根據(jù)開環(huán)給定的速度值和編碼器反饋的速度值開始進行PID閉環(huán)調(diào)節(jié)。由于單片機性能有限,我們選取運算較快增量式PID算法進行速度調(diào)節(jié)。
串口通信過程如下:當(dāng)串口接收到數(shù)據(jù)包起始字節(jié)后,便開始本幀數(shù)據(jù)的傳送,直到接收數(shù)據(jù)包到達指定長度后結(jié)束本次數(shù)據(jù)包接收,開始進行數(shù)據(jù)校驗。校驗的過程以求取校驗和為主要校驗方式,將接收到的有效數(shù)據(jù)進行累加和對比,如校驗通過,則認(rèn)為本次數(shù)據(jù)傳輸有效;如果校驗失敗,則認(rèn)為本次數(shù)據(jù)傳輸無效,丟棄本次接收的數(shù)據(jù)包。
本文闡述的基于OpenMV的撿球機器人,通過OpenMV圖像處理平臺和運動控制平臺的配合實現(xiàn)了機器人全自動自主導(dǎo)航撿球、避障等功能。通過提取圖像中小球的Lab顏色特征尋找并定位小球,可以在原有人工撿球的基礎(chǔ)上提高撿球效率,使撿球工作不再麻煩。該系統(tǒng)操作簡單,只需打開電源將其放入目標(biāo)區(qū)域即可,用簡便的撿球方式使撿球工作不再費時費力。