自己紹介
はじめまして、にゃにゃん(Nyanyan)と申します。筑波大学の1年生をしています。趣味は(もちろん)ものづくりで、ハード、ソフト、回路の全般をやります。他の趣味としてスピードキューブ(立体パズルの速解き)をしていて、ルービックキューブを10秒ちょっとで揃えられます。主にTwitterに生息しています。
ハードと回路の話だと、中学1年から高校3年までずっとヒューマノイドロボットを作っていました。最近ではこの記事で書くように、立体パズルを解くロボットを作っています。
ソフトの話だと、前述のヒューマノイドロボットを動かすためのソフトウェア開発をしていたりもしました。最近はルービックキューブなど立体パズルを解くアルゴリズムを考えています。
2x2x2ルービックキューブを解くロボット Soltvvo
Soltvvoは「ソルヴォ」と読みます。これは私が最初に作り始めた立体パズルを解くロボットです。現在は4代目のSoltvvo3.2が稼働していて、パズルを解く速さとしてギネス世界記録を申請しています。
Soltvvo3.2の機構は動いている様子を見ていただくのが一番手っ取り早いでしょう。以下に動画を載せておきます。
Soltvvo3.2はこのようにパズルを掴むアームが前後に動き、アームはステッピングモーターで回転させています。
ステッピングモーターの高速回転
ステッピングモーターはその仕組みのため、高速回転には向きません。ですが制御しやすいがために高速回転を求めるこのロボットに採用しています。ステッピングモーターで高速回転させるために以下の工夫をしました。
- 駆動電圧を上げる
- 台形駆動をする
- モータードライバの性能を良くする
- 発熱対策のためなるべく連続運転しない
- 脱調を検知して適宜調整する
アームのキャリブレーションの自動化
アームの位置をパズルを正確に回せるように調整するのは、手動だと意外と面倒な作業です。そこで、アームに磁石を貼り、ホールセンサとセットで使うことでアームの角度を検知できるようにしました。これでキャリブレーションを自動で行えます。
回路の構成
全ての動作の司令塔としてRaspberry Pi 4 (2GB RAM)(ラズパイ)を使っています。ですがラズパイで具体的にモーターを動かしたりするのは気がひけたので、ラズパイとアクチュエータの間に自作Arduino Uno互換機を入れています。こうすることでラズパイは抽象的なコマンドをArduinoに送るだけでロボットを動かすことができ、Arduinoはコマンドを受け取ってアクチュエータを動かすことに専念できます。
パズルの解法探索アルゴリズム
別記事にまとめました:
- ルービックキューブを解くロボットを作ろう!2 アルゴリズム編
- ルービックキューブを解くロボットを作ろう!3 ソフトウェア編
- ルービックキューブロボットのソフトウェアをアップデートした 1. 基本関数
- ルービックキューブロボットのソフトウェアをアップデートした 2. 事前計算
- ルービックキューブロボットのソフトウェアをアップデートした 3. 解法探索
このロボットに関するリンク
記事や動画がたくさんあるのですが、ここに全て貼ると見にくくなってしまうので、それらのリンクをまとめたページを貼っておきます: https://nyanyan.github.io/ja/#soltvvo
このロボットを作る楽しさ
パズルを解く機構とアルゴリズムを考えるのはかなり多くの人にとって楽しいものなのではないでしょうか。2つも楽しさを味わえるのはとても魅力的です。この魅力に取り憑かれて、他にも私は「立体パズルを解くロボットシリーズ」として、3x3x3や4x4x4のルービックキューブの他、ルービッククロックを解くロボットも製作しました。今後も別のパズルを解くロボットを作る予定です。
-
Nyanyan
さんが
2021/01/08
に
編集
をしました。
(メッセージ: 初版)
Opening
GO_to_MIT
2021/01/09
Nyanyan
2021/01/14
ログインしてコメントを投稿するすげえ**
ありがとうございます!