Categories: 工作・開発

ラズパイで動くロボットの爪がコーヒーカップを支える、15mmのずれをカメラで補正

ロボット格闘番組「BattleBots」に登場するクロー型ロボットに着想を得て、コーヒーカップを支えるためだけの「ロボットの爪」を作った人がいる。開発者のdrpykachu氏がGitHubで設計と計算を公開している。一見ふざけた工作に見えるが、中身は複数の関節を持つ指を正確に動かす、本格的なロボット制御の実践だ。

各指には3つのモーターが入っており、指先を目標の3次元座標へ運ぶには、その位置から各関節の角度を逆算する「逆運動学」を解く必要がある。モーターにはサーボを選び、候補の3製品を比較した。決め手はステップ角、つまりモーターが刻める最小の角度だ。これが大きいと動きがカクついて位置がずれる。最も細かい0.88度のサーボ「ST3215」を採用した。

ST3215はギアボックスで強い力と細かい分解能を得るが、ギアのすき間による遊び(バックラッシュ)も生まれる。これがモデル上の位置と実際の位置のずれにつながる。特に最下段のモーターは、重力の向きが90度を境に反転し、ギアの接触面が切り替わってしまう。そこで角度に応じてねじりの力を加えるトーションばねを足し、ギアを常に片側へ押し付けてずれを抑えた。頭脳は「Raspberry Pi 5」で、12Vのシリアルバス駆動のドライバーがモーターを動かす。

完成した当初は、向きを問わない球状の物体しか安定して持てなかった。平らな皿などは指先のわずかな誤差が積み重なって少しずつずれ、やがて落ちてしまう。そこで小型のRaspberry Piカメラと画像処理を組み合わせ、皿の位置を追う補正ループを組み込んだ。中心から15mm以上ずれると、すべての指が連動して中央へ戻す。コードはすべてPythonで公開されている。逆運動学からサーボ選び、カメラによる補正まで、多関節ロボットを動かす勘所が一通り詰まった題材だ。

関連情報

FabScene編集部

FabScene編集部