PrésentationAutour du cubeConventions de notationModèle de donnéesAlgorithmes de résolutionLe robotLa vision
CubeSolver

CubeSolver - Le robot

Le robot que j'utilise est imprimé en 3D, selon les modèles de OTVINTA.

Le robot utilisé pour ce projet

Vous pouvez accéder à l'ensemble des informations sur le hardware ici.


Communication avec le robot

Ce robot est géré grâce à une Pololu Maestro 12, et comme mentionné précédemment, Pololu ne propose pas de JDK afin de communiquer avec cette carte.

Manipuler des servomoteurs en Kotlin n'est donc pas une tâche aisée, mais cela a pu être réalisé grâce à une librairie non-officielle.

Cette dernière permet de réaliser des opérations simples :

  • Placer un servomoteur à une certaine position, avec une vitesse et accélération donnée.
  • Demander la position d'un servomoteur.

Et c'est là l'essentiel pour développer un robot.


Architecture du driver

Le driver développé pour ce projet possède trois couches d'abstractions, chacune utilisant la couche précédente :

  1. Une couche manipule les servomoteurs.
  2. Une couche offre des services tels que « tourner une face ».
  3. Une couche offre les services utilisateurs, tels que « se mettre en position d'accueil », ou « appliquer une séquence ».

Le robot garde aussi l'orientation du cube en mémoire, parce qu'il faut faire pivoter le cube lorsque la face à tourner se trouve à l'avant ou à l'arrière. (Le robot possède 4 bras et 4 mains, mais il y a 6 faces à tourner).