このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
ja:specifications:protocol [2015/10/02 06:17] Guvalif 作成 |
ja:specifications:protocol [2021/04/01 13:52] (現在) |
||
---|---|---|---|
行 4: | 行 4: | ||
## 基本仕様 | ## 基本仕様 | ||
- | 命令を送信するにあたり、3文字で定義された命令をまず送信し、 | + | 命令を送信するにあたり、3文字で定義されたヘッダをまず送信し、 |
それに続いて各構成要素を定められたフォーマットのもと順次送信していきます。 | それに続いて各構成要素を定められたフォーマットのもと順次送信していきます。 | ||
行 10: | 行 10: | ||
(バイナリをそのまま送信した場合、意図しない動作をすることがあります。) | (バイナリをそのまま送信した場合、意図しない動作をすることがあります。) | ||
+ | なお、コマンドラインが大文字か小文字かは区別されません。 | ||
+ | ボーレートは**2, | ||
- | ## システム関連 | ||
- | **#IN** (モーションデータのインストール) | ||
- | |タグ | + | ## Controller関連のコマンド |
- | |: | + | ### $AN (指示値の適用) |
- | |slotNum |書き込みスロットの指定|0 | + | |
- | |name |モーション名の指定 | + | |
- | |function|制御機能の指定 |0 |255 |0埋め,16進数表現,2byte| | + | |
- | |param0 | + | |
- | |param1 | + | |
- | |frameNum|フレーム総数の指定 | + | |
- | |frame | + | |
- | - - - | + | |タグ |
+ | |:--------|: | ||
+ | |DEVICE_ID|デバイス番号の指定 | ||
+ | |VALUE | ||
- | **#MI** (関節可動域最小値の設定), | + | *examples* |
- | **#MA** (関節可動域最大値の設定), | + | デバイス**10**に**1000**を出力したい場合、送信するコマンドラインは以下の通りです。 |
- | **#HO** (関節初期位置の設定), | + | |
- | **#SA** (関節可動命令) | + | |
- | |タグ | + | ``` |
- | |: | + | $an0a3e8 |
- | |jointNum|関節番号の指定 | + | ``` |
- | |angle | + | |
- | - - - | + | ### $AD (指示値差分の適用) |
- | **###** (読み込みシリアルのトグル) | + | |タグ |役割 |
+ | |: | ||
+ | |DEVICE_ID|デバイス番号の指定 | ||
+ | |VALUE | ||
- | - - - | + | *examples* |
+ | デバイス**4**の初期値に**-100**した値を出力したい場合、送信するコマンドラインは以下の通りです。 | ||
- | **#DJ** (関節設定のダンプコマンド) | + | ``` |
+ | $ad04f9c | ||
+ | ``` | ||
- | - - - | + | ### $PM (モーションの再生) |
- | **#SJ** (関節設定の書き込みコマンド) | + | **Attention!** |
+ | 後方互換性のために**$MP**も利用可能ですが、**非推奨**扱いです。 | ||
- | - - - | + | |タグ|役割 |
+ | |:---|: | ||
+ | |SLOT|読み出しスロットの指定|0 | ||
- | **#DM** (モーションのダンプコマンド) | + | *examples* |
+ | スロット**4**のモーションを再生したい場合、送信するコマンドラインは以下の通りです。 | ||
- | |タグ | + | ``` |
- | |: | + | $pm04 |
- | |slotNum|読出しスロットの指定|0 | + | ``` |
+ | ### $SM (モーションの停止) | ||
- | ## モーション関連 | + | **Attention!** |
- | **$MP** (モーションデータの再生) | + | 後方互換性のために**$MS**も利用可能ですが、**非推奨**扱いです。 |
- | |タグ | + | *examples* |
- | |: | + | モーションを停止したい場合、送信するコマンドラインは以下の通りです。 |
- | |slotNum|再生スロットの指定|0 | + | |
- | - - - | + | ``` |
+ | $sm | ||
+ | ``` | ||
- | **$MS** (停止命令) | + | ### $HP (初期姿勢への移行) |
+ | |||
+ | *examples* | ||
+ | 初期姿勢に移行したい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | $hp | ||
+ | ``` | ||
+ | |||
+ | |||
+ | ## Interpreter関連のコマンド | ||
+ | ### #PU (関数のプッシュ) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |SLOT |読出しスロットの指定 | ||
+ | |LOOP_COUNT|ループ回数の指定 | ||
+ | |||
+ | *examples* | ||
+ | スロット**10**のモーションを**3**回再生する関数をプッシュしたい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | #pu0a03 | ||
+ | ``` | ||
+ | |||
+ | ### #PO (関数のポップ) | ||
+ | |||
+ | *examples* | ||
+ | 関数をポップしたい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | #po | ||
+ | ``` | ||
+ | |||
+ | ### #RI (インタプリタの初期化) | ||
+ | |||
+ | *examples* | ||
+ | インタプリタを初期化したい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | #ri | ||
+ | ``` | ||
+ | |||
+ | |||
+ | ## Setter関連のコマンド | ||
+ | ### >IN (モーションのインストール) | ||
+ | |||
+ | **Attention!** | ||
+ | **非推奨**扱いです。version 2.xでは廃止予定なので、基本的に後述の**> | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |SLOT |書き込みスロットの指定 | ||
+ | |NAME |モーション名の指定 | ||
+ | |FUNC |関数の指定 (*1) |0 |255 |0埋め,16進数表現,2byte| | ||
+ | |ARG0 |制御機能に渡す引数0 (*1) |0 |255 |0埋め,16進数表現,2byte| | ||
+ | |ARG1 |制御機能に渡す引数1 (*1) |0 |255 |0埋め,16進数表現,2byte| | ||
+ | |FRAME_LENGTH | ||
+ | |TRANSITION_TIME_MS|遷移時間の指定 | ||
+ | |VALUE[DEVICE_ID] | ||
+ | |||
+ | **(*1) 関数の種類と引数の意味は下表の通りです。** | ||
+ | |||
+ | |" | ||
+ | |: | ||
+ | |0 | ||
+ | |1 | ||
+ | |2 | ||
+ | |||
+ | **(*2) デバイスの個数は現状24個で、全てサーボモータです。** | ||
+ | |||
+ | *example*: | ||
+ | 以下のようなモーションをインストールするとします。 | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |SLOT |0 | | ||
+ | |NAME |Test| | ||
+ | |FUNC |0 | | ||
+ | |ARG0 |0 | | ||
+ | |ARG1 |0 | | ||
+ | |FRAME_LENGTH | ||
+ | |TRANSITION_TIME_MS|100 | | ||
+ | |OUTPUT[EVEN] | ||
+ | |OUTPUT[ODD] | ||
+ | |||
+ | その際、送信するコマンドラインは以下の通りです。(改行は実際には必要ありません。) | ||
+ | |||
+ | ``` | ||
+ | >in | ||
+ | 00Test | ||
+ | 0064 | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | 0064 | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | 0000ffff0000ffff0000ffff0000ffff | ||
+ | ``` | ||
+ | |||
+ | ### >MH (モーションヘッダの設定) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |SLOT |書き込みスロットの指定|0 | ||
+ | |NAME |モーション名の指定 | ||
+ | |FUNC |関数の指定 (*1) | ||
+ | |ARG0 |制御機能に渡す引数0 | ||
+ | |ARG1 |制御機能に渡す引数1 | ||
+ | |FRAME_LENGTH|フレーム総数の指定 | ||
+ | |||
+ | 細かい仕様については、"> | ||
+ | |||
+ | ### >MF (モーションフレームの設定) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |SLOT |書き込みスロットの指定 | ||
+ | |FRAME_ID | ||
+ | |TRANSITION_TIME_MS|遷移時間の指定 | ||
+ | |VALUE[DEVICE_ID] | ||
+ | |||
+ | 細かい仕様については、"> | ||
+ | |||
+ | ### >JS (関節設定の初期化) | ||
+ | |||
+ | *example*: | ||
+ | 関節設定を初期化したい場合に、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | >js | ||
+ | ``` | ||
+ | |||
+ | ### >HO (初期値の設定) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |DEVICE_ID|デバイス番号の指定|0 | ||
+ | |VALUE | ||
+ | |||
+ | *example* | ||
+ | デバイス**0**の初期値を**100**に設定したい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | > | ||
+ | ``` | ||
+ | |||
+ | ### >MA (最大値の設定) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |DEVICE_ID|デバイス番号の指定|0 | ||
+ | |VALUE | ||
+ | |||
+ | *example* | ||
+ | デバイス**0**の最大値を**100**に設定したい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | > | ||
+ | ``` | ||
+ | |||
+ | ### >MI (最小値の設定) | ||
+ | |||
+ | |タグ | ||
+ | |: | ||
+ | |DEVICE_ID|デバイス番号の指定|0 | ||
+ | |VALUE | ||
+ | |||
+ | *example* | ||
+ | デバイス**10**の最小値を**-1**に設定したい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | > | ||
+ | ``` | ||
+ | |||
+ | ## Getter関連のコマンド | ||
+ | ### <JS (関節設定のダンプ) | ||
+ | |||
+ | *examples* | ||
+ | 関節設定をダンプしたい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | <js | ||
+ | ``` | ||
+ | |||
+ | その際、以下のような書式のJSONが出力されます。 | ||
+ | |||
+ | ``` | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | ... | ||
+ | ] | ||
+ | ``` | ||
+ | |||
+ | ### <MO (モーションのダンプ) | ||
+ | |||
+ | |タグ|役割 | ||
+ | |: | ||
+ | |SLOT|読出しスロットの指定|0 | ||
+ | |||
+ | *example* | ||
+ | スロット**0**のモーションをダンプしたい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | <mo00 | ||
+ | ``` | ||
+ | |||
+ | その際、motion.jsonと同様な形式のJSONが出力されます。([詳細](https:// | ||
+ | ただし、" | ||
+ | [device_map.json](https:// | ||
+ | |||
+ | ### <VI (バージョン情報のダンプ) | ||
+ | |||
+ | *examples* | ||
+ | バージョン情報をダンプしたい場合、送信するコマンドラインは以下の通りです。 | ||
+ | |||
+ | ``` | ||
+ | <vi | ||
+ | ``` | ||
+ | |||
+ | その際、以下のような書式のJSONが出力されます。 | ||
+ | |||
+ | ``` | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ``` | ||
</ | </ |