一.關於解魔方機器人的步驟(上位機需要做的事)
1.上位機連接藍牙
2.下位機通過藍牙,向上位機發送拍照信息
3.上位機執行拍照,每隔一定時間自動拍照
4.上位機進行顏色識別,將六個面的顏色匯總並進行算法計算,計算出一個可供下位機解析的公式
二.遇到的問題
1.顏色識別的坐標找不准。我們顏色識別采用的是java根據圖片坐標讀取RGB,沒有采用opencv數據圖像處理,因此,需要根據坐標識別顏色,在處理中,總是找不准魔方的准確坐標,導致識別有誤
解決方法:
將讀取的六張圖片拿到電腦上,打開方式選擇畫圖,發現下面現實的像素是4608×3456,一定要注意這個像素,不同的手機分辨率不一樣,圖片像素也不一樣,一定要放到電腦試一試,之前一直以為是1024×768,
導致一直讀取不正確。然后,將鼠標分別放在魔方的九個點上,獲取x,y值。
2.找到坐標以后,顏色識別應該沒有什么問題,但是,六次拍照的順序是有要求的,上下,左右,前后,放置時要注意不能放反。如下圖,識別是從1到9的順序識別,但是如果你換個角度放,順序可能是369258147,如果確定了順序,其他面也要如此,不能換角度,識別會出錯(下位機舵機轉動順序的工作,測試時要注意)
3.所報的幾種錯。
Error 1:
魔方顏色識別錯誤,統計時發現每種顏色計數不止9個,就會報錯Error 1,這個錯誤很多,因為魔方機器人對魔方要求高,最常見的是紅色和橙色傻傻分不清楚,解決方法是換色准高的魔方
Error 2:
Not all 12 edges exist exactly once,就像上面我說的,可能順序出現問題
ERR 3:
Flip error: One edge has to be flipped ,魔方錯誤,一個棱塊需要被翻轉
ERR 4:
Not all corners exist exactly once,魔方錯誤,不是所有的棱塊都出現一次,這種錯誤一般也是顏色識別錯誤。
ERR 5:
Twist error: 一個角塊需要被旋轉,一樣是魔方錯了,不過這種情況下,魔方機器人會先去還原,一般都是就可以還原到只剩那個角塊
ERR6 :
Parity error: 兩個角塊或者兩個中間的棱塊需要交換,一般不會出現這個錯誤
三.識別結果