2015年01月ゲームロボット/ゼムネス汎用ヒト型決戦遊具はじめました。膝が少し楽になった!▼いやー、毎日寒いですね。いう記事を書いたのですが、ようやくこの要素をゼムネスの歩行に盛り込みました。▼ロボワン用の二足ロボットはだいたい膝を曲げた状態になっています。自分なりに気付いた結論としては、膝をあらかじめ曲げておくほど、少ない角度で大きな移動量を得られるからだと思っています。戦闘モードの格闘家が膝を曲げて構えるのと同じ理屈かなと思います。足を棒のようにして立つボクサーやカラテカはあまりいないと思います。一方で、膝を曲げれば曲げるほど、自重はサーボのねじりモーメントになってしまいます。サーボへの負荷を減らすには、足フレームはなるべく垂直に近い状態が続いている方がよいはずです。人間も、のんびりと歩いたり、休めの姿勢をする時には、足が垂直になっている時間が長いと思います。▼ということで、大事なのは移動量の確保とねじりモーメントの軽減のバランスだと思います。ねじりモーメントを解消するために、輪ゴムを使ったりトーションバネを使う方法(自重キャンセルというらしいです。歩行スタンバイ状態の膝の曲げ角度をやや垂直気味に調整したところ、大丈夫っぽくなりました。以前は熱による脱力との戦いでしたが、調整後は加熱しすぎることなく、バランスよく排熱を続けてくれているようです。▼と、ここまで書いて気付いたのですが、排熱がうまくいっているのは季節が冬だからというだけの話かもしれません。0Pagetopハンチングでネジゆるむ▼コンプライアンススロープの値を小さくすると、ガチガチな感じになってよいです。歩いた時にヘタってこける感じも減った気がします。同時にジャイロを緩めなるなどで最適化しないと、ハンチングが起きやすくなります。一度ハンチングを起こすと大変です。股関節のハンチングで、上半身にヨー方向のブルブルが伝わってしまうらしく、体幹のヨー軸のネジがすぐに緩みます。上半身グラグラになるとコケやすくなるので、危険です。過去にも体幹ヨー軸がいつのまにか緩んでいたという記憶はありますが、原因はこのハンチングに違いありません。ネジを締めなおすたびに、ネジが少しずつバカになってくるので、ハンチングほんといや。▼あと、ちょくちょくショートしています。ショートすると全身、サーボチャンネル1列、サーボ単体のどれかが脱力します。今回は珍しくサーボ単体のショートのようです。VS-RC003HVは、前のバージョンよりショートに少し強い気がします。(今思えばサーボが脱力しやすい、ボードが再起動しやすい等々とROBOXERO標準ボードを呪ったのも、原因はサーボのショートだった可能性が濃厚です。)とりあえず、サーボ内のはんだ付けをやり直して絶縁性を保っておきました。後退以上のスピードで前進歩行もできるようになりましたし、だいぶ安定してきました。0PagetopRS30xPacketUtilでコンプライアンススロープを変更する▼RS30xPacketUtilでコンプライアンススロープを変更しようとして上手く行かず、悩んでしまいました。原因は、Dataの欄に2バイトを入れていたからでした。他の角度のデータが2バイトであるのに対し、コンプライアンスマージン、コンプライアンススロープなどは1バイト指定です。下のLengthに表示されている数値が2ならSInt16、1ならSInt8の数値を入れます。(Lengthの数値は、選んだCommandによって変化します。)▼うまく変更できました!▼おまけ。ロボゼロをいぢる作業も続行中。頭部にヨー軸を追加して表現力アップ。使ってみたのはMG90Sというサーボ。金属ギアで安くて小さくて13gで小さくて1000円以下といいことづくめですが、全高約32.6mmとRS30x系よりもあるのが悩ましいです。ケースの直方体部分は12.4×22.6×22.5。耳の幅は32.1です。サーボホーンのセレーション受けはプラリペアで作成してみました。軽量化のためにヘッドパーツがペラペラなので、大会では壊れる事もあるかもしれません。この改造を含めてもギリギリ1kgに収まる予定です。こちらはライト級では重量オーバーなのでオプション。ロボットを踊らせたときの表現力アップのためのパクパク開く手です。▼おくればせながらRS30x用の半二重回路を作りました。これは何かと言いますと、RS304等の双葉サーボからサーボデータを読み取るために必要な装置です。PCからサーボへコマンドを送るだけであれば、USB-シリアルTTL変換器さえあればOKですが、サーボからの情報をPCで読み取るとなると、この回路を噛ませる必要があります。同じように行いました。USBシリアル変換アダプター」の先に、2ロボザック奮闘記さん記事の「Bの回路の図の中の点線で囲まれた回路」を噛ませ、サーボに接続。3サーボとMacの通信はもちろん、miconoさんのRS30xPacketUtilを使います。▼さて、サーボの状態のモニタリングですが、RS30xPacketUtilの右下の「Request」ボタンで行います。すると、以下のようなウィンドウが表示され、サーボIDからコンプライアンススロープまで、バッチリと表示してくれます。▼サーボの情報については、双葉の公式サイトのマニュアルに詳しく書かれています。調整で便利そうなのが「コンプライアンススロープ」の値で、この値を少し大きくすることで、腰ヨー軸などのハンチングを押さえることができ、またバネっぽい挙動にすることもできるようです。この値を小さくすることで、足のクッション的な遊びを減らしてカッチカチの棒のような足にすることもできそうです。▼ROMへの書き込みは、例えば回転リミットを例にとると、1PacketControllerで「Connect」を押す。2PacketMakerのCommandで「回転リミット(正)」を選択。3指定したい数値をPacketMakerのDec:欄に入力し、「Hex→」を押す。4SInt16の欄の内容をコピーする。5それを下のDataの欄にペーストする。6PacketControllerの「Send」を押す。(指定が成功していれば、この時点でPacketControlle下部のスライダにサーボが反応しないゾーンが一部できる)7PacketMakerのCommandで「ROM書き込み+サーボを再起動」を選択。8PacketControllerの「Send」を押す。(たぶん)なんでこんなわかりきったことを書くかといいますと、物忘れの激しい自分が後で見るためです。(笑)フラッシュROMに書き込みが成功したサーボをROBOXERO付属のPWMサーボテスターに接続しますと、ちゃんと角度制限が反映されており、サーボの可動範囲が小さくなることが確かめられます。先ほどの双葉のサーボマニュアルの26ページに書いてあります。(PWMでもほぼすべてのパラメータがコマンドサーボと同様に反映されます。)▼おまけの話ですが、サーボ設定で正逆を変更できることを利用して、ロボゼロの標準ボードで膝サーボ2つを一つのコネクタで制御し、空いたサーボスロットで首を回すサーボを増設、というような使いかができるかもしれません。TYPE-1▼バンダイのRK(アールケー/1985年製)の勇姿を、倉庫に片付ける前に動画に残してみました。内部のコマ(ジャイロ)でバランスをとりながら二足歩行を実現するおもしろロボット玩具です。当時CMを見た記憶があるのですが、時期的にZガンダムの放送時間内にでも見たのでしょう。(撮影時にオートフォーカスを切るのを忘れてピンぼけしていますが、撮影した中では一番まともに動いたテイクだったのですみません。)本体背部のスイッチを入れてから20〜30秒ほど待ち、内部のコマの回転数が十分に上がると歩けるようになります。リモコンにはボタンが一つのみ。1ボタンを押すと歩行動作を開始。2両足が接地しているタイミングでボタンを放すと、停止。3片足が上がっているタイミングでボタンをはなすとその場で片足旋回。なっており、説明書には「歩かせ方には練習とコツが必要です。早く覚えましょう」と書いてあります(笑)▼リモコンとRK本体。