メインコンテンツへスキップ

制御命令

これらは、1ティックごとに送信される、非永続的なコマンドであり、 commands-各デバイスのマップが渡されます。それらは einmal 一度使用したら、その後は忘れて構いません。送信を続けない場合、デバイスはアイドル状態に戻ります。

特に断りのない限り、すべての制御コマンドは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アプリケーション領域における目標位置(メートル単位)

このサービスは、カーソルを目標位置まで移動させるために必要な力を計算します。 「safe-trajectory」が有効になっている場合、カーソルの速度は制限されます。


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 }
}
}
}
}]
}
ヴァースグリップ / ワイヤレス・ヴァースグリップ

グリップ器具の場合、効果があるのは rotation. position und scale Inverse3 のスキーマとの整合性を保つために受け入れられますが、グリップには影響しません。

自動ドリフトにはナビゲーションモジュールを使用してください

継続的な移動が必要な場合は、代わりに ナビゲーションモジュール, statt set_transform 手動でストリーミングします。物理演算、触覚 フィードバック、およびワークスペースの制限を自動的に処理します。


probe_position / probe_orientation​

制御コマンドを送信しないセッション向けの、監視のみを目的としたキープアライブ (例:デバイスの監視のみを行うHaply ハブ)。

{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
おそらくこれらは必要ないでしょう

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