[Essay] ロボットの気絶

久しぶりのROBO-ONEリアル大会を見に行ってちょっと気になったコトがあったので、ヲイラの思うトコロを書いてみる。

ご存知ない方に少し前振りを書くと、ROBO-ONEってのは基本的には人型二足歩行ロボットの格闘大会やな。今は色々と周辺競技もあるんやけど、根幹はドツキ合いや。当然ながら、弱い方は派手に転倒したり、場合によってはリングから落下する。

こういった人型に限らず大抵のロボットには、

  • 動力源となる電源(大抵はバッテリ)
  • 実際にチカラを出すアクチュエータ(この界隈ではサーボと言う場合が多いが、ヲイラは他の領域のコトも考えてRCサーボと表記する)
  • 統括するコントローラ/センサ類(自律で動く場合もあれば、リモコン操作の場合もある)
  • それらを内包するフレーム/メカ類

という要素があって、それらを一体にしてロボットを構成してる。

このうち、全ての動きを止めてしまう(気絶してしまう)要素として最初に浮かぶのは電源やな。電源がカットオフすればもう何もできない。ただ、確かに電源系も重要なんやけど、もし仮に本当に電源系が切れたりするのであれば、大抵は何らかの物理的な現象を伴うコトが多い。特に最近のバッテリは異様に高性能なので、流せる電流も非常に大きい。その結果、断路した瞬間にスパークが発生したり、ましてやショートでもすれば良くて煙、最悪は発火するんだよね。

コネクタの劣化で、コネクタ自体が焦げてくるなんてのもある。大抵、こういうのはわかりやすい焦げた匂いがするので、原因も掴みやすい。

しかし、今回の会場の状況を見ていると、そういった雰囲気が全くないのに突然気絶するといったケースを何度か見てきた。転倒した結果、ピクリとも動かんようになってしまうって奴やな。電源再投入でなんとか復帰したりしてるみたいやけど。

コレの原因がドコにあるのか?を少し考えてみたい。

まず、大抵の制御系のマイコンには、ソフトが暴走した時に自動的にリセットが掛かって再復帰する仕掛けがついてる。一般にウォッチドッグって言われる奴。これはハードウエア的にタイマーが入ってて、そのタイマーがゼロになるとマイコン自体がハードウエア的にリセットされるって感じ。

その仕掛けのあるマイコン上で動作するソフトウエアは、一定の時間内に必ずタイマーを再セットするように組んでおく。そうすると、暴走してワケのわからないコードが実行された場合にタイマーの再セットが行われなくなり、自動的にリセットして復帰するって感じになる。

鉄道なんかで、運転士が一定時間の間に必ずなんかボタンとかを押せってのがあるんやけど、考え方としてはこれに近い。これ、運転士の居眠り検出用で、一定時間以上ボタンが押されないと緊急モードに入るらしいんやな。

仮に衝撃によってなんらかの信号に異常が出て、その結果ソフトが暴走したとしても、ウォッチドッグが作動してればそう長い時間経過を経なくても復帰するハズなんだよね。なので、たぶん原因はソフトとかではない気がする。

ではどこに原因があるのか…

ヲイラの予想はハードウエア的な部分やな。そこで、この記事を読んでもらいたい。今から10年ほど前の記事やけど、この素子…水晶振動子は大して変化してない部品なので、今でもあんまり変わらんと思う。

大抵のマイコンは、そのクロックを正確にするために水晶振動子、もしくはそれを内包した水晶発振器を装備してると思う。簡易なマイコン内蔵クロックを使うケースもあるんやけど、1Mbpsとかの高速なシリアル信号を扱うとか、ましてやUSBを扱うなんて時にはその安定性が問題になるので、大抵は水晶を使うんやね。

この水晶ってのは、いわゆる宝石の水晶そのものなんやな。実際には人工的に製造された水晶を使い、それを削り出して組み込んでいる。水晶振動子の原理は他のページを探してもらえばええと思うんやけど、記事にあるとおり案外衝撃には弱いコトがあるんよ。なんせ「物理現象」で動作する部品やからな。なので、最悪は完全に壊れるんやけど、壊れないまでも動きを止めてしまったり、妙な動きをしてしまったり…

先のウォッチドッグは、ハードウエア的にタイマーを動かしてるワケやけど、そもそもそのタイマーのカウントを進めるのも水晶が元になって作られたクロック信号で動いてる。なので、クロックが止まったら本当に何もできないんよな。

また、水晶は無線の電波周波数を決めるのにもよく使われる。当然、衝撃で動きがおかしくなれば、電波も止まるかもしくは周波数がズレるワケね。

ここまでのお話を理解した上で、リング上のロボットの動作を考えてみる…。大抵、コントロール系は胸か頭、もしくは背中のあたりに実装してるハズや。特に最近は重量制限緩和で身長も高いのが増えてきてる。重心規定からも、重量物はできるだけ上半身ってトコか。その高さから、リング上に叩きつけられた時の衝撃は、記事にあるような「打ち所」ってレベルでは済まないようなコトになってると思うんやけど、どうなんだろうね。

ここで、似たような構成になっているRC…特にヲイラが知ってる空モノの場合を書いてみよう。

RCの場合、コントローラに相当するのは受信機とかジャイロになると思う。これらを機体に積み込む時は、長年のノウハウとして必ず「何らかのクッション経由」で積むコトになってる。ガッチリベッタリ機体に固定するのはアカンってコトになってるんやな。なので、例えば受信機の樹脂ケースをスポンジ両面テープで貼るとか、固定用のネジ穴にゴムブッシュが入るようになってるとか、そんな感じ。

特にエンジンを積んだ飛行機の振動はハンパないからね。これで受信機が動作不良を起こさないためにも、必ずクッションを入れて積んでるんやな。空モノの場合、問題が起きれば墜落するワケなので、特にこの辺は慎重に研究されてきていると思ってる。

(まぁ、時代が変わって害悪に成り果てたノウハウもあるけどな…シリアル信号の時代にツイストケーブルを使うとかさ)

RCサーボにしても、ギア等の保護も兼ねてボディをゴムブッシュ経由でマウントしている。ケース内においても制御基板をガチガチに固定するコトは少なくて、大抵粘性のある接着剤で貼ってあるって感じやな。ある程度の遊びを設けてあるんよ。

なので、一つの提案なんやが…

コントローラ基板とかその類、水晶を搭載した基板を何らかの方法でクッションを入れて機体に固定するのをオススメしたい。基板をネジ止めしたアルミ板をフレーム本体にラバーマウントするとかな。無線基板が別の場合は、そいつにもクッションを入れてやるコトをオススメする。

無論、他の原因で気絶する可能性もまだまだあるとは思うんやけど、まずはココからとチャウんかな?って思うんよ。

取り急ぎ…

Zak について

基本的にヲタクです。いや、別に萌えとかいうのではなく、ハマるとトコトン進めようとする癖があるので、自制が必要だという…。
カテゴリー: RCJ OYAJI, ソフトウエア, なんか作る, マイコン, ロボット, 書き物, 電子回路 パーマリンク