共通の型
WebSocket と HTTP のインターフェースにまたがって、すべてのJSONペイロードはこれらの型を一貫して使用します。
vec3
3次元ベクトルです。位置(メートル)、速度(m/s)、力(N)、スケール係数に使用されます。
{ "x": 0.0, "y": 0.0, "z": 0.0 }
quaternion
回転を表す単位クォータニオンです。サービスの内部表現では w が最初に来ますが、JSON では4つの成分すべてが名前付きキーであるため、順序は問題になりません。
{ "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 }
恒等クォータニオン(w=1, x=y=z=0)は、「回転なし」を意味します。
angles3
関節の角度(ラジアンではなく度単位)です。Inverse3 の3つの関節の角度位置と角速度に使用されます。
{ "a0": 0.0, "a1": 0.0, "a2": 0.0 }
transform
位置、回転、スケールを組み合わせたものです。マウントのトランスフォーム、ワークスペースのトランスフォーム、SDF エフェクトの配置に使用されます。
{
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
恒等トランスフォーム(上記に示したもの)を適用しても、何も変化しません。位置はゼロ、回転なし、スケールは単位(1)です。
注記
mount のコマンドとスナップショットの形式の違いconfigure.mount で mount を送信する場合、transform は "transform" キーでラップされます: { "mount": { "transform": { … } } }。
デバイスのスナップショットから mount を読み取る場合、形式はフラットになります: { "mount": { "position": …, "rotation": …, "scale": … } }。
この非対称性は設計上のものです。詳しくは マウントとワークスペース を参照してください。