俺の備忘録

個人的な備忘録です。

Raspberry Piで多脚ロボットを試作してみた

やったこと

Raspberry Piサーボモータを12個使って多脚ロボット(6脚)を試作してみた。

なぜ試作かというと、、、、
- 本気で作る場合、CADで製図して金属パーツ発注が必要そう(お金かかるし、CADなんて10年近く触ってない。)
- サーボモータは高いので、まずは最安レベルのサーボで感触掴んで見たほうが良さそう。
ということで、手持ちのパーツ(タミヤのユニバーサルプレートやサーボドライバ)の活用と、やっすいサーボモータの買い増しだけで、試作してみることにした。

ハード構成

こんな感じでタミヤのユニバーサルプレートLをベースに脚を左右それぞれ3本ずつ設置。
f:id:magayengineer:20160814183148j:plain

脚1本あたり、サーボモータNO4 Turnigy TG9z 9g / 1.7kg / 0.12sec マイクロサーボ)を2個使用。1つは脚の前後への移動、もう一つは脚の上下動をコントロールサーボモータのマウンターと脚本体は、100均で売っている2mmのプラ板を加工して作成。

f:id:magayengineer:20160814183221j:plain

サーボモータの制御には定番の PCA9685を使用。1つのPCA9685でサーボモータが16個まで制御可能。

f:id:magayengineer:20160814183254j:plain

Raspberry Pi + Pythonで使用する場合は、githubにあるドライバを導入すれば、簡単に使用することができる。導入もpipを使えばコマンド一発。

pip install adafruit-pca9685

電源は5V 2.1Aのモバイルバッテリー(ラブパイ用)と、エネループ4本(サーボ用)。 本当は、モバイルバッテリーにもう一つ付いている5V 1Aからとった電源(画面中央)を使いたかったが どうもモバイルバッテリーに保護回路が付いているようで、サーボを複数台同時に動かして1Aを超える電流が流れそうになると、2.1Aの口を使っているラズパイ含めて落っこちるので、サーボには別途専用の電源を用意した。少くとも今回の範囲だとエネループ4本でなんとかなった。 ちなみにテスターも持っていないし、使用したサーボモータは怪しい中国製でデータシートが存在していないので、正確にどの程度の電流が必要となったかは分からない。

f:id:magayengineer:20160814183322j:plain

脚の制御

画像のように2つのグループに分けて3本ずつ制御する。 つねにAかBのいずれかのグループが接地するように動かせば転倒しない。 で、具体的には以下のようにで脚を動かせばよい。

  1. Aの脚を振り上げて地面から離す
  2. Aの脚を前に進める
  3. Aの脚を下ろして接地させる
  4. Bの脚を振り上げて地面から離す
  5. Bの脚を前進める
  6. Aの脚で地面を蹴ってボディを前に進める
  7. Bの脚を下ろして接地させる
  8. Aの脚を振り上げて地面から離す
  9. Aの脚を前に進める
  10. Bの脚で地面を蹴ってボディを前に進める
  11. Aの脚を下ろして接地する
  12. 1に戻って繰り返し

f:id:magayengineer:20160814183402j:plain

動かして見た結果は?

一応、前に進みはしたものの、途中で潰れてしまった。(まぁ予想どおりではある)

理由としては、
- ボディが重すぎ。特にモバイルバッテリーが300g近い。
- サーボモータが力不足。
- 足回りのパーツの剛性が低く、重みや負荷で弾性変形するため、バランスを崩す。

妻には「生まれたばかりの子鹿みたい」と言われてしまった。

なお、モバイルバッテリーをボディから取り外して、手で持ってやると、やはりサーボの力不足や剛性不足を感じましたが、潰れずに進むことができた。

ただし、適当に書いた制御プログラムでも、前に進むことができ、動作もそれっぽくなるのが分かったのは収穫。

 今回の試作で分かった課題と対策のまとめ

サーボモータのパワー不足対策

今回使用したサーボは、1つ440円で格安だがトルクが1.5kg/cmでかなり貧弱。 感覚値ではあるが、5.0kg/cm以上あればなんとかなりそうな感じ。 5.0kg/cm程度のものは1000円前後で入手可能(12個だと12000円か...)

ボディの剛性対策

普通に考えれば1だが、2とか3で頑張るしかないかなぁ...
1. CADで製図して、金属パーツ発注。
2. プラ板を数枚貼り重ねてパーツを作る。
3. 硬い木材を加工してパーツを作る。

車体の軽量化

ラズパイ3を使用する時点で、重いモバイルバッテリーを使う必要がある。 そのため、ラズパイでの制御を諦め、
3.3V Arduino + 単三電池2本 + 昇圧コンバータ
とかにすればかなり軽量化できそう。

まぁ本製作するにしても、冬のボーナスが入ってからですかね...まだ8月だよ...