cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

コマンド方式サーボモータのコマンド体系の研究

(編集中)
日本国内でよく使われているコマンド方式サーボモータのコマンド体系を調べて、良い方法を探ります。

1. 近藤科学

kondo-robot.com

送信コマンド
CMD + SC + 3~N-1(DATA)

返値
CMD + SC + 3~N-1(DATA) + R_CMD + SC + DATA(SPD)

SCはサブコマンドの略らしい。
チェックサムは、なし。
単純を目指しているようですが、いろいろなバージョンがありあまり整理されていない感じ。

2. FUTABA

www.futaba.co.jp

送信パケット
Header + ID + Flag + Address + Length + Count + Data + Checksum

リターンパケット
Header + ID + Flags + Address + Length + Count + Data + Sum

チェックサムは、
Check Sum=ID XOR Flag XOR Address XOR Count XOR Data

比較的使いやすい命令体系だと思いますが、イレギュラーな書式があったり、メモリ上のデータの配置が悪かったりして、ちょっと痒さが残る感じ。

3. Robotis-DYNAMIXEL

Dynamixel

命令コマンド
0xFF + 0xFF + ID + LENGTH + INSTRUCTION + PARAMETER1 + ・・・ + PARAMETER_N + CHECK_SUM

返信コマンド
0xFF + 0xFF + ID + LENGTH + ERROR + PARAMTER1 + PARAMTER2 + ・・・ + PARAMETER_N + CHECK_SUM

チェックサムは、
Check Sum=~(ID + Length + Instruction + Parameter1 + ・・・ + Parameter_N)
~はNOT Bit演算子。素直な足し算方式なので、パラメータの順番の入れ替わりに弱い。

命令体系やメモリ上のデータの並びはとても整理されていて、よくできています。
真似をするならコレですかね。


RS485
第125号(2010年11月2日発行) 技術レポート「RS-485の通信プロトコルについて」|ソフテックだより|株式会社ソフテック

チェックサムの例(単純足し算)
http://www.cypress.com/file/250776/download