跳至主要内容
版本:3.5.x

安装与工作区转换

有两种变换可将设备定位在应用空间中。了解 该流程有助于您选择合适的变换。

坐标管道

舞台功能介绍如何设置执着?
基础重新映射坐标轴(例如,Z轴向上 → Y轴向上)session.configure.basis — 参见 教程 08 (HTTP 远程配置)
施加变换设备的物理安装偏移量(臂的位置、旋转角度、刻度)configure.mountconfigure.preset — 参见 教程 08 (HTTP 远程配置)
工作区转换摄像机/场景导航偏移commands.set_transform — 参见 教程 09 (WebSocket 每帧流式传输)是(置顶)

施加变换

“安装”描述了设备在物理上的位置——其臂偏移量、 方向和比例。该设置仅需设置一次(或当用户更改物理 布局时),运行时极少更新。

预设(出厂设置)

与其自己计算挂载点,不如选择一个已命名的预设:

预设源位置手臂朝向
defaults设备底座向前(手臂向前)
arm_front设备底座转发
arm_front_centered办公中心转发
led_front设备底座LED 侧向向前
led_front_centered办公中心LED 侧向向前
custom说明书 — 自行安装支架

预设可一次性设置坐标系、基底和工作空间原点。

直接设置挂载点

{
"inverse3": [{
"device_id": "049D",
"configure": {
"mount": {
"transform": {
"position": { "x": 0.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 }
}
}
}
}]
}
mountpreset 互斥

在同一条消息中同时发送两者会导致含义模糊——服务会拒绝该消息。 请选择其中一种:命名 preset (该命令会自动为您挂载)或显式 mount 转换。

命令与快照的不对称性

发送 安装后,包裹 transform: { "mount": { "transform": { … } } }. 当 阅读 这是快照中的一个挂载点,它是平的: { "mount": { "position": …, "rotation": …, "scale": … } }. 这是设计使然——命令使用统一的 command_data 包装器;快照 序列化 core::transform 直接。

工作区转换

工作区变换是在挂载操作之上应用的运行时偏移。 其典型用例是场景导航——在设备物理位置保持不变的情况下,对 应用程序视图进行平移、旋转或缩放。

挂载和工作区变换都是持久的——该服务会记住 您发送的最后一个值。两者的区别在于用途和性能:

  • “Mount”的设计理念是“设置一次,长期保持”——它描述了物理 配置,并针对不频繁的更新进行了优化。
  • 工作空间变换的设计初衷是支持高频流式处理 (例如,在摄像机导航过程中每帧执行一次)——其内部处理流程 已针对此更新频率进行了优化。
{
"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 }
}
}
}
}]
}
缩放会影响力输出——通常会按你期望的方式

缩放视图或工作区会改变设备渲染的力,因为缩放会影响 穿透深度 用于计算接触力。例如,一个 2x 缩放比例大致使穿透深度减半(相对于设备的移动距离,虚拟场景的尺寸是其两倍),因此产生的力大约为 一半 你当时会有什么感受 1x. 反之,一个 0.5x 比例大约使作用力增加一倍。

这通常正是你期望的行为:缩小触觉场景的视图会自然导致接触力变弱(因为你“离得更远”),而放大视图则会使接触力变强。如果这不是你想要的效果——例如,你需要在用户缩放视图时保持刚度恒定——可以通过反比例调整力增益来进行补偿。

使用“导航”模块实现自动漂移

如果您需要持续移动(气泡导航、速率控制漂移), 请使用 导航模块 而不是手动 流式传输 set_transform 每次更新——它都会为您处理物理模拟、触觉 反馈以及工作区边界。