Tabla de contenido:

Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos
Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos

Video: Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos

Video: Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos
Video: Feliks Zemdegs rompe Récord mundial 3x3 (4.73s) | Rubik´s Cube World Record 2024, Noviembre
Anonim

Esta es la segunda versión de la herramienta del cubo de Rubik hecha para resolver con los ojos vendados. La 1ra versión fue desarrollada por javascript, puedes ver el proyecto RubiksCubeBlindfolded1

A diferencia de la anterior, esta versión utiliza la biblioteca OpenCV para detectar los colores e ingresar las entradas, y proporciona una mejor técnica de visualización.

El mayor problema en esta versión más reciente es la visualización de resultados, los elementos de secuencia se muestran en el cubo dibujado de uno en uno. Dado que el cubo tiene una forma 3D, es difícil mostrar todos los lados al mismo tiempo. Ver los resultados en mi canal de YouTube video de YouTube

Estoy usando un cubo sin pegatinas, esto necesita un reconocimiento personalizado y la mayoría de los códigos de fuente abierta no son compatibles. Usé este código abierto desarrollado por Kim Koomen que especifica áreas fijas en el marco de la cámara para detectar los colores correctos de las caras del cubo. Proyecto qbr.

Paso 1: componentes necesarios

  • Frambuesa pi
  • cámara web

o puedes usar tu laptop

Paso 2: dependencias

  • Python 3
  • biblioteca numpy
  • Biblioteca OpenCV

$ sudo apt-get install python3-opencv

Paquete Rubiks Blindfolded

$ pip3 instalar Rubiks con los ojos vendados

Paso 3: Preparativos

Debe calibrar la detección de color como paso previo. Los códigos de color HSV varían debido a la iluminación, la calidad y resolución de la cámara y los colores del cubo en sí. En mi caso, combino luces blancas y amarillas para obtener resultados correctos.

Actualizar la función get_color_name (hsv) en colordetection.py

El código fuente original usa el paquete kociemba para resolver el cubo, lo resuelve encontrando los pasos inversos de cualquier codificación. En esta versión, utilicé mi propio paquete de resolución llamado RubiksBlindfolded que se publicó en PyPI. Vea la descripción para saber cómo usarlo RubiksBlindfolded

Paso 4: uso

Uso
Uso
Uso
Uso

Después de instalar todas las dependencias y configurar su cámara, este es el momento de ejecutar el script blindfolded.py

Primero, necesita escanear su cubo en las orientaciones correctas. Esta es la estructura del cubo, el orden de escaneo de las caras no es importante. Tenga en cuenta que estos son los colores predeterminados de las caras del cubo, puede cambiarlos actualizando el diccionario de notación en el script blindfolded.py

Para hacer el escaneo presione la tecla de espacio para guardar la vista y la tecla ESC después de terminar

En segundo lugar, puede ver las secuencias de solución en la consola y la verificación de paridad para indicarle si necesita aplicar el algoritmo de paridad o no.

En tercer lugar, se generará un nuevo marco que muestra 2 cubos dibujados para la secuencia de bordes y la secuencia de esquinas. Puede utilizar las teclas de flecha izquierda y derecha para cambiar entre los elementos de la secuencia, y las teclas de flecha arriba y abajo para cambiar entre el borde y la esquina. el color gris claro representa la secuencia actual.

Puede ver los colores del búfer actual que están cambiando dinámicamente mediante las teclas de flecha. Los colores grises representan el cubículo de destino y el color rosa representa la cara de intercambio

Código fuente

github.com/mn-banjar/blindfolded2

Recomendado: