VS-RC003への自動復帰システム仕込み①


ロボットに通信断絶トラブル等からの自動復帰を仕込みます。
OneShotの関くんやゼノさんに伺ったテクニックをちょっとだけアレンジしたまとめ記事です。
(先週一度アップしたんですが、上書き消去してしまったため、書き直しました。)




自動復帰は下記の2つの機能を持ちます。競技での使用が前提です。

① 常時サーボオン状態に設定にすることで、不慮のCPUリセットからもサーボオン状態になれる。
② 倒れた時に、通信断絶状態でも起き上がることができる。


通信断絶トラブル自体の解決はできないのですが、一定の条件化で通信トラブルによる競技終了を回避できます。
特にロボワンの試合で有効です。相手の攻撃がヒットした直後のダウン中は、立ち上がるまでタイムがとれない(カウントダウン終了までに立てなければKOとなる)ため、ダウンと同時に通信断絶した場合には、通常はそのまま負けが確定してしまいます。
しかしロボットが起き上がりまでを自己判断で行うことができれば、立ち上がった後にタイムを宣言し、ピットで通信回復を行う事ができるというわけです。




基本となる考え方と構造です。
VS-RC003はSELECT+STARTのボダンを押下することで、変数v[251]の内容が0と1で切り替わり、この変数の内容に応じて、全サーボのオンオフが反映される仕組みになっています。
この変数v[251]の制御方法をいじることで、通信状況によらず自動復帰できるようにします。


【基本設定】
・各モーションのアイドリング割り込みを基本的にすべて有効にする。
・使用できる変数を一つ準備する。(今回の例ではV[69]を使用しています。)


【モーションの内容】

<アイドリングモーション>
[START]
01: V[69]=0 #自力復帰タイマー用カウンタ
02: V[69]+=1 #自力復帰タイマー用カウンタに+1
03: v[69]>300 yes→<起き上がりモーション実行>→[END]
04: v[251]=1 #全サーボ電源強制ON
05: 02に戻る #アイドリングモーション中はカウントアップでループ。各モーションはボタン入力割り込みにより実行。

※<起き上がりモーション>はアイドリングモーションのプログラム内に書くか、
 変数だけ設定してENDし、変数参照でモーション実行するようにする。

<脱力モーション>
基本姿勢のプログラムスライダーのボタンをすべてアンチェックし、
脱力解除のボタン(任意に設定)が押下されるまでループする設定にする。


【ボタンの設定】
START+SELECTボタンでの脱力が無効になりますので、代替手段を用意します。
脱力を有効にする一番手っ取り早い方法は、脱力用のボタンを別途設定し、
前述のモーションに入るようにしておくことかと思います。




基本はこれだけでOKです。
試合中に通信不良に陥りギブアップ!という後継は時折見かけますが、自動復帰を仕込んでおけば活路を見出せます。
まだ1ダウン目であれば、復帰からのタイム宣言で合計2ダウン。
2ダウン目の通信不良であっても、ポイントで同点以上かつ試合終了間際であれば、時間切れのポイントリードによる勝利もしくは延長戦での仕切り直しに持ち込むめる可能性を残せます。

ちなみにゼムネスでは自動復帰判定後、立ち状態・転倒姿勢の裏表を自動判別するモーションを再生するようにしているので、立った状態で10秒放置しても暴れずに首をちょっと振る程度になっています。
このように、各自カスタマイズすると便利度がアップすると思います。
上手く調整すれば、SELECT+STARTの機能を変更せずにそのまま使い続けることもできると思います。
スポンサーサイト

テーマ : 自然科学
ジャンル : 学問・文化・芸術

コメントの投稿

非公開コメント

プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク