●RCにおける「操縦者の操作」と「RCサーボの動き」の間にあるもの
操縦者は送信器(いわゆるプロポ)のスティックを動かしまたはスイッチを切り替え、機体に積んだRCサーボ等を動かして操縦する。この時、実際にはどのような手順で信号が送られているのかをまず解説する。
送信器の電子回路(古くはアナログ、近年はデジタル/マイコン)は、内部的に決めた一定間隔の時間毎に全てのスティック/スイッチの状況を監視している。あるタイミングで確認したスティックの角度/スイッチの状況は、なんらかの方法で信号化され、電波に変換され送信される。受信器は、受信した電波から元の信号を復元し、それを再現するようにRCサーボ等に反映させるための信号を生成する。いわゆるRCサーボ用のPWM信号やシリアルバス信号のことやな。
一見、スティックの動きに完全に同期してRCサーボ等がリアルタイムに動いているように見えるが、実際には一定間隔毎に作業を行なっており、不連続な動作である。これが連続的に見えるのは、その間隔が充分に短い時間だからやな。
この間隔のコトを周期という。
●具体的な処理の例
・アナログ時代
原始時代まで遡るとメーカー毎に様々な方式があったようやが、汎用のRCサーボが販売される頃になると、概ね概略的なモンは共通になったようや。
共通になった頃のアナログ回路で構成された送信器の場合、送信される信号は実は実際にRCサーボが動作するのに必要なPWM信号そのものに近いものであった。通常、PWM信号は900uSec~2100uSecのパルスであるが、各チャンネルのパルスをシーケンシャルにまとめ、更に時間軸を圧縮するために「短いパルスの立ち上がり(もしくは立ち下がり)の間隔が本来のPWM信号と同じになるような信号」を生成して送信していた。一般にこれをPPM信号と呼んでいる。
つまり、8ch分のパルスなら最大で2100uSec x 8+α(パルス自体の幅)の時間で送信するコトができる。合計して16.8mSec+αって感じやな。
で、このままやと先頭(通常、信号はch1から順番に送ってた)がどこかわからないので、2100uSec以上の長い休止時間を追加し、全体として約20mSec間隔で送信していた。2100uSec以上の休止があれば、次は先頭のch1だとわかる…という仕組みだ。メーカーによって若干の差異はあるものの、概ねこんな感じであった。
時代が進み、もう少しチャンネル数を稼ぎたいからと9ch分を詰め込むコトもあったようやが、この段階までは「全体として20mSec前後の間隔」は「技術的にそうするしかなかった」のであった。
・デジタル時代
10ch以上の送信器の実現には、マイコンを用いたデジタル方式を用いる必要があった。送信器は信号をPWM信号やPPM信号ではなくデジタルによる数値とし、これを電波に乗せて送信した。受信器にもマイコンを搭載し、電波から復元した値を元に受信器自体がPWM信号を生成してRCサーボを駆動するようになった。とはいえ、初期の頃は電波の周波数が低いためあまり多くのデータを一気に送るコトもできず、チャンネル数を増やすにもソコソコ難儀する時代ではあった。
なお、周期は慣例的にアナログ時代と同じ20mSec前後が多かったのではないかと思う。というのも、受信機のマイコンもショボい規模でしかなかったので、送信器から受け取ったタイミングでそのままPWM信号を生成/出力するしかない上に、当時はまだアナログ方式のRCサーボが多く、迂闊に周期を早めてしまうとRCサーボが焼ける可能性が高まるという問題があったからやな。
近年は2.4GHz帯の使用がメインになってきたが、ここではまた別の問題があって、考え方を少し変更する必要があった。というのも、2.4GHz帯での送信出力は国によって違いはあるもののかなり低く抑えられており、長距離の送信には少し工夫が必要になってきたからだ。国によって規制が違うが、例えば日本では「平均の電力」で最大値が決められている。これは、例えば一定時間の隙間(休止時間)を開け、その分を一気にまとめて強い電波を出すことができるというコトやな。
単純計算ではあるが、例えば常時出力で1の電波が最大であるならば、9休んでから出す電波は10の強さでOKということだ。そうやって電波の強度を確保することが可能であるし、またその必要があったというコトやな。
その代わり、周波数が高いので短時間に多くのデータが送信できるようになった。ヲイラが取り扱ってるDMSSの例では、約60Byte(16ch分のデータ)をたったの3mSecで送信できる。これを先の休止時間と絡め、14mSec毎に1回送信するというスタイルになっている。この頃にはもうアナログ方式のRCサーボも概ね一掃されてたから、周期を20mSec前後に拘る必要も減ってきたからね。
とはいえ、初期のDMSS受信器では一応アナログ方式のRCサーボを考慮(お客さんが持ってるストックがあるからね)し、PWM信号としては周期20mSec前後になるよう調整が行われていた。この時期のマイコンはそれなりにパワーアップしてたので、そういう細工もできるようになったワケやな。ただ、パワーアップしたとはいえ、この細工はどうしても擬似的なモンになってしまってた。RCサーボ側の動作が細やかになってくると、動作の滑らかさが失われるという問題が顕著になってきたので、途中からPWM信号も周期14mSecで送信するように改めた。
DMSS受信器は、ある時期からXBUSというシリアル信号も出力するようになってきた。これはRCサーボ側もシリアル信号を解釈できるモンが出てきたからやな。コッチは最初から周期14mSecで出力しており、XBUS信号での駆動とPWM信号での駆動に妙な差異が発生したコトが、先のPWM信号の周期変更につながったというエピソードがある。
●周期と遅延
既に述べてきたが、RCのシステムにおいては常に送信器が一定周期で信号を出力しており、それを受信器が受信して動作を再現している。当然、周期が早い方が「時間的により細かく」動くコトができる。スティックを操作したあと、いつその状態が確認され送信されるのかを考えれば、理想の周期は無限に速い方が良いコトになる。
一方、送信器内部の処理としてマイコン等でスティック等の状況を確認するためには、それなりに時間が掛かる。いくらマイコンそのものが高速であっても、外部の状況(特にアナログ値)を取り込むにはそれなりに時間が掛かるからだ。また、スティックの状況がストレートに送信されるのであれば良いが、実際には大抵なんらかのデータ加工が行われる。ヘリであればスワッシュプレートのためのミキシングがあり、飛行機でも各種のミキシングが存在する、また、スティックの動きを変化させるためにスティックカーブの演算を行うコトもある。
さらに、それらを元に送信するためのデータを生成し、電波として出力させるのにもそれなりの時間が掛かる。つまり、いくら周期を無限に速くしても、スティックの動きが電波に反映されるまでにはある程度の時間が掛かる。これが遅延である。
当然、遅延は送信器内部だけではなく、受信器内部においても発生する。電波を受信し終わると同時に処理が開始されるが、電波から得た情報を解析し、PWM信号を生成するのに必要な時間があるからだ。また、RCサーボ内部においても入力されたPWM信号を解析し実際の角度情報を得るのに時間が掛かる。最悪、2100uSec待たないと角度情報が確定しないからね。
当然やが、電波から得た情報を受信器がそのまま出力しRCサーボ等に流し込む方が遅延は少なくなる。XBUS等のシリアルバスのメリットの一つはここにある。
従って、周期は早いに越したことはないが、実際には遅延がどれだけなのかを考慮しないで周期だけ見ても意味がない。しかも、周期は割と簡単にわかるが、遅延は複雑に絡んだ結果なので評価するのが難しい。しかし、実際の操作感においては遅延を考慮しないワケにはいかないというのが実態である。
端的な話、遅延が20mSecで周期が1mSecな環境では送信器を操作してサーボに反映されるのに最大21mSecかかるワケやが、遅延が1mSecで周期が10mSecなら最大11mSec後には反映されるコトになる。周期だけでは意味がないコトがご理解いただけると思う。
(以下の項、指摘があったので少し書き直し)
ちなみに、アナログ時代は送信器からのPPM信号を順次受信器がPWM信号に変換して各サーボに分配していた。送信機は送信機で、PPM信号生成を順次行っていたので、スティック等の信号を取り込むのも順次であった。ch1が最初に生成され、ch8は一番後回し(ch1に比べて最大約16mSec後)というカタチやな。
その結果、各チャンネルの遅延そのものは概ね同じなんやが、動作の起点がバラつくので、動作もバラつく原因になった。当時既にこのバラツキに気づく人は結構いたので、今の環境での遅延の問題も充分気になる人がいると思う。
●まとめ
周期の意味と、遅延との違いについて述べた。遅延はその計測が結構難しいが、割と重要な要素ではあるので、この項の内容が気になるのであれば、今後はそういった点にも注意を払うコトをオススメしたい。