[Robot] 一般RCサーボに仕込んだロボット向け機能のお話、その他

10年以上前から、あるブランドのRCサーボの中の人の一部を担っているのやが、実はその仕様に手を入れるコトができる立場から、色々とロボット向けの仕掛けを仕込んでいたりする。それを少し解説してみようかな…と。

いわゆる二足歩行ロボットのうち、ホビー系(ROBO-ONEとかね)の機体については当初RCサーボの強力なものが使われて実装されてきたんやけど、ここ10年ぐらいはロボットに特化した製品が増えてきたので、あまりRCサーボが流用されるコトはなくなってきた。

けど、どう足掻いても値段としては一般のRCサーボの方が間違いなく安い。これは、出荷される品物の数に依存しているんだよね。それなら、一般のRCサーボに「ロボットで使いそうな仕掛け」を仕込んでおく方がメリットが大きいハズだ…というコトで、色々と仕込んできたという経緯がある。

最近のRCサーボは、旧来のPWM信号による制御ももちろん受け付けるけど、シリアルコマンドによる制御も可能になっている。しかも、いわゆるコマンドセットを持っているので、様々な指示やステータスの確認が可能だ。

ヲイラが関わっている品物の仕様はココいらへんに公開されているので、全体像としてはそちらを見ていただくとして、ここではロボットで使う時に便利なコマンド関係について述べると共に、用途別にいくつかのオススメも書いておこうかと思う。申し訳ないけど、オススメは完全に手前味噌な情報になるので悪しからず(笑)。

●位置決め

なにはなくとも、まずは角度の指示をしなければならない。このシステムにおいては、チャンネルデータパケット(コマンド0xA4)がその役割を担っている。不定長のコマンドで、各チャネルの角度情報を並べたおし、一発のコマンドで全チャネルへ指示できる。規格上最大50チャネルあるので、50チャネル分全部一括で発行しても問題ない。しかし、コマンドの発行時間が長くなるだけなので、適切に必要最小限の長さで発行するのがオススメ。

●現在位置の確認

チャネル指定で指示した任意のRCサーボの現在の角度情報が帰ってくる。コマンドデータパケットのゲットコマンド(コマンド0x21)を使い、オーダーにカレントポジション(オーダー0x20)を指示すれば戻ってくる。これは個別に呼んで情報をもらうしかないので、ある程度数があると少々時間が掛かるのが厄介やが、ポテンショ等が得ている今の角度を返してくれる。

例えばまだ角度指示してない時にこのコマンドで角度を得ておけば、その値から角度指示を開始するコトで、いきなり機体がハネたりするコトを防げる。

●パワーの確認

角度指示を出して動いている時、モータに何%のパワーを加えているのかを知ることができる。コマンドデータパケットのゲットコマンド(コマンド0x21)を使い、オーダーにカレントパワー(オーダー0x21)を指示すれば戻ってくる。当然、指示された角度まで移動すれば概ねゼロになる。逆に、ここにある程度の値が出続けているというコトは、過負荷状態にある可能性がある。

●各種ゲイン調整

いわゆるPIDのゲイン値等を調整できる。コマンドデータパケットのゲットコマンド(コマンド0x21)で情報を得ることができるし、セットコマンド(コマンド0x20)で値をセットできる。

設定可能なのはPゲイン(オーダー0x16)、Iゲイン(オーダー0x17)、Dゲイン(オーダー0x18)、デッドバンド(オーダー0x19)他色々といった感じだ。ただし、現状Iゲインは動作がイマイチなので使っていない。

なお、これらの設定値はデフォルトがゼロになっている。内部に適切なゲイン値等をプリセットしてあるので、調整はそれに対するプラスマイナスの形で行う。わからなくなったら、ゼロに戻せばよい。

●各種動作調整

動作方向(角度値に対して右回りか左回りか)を変更したり、動作限度を設定したりできる。大事な奴として、角度の最大値設定(フルスイング120度、150度、180度)ってのがある。ロボットなら180度が多いかしら。もうこのあたりはかなりの量になるので、先の資料を確認するコトをオススメしたい。書くのシンドいし(^_^;)。

●オススメ機種

現状ヲイラが手がける全てのシリアル対応機種が同じ制御コードを使っているので、上記のお話は以下の全てのシリアル対応機種に適用される。また、一般的なRCサーボの個別の違いについてはこの辺とかこの辺に書いておいたので参照されたし。

オススメとしてやが、まず最強トルクを誇るS8912SHVが筆頭になるだろうか。税込2万円を切る価格(2021年10月現在)で、電源にLiPo3セルを用い、70kg・cm/0.11秒(60度)という代物である。BLDCを使い電流もソコソコに抑えてあってコレは中々ないんぢゃないかしら。

2セルのLiPoでの最強ならS8911BLになる。58kg・cm/0.13秒(60度)なので、上記のものには少し劣るが、2セル運用での最強やね。

2セル運用での最速ならS8955SSだろうか。トルクは38kg・cmと控えめながら、速度は0.06秒(60度)と爆速で、一昔前のヘリ用ジャイロサーボ並みの速度になる。

なお、トルクは激ショボになるが、それでも更に高速なものが必要な場合、今のヘリ用のジャイロサーボとしてS89HRってのがある。速度は0.03秒(60度)と変態レベルやが、トルクが5.4kg・cmしかないので、ロボットではチと使いどころがないかもしれない。

次に、小型ながらもソコソコのトルクを出せるものとしてS3911を挙げたい。これは通常のLiPo2セルで動作するミニサーボながら、20kg・cm/0.14秒(60度)のハイトルクとなる。このサイズでこのトルクも、なかなかないと思うのやが。

とりあえずコマンド方式でのRCサーボを試したいというコトであれば、リーズナブルなS588Mが良いと思う。トルクもスピードもそんなにはないが、値段はかなり安い。

トルクはないが超小型でコマンド方式が必要な場合、S319が一番小さなものになる。このサイズのコマンド方式RCサーボもまた珍しいのではないかと思うのやが。いわゆるギミックを仕込みたい時なんかには良いかも。

●今後について

現状、幸いなコトにこの辺りの仕様を色々と決めることができる立場にいる。こんなコマンドがあれば便利なのに…といったお話は、可能な限り汲み取りたいと思っている。とはいえ、既存の一般RCサーボとしての機能が最優先なので、その範囲内で…という制限はあるんやけど…。

あと、とりあえず思いっきり我田引水的にオススメを挙げてみた。何かの参考になれば幸いである。

以上

Zak について

基本的にヲタクです。いや、別に萌えとかいうのではなく、ハマるとトコトン進めようとする癖があるので、自制が必要だという…。
カテゴリー: なんか作る, メカ, ロボット パーマリンク