シリアルサーボシリアルサーボ各社からシリアル接続のサーボが発売されている。シリアルサーボはこれまでの一方的なサーボへの指令だけでなく、サーボモータのさまざまな状態を把握できるため、これまで以上にインテリジェントなロボット制御が可能になる。PROPOLVSerial(全2重)?シリアル接続でのモータ制御の場合、ノイズによる誤動作は致命的となる。RS485はノイズに強い通信方式であり、特に大型ロボットには有効。通信速度が遅いと制御周期が遅くなる。2足歩行ロボットでPWM並みの制御周期を得るためには、数100kbps以上の速度が必要となる。1点、コントローラとの相性を考えると、通信速度がコントローラで出しやすいことが望まれる。FUTABAの場合1,382,400bpsは115,200bpsの12倍で整数倍のため相性が良い。1Mbpsは300で割っても整数にはならない。通信規格としてはFUTABAが最も優れているのではないかと思う。次に、各社のサーボにおいてシリアル接続で何ができるかを比較する。その仕様を公開しているメーカーはあまり多くない。近藤科学、ROBOTICS、FUTABAについては各社のサイトで公開しているデータを元にまとめた。Hitecについては、こちらとこちらのデータを参考にした。FUTABAとROBOTISが他社よりも一歩進んでいる。両者とも温度管理をしており、高温に成った場合自動的にトルクをOFFにする機能があり、サーボの保護に有効である。FUTABAはPIDパラメータや加減速時間も指定でき、より細かな動作の設定ができる。FUTABAやROBOTISは指令に対する応答を無くすことができる。サーボを動かす時に応答をOFFにしておけば半2重でも連続して指令を送ることができる。さまざまな負荷の大きさ(電流)が読めると、サーボモータ自身をセンサーとして利用して、ロボットの制御の幅も広がる。負荷の大きさ(電流)がわかると、それによって力を加減することができる。そのようなシステムは、鉄人プロジェクトでも過去にデモンストレーションしている(ハンド)。その時は既存のサーボモータに鉄人プロジェクトで開発した負荷読み込みのセンサーを付けたが、同じ機能がサーボモータについたことになる。使う目標角度・移動の指令について比較してみる。個別指定サーボ1個づつの目標角度は各社以下の方法で指定する。00返信2バイトバイト数的には近藤科学が少ない。送信後必ず返信がある。ロボットを動かす時には複数のサーボに指令を送ることが多く、その場合は以下に述べるように複数のサーボにまとめてデータが送れるFUTABAやROBOTISの場合のほうがバイト数はずっと少なくなる。FUTABAやROBOTISの場合は、チェックサム機能があるため誤動作は起こりにくい。サーボモータを個別に一個一個指定する場合(非同期動作)は、サーボ間の動作開始の時間遅れが問題になる。行った場合のサーボモータの動作を示す。同じ角度を指定しているにもかかわらず、大きな角度のずれが見られる。489KB)24個のサーボに移動指令。複数サーボの同期動作サーボ間の動作のズレを無くすために、FUTABAとROBOTISでは同期動作を行うことができるようになっている(HitecのMHIでもできるとの情報があるが、できないとの情報もあり未確認)。その場合は、以下のようなコマンドを使用する。バイト同期状態で動かせばすべてのサーボが同時に動き始め、以下のようにモーターごとの角度ずれは起こらない。474KB)24個のサーボに移動指令。指定は多くのメーカーが角速度なのに対し、FUTABAだけは移動時間での指定となっている。通常ロボットのモーションを作る時には目標角度と移動時間を指定するが、実際に時間を管理しているのはコントローラであり、コントローラがポーズ間を補間して定期的に目標位置をサーボに指令しているにすぎない。そのため、コントローラから頻繁にサーボへの指令が必要になる。それに対し、FUTABAでは時間の管理をサーボモータで行うため、ポーズの開始に1度データを送れば次のポーズまでデータを送る必要がなく、コントローラの負荷が大幅に軽減される。ROBOTISの場合角速度を細かく指定できるため角速度=目標角度/移動時間で計算できるが、急な動作の場合は等速度では無いため大まかな指定になってしまう。このような点からFUTABAの移動時間の指定方式は、ロボット制御に適した方法なのかもしれない。以上の状況を考えると、シリアルサーボはFUTABAとROBOTISが1歩リードしている感じである。