メインコンテンツまでスキップ

制御コマンド

これらは、ティックごとの非永続的なコマンドで、各デバイスの commands マップ内で送信されます。一度だけ 適用され、その後は破棄されます。送信を停止すると、デバイスはアイドル状態に戻ります。

すべての制御コマンドは、特に記載がない限り WebSocket 専用 です(HTTP に相当するものはありません)。

set_cursor_force​

カーソル(エンドエフェクタ)にデカルト座標系の力を適用します。

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_force": {
"vector": { "x": 0.0, "y": 0.0, "z": 1.5 }
}
}
}]
}
フィールド型説明
vectorvec3アプリケーション空間における力(単位:ニュートン)

1ティック内では、力は 加算 されます。複数のソース(お使いのアプリ、SDF HFX、ナビゲーションなど)の力は、デバイスに送信される前に合計されます。


set_cursor_position​

カーソルを目標位置へ移動させるよう指令します(位置モード制御)。

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
フィールド型説明
positionvec3アプリケーション空間における目標位置(単位:メートル)

サービスは、カーソルを目標に向けて移動させるために必要な力を計算します。セーフトラジェクトリが有効な場合、カーソルの速度はレート制限されます。


set_angular_torques​

3つの関節にトルクを適用します(角度の力モード制御)。

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
フィールド型説明
torquesangles3関節トルク

set_angular_position​

関節を目標角度へ移動させるよう指令します(角度位置モード制御)。

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
フィールド型説明
anglesangles3目標関節角度(単位:度)

set_transform​

ワークスペース変換(デバイス空間 → アプリケーション空間)を設定します。他のコマンドとは異なり、set_transform は 永続的 です。サービスは最後に送信された値を記憶します。カメラの動作中にストリーミングするか、一度だけ送信してそのままにしておくことができます。

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_transform": {
"transform": {
"position": { "x": 1.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
Verse grip / ワイヤレス verse grip

グリップデバイスでは、rotation のみ効果があります。position と scale は Inverse3 とのスキーマの一貫性のために受け付けられますが、グリップには影響しません。

自動ドリフトには Navigation モジュールを使用

継続的な移動が必要な場合は、set_transform を手動でストリーミングする代わりに Navigation モジュール を使用してください。物理演算、ハプティックフィードバック、ワークスペースの境界制限を自動的に処理します。


probe_position / probe_orientation​

制御コマンドを送信しない セッション(例:Haply Hub でデバイスを監視している場合)向けの、監視専用のキープアライブです。

{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
これらは通常は必要ありません

セッションが既に制御コマンド(set_cursor_force、set_cursor_position など)を送信している場合、デバイスの状態は各レスポンスとともに自動的に更新されます。プローブは読み取り専用の監視セッションでのみ有用です。