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

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で書いています。動作は以下のようにしています。
- ランダムに数手回す
- Two-Phase-Algorithmで解を求める
- 求めた解に従って回す
5. 結果
RaspberryPi4にSSH接続して実行します。この動画ではランダム18手,解21手となっています。