本当は自作ロボットがいいのですが、チートして Kickstarter 経由で PLEN2 を購入しました。日本では Kibidango のほうが先なのですが、組み立てキットの早期募集が終わっていたので値段が同じぐらいだった Kickstarter のほうに応募。3D プリンタは持っていないのですが、せめて組み立てるということで。発送は日本郵便できました。
開封
元になった PLEN よりもちょっと小さ目です。身長20cm位なので、サーボも小さいですね。バッテリーは充電式の単四x5なもので動かします。胸の部分に充電器、背中の部分に Arduino が乗っている状態になります。
開けて中身を確認したものの、途中で水圧式のロボットアームの組み立てをしているので間があいていますが、組み立て自体はだいたい半日仕事じゃないかなと。特にロボットの組み立てが始めての場合、サーボの基準値とかはめ込みの方向とかあれこれ悩むのでちょっと時間が掛かります。
組み立て
Tutorials [PLEN Playground – Wiki]
http://plen.jp/playground/wiki/tutorials/index.html
に従って、Firmware のインストールからスタートします。バッテリーは既に充電済みなので、即つなげて試すことができました。Arduino にインストールした後に、サーボを繋いでスイッチを入れてピニオンギアにはめ込んで、を18回繰り返します。サーボが18個ありますからね。
サーボに電源を入れた状態で、
な感じで十字の軸を揃えます。揃えますが、きっちりと揃う訳ではありません。どうしてもサーボの基準点とピニオンギアの歯の山とのずれがあるので、ちょっとだけずれます。
この基準点は後でアプリを使って調節していくので、だいたい揃えておけばokです。
ひとまず、こんな感じまで完成させて、電源を入れない状態で立つぐらいまで仕上げます。ロボットアームだと、アームの部分の自重で電源を入れないと関節部分(サーボ部分)で曲がってしまうのですが、PLEN2 の場合は、足裏に重心が乗っかる感じなので、電源が入らない状態でもそのまま立てます。
サーボの原点位置を調節する
背中のスイッチ(Arduino 側とサーボ電源の両方)に電源を入れた状態だと、先のサーボの原点位置がずれているので、ちょっとずれた感じになります。私の場合は、なんか前傾姿勢になっていて、倒れそうな感じになっているし、足もちょっとがに股っぽくなります。実際、このまま歩きのモーションを入れると倒れます(苦笑)。
Tuning Up Home Positions [PLEN Playground – Wiki]
http://plen.jp/playground/wiki/tutorials/plen2/tune
にある ControlServer を使ってサーボの基準点を調節します。Windows の場合は、ControlServer.exe を起動して、PLENUtilities.url でブラウザから調節します。
こんな風なコンソールのサーバーが立ち上がって USB ケーブル経由で PLEN2 のサーボを調節します。
ブラウザのほうで、調節したいサーボの番号(位置)をクリックして、Angle をマウスで動かします。このとき PELN2 の実機が動くのでまっすぐになるようにします。調節が終わったら、Home ボタンを押して、そのサーボの設定を PLEN2 に送ります。これをすべての関節分(18回)繰り返します。現状のバージョンでは、サーボの1と13が逆になっています。モーションは問題ないので、ここの表示だけの問題かなと。
サーボから角度が送られてくるわけではなく、一方的にサーボ側に角度を通知するだけなので、再び Reset ボタンを押して0度を送ってから調節します。0度から大きく外れてしまった場合は、サーボを外してピニオンギアへのはめ込みをやり直したほうがよさそうです。単位が1/10 deg.(度)なので、歯車1個分(300位?)を目安にすればいいでしょう。
調節するときは、手足がまっすぐになるように、寝かせた状態か手でつりさげた状態でやるとやりやすいです。
ジーっと音がしなくなるまで調節する
サーボの位置を調節しているときに「ジー」という音が鳴ることがあります。これはサーボが鳴っているのですが、ただ立っているだけなのに鳴っているのはうるさいので、音がでなくなるように調節します。
何故、音が鳴るかというと、理由が2パターンあります。
- サーボが位置を変えようとする。
- 角度が限界までいっているので、それ以上回せない。
- けれども、位置設定まで動かそうとするので、モーターがジーっと鳴る。
- サーボの位置を設定する。
- 歯車と重心位置の関係で、ちょっとだけ行き過ぎる。
- サーボが位置を戻そうとするが、重さの関係でぎりぎり戻らない。
- でもってモーターがジーっと鳴る。
のパターンです。
最初のパターンは可動域よりも大きく廻し過ぎるときで、PLEN2 の場合、股(4,16)、膝(6,18)、足首(8,20)のところで音が鳴りやすくなっています。股の可動域が PLEN 狭すぎるような気がするので、ここは 3D プリンタで要調節かなと思います。
後者の重心が関わる場合は、サーボの角度の分解能に関わるものなので、完全に調節するのは無理です。PELN2 を立たせた状態で、音が鳴らないように膝などを調節します。歯車の遊びの部分があるので、ここは実機調節になります。
既存のモーションを試してみる
-
For Android : https://play.google.com/store/apps/details?id=jp.plen.plenconnect
-
For iOS : https://itunes.apple.com/jp/app/plen-connect/id990980940
iPhone か Android のアプリを入れて既存のモーションを動かしてみます。いきなり、歩かせるとまだバランスが悪くて(微調節が必要な状態)ばたっと倒れますが、踊りのほうはなんとか動きます。モーションが PELN 用なのか、サッカーのモーションを PELN2 に適用すると倒れます(苦笑)。ここが股関節と足首のサーボの可動域の問題かなと。
サーボの基準位置を調節した PLEN2
股の可動範囲が狭いのか、片足立ちができない。ちょっと修正して股のパーツは3Dプリンタで作り直せばいいかな。 pic.twitter.com/vjct6bWkgl— Tomoaki Masuda (@moonmile) 2016年6月11日
自分でモーションを作る
自前のモーションは http://plen.jp/playground/motion-editor/ で作れます。可動範囲の制限がないので、コツがいるのですが、まあ、そのあたりはおいおいに。
できあがったモーションは JSON 形式で保存されるので、角度などをエディタで変更できます。
PLEN2 へのアップロードは Releases · plenprojectcompany/plen-MotionInstaller_Win を使って USB 経由で送信します。Arudino 側のスロットに割り当てる方式なので、モーションの空きスロットに転送します(あるいは上書き)。
PLEN2 の各コードは MIT ライセンスで github で配布されているので、自前で修正が可能です。モーションの実行は、ストアアプリ版がないので、プロトコルを見て自前で作ろうかなと思っているところです。
そんな訳で、ひとまず PLEN2 の組み立てからちょっと動かすところまで。これから先は自前でアプリを作るところからスタート。
- Windows アプリでモーションの転送
- Xamarin で手足を個別に動かすツール(モーションの作成用)
- 加速度センサー(AccelerationGyroSensor)を使った制御(あるのかな?)
な感じです。