本發明涉及機器人技術,具體是一種基于圖像處理的自動識別和定位擺棋機器人。
背景技術:
目前,象棋機器人視覺已經應用到下棋過程中,但在開局擺棋過程上,由于棋子放置位置的隨意性,象棋機器人大都采用人工擺好棋子,然后才是機器人自己下棋,這樣的象棋機器人的下棋效率低,擺棋需要人為干預,不利于象棋機器人的通用性和推廣。
技術實現要素:
為此,本發明所要解決的問題是提供一種基于圖像處理的自動識別和定位擺棋機器人,該機器人結構簡單、自動化程度高,適應性強,具有廣闊的前景。
本發明的目的是這樣實現的:
一種基于圖像處理的自動識別和定位擺棋機器人,包括機械系統和與機械系統連接的視覺系統;
視覺系統包括圖像采集裝置和與該裝置連接的環形低角度LED光源;
機械系統包括傳動機構和與傳動機構連接的機器人載體;其中:
所述傳動機構由步進電機、擋板、光電傳感器和分別與步進電機連接的翻轉機構及傳送帶連接構成,步進電機帶動傳送帶運動傳送棋子;翻轉機構上設有吸嘴將棋子固定、翻轉后,落到傳送帶上重新進行傳送;擋板分別設置在傳送帶兩側,在擋板上分別設有光電傳感器,當棋子經傳送帶到達擋板中央時,光電傳感器感知棋子,并控制棋子繼續向前運動至圖像采集裝置視野范圍內,傳送帶停止運轉;
所述機器人載體包括從下至上順序連接的第一關節、第二關節、第三關節、第四關節、第五關節、第六關節和抓棋吸嘴,每個關節分別與對應的傳動機構、旋轉機構、關節電機連接。
所述旋轉機構包括能水平、垂直自由旋轉的關節轉動軸、分別與每個關節轉動軸連接的關節電機和旋轉臂,關節電機與關節電氣系統連接。
所述關節轉動軸從下至上分別為第一關節轉動軸、第二關節轉動軸、第三關節轉動軸、第四關節轉動軸、第五關節轉動軸、第六關節轉動軸,抓棋吸嘴與第六關節轉動軸連接,通過相應的關節轉動軸的轉動,控制抓棋吸嘴在三維空間內伸縮靈活并準確抓取象棋;其中:
第一關節轉動軸平行于水平面做旋轉運動,運動角度范圍為240°,最大運動速度為420°/s;
第二關節轉動軸垂直于水平面做旋轉運動,運動角度范圍為120°,最大運動速度為300°/s;
第三關節轉動軸垂直于水平面做旋轉運動,運動角度范圍為164°,最大運動速度為250°/s;
第四關節轉動軸垂直于水平面做旋轉運動,運動角度范圍為200°,最大運動速度為540°/s;
第五關節轉動軸平行于水平面做旋轉運動,運動角度范圍為120°,最大運動速度為620°/s;
第六關節轉動軸垂直于水平面做旋轉運動,運動角度范圍為360°,最大運動速度為720°/s;
所述關節電機分別與每個關節轉動軸連接,內部設置有失電制動器和減速器,由直流伺服電機驅動,分別控制每個關節轉動軸運動,其供電電源和功率分別為24v和400w,其中:減速器為諧波減速器。
所述圖像采集裝置設置在距離地面70cm的固定架上;固定架固定在傳動機構的左邊。
所述環形低角度LED光源位于圖像采集裝置正下方10cm處,所提供的正光源為紅光,使象棋表面的文字或圖案清晰,背光源使象棋的輪廓清晰。
所述傳送帶內部還設置有平行光源,用于為相機提供背光,以利于工件邊緣的識別。
本發明的工作過程如下:
整個裝置初始化完成之后,棋子落到傳動機構的傳送帶上,傳送帶載著棋子向前方移動。在擋板兩側安裝有光電傳感器,當棋子經過擋板中央時,光電傳感器會感知到棋子,控制棋子繼續向前運動至圖像采集裝置視野范圍內后,傳送帶停止運轉。在視野范圍內給予一定的正光源和背光源,圖像采集裝置獲得棋子的初始圖像。將獲得原始圖像進行灰度處理,得到棋子原始圖像的灰度圖片,根據顏色深淺區分雙方棋子,運用SIFT算法對得到的待識別圖像進行處理,識別圖像上的棋子,并對識別出的棋子進行計算出其相對圖片上的坐標,再根據圖像坐標和實際坐標的關系,將其坐標轉換成實際坐標。將計算得出的棋子實際坐標發送到終端控制計算機,終端控制計算機控制機械臂吸取并擺放棋子。棋子擺放完畢后,機械臂將回到初始位置并等待下一次識別和抓取。若棋子正面朝下,則控制機械臂抓取棋子放入翻轉機構,翻轉機構具有吸嘴,可將物料固定,并將棋子翻轉后落在傳送帶上重新進行傳送。若多個棋子同時進入到圖像采集裝置視野內,則不識別棋子,傳送帶繼續傳送并將多個棋子送出傳動機構。
所述的SIFT算法為尺度不變特征變換算法,即:是一種提取局部特征的算法,在尺度空間尋找極值點,提取位置,尺度,旋轉不變量。運用SIFT算法提取的SIFT特征點向量具有如下優點:獨特性好,信息量豐富,適用于在海量特征數據庫中進行快速、準確的匹配;多量性,即使少數的幾個物體也可以產生大量SIFT特征向量。為現有技術。
本發明的優點是:本發明利用視覺系統進行檢測,可以讓機器人自動識別要抓取棋子的位置,從而賦予了機器人運動更大的靈活性。通過在傳送帶裝置上方加裝一套圖像采集裝置來自動檢測象棋的顏色,文字,然后對獲取的圖像進行自動處理、檢測與識別,傳送帶的旁邊裝有一套機器人載體,根據視覺系統處理得到的結果吸取和擺放棋子,或者放入翻轉機構翻轉棋子,大大提高了擺棋的效率和準確性,實現了象棋的開局擺棋的自動化,突破了以往象棋機器人不能自動擺棋的缺點,不需要人為擺棋的干預,實現了真正的擺棋自動化。另外本發明是以機器人的擺放棋子為平臺,實現圖像采集、處理、識別、定位等關鍵技術的融合,可以運用于其他領域,結構簡單、自動化程度高,適應性強,具有廣闊的前景。
附圖說明
圖1為本發明整體結構連接示意圖;
圖2為機械手的結構示意圖;
圖3是本發明識別棋子的程序流程圖;
圖4是系統運作流程圖;
具體實施方式
下面結合附圖和實施例對本發明進行闡述,但不是對本發明內容的限定。
如圖1、圖2所示,本發明一種基于圖像處理的自動識別和定位擺棋機器人,包括視覺系統、機器人載體、傳動機構,其中:
視覺系統由固定在固定架1上的CCD相機2和環形低角度LED光源3構成,CCD相機2通過數據傳輸線與終端控制計算機上的數據采集卡相連接;CCD相機2設置在距離地面70cm的架子1上;固定架1固定在傳動機構的左邊;環形低角度LED光源3位于CCD相機2正下方10cm處,所提供的正光源為紅光,使象棋表面的文字或圖案清晰,背光源使象棋的輪廓清晰。
傳動機構包括支架17、步進電機4,傳送帶5,擋板7,光電傳感器6,上料口滑槽10和翻料機構8;棋子19通過上料口滑槽10滑入傳送帶5,步進電機4帶動傳送帶5運動傳送棋子19;翻轉機構8上設有吸嘴9,若棋子正面朝下,則通過該吸嘴9將棋子19固定、翻轉到正面后,落到傳送帶5上重新進行傳送;擋板7分別設置在傳送帶5兩側,在擋板7上分別設有光電傳感器6,當棋子19經傳送帶5到達擋板7中央時,光電傳感器6感知棋子19,并控制棋子19繼續向前運動至圖像采集裝置視野范圍內,傳送帶5停止運轉;整個傳動機構部分主要用于實現棋子19的進退、翻轉等功能。另外,在傳送帶5內部還安裝有平行光源,用于為相機提供背光,以利于工件邊緣的識別。
機器人載體是整體系統的柔性機械手部分,從下至上是機械臂基座18、肩部16、上臂15、肘部14、前臂13、腕部12和抓棋吸嘴11依次通過對應的旋轉機構連接,旋轉機構由能水平、垂直四維度自由旋轉的關節轉動軸、與關節轉動軸連接的關節電機、光電機構和旋轉臂組成,關節轉動軸從下至上分為第一關節轉動軸26、第二關節轉動軸25、第三關節轉動軸24、第四關節轉動軸23,第五節轉動軸22和第六節轉動軸21(如圖2所示),各關節轉動軸順序串聯,由全直流伺服電機驅動,其中:
第一關節轉動軸26平行于水平面做旋轉運動,運動角度范圍為240°,最大運動速度為420°/s;第二關節轉動軸25垂直于水平面做旋轉運動,運動角度范圍為120°,最大運動速度為300°/s;第三關節轉動軸24垂直于水平面做旋轉運動,運動角度范圍為164°,最大運動速度為250°/s;第四關節轉動軸23垂直于水平面做旋轉運動,運動角度范圍為200°,最大運動速度為540°/s;第五關節轉動軸22垂直于水平面做旋轉運動,運動角度范圍為120°,最大運動速度為620°/s;第六關節轉動軸21垂直于水平面做旋轉運動,運動角度范圍為360°,最大運動速度為720°/s。抓棋吸嘴11與機械臂的腕部12相連接,通過第六關節轉動軸21的轉動,使抓棋吸嘴11在三維空間內伸縮靈活并準確抓取象棋。
所述的關節轉動軸分別于對應的關節電機通過傳動機構連接,關節電機分別與關節電氣系統連接,其內設置有失電制動器和諧波減速器,由直流伺服電機驅動,分別控制每個關節轉動軸運動,其供電電源和功率分別為24v和400w,其中:減速器為諧波減速器。所述關節電氣系統由直流電機、編碼器、制動器和光電開關相連組成。
如圖3所示,是本發明視覺系統識別棋子的流程圖,所述的雙目視覺系統主要通過視覺系統采集象棋的照片,通過數據傳輸線傳送至PC處;主要步驟如下:
(1)初始化CCD相機和開啟PC處理端;
(2)所述的相機同時獲取圖像,并傳至PC處理端;
(3)對原始圖像進行灰度處理,得到象棋原始圖像的灰度圖片(SIFT算法只能識別灰度圖片,不能處理彩色圖片,同時為了提高實時性,所以進行灰度處理,將彩色圖片處理成灰度圖片)。由于正光源和背光源的照射,可以根據象棋雙方顏色的不同開區分雙方棋子;
(4)運用SIFT算法對得到的待識別圖像進行處理,通過檢測尺度空間極值點、精確定位極值點、為每個關鍵點指定方向參數及關鍵點描述棋子的生成這幾步之后,提取出對旋轉、尺度縮放、亮度變化保持不變性SIFT特征向量,并存儲在計算機數據庫中,對目標圖片進行匹配處理,來識別圖片上的棋子;
(5)對識別出的棋子進行計算得出其相對圖片上的坐標,再根據圖像坐標和實際坐標的關系,將其坐標轉換成實際坐標,為機器人擺棋提供依據;
(6)將計算得出的棋子實際坐標發送到終端控制計算機,終端控制計算機控制機器人載體的抓棋吸嘴擺放棋子。
如圖4所示,是系統整體運作流程圖,主要步驟如下:
(1)整個裝置進行初始化;
(2)棋子19經由滑槽10滑落到傳送帶5上,由傳送帶5載著棋子19向前方移動;
(3)擋板7兩側安裝有光電傳感器6,當棋子19經過擋板7中央時,光電傳感器6感知到棋子19,控制傳送帶5載著棋子19繼續向前運動至相機視野范圍內,傳送帶5停止運轉;
(4)通過CCD相機拍攝棋子19,并將原始圖片經由數據傳輸線傳送至PC端,對棋子19進行位置、顏色、文字的識別;
(5)若能識別出棋子19,則將棋子19的位置和狀態數據發送給機械臂,機械臂吸取并擺放棋子19在棋盤20上,棋子擺放完畢后,機械臂將回到初始位置并等待下一次識別和抓取。
(6)若不能識別出棋子,則棋子是反向的,PC端控制機械臂吸取棋子放在翻料機構8上的吸嘴9上,機械臂將回到初始位置并等待下一次識別和抓取。翻料機構就會吸住棋子19進行翻轉,翻轉后棋子19落在傳送帶5上,重新進行第(3)步,并以此循環。