United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

サーボモーター (RC飛行機用とロボット制御用でのモータの違い)

A simple ‘walking’ robot based on just four joints motorised with standard RC servos

単純なRCサーボで駆動する4つの関節だけで構成されたシンプルな「歩行」ロボットの写真です。人間の歩行を真似することはできませんが、2本の脚で動き回ることができます。

RCサーボまたはホビーサーボは長年にわたりラジコン(RC)模型飛行機の操縦するために使用されてきました。以来、小型ヒューマノイドの手足の関節を動かしたり、連続回転に変換して移動ロボットの車輪を動かしたりするのに非常によく使われるようになりました。しかし、航空機の制御に最適な機能は、ロボットにとって理想的でないものもあります。

ではなぜそうであるかの説明をしていきます。説明の前にまず用語を整理しておきましょう:

  • サーボとはServomechanism(サーボ機構)の略で、入力された制御設定に機械的な出力が追従するように、内部フィードバックを利用する装置の事です。今からお話する内容になります。
  • サーボモーターはサーボ機構の動きの源となるもので、小型のPMDCモーターを使用しています。
  • サーボモーターとは、サーボ機構用に最適化されたPMDCモーターのことで急加速やフィードバックセンサーを内蔵しているのが特徴です。高価なものが多いため、ホビーサーボには使われないです。

これらの定義は、特にインターネットで適切なデバイスを検索する際に重要です。インターネットを使う場合は「rc servo」として検索してください。

位置制御(Postion-Control)サーボ

このタイプのサーボは出力は回転式なものですが、軸は最大でも半回転(180°)しか回りません。出力軸に「ホーン」と呼ばれるレバーを取りつければ、直線的なプッシュプル動作が可能になるので、本来は模型飛行機のフライト制御用のアクチュエータとして使われていました。外見上、「標準」サイズのホビーサーボは全て同じです。長方形の黒いプラスチックまたは合金製の箱に2組の固定ラグ、0.1インチピッチのソケットヘッダー付き3線フラットケーブル接続部、片側から突き出たスプライン付き出力軸が付いています。当初の標準サイズは例えば (781-3058) はICエンジンを搭載した大型のラジコン模型飛行機用に設計されたオリジナルの標準サイズだが、現在では「ミニ」「マイクロ」「サブマイクロ」と呼ばれるコンパクトなサイズも存在します。また非常に重い用途には標準サイズよりもさらに大きなサイズがあります。

全てのアナログサーボは同じ方法で制御されます。角度位置は一定の繰り返しレート(50Hz)のパルス列にエンコードされ、パルスの幅が情報を伝えます。パルス幅が1msであれば反時計回りに最大、2msであれば時計回りに最大の位置にサーボを回すことができます。よく、この数字でサーボが180°回転すると思われがちですが、通常そうではありません(後述)。

RCサーボの内部

全てのRCサーボの基本的な内部構造は同じで図1のようになっています。DCモーターが入ったボックス、小型の減速ギアトレイン、回路基板が入っています。

Inside an RC Servo

モーター

これは他の多くの部品と一緒にケースに収めなければならないため、通常は信じられないほど貧弱で安っぽいものです。幸いなことに、約6000rpmの回転速度を30rpm程度の出力に落とすために必要なギアボックスは、利用可能なトルクも同じように倍にしてくれます。

ギアトレイン

約180:1の減速比を実現するためにはたくさんのギアを詰め込まなければなりません。勿論出力軸は、半回転以上はできないので、データシートではサーボの速度を「60°回転するのにかかる時間」で表すのが一般的です。例えば0.15 secs/60°(0.15秒/60°)となります。脚式ロボットの関節駆動にサーボを使用する場合、このような速い動きは問題になります。これが遅い動きである場合、機械仕掛けのおもちゃのような動きになりがちですが、ある角度から別の角度への移動を一度に行わないようにすれば、簡単に解決できます。その代わりに、PWM信号を少しずつ変化させ、目標の角度に到達するまで、わずかに遅れを発生させてそれぞれの信号を変化させます。

トルク

どのRCサーボもミニやマイクロであっても、ギアのおかげで素晴らしいトルクを発揮します。標準的な「パワー」サーボは、サーボホーンに沿って1cmに距離で測定すると、約170N.cmのトルクを出すことができます。つまり、理論的には出力軸から1cmのところに17kg以上の重さをぶら下げる事ができます。しかし、実際にはナイロン製のギアを使用し適切なシャフトベアリングを使用していない低価格のサーボは理論上の最大トルクを何度も要求された場合、あまり長持ちしないでしょう。サーボに負荷をかけすぎるとすぐにギアの歯が剝がれるカリカリという音が聞こえてきます。頑丈な用途のためにサーボメーカーは出力軸に金属(真鍮)のギアとボールベアリングを使用した高価な製品を製造しています。金属製のギアは確かに簡単には壊れませんが、摩擦してしまいます。最終的にギアトレイン内の「滑り」のためにサーボの精度が低下します。また全体の重量が増え、動作変化に対するサーボの反応が遅くなります。ナイロン製のギアは乱暴に扱うと壊れることがありますが、摩擦がほとんどありません。Karbonite(カーボナイト)と呼ばれる強化プラスチックを使用したギアを搭載したサーボが登場し、軽量・高強度・長寿命を実現しています。

ロボットプロジェクトではトルクに余裕のあるサーボを選ぶことが非常に重要です。ミニサーボで駆動している玩具/教育用ロボットアームは、ブーンという大きな音を出したり激しく揺れ動いたりすることがあります。これは、モーターの負荷に問題がある可能性があります。

エレクトロニクス

エレクトロニクスはモーターとギアボックスのセットを、フィードバック制御を動作原理とするサーボ機構に変える電子機器です。出力軸によって回転するポテンショメーターは入力制御パルスによってトリガされる単安定器のパルス持続時間を設定します。2つのパルスは比較され、その持続時間の差がモータードライバー回路への動作信号となります。誤差パルスが長ければ長い程、モーターは速く回転し誤差が小さくなるにつれて減速し、誤差がゼロになると停止します。実際には、ある最小の誤差パルス幅に達するとモーターの駆動が停止し、目標位置に周囲に短い「不動帯(デッドハンド)」ゾーンが導入されます。この不動帯により負荷が除去されたとしても、モーターが停止しジッターも停止します。ただし、このタイプのサーボでは目標の角度に到達した後の「保持力」がないことを覚えておく必要があります。つまり重量物を持ち上げたり重力に逆らって位置を保持したりするのに向いていません。適しているのはロックボルトを前後に動かして家のドアを開けたり閉めたりするような、水平方向アプリケーションです。残留負荷があると、位置を保持しようとするためにモーターが不動帯を出たり入ったりして起動と停止を繰り返すことになります。これには2つのことが起こります。ブーンという不快な音や振動が発生します。2つ目は高いストール電流が流れてモーターの巻線が焼き切れてしまいます。脚式ロボットを設計する際には静止しているサーボに大きな負荷がかからないようにすることを念頭におく必要があります。

つい最近までRCサーボの回路はアナログ式でしたが、現在ではほとんどの処理をマイコンで行うデジタルサーボが登場しています。デジタル化する事で従来の50Hzから300Hzという高いPWM周波数で動作するようになり、スピードと精度が向上しました。またデジタルサーボは反応も速いですが、それはマイコンが停止するまでランプダウンするというよりはむしろ目標の角度ぴったりまで高速でモーターを駆動できるからです。一方で欠点としては、PMDCモーターという電気的干渉の大きな原因のすぐそばに複雑なデジタルチップを置くことで信頼性が低下する可能性があります。

The format of the control signal which determines the servo position

サーボインターフェース

サーボの位置を決める制御信号のフォーマットは図2のようになっています。複雑すぎると思われるかもしれませんが、単に可変電圧を使用すればよいのです。これはPWM(Pulse Width Modulation:パルス幅変調)と呼ばれるデータの符号化形式で、無線通信回線のRF(Radio Frequency:高周波)キャリアを変調するのに使われています。これはホビー用サーボの元々の用途であるラジコン模型飛行機に通じるものがあります。紛らわしいかもしれませんが、PMDCモーターはPWM形式の信号で直接駆動する事ができ、そのパルス幅でモーターの速度を決定します。詳しくは「Spinning the Wheels」という記事をご覧ください。

先ほど、RCサーボの出力軸は180°回転すると説明しましたが、図2からわかるように、標準的なパルス幅の限界である1msと2msでは約120°しか回転しません。これは模型飛行機の操縦では問題ないかもしれませんが、人型ロボットではハンディキャップになりかねません。幸いなことにパルス幅の最小値を0.6msに最大を2.4msにする事で、半回転させることができます。通常はこの方法で動作しますが製品によっては動作しない場合もありますので購入前に確認してください。最近のデジタルサーボはどちらのレンジにも対応できるようになっています。

ハードウェア

ほとんどのマイクロコントローラチップにはハードウェアの「カウントキャプチャ」モジュールが搭載されており、プロセッサのオーバーヘッドなしにPWM信号を生成するようにプログラムすることができます。また拡張ボードも提供されており、Kitronik社の16チャンネルモジュール (204-8219) やBBC Micro:Bit用のKitronik 16chモジュール (204-8219) 、MikroElektronika 16ch Clickモジュール (184-0942) などがあります。これらのモジュールはオンボードでPWMを生成し、I2Cシリアルバスリンクを介してホストマイクロコントローラと通信します。Pmod CON3 (134-6446) はシンプルな4チャンネルアダプターで、 ホスト生成されたPWM信号に接続される必要があります。

コネクション

ほぼすべてのRCサーボは3ピンのPCBヘッダーに適合するプラグで終端された3線式フラットケーブルを使用しています。3つの信号は、コントロール入力、DC電源、グラウンドです(図2)。線の色はメーカーによって異なりますが、フォーマットは同じで電源の+Vは常に中央にあります。極性キーはないのでどちらに差し込んでも+Vは正しく接続されています。

電源供給

RCサーボのデータシートには2種類の電源電圧におけるトルクとスピードの値が記載されている事が多いです。この電圧は通常、模型飛行機に搭載されている1.2Vのニッカド充電池を4個または5個搭載したパワーパックに相当する+4.8Vと+6.0Vです。ロボットアプリケーションの+5Vのロジック電源は1~2個のサーボには十分ですがそれ以上のサーボには別の電源が必要になります。またサーボが負荷をかけて位置を保持している時、DCモーターには500mA以上のストール電流が流れており、電源を共有しているデジタルチップは急激な電流サージによって引き起こされる故障に対し脆弱になります。

連続回転

数年前ある聡明な人が車輪付きロボットのモビリティシステムの要素を全て兼ね備えたサーボを考えました。モーターとギアトレインをコンパクトにまとめ、速度/方向の制御信号をマイコンのGPIOピンから直接駆動できるようにしたのです。ちょっとした問題は、内部のポテンショメーターによって、車輪の回転が1回転以下に制限されている事でした。ポテンショメーターを外し、ケーシングにあけた穴から調整できるトリムポットに交換し最後にファイナルギアのパンプストップを外して全回転を防ぐのです。改良型サーボはロボットメーカーに人気があり、それ以来、ほとんどのサプライヤーが連続回転製品をカタログに掲載しています。例えば、Parallax (781-3046) などです。

PWM信号は角度位置だけでなく、回転の速度と方向を決定するようになりました。1msは反時計回りの最大速度、1.5msはモーターの停止、2msは時計回りの最大速度を選択します。このトリムポットはロボットが最初の走行に備えて、1.5msのパルスが印加されても動かないように調整されます。

最後に

またサーボの仕様で奇妙なのは物理的な重さが重視されている事です。20gのマイクロサーボには「20gサーボ」、50gの標準的なサーボには「50g」と表示されています。ロボットを作る人にとってはあまり重要ではない事なのかもしれませんが、模型飛行機の愛好家にとっては重要な情報です。

もし何かに行き詰まったら、Twitterで私の投稿をフォローしてください。新しい電子機器や関連技術に関する興味深い記事にリンクしたり、ロボットや宇宙開発などについて見つけた記事をリツイートしたりしています。

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.