Projet de solveur de rubik's cube

Vos réalisations ou les idées de bricolage récoltées sur le net, ainsi que les sempiternelles questions du type : "que faire contre les autocollants récalcitrants ?", ou "comment lubrifier un casse-tête ?"
pokekrom
VIP au club des 1000
Messages : 2183
Enregistré le : ven. mai 09, 2014 12:43 pm

Projet de solveur de rubik's cube

Message par pokekrom »

Salut,
(je sais pas si c'est la bonne partie mais "mods (construction)" me semble un bon endroit)
dans le cadre des TPs de terminale S SI, on doit créer un objet alliant électronique et mécanique et moi et quelques potes, on a pensé à un solveur de 3x3.
On compte utiliser plus ou moins le même système que cette vidéo mais avec seulement 5 branches. Nous utiliserons la fonction webcam de CubeExplorer pour l'input de la configuration et pour la sortie vers les machines, on doit encore chercher ça.
Les bons points :
- Rapide. On ne pense pas le faire en une seconde mais entre l'algo de dieu et le système qui évite au max les rotations, on devrait le faire en bien moins d'une minute.
- Le système est simple pour la rotation (j'ai pas les plans là tout de suite) mais en gros, le premier tour d'un axe se fait "dans le vide" : il entre dans le cube avant de le faire tourner.

Mauvais point :
- On manque d'expérience, faut bien le dire. On aurait d'ailleurs besoin de quelques conseils si vous en aviez.
- La reconnaissance des couleurs de la webcam est nul. Le orange n'existe pas à ses yeux, et selon, les paramètres, le jaune de même.
- 5 moteurs (ça a fait peur aux profs au début mais ils s'y habituent).

et d'autres que j'ai pas en tête ...

Voilà, si vous avez des conseils/suggestions/aide à proposer, c'est avec plaisir.
Je n'ai pas trop détailler car on n'est pas réuni et que tout n'est pas encore prévu, je modifierais/répondrais plus tard avec l'équipe !

Clément.

Bannière atoutcubes.com
Avatar du membre
Cubeur-manchot
VIP au club des 1000
Messages : 2999
Enregistré le : jeu. sept. 11, 2014 5:16 pm
Localisation : Orly (91)

Re: Projet de solveur de rubik's cube

Message par Cubeur-manchot »

Pour moi il y a 2 difficultés pour ce projet (que j'aurais bien aimé faire d'ailleurs :yawinkle:) :
- effectivement, la reconnaissance est chiante, j'avais essayé la fonction webcam de cube explorer et c'est vrai qu'elle est nulle, les contrastes sont pourris -> essayer avec des cube avec des stickers flashy ou haut contraste, voire essayer avec un color sheme spécial (genre rose à la place d'orange par exemple). Si aucun color sheme ne convient, il faut changer de logiciel de reconnaissance (et peut-être résoudre sans cube explorer)
- implanter et exécuter le programme qui dit aux moteurs de faire ceci ou cela pour résoudre le cube

Le calibrage mécanique ce sera facile, c'est simplement des phases de tests. D'ailleurs pour cette partie, n'oubliez pas qu'il est plus facile de resserrer/desserrer/lubrifier un cube que de régler la force/vitesse de l'axe.

Avatar du membre
Keima
VIP au club des 1000
Messages : 1054
Enregistré le : mar. mars 11, 2014 9:40 am

Re: Projet de solveur de rubik's cube

Message par Keima »

C'est pour les PPE ton projet? Si oui comment as-tu insérer une problématique de physique-chimie dedans? Car j'ai un peu du mal à voir là :shock:
3x3x3 : 1=>8.29 / 5=>11.15 / 12=>12.60 / 50=>13.73 / 100=> 14.10

Avatar du membre
AntoineSC
Né sur ce forum
Messages : 131
Enregistré le : mar. avr. 01, 2008 2:15 pm
Localisation : Haut perché (73)

Re: Projet de solveur de rubik's cube

Message par AntoineSC »

pokekrom a écrit :[...]
Mauvais point :
[...]
- La reconnaissance des couleurs de la webcam est nul. Le orange n'existe pas à ses yeux, et selon, les paramètres, le jaune de même.
[...]
Salut,
Il y a 4 ans je me suis amusé à faire un capteur de couleurs tout simple avec un Arduino.
Avec ces composants :
- 1 bouton
- 1 DEL multicolore
- 1 cellule photoélectrique
Voilà une vidéo : http://asimonch.free.fr/cube/trucs/Capt ... our100.avi
Le bouton me sert à lancer l'analyse de couleur d'un sticker accolé aux composants (du coup il n'y a pas de lumière parasite).
La diode et la cellule sont placées côte à côte, séparées par une cloison opaque.
La diode éclaire alternativement blanc, rouge, vert, bleu.
Je mémorise les valeurs respectives de l'intensité lumineuse captée par la cellule (lumière réfléchie sur la face du cube).
Les valeurs comparées sont les intensités lumineuses reçues lors des éclairages rouge, vert et bleu, par rapport à l'intensité lumineuse reçue lors de l'éclairage Blanc. Je compare ces rapports aux références pré-étalonnées et choisis comme réponse la couleur de référence qui est la plus proche (où la somme des carrés des différences de valeurs est la moins importante).
La diode s'allume alors de la couleur du sticker analysé.

Dans ton cas, je suppose que tu ne souhaites pas mécaniser un œil qui se baladerait sur chaque sticker.
Mais je voulais montrer qu'il est faisable de faire les choses avec peu de moyens. Pour limiter les erreurs d'analyse de couleur, il faut aussi que tu vérifies que le résultat d'analyse de ton état initial (mélangé) corresponde bien à un mélange possible (9 stickers de chaque couleur, pas de pièces en double, etc.).
http://asimonch.free.fr/cube/ . . . Un p'tit cube, deux p'tit cube, c'est l'heure du ... Rubik's Cube

Avatar du membre
Bushizo
Scotché au forum
Messages : 315
Enregistré le : mar. mars 31, 2015 12:43 pm
Localisation : Poitiers et sur le XMPP : bushizo@jappix.com

Re: Projet de solveur de rubik's cube

Message par Bushizo »

Salut,
Tu m'as fait tout de suite penser au lego mindstorms pour ce genre de problème, donc si quelqu'un de vous possède une boîte je pense que ça peut être le bon support, et le capteur de couleur reconnait je couleurs principales, donc celles du Rubik's cube. Avec ça et le langage NQC (une variante du C) qui évite de se servir de LabView (qui est nul, on peut le dire)

Pour citer des exemples, il y a le robot CubeStormer III qui a résolu le cube (marque Rubik's) en 5.25 secondes avant Collin Burns et le robot tilted twister : http://www.tiltedtwister.com
Image

pokekrom
VIP au club des 1000
Messages : 2183
Enregistré le : ven. mai 09, 2014 12:43 pm

Re: Projet de solveur de rubik's cube

Message par pokekrom »

Keima a écrit :C'est pour les PPE ton projet?
Je vois pas ce que c'est. C'est juste de la SI, pas de SPC.
AntoineSC a écrit :
pokekrom a écrit :[...]
Mauvais point :
[...]
- La reconnaissance des couleurs de la webcam est nul. Le orange n'existe pas à ses yeux, et selon, les paramètres, le jaune de même.
[...]
Salut,
Il y a 4 ans je me suis amusé à faire un capteur de couleurs tout simple avec un Arduino.
Avec ces composants :
- 1 bouton
- 1 DEL multicolore
- 1 cellule photoélectrique
Voilà une vidéo : http://asimonch.free.fr/cube/trucs/Capt ... our100.avi
Le bouton me sert à lancer l'analyse de couleur d'un sticker accolé aux composants (du coup il n'y a pas de lumière parasite).
La diode et la cellule sont placées côte à côte, séparées par une cloison opaque.
La diode éclaire alternativement blanc, rouge, vert, bleu.
Je mémorise les valeurs respectives de l'intensité lumineuse captée par la cellule (lumière réfléchie sur la face du cube).
Les valeurs comparées sont les intensités lumineuses reçues lors des éclairages rouge, vert et bleu, par rapport à l'intensité lumineuse reçue lors de l'éclairage Blanc. Je compare ces rapports aux références pré-étalonnées et choisis comme réponse la couleur de référence qui est la plus proche (où la somme des carrés des différences de valeurs est la moins importante).
La diode s'allume alors de la couleur du sticker analysé.

Dans ton cas, je suppose que tu ne souhaites pas mécaniser un œil qui se baladerait sur chaque sticker.
Mais je voulais montrer qu'il est faisable de faire les choses avec peu de moyens. Pour limiter les erreurs d'analyse de couleur, il faut aussi que tu vérifies que le résultat d'analyse de ton état initial (mélangé) corresponde bien à un mélange possible (9 stickers de chaque couleur, pas de pièces en double, etc.).
Un peu compliqué tout ça ^^ je verrais demain vu qu'on va commencer sérieusement le boulot et on lira tout ça sérieusement ensemble.
mais bien merci à toi !
Seul truc, la vidéo bug : je vois une seconde et ça se fige, j'ai essayer de faire pause et attendre, sinon, je vais la télécharger.
Bushizo a écrit :Salut,
Tu m'as fait tout de suite penser au lego mindstorms pour ce genre de problème, donc si quelqu'un de vous possède une boîte je pense que ça peut être le bon support, et le capteur de couleur reconnait je couleurs principales, donc celles du Rubik's cube. Avec ça et le langage NQC (une variante du C) qui évite de se servir de LabView (qui est nul, on peut le dire)

Pour citer des exemples, il y a le robot CubeStormer III qui a résolu le cube (marque Rubik's) en 5.25 secondes avant Collin Burns et le robot tilted twister : http://www.tiltedtwister.com
De même, je prends note, merci.

Avatar du membre
Keima
VIP au club des 1000
Messages : 1054
Enregistré le : mar. mars 11, 2014 9:40 am

Re: Projet de solveur de rubik's cube

Message par Keima »

Le solveur que tu veux faire est bien pour le projet qui compte pour 1/4 de la note de SI au bac?
3x3x3 : 1=>8.29 / 5=>11.15 / 12=>12.60 / 50=>13.73 / 100=> 14.10

pokekrom
VIP au club des 1000
Messages : 2183
Enregistré le : ven. mai 09, 2014 12:43 pm

Re: Projet de solveur de rubik's cube

Message par pokekrom »

Keima a écrit :Le solveur que tu veux faire est bien pour le projet qui compte pour 1/4 de la note de SI au bac?
Aucune idée.

pokekrom
VIP au club des 1000
Messages : 2183
Enregistré le : ven. mai 09, 2014 12:43 pm

Re: Projet de solveur de rubik's cube

Message par pokekrom »

pokekrom a écrit :
Keima a écrit :Le solveur que tu veux faire est bien pour le projet qui compte pour 1/4 de la note de SI au bac?
Aucune idée.
Alors, en effet, c'est bien ce projet, et il a été accepté par la commission. Après, on nous a jamais parlé de 2 matières à faire entrer en jeu, bien qu'il y aie des maths, de l'élec, et de la meca.

J'aurais une petite question : quelqu'un sait quels moteurs ont été utilisés dans CubeStormer III (ou le II éventuellement), on fait nos recherches et on ne sait pas quoi prendre, l'avis de personnes l'ayant déjà fait peut être assez utile ! (ils sont bien marseillais ou les spéculations entendues seraient fausses ?)

Avatar du membre
Cubeur-manchot
VIP au club des 1000
Messages : 2999
Enregistré le : jeu. sept. 11, 2014 5:16 pm
Localisation : Orly (91)

Re: Projet de solveur de rubik's cube

Message par Cubeur-manchot »

Je sais que les moteurs de CubeStormer II et III sont des moteurs Lego, c'est ce qui m'avait impressionné à l'époque. Partant de là, on peut voir sur cette vidéo ainsi que sur les vidéos de cette chaîne que c'est la plupart du temps ce genre de moteurs qui est utilisé :)

pokekrom
VIP au club des 1000
Messages : 2183
Enregistré le : ven. mai 09, 2014 12:43 pm

Re: Projet de solveur de rubik's cube

Message par pokekrom »

Cubeur-manchot a écrit :Je sais que les moteurs de CubeStormer II et III sont des moteurs Lego, c'est ce qui m'avait impressionné à l'époque. Partant de là, on peut voir sur cette vidéo ainsi que sur les vidéos de cette chaîne que c'est la plupart du temps ce genre de moteurs qui est utilisé :)
ouais, on va laisser tomber ... ça doit coûter une blinde, alors 6 fois ...

Avatar du membre
Bushizo
Scotché au forum
Messages : 315
Enregistré le : mar. mars 31, 2015 12:43 pm
Localisation : Poitiers et sur le XMPP : bushizo@jappix.com

Re: Projet de solveur de rubik's cube

Message par Bushizo »

Ça dépend de combien de moteurs il faut, mais un kit est déjà cher, oui. Je pense qu'il ne faudra pas trop compter sur la vitesse mais un robot en lego qui fonctionne avec une webcam est un smartphone ou un ordinateur ça me paraît bien. Je suis sûr que en plus il y a déjà des algos de résolution qui ont été écrits!
Image

Cecile
Discret
Messages : 1
Enregistré le : lun. déc. 28, 2015 8:11 pm

Re: Projet de solveur de rubik's cube

Message par Cecile »

Bonjour,

Le projet est intéressant. Une partie de l'intérêt est que tu va avoir besoin de plusieurs modules qui vont interagir et qu'il va falloir intégrer et plus ou moins paramétrer.

En gros, ta solution va ressembler a ca :

Eclairage maitrisé -> acquisition par la caméra -> rotation du cube -> répeter acquisition (et éventuellement éclairage) 5 autres fois -> traitement des images pour connaitre l'état du cube -> entrer l'état du cube dans le solveur -> récupérer le résultat du solveur -> transformer le résultat* -> activation des (servo) moteurs.

(* : je dis transformation des résultats, parce que votre montage mécanique ne permettra peut etre pas de faire autant d'action que ce que voudrais le solveur : peut etre que vous n'aurez que deux rotations du cube et deux rotations d'étages)

Ca fait beaucoup de choses. Est-ce qu'il y a des points en particulier pour lesquels vous avez besoin d'aide ? Au hazard je dirais deja :
-Pour les problème de couleur de la caméra, l'important n'est pas que les couleurs soient ressemblantes, mais qu'elles soit identifiables / uniques. La première étape est de maitriser la source de lumière (au minimum un spot 220 ou 12V avec une alimentation, peut etre un éclairage avec des leds RGB en prenant plusieurs photos)
-Pour le traitement des photos, peut-être que OpenCV peut vous aider (c'est une librairie open source gratuite qui as une fonction de reconnaissance de "blobs colorés"
-Si votre solveur est disponible pour Linux, le Raspberry Pi Zero est probablement un très bone ordinateur sur lequel faire tourner votre système (5€, plus une carte SD et un adaptateur secteur. On peut assez facilement faire du SPI pour discuter avec un driver pour les moteurs pas à pas)

En tout cas, le projet est intéressant mais vraiment costaud. Et le budget risque d'être difficile à tenir (la carte contrôleur, l'alim et les cinq moteurs vous en avec plus au moins 200€, sauf si vous savez dimensionner au plus serré et que vous avez le temps de commander en chine)

facab
Jamais loin d'ici
Messages : 97
Enregistré le : jeu. déc. 17, 2015 12:42 am
Localisation : Carvin

Re: Projet de solveur de rubik's cube

Message par facab »

Ca m'a l'air bien compliqué tout ça. N'ayant aucune connaissance dans l’ingénierie, la mécanique, je ne peux malheureusement pas aider.
Cependant je te soutiens à 100% et espère que tu partageras avec nous tes avancées et le résultat final.

EDIT : je suis tombé sur ce topic qui peut éventuellement t'aider : http://forum.francocube.com/viewtopic.php?f=5&t=11526

Bannière atoutcubes.com