見出し画像

コマンド式サーボの通信を共通化する

Meridian計画。
前回は取り扱う座標系を決定しましたが、今回はロボットの関節などに使うサーボモーターの通信プロトコルをなんとかしていきたいと思います。

最近のサーボはホビー用であってもマイコンが内蔵されており、コマンドによって詳細な設定や制御ができるようになっています。
ただしサーボに送るコマンドの方式はメーカーごとに異なっており、2種類以上のメーカーのコマンド式サーボを組み合わせるとなると少し困ったことになります。

サーボコマンドに共通規格があったらすごく助かりますよね。
それをがんばってみようというのがMeridia計画の狙いの一つになります。

そんなことできるの?

共通化といってもサーボの中のマイコンのファームウェアを書き換える、というような大掛かりな話ではありません。Meridian計画の中で扱いやすいよう、あくまで内部的に有効な共通の中間プロトコルのようなものを設定しておこうという考えです。各社のサーボに信号を送る際には、それぞれ専用のコマンドに通訳して送信します。
コマンドの翻訳は少し前までは敷居が高かったのですが、現在は小型CPUの性能が劇的に向上しており、個人ユーザーでも処理時間をあまり気にせずに導入できるようになりました。
そのおかげで、この中間プロトコルさえ決めておけば、仮想的ながらサーボ信号を共通化することができるというわけです。

中間プロトコルを使って処理を行うのは、下記のシステム概略図では濃い青色の部分になります。

画像1

青色の部分さえ押さえておけば、ソフトもハードも自由に組み合わせられるということになります。
足はA社の強力なサーボを使いたいけど、顔や指にはB社の小型サーボを使いたい、という場合にも対応できますし、シミュレーターは今までAを使っていたけど、最新バージョンのBではより高度にシミュレートできる!となった際にも簡単に乗り換えができます。その際には翻訳機の開発が必要になりますが、中間プロトコルさえ共有していれば、翻訳機をシェアすることができます。

この中間プロトコルは、必要十分な情報量を持たせつつも、短ければ短いほど良いものです。誰でも使えるようにするには可読性や柔軟性も大事です。思想はあってもよいが押し付けの主張はあってはならない、拡張した場合に下位互換を持たせられるようにした方がよい、など他にもいろいろな条件が考えられます。そのバランスを、実用した時に便利なように、ほどよくまとめていく必要があります。

誰もが納得するフォーマットを決めるのは難しいかもしれませんが、これを一旦決めてしまえば、学生のみなさんも手持ちの部品で作った実機やシミュレータを見ながら逆運動学や計算歩行に取り組む、ということが簡単にできるようになるのではないかと考えています。

次の記事ではこの中間プロトコルの草案を実際に組み立てていきます。

次の記事:

前の記事:

目次:


この記事が気に入ったらサポートをしてみませんか?