RCサーボの電流の話

昔から散々問い合わせがあるんやけど、なかなか分かってもらえないので、ココに書き記すコトにした。

なにはなくとも、まずはこの図を見て欲しい。

これは電流プローブを用いて実測した、RCサーボ動作時の電流波形だ。時間軸を表示させるのを忘れたが、確か60度スイング時の波形のハズなので、50mSec/divのハズだ。縦は電流で、書いてある通り2A/divやな。

つまり、このRCサーボは約0.13秒/60度で動作するものだ。起動時に6Aの電流が流れ、停止時に至っては9Aを超える電流が瞬間的に流れる。トルクは50kgcmぐらいある奴やからね。全力回転中は約2A強ってトコか。

●指摘その1:瞬間的な電流増

ここからまず一つ言えるコトは、この瞬間的な電流に対応できる電源でないと、RCサーボはまともに動作できない…というコトだ。特にスイッチング電源の場合、スイッチング速度が遅いとこの瞬間的な電流増に対応できず、腰砕けしたような動作になってしまう。起動は鈍いし止まりも悪い。

二足歩行ロボットなんかでモーションを作成していて、電源装置を使った場合とバッテリを使った場合で動作が違ってしまう理由の多くはココだろう。いくら表向きの電流仕様が大きなものでも、瞬間的な電流増に対応できない電源では動作が緩慢になってしまうんだよね。だから、電源装置を使って作成したモーションをバッテリで動作させると、いきなりハネるなんてコトになるワケや。

●指摘その2:その機体のバッテリの「持ち」は、運用込みでないと判明しない

別の言い方をするなら、機体に搭載するバッテリ容量の決定は、実際にどう運用するのかによって大幅に変わる…というコトだ。

以前の会社にいた頃にもこの手の質問を散々受けて困っていたことがあった。バッテリの容量を決めたいから、RCサーボが消費する電流を教えてくれ…といった奴やな。だけどさ、実際の電流がこのように変化するようなモンの「電流値」って何?ってコトなのよ。

平均を取ればと思った人、残念でした。この図は60度一気に動作させた時の電流やけど、これを例えば小刻みに10度ずつ動かしたらどうなるか。似たような時間の間にこの突出した山谷が6セット発生するワケやな。その際の平均値と、上記の図の平均値、イコールになるワケがないがな。

結構多くの人が勘違いしてるコトの一つに「RCサーボをゆっくり動かしたら電流も少ない」ってのがある。でも、実際には小刻みに動いている状態の方が、この山谷が大量に発生する関係で電流爆食いになる。だから、例えばRCヘリのラダー用サーボとか、最近の3軸ジャイロが入ってる機体のスワッシュ用サーボなんかは、ホバリング(空中停止)している状態の時が一番チンチンに焼ける。機体が動かないから冷却のための風も入り込みにくいしね。

例えばスティックをゆっくり動かして、見かけ上RCサーボがゆっくり動いているように見える状態であっても、実際には全速でホンの少し動いては休憩、また全速で動いては休憩って感じで動作してるんだよね。だから、やはり電流としては爆食いになるのよ。

ちなみに、高速で強力なRCサーボになればなるほど、動きとしてはザラついた感じになっていく理由もコレやな。一応、多少の緩和措置はファームウエアの方で仕込んではいるけど、限度ってモンがある。

…こんな状況下で、RCサーボの電流って何?って思わん?

●指摘その3:RCサーボの電流値をテレメトリしても、ほとんど無意味

その2と似たような話なんやけど、よくRCサーボの電流値をステータスで返して欲しいって話がある。なんでも、その値から過負荷になってないかどうかとか、電源のバッテリの残容量の推定をしたいとか、そんな話が多い。

今はシリアル通信を行うRCサーボのおかげで、動作中にそういったステータス情報を引き出すコトも不可能ではなくなってきた。実際問題、そんな情報引き出しの実験も問題なくできてる。

しかし…だ。例えばこの図のどこかのタイミングでステータス要求があったとして、どんな電流値を返せば意味があると思う?毎回の瞬間値だと山谷部分でワケのわからない値が返っていくし、平均値に至ってはアリエナイわけだよね?そうすると、ホスト側は「ワケのわからない電流値に頭を抱える」か「なんか平均かもしれない計算された偽の値」を受け取るコトになるワケよ。

そこに何の意味がある?

無論、制御の一つとして電流制御を行うのは否定しないし、よくある追従制御なんかをやるにはそれが欠かせないのもわかってる。だけど、それはRCサーボの範疇ではないよね。制御に要するマイコンのスペックも遥かに強いものが必要になるし、その分値段も上がれば下手すりゃサイズも大きくなるからね。

そんなコトに頭を悩ませるぐらいなら、もっと簡単に高速に過負荷の可能性を察知できる方法はあるので、ソッチを使えば良い。まぁ、ココではあえて書かないけど。実績として、その方法を使って複数のRCサーボの同期調整ができるとだけは書いておこうか。

●ヲイラの思うトコロ

なので、机上の空論としか思えない電流値を欲しいと言うのは、そろそろ勘弁して欲しいと思う。そんなコトよりも、実際に何がしたいのかを突き詰める方が先ぢゃないのかしらね。

動作調整は本番用のバッテリでやるしかない。バッテリの容量を決めたいなら実運用して決めていくしかない、過負荷の察知は他の方法で考えた方が良いと思う。

これを踏まえた上で、さらに何かあるというコトであれば、それは改めて考えたいとは思うんやけどね。まずはこの状況を認識して欲しいと思うのよ。