ルービックキューブを揃えるロボットの製作

ルービックキューブを揃えるロボットの製作

Two-Phase-Algorithmを用いて自動でルービックキューブを揃えるロボットを製作しました。

1. 機体設計

Fusion360で設計し,3Dプリンタで印刷しました。

ルービックキューブの各面の中心ブロックを設計したものに取り替えています。

2. 回路

マイコンRaspberry Pi4B (8GB RAM)
ステッピングモータドライバA4988 × 6
バイポーラステッピングモータ SM-42BYG011 × 6 
電源ACアダプタ (12V,5A)

3. アルゴリズム

Two-Phase-Algorithmを用いています。以下を参考にしています。

ルービックキューブを解くプログラムを書いてみよう(前編:キューブを操る実装)

ルービックキューブを解くプログラムを書いてみよう(中編:IDA*探索)

ルービックキューブを解くプログラムを書いてみよう(後編:状態のindex化, Two-Phase-Algorithm)

4. プログラム

Pythonで書いています。動作は以下のようにしています。

  1. ランダムに数手回す
  2. Two-Phase-Algorithmで解を求める
  3. 求めた解に従って回す

5. 結果

RaspberryPi4にSSH接続して実行します。この動画ではランダム18手,解21手となっています。