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


前回準備した自動復帰システムでは、SELECT+START同時押しによるデフォルトの脱力オンオフが使えなくなっていました。
そこで、今回はその機能を復活させるための仕込みを行いたいと思います。




原理としては、脱力スイッチのオンオフを判定するフラグを別途独自に設定するというだけです。
それを参照して全サーボオンなのか全サーボオフなのかを分岐させていきます。




【モーションの作成】

<脱力スイッチモーション>
・脱力フラグ用のユーザー変数を準備。例ではv[68]をフラグとし、1なら脱力フラグがON、0なら脱力フラグがOFF。

[START]
01:脱力フラグv[68]を判定。1なら今脱力状態なので全サーボオン→02へ、逆に0なら脱力→03へ
02:v[251]=1 #強制サーボオン
→v[68}=0 #脱力フラグを下ろす
   →2秒(120step)程度で、構え(通常の立ち姿)のモーションを実行
   →[END]
03:v[251]=0 #強制サーボオフ
→v[68}=1 #脱力フラグを立てる
   →0.1秒(6step)程度で、全サーボオフのモーションを実行 #念のため
    →2秒(114step)程度で、全サーボオフのモーションを実行 #念のため
    →[END]

※全サーボオフのモーションは、全サーボのモーションスライダの左ボックスをアンチェックで作れます。

<アイドリングモーション>
01:脱力フラグv[68]を判定。
 →0ならv[251]=1 #強制サーボオン
  →1ならv[251]=0 #脱力

【操作マップの設定】

<脱力スイッチモーション>
 ・全モーションの先頭に配置。
 ・再生条件SELECT+START
 ・受入×無効、割込○有効、Idling割込○有効

<アイドリングモーション>
 ・「登録モーション設定」の「アイドリングモーションの設定」に設定。




以上の方法を、前回の自動復帰システムと合成すればできあがりだと思います。
脱力モーションの信号を送った後で通信断絶してしまうと、復帰ができなくなりますが、確率は低いと思うので問題ないかと思います。
脱力信号受け取りから一定の秒数後に自己判断でサーボオンして立ち上がるという設定も可能ですが、勝手に動くということから触れる人への危険を伴うことになるため、その機能はあきらめ、試合よりも安全を優先するのがビルダーとしてのモラルかなと思います。




また別の方法として、常にオンにするのではなく、電源投入時のみ、v[251]=1→起き上がりモーション始動とする方法もあります。
そちらの方がシンプルですが、ロボットの設計によっては、脱力時のサーボ位置の都合からあらぬ回転方向経由でポジションに戻ろうとして起き上がれなくなるということもありえます。常時オンに設定しておくことで現状復帰できる可能性を高くしておけるというわけです。
スポンサーサイト

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

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の機能を変更せずにそのまま使い続けることもできると思います。

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

VS-RC003のキャンセル設定


VS-RC003に「キャンセル設定」という項目があります。
例えばAボタンで発動するモーションプログラムの実行中に、Bボタンの入力があった際、
Bボタンの入力を無視してAボタン用モーションを続けるか、
現在実行中のAボタン用モーションを無視していきなりBボタンのモーションをはじめるか、
などを決める項目です。が、用語がいまいち分かりずらいです。
ゼノ先生に聞いたのでまとめてみます。




【受け入れキャンセル】
この設定を有効にしたモーションは、他のすべてのモーション実行割り込みを「絶対に受け入れる」。

言い換えれば、モーションの実行権を必ず奪われてしまう一番立場の弱いモーションです。
たとえば、コンビニのバイトで棚に商品補充をしているとき、どんなお客が来てもレジに立たれた時点でレジ打ちをすることになりますが、この時の商品補充が「受け入れキャンセル」に該当します。たぶん。

【割り込みキャンセル】
この設定を有効にしたモーションは、他のどんなモーションにも「絶対に割り込むことができる」。

割り込まれる側のキャンセル設定を無視して割り込み実行することができる最強命令です。
オーナー会社の社員であれば社長命令が「割り込みキャンセル」に該当します。たぶん。

ちなみに「他のどんなモーションにも絶対に割り込まれない」鉄壁の命令というの設定はたぶんありません。
受け入れキャンセルも割り込みキャンセルも言葉面はそういう設定にも見えてしまいますが、違います!




「キャンセル」という言葉が混乱を招くため、なかなかわかるようなわからないような言葉ですが、
アイドリングモーションには、「受け入れキャンセル」を有効に、
緊急時の全サーボオフののモーションには「割り込みキャンセル」を有効にする。
と具体例で考えれば、概念自体はごく普通のことです。




ちなみに、全サーボオフにはあらかじめSTART+SELECTが割り当てられていて、他のすべてに優先します。
また、アイドリングモーションのキャンセル設定も、専用の項目が設けられていたりします・・・・




【アイドリング割り込みキャンセル】
先に実行中のモーションがアイドリングモーションだった場合にのみ、割り込みを行う。

「割り込みキャンセル(有効)」の制限版といったところでしょうか。
たとえばパンチのモーションでアイドリング割り込み(有効)とすると、
キック中はパンチボタンは無効、アイドリングモーションの時のみパンチを出すようになります。




これらのキャンセル設定を利用して、ちょっと役立つ仕込みを行うことができます。
次回はROBO-ONEでも有効な「緊急時自動回復モーション」を設定してみます。

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

VS-RC003用PHR-USBケーブル


VS-RC003のUSBソケットが本格的に壊れてきたのですが、
秋葉原まで専用ケーブルを買いに行く時間がないので、再度自作しました。

実はかなり前に1度自作しているのですが、その時は接触不良がありうまくいきませんでした。




今回はUSBケーブル自体は細く軽量なものを使いつつ、PHRコネクタとの接続部分には太い線を使うことで、市販品のような強度を目指してみました。




th_CIMG8655.jpg

ピンアサインは写真の通りで合っていると思います。
ちなみに写真のUSBオスのピンの接点金具は、カメラ側に向いている状態です。言い換えれば周囲を覆っている金具の継ぎ目が机側になるような状態の時のピンアサインを示しています。(※自作される際は、念のため各自お調べください。)




再作成したPHR-USBケーブルは無事に動いています。
が、ケーブル自体が壊れた時を想定して、市販品の変換ケーブルも持ち歩いておきたいところです。

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

摩擦変化への足裏応急処置


韓国大会のリングは思ったより摩擦が高く、現地で調整が必要になりました。
ロボワンの公式リングも最近はステッカーでほぼ前面が覆われているので、摩擦度は同じくらいかもしれません。
ライト級はこの微妙な摩擦の差が動作に大きく影響してくるので注意が必要です。




th_CIMG8303.jpg

大会当日のゼムネスの足裏です。
リングの床面が摩擦を持っていたので、足裏にScotchメンディングテープを張り摩擦を調整しました。
歩行バランスの乱れは滑りによって自然に補正してもらえるので、グリップ足とはいえ、適度なスリップが欲しくなるものです。
サイドステップ時のグリップはそのまま必要になるので、足の内側のエッジを立てて使う辺のグリップはそのまま残してあります。




韓国大会でのタイニーウェーブのほとんどがアルミそのままでしたし、姫路大会(コルクマット)での活動を前提として作られているというロボゼロの足裏もアルミそのままです。
ということで、試行錯誤を一周して、アルミそのままというのも万能性、安定性はかなり高いかもしれません。

安定性度が高い分、アルミそのままではスピードが出にくかったり、踏ん張りが利かなかったりするので、その辺りが楽しい悩みどころです。




当日のリング状態に合わせて、たとえば足裏をグリップタイプ、スリックタイプの最低2種類準備しておくのがよいと思いますが、今回の記事のように、メンディングテープで応急処置してしまうのも手かと思います。
ちなみにメンディングテープですべり過ぎる場合には、セロハンテープにすると少しだけグリップが出ますし、
もう少しグリップが欲しい時は薄手のビニールテープとすれば、3〜4段階の微妙な調整も可能です^^

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

VS-RC003小ネタ集in韓国


今回のコネタ集は我ながらなかなか充実しています。
韓国大会の宿泊先で同室になったゼノ先生にいろいろ教わりました。




th_CIMG8283.jpg

VS-RC003にUSBケーブルを接続する対基板コネクタがパターンごとはがれてグラグラになりました。基板に乗せる形で半田漬けされているのであまり強度がないのですが、ケーブルを挿したままハードなモーションを作成したりすると、強度に対してかなり無理な力がかかります。
接触不良になり安定した通信が困難になりました。もうすぐポロリととれてしまいそうです。
USBコネクタの右側に白いジャックがありますが、実はここもUSB入出力になっています。


th_CIMG8285.jpg

ゼノさんによるとこのUSBコネクタの剥離はかなりメジャーなVS-RC003あるあるネタだそうです。
隣の白いコネクタに接続するためのUSB中継機がちゃんと売っているので、それを1つ持ち歩くと良いそうです。
以前自作したものは線が細くてすぐダメになったのですが、製品版は上部でよい感じです^^
テルルがよくぶら下げているのもこれでったんですね〜




th_CIMG8294.jpg

現場ではVS-C3が4機ぐらいありましたが、VS-C3同士の混線を防止するために全機で再ペアリングを行いました。
下記はペアリングのアドレス重複の可能性を払拭するための作業です。

【みんなで再ペアリング手順】

①現場にあるVS-C3系使用機体をすべて集めて、車座に並ぶ。
②ロボット&コントローラーの電源をすべて切り、自分のコントローラーを右隣の人に渡す。
③1台ずつ順番に電源をONし、自分のロボットと他人のコントローラーのペアリングをする。
 ペアリングを終了したロボットとコントローラーの電源はONのままにしておく。
 また、前の人がペアリング終了するまで、次の人は電源はOFFのまま待つ。
④すべてのペアリングが完了したら、
 ロボット&コントローラーの電源をすべて切り、各自自分のコントローラーに持ち替える。
⑤1台ずつ電源を入れ、自分のロボットと自分のコントローラーを同様の手順で再ペアリングしていく。

これで通信不良が起こるようなら、約10m半径内のどこかに新たなるVS-C3使いが潜んでいるか、
もしくは他の無線機器等による電波障害であるということになります。




実は韓国大会のロボットはほとんどがクラス1のBlutooth無線を使っていたようです。
クラス1は有効範囲約100メートル級の出力(100mW)で、最大です。クラス2は10メートル(2.5mW)、クラス1が1メートル(1mW)となります。
VS-C3はスペックによると通信距離約10mとなっているのでおそらくクラス2と同等です。
また、2.4Ghzとは書いてありますがBluetooth準拠ともZigBeeとも書いていないので、独自規格かもしれず、とすると干渉を受け、電波が弱ければ負けてしまうことになると思います。
また、同じクラス1でも、上限の100mWに対し日本の電波法で定められている電波強度の上限はBluetoothの場合でおよそ50mW程度までとなっているそうです。


過去に電波の周波数帯についてまとめた記事があります。


また、下記の記事なども参考になりました。
周波数ホッピング機能、AFH機能、クラス別の電波強度などの説明が分かりやすいです。
http://www.musenka.com/info/bluetooth/




Robovie-makerのモーション作成時に、サーボ箇所のチェックをはずすとサーボ毎に脱力のオンオフが設定できるという話。
かなり大事なことなのに見落としていました。




VS-RC003にジャイロやアナログ入出力ボードなどのIXBUS拡張基板を複数接続する際、CN7に機器を数珠つなぎにつなぐ。
CN6にIXBUS機器は接続できません。CN6はコントローラー(もしくはシリアル接続)専用です。
必死につなごうとして認識せず、悶絶してました・・・




待機モーションに「一定時間放置で自動起き上がり」という仕組みを仕組んでおくと、いざという時よい。
たとえばROBO-ONEではダウン後のタイムはとれないですが、起き上がり後のタイムはとれるため!
最初のダウンを奪われた後に通信不良が起きた際に、自動起き上がりがあればタイムで2ダウン目をとられますがもう1チャンス試合を続けられます。




また、待機モーション等で変数251に1を代入すると、いつでも全サーボをONにすることができます。
(SELECT+STARTは1度押すごとに変数251の1,0が代入される仕組みです。)
前述の自動復帰と組み合わせることでいい感じになります。
たとえば何かの都合でCPUリセット&通信不能となった場合でも、復帰が可能になります。
※デフォルトでSELECT+STARTに割り当てられている全脱力については安全上、またROBO-ONEルール上も必要ですので、別途設定する必要があります。

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

韓国遠征②


2016年12月27,28日に行われた韓国のロボット大会IRD(International Robot and Drone contests)の様子です。
会場は仁川からリムジンバスで30分ぐらいの松島(ソンド)にある韓国ニューヨーク州立大学キャンパスでした。


th_CIMG8461.jpg

ソンドは韓国のドバイ?と言われる新しい副都心だそうです。特に会場周辺は道路と高層ビルで構成されています。
(バス停の近くまで行けばちゃんと街があります。)




th_CIMG8287.jpg

宿泊地であるキャンパス内の寮を出て、体育館に向かって歩きます。現代美術っぽい丸みのある屋根の建物は講堂のようです。


th_CIMG8288.jpg

会場の体育館はガラス張りの建物の中です。



th_CIMG8299.jpg

th_CIMG8298.jpg

エントランスを入ると、ブロック教材による作品が展示されています。
たぶん小学生の作品です。




会場ではいろいろなロボット競技が行われています。
初日と2日日めで競技が入れ替えになっていますが、まとめてご紹介いたします。


th_KIMG0103.jpg

背中にサイコロ9個を背負って行うライントレーサーです。面白そうです。


th_KIMG0097.jpg

ブロック教材で自作した機体による玉入れのような競技。許されるならゼムネスで参加した〜い。


th_CIMG8296.jpg

こちらもブロック教材による自作機体でいくつかのタスクをこなすタイムトライアル競技。
荷物を運んだり、所定の位置に駐車したり。地形がカラフルでゲームっぽく、こちらもゼムネスで参加したい競技です^^


th_CIMG8381.jpg

二足ロボによるアスリート競技。階段昇降&簡単な迷路の走破。
この競技もゼムネスが得意そうですが、選手はほとんど小学生のようで、そもそも大人はお呼びではないようです。


th_CIMG8374.jpg

ライントレースでブロックを所定の位置に置くなどのタスクをこなしていく自律競技です。
レゴマインドストームを使う競技でも同じタイプの競技があったかと思います。


th_CIMG8425.jpg

二足ロボによるラジコンロボサッカー。


th_CIMG8421.jpg

ロボット相撲は機体同士が押し合うのではなく、ペットボトルを押し出すタイプのようです。
(競技中の写真を撮り損ないました・・・)


th_CIMG8306.jpg

おなじみのロボワン。


th_CIMG8312.jpg

ロボワンライトは、小中学生クラスと、高校生以上(シニア部門)に分かれているようです。
シニア部門と3kg以下級のロボワンはこちらの大きなリングで試合が行われます。


th_CIMG8314.jpg

小中学生クラスはリングが小さいです。


th_KIMG0074.jpg

ランブル大会もありました。黒い線を踏むか、線からはみ出すとアウト。
残った2台は敗者復活となり上位トーナメント進出となります♪




th_CIMG8457.jpg

宿泊寮の窓際にて。
韓国人選手と日本人選手は同じトーナメントで競いますが、受賞は別々となります。
韓国人選手のみで順位が決められ、招待選手である日本人選手は特別賞となります。
ということでゼムネスもトロフィーを頂いてしまいましたが、内容的には1回戦敗退です><
韓国まで出向いて1回戦敗退というのはお恥ずかしい限りですが、このトロフィーのおかげで、
「2015年はヒト型レスキューロボット大会で優勝し、2016年は韓国のロボット大会に招待選手として招かれ特別賞を受賞しました!」と自己紹介しても客観的には事実ということになりました。賞に見合う実力がともなうように精進します><


th_CIMG8459.jpg

帰り道は雪でした。
通りすがりの韓国紳士が我々を見かねてか、タクシーを呼んでくれました。本当に助かりました〜。




写真を並べてみるとさらりとした感じですが、当日は全力で通信不良の原因究明を行っており、休むヒマもありませんでした。
トラブル対応や学んだことなどについてもご報告いたします。

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

プロフィール

二名川(ニナガワ)

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 ゼロライナー
以下続く

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