解魔方机器人颜色识别遇到的问题

一.关于解魔方机器人的步骤(上位机需要做的事)

     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: 两个角块或者两个中间的棱块需要交换,一般不会出现这个错误

  借鉴:求助 ev3解魔方老是颜色识别错误

三.识别结果

 

 

 

 

 

 

 

 

posted @ 2021-11-09 23:33  睡觉不困  阅读(873)  评论(1编辑  收藏  举报