ロビに長距離歩行をやらせてみた
2014年8月7日
2014年8月12日改訂
2014年8月20日改訂


 デアゴスティーニの週刊ロビは、先週70号をもって終了しました。
 前回のロボゼロと違って自分でプログラムを作る事はできずデアゴスティーニから提供されるプログラムを動かす事になります。

 一通りメニューにある動作をやらせてみました。
 難易度が高そうなサッカーボールのシュートやバランスゲームは一発で成功しました。
 無調整でここまでできるのには感心しました。

 しかし二足歩行ロボットの基本である直進歩行はあまり得意じゃないようです。
 二歩しか歩かないのに何回かやると倒れます。
 倒れる時の画像を解析して倒れ方を分析して調整してみました。
 なお70号の組み立てガイドに「ロビが倒れるときのチェックと調整」が載っています。



 倒れる時の画像ですが右足一本になった時に後ろに傾いてバランスを崩すようです。



 足裏の角度を青線から緑線にする事により右足一本の時に今より前傾姿勢にできると思います。
 そのためガイドの説明にあるように足首のサーボ軸受けの後方側を高くして足裏を赤矢印の方向に傾けます。



 調整する度に足裏のフェルトをはがしたりカバーネジ留めするのは面倒なのでカバーのネジ受け部分に両面テープを貼ってカバーは貼り付けるだけにしました。
 ガイドでは調整用のワッシャーを使うように指示されていますがビスを完全に外さなくてはならずまた厚みの微調整もできないのでボール紙を挟む事にしました。



 ボール紙を1回折って2倍の厚さにしています。

 何回か歩かせてみましたが以前よりコケる頻度は低くなったようです。
 あまりコケなくなったのでもっと長い距離を歩かせたくなりました。
 オリジナルの歩行プログラムはたった2歩、歩くだけです。
 長く歩かせるプログラムを用意してもよさそうなのでが調整なしで長距離歩行は無理という事なのでしょうか。

 ロビのプログラムのSDカードを見てみます。



 名前からして「歩行4S.RM4」というのがどうも歩行プログラムのようです。
 拡張子の.RM4というの知らないのですが中味はXML形式のテキストファイルのようです。
 ロビのプログラムは私が知る範囲では仕様が全く公開されていません。
 それを改造しようと言うのは無謀な話しですがダメもとでやってみました。



 何となくプログラムを見ていると引き算をして回数の判定をしている所があります。
 どうも90行目の数字が繰り返し回数のようです。
 1を5に変えれば2歩を10歩にする事ができそうです。
 バイト数を変えるとプログラムが誤動作するようなので最大9(18歩)まで変更できそうです。
 ロビのプログラムはジャンプ先などアドレスはプログラムのバイト位置で書かれているのでバイト数が変わるとそのアドレスがずれてしまい誤動作するようです。
 今回は5に変えてみました。
 修正はWindows標準のメモ帳を使いました。
 メモ帳の編集メニュの行へ移動コマンドで90行目に移動します。



 修正後もバイト数が変わらない事を確認します。
 なお修正に当たっては必ずオリジナルファイルのバックアップを取っておいてください。


 実際ロビに「長距離歩行」をやらせている動画です。

     

 今回行ったロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を伴うのであくまでも自己責任という事でお願いします。
 また歩数が増えてロビのころぶ頻度が上がりますので倒れて壊れないように十分注意してください。



 今回調整している途中でロビの右足の5個のサーボがまったく動かなくなりました。
 5個とも全て同時に壊れるというのは考えにくく芋づる式につながっているディジーチェーンが途中で切れてしまった事が考えられます。
 こうなるとディジーチェーンの場合、厄介で順にたどっていくしかありません。

 今回は51号のロビ動作テストを使う事にしました。
 どうもこの動作テスト、最後の「OK」が大音量過ぎて使う気になりません。
 そこでこの音声を小さくする事にしました。
 SDカードのvoiceフォルダーに入っている0131_MIX_13-3_1.wavが「OK」の音声ファイルです。
 音楽用の編集プログラムを使って音量を-32db減衰しました。
 編集プログラムの再生で聞くとかなり小さな音になってしまいましたがロビで聞くと認識できるような音量です。
 これなら夜間テストを行ってもご近所の迷惑にはならないでしょう。

 右足のディジーチェーンを腰から順番につないでいって動作テストで動作確認していきました。
 はっきりした原因は分かりませんでしたがサーボはひとつも壊れていなくつなぎ直したらちゃんと動くようになりました。
 まぁこのディジーチェーン、配線がすっきりするのはいいのですがどこかで接続が途絶えるとのかなり厄介な事になりますね。

 今更何ですが小音量にした「OK」の音声ファイルを下記URLにアップしたのでよかったら使ってください。
 ファイルサイズが全く変わっていないので弊害はないと思いますが一応自己責任という事でお願いします。

  robi_voice_ok.zip


 本文の記事でバイト数が変わるとそのアドレスがずれてしまい誤動作すると書きましたが。
 修正したバイト位置以降のアドレス(バイト)に対して修正して増えたバイト数分加算してアドレスに書き換えれば2桁でも3桁でも正常問題ないと思います。  しかしこの方法だと結構めんどうなのでやっていませんでしたが、
miconoさんのブログに簡単にできる方法が書かれていたので紹介します。

 次のブロックまでに増えた分のバイト数を減らしておけばアドレス(バイト位置)はずないという訳です。



 具体的には90行目の数字を3桁にして次のブロックとの改行を2行を1行に変更します。
 改行は(CR)(LF)の2バイトから成るので2桁だと1バイト余計に減ってしまうので3桁にしています。
 こうしておけば9以下にする場合でも005とかにすればバイトはずれません。

目次に戻る