Projet de solveur de rubik's cube
Projet de solveur de rubik's cube
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.
(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.
- Cubeur-manchot
- VIP au club des 1000
- Messages : 2999
- Enregistré le : jeu. sept. 11, 2014 5:16 pm
- Localisation : Bures-sur-Yvette (91)
- Contact :
Re: Projet de solveur de rubik's cube
Pour moi il y a 2 difficultés pour ce projet (que j'aurais bien aimé faire d'ailleurs
) :
- 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.
![Ya winkles :yawinkle:](./images/smilies/icon_winkle.gif)
- 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.
Re: Projet de solveur de rubik's cube
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à ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
3x3x3 : 1=>8.29 / 5=>11.15 / 12=>12.60 / 50=>13.73 / 100=> 14.10
- AntoineSC
- Né sur ce forum
- Messages : 131
- Enregistré le : mar. avr. 01, 2008 2:15 pm
- Localisation : Haut perché (73)
- Contact :
Re: Projet de solveur de rubik's cube
Salut,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.
[...]
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
- Bushizo
- Scotché au forum
- Messages : 315
- Enregistré le : mar. mars 31, 2015 12:43 pm
- Localisation : Poitiers et sur le XMPP : bushizo@jappix.com
- Contact :
Re: Projet de solveur de rubik's cube
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
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](https://smileys.surlatoile.org/repository/Firefox/firefox16.gif)
Re: Projet de solveur de rubik's cube
Je vois pas ce que c'est. C'est juste de la SI, pas de SPC.Keima a écrit :C'est pour les PPE ton projet?
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.AntoineSC a écrit :Salut,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.
[...]
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.).
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.
De même, je prends note, merci.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
Re: Projet de solveur de rubik's cube
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
Re: Projet de solveur de rubik's cube
Aucune idée.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?
Re: Projet de solveur de rubik's cube
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.pokekrom a écrit :Aucune idée.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?
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 ?)
- Cubeur-manchot
- VIP au club des 1000
- Messages : 2999
- Enregistré le : jeu. sept. 11, 2014 5:16 pm
- Localisation : Bures-sur-Yvette (91)
- Contact :
Re: Projet de solveur de rubik's cube
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é ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
Re: Projet de solveur de rubik's cube
ouais, on va laisser tomber ... ça doit coûter une blinde, alors 6 fois ...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é
- Bushizo
- Scotché au forum
- Messages : 315
- Enregistré le : mar. mars 31, 2015 12:43 pm
- Localisation : Poitiers et sur le XMPP : bushizo@jappix.com
- Contact :
Re: Projet de solveur de rubik's cube
Ç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](https://smileys.surlatoile.org/repository/Firefox/firefox16.gif)
Re: Projet de solveur de rubik's cube
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)
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)
-
- Jamais loin d'ici
- Messages : 97
- Enregistré le : jeu. déc. 17, 2015 12:42 am
- Localisation : Carvin
- Contact :
Re: Projet de solveur de rubik's cube
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
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