0

正如标题所示,我在 Ubuntu 上的 Chrome 中使用SpaceMouse时遇到问题。在 Windows 10 上它工作正常。我已尝试安装3DxWare 10spacenavd,但仍然无法正常工作。值得一提的是,鼠标在 Gazebo 上运行得非常好,所以它一定是 Chrome 的问题。Chrome 或其他软件中是否有一些标志可以使 SpaceMouse 与 JavaScript 中的 Gamepad api 兼容?

4

1 回答 1

1

简短回答:如果您的 SpaceMouse 无法在 Chrome for Linux 上使用 Gamepad API,请尝试relabsd

长答案:SpaceMouse 离游戏手柄足够近,它有时可以工作,但有时不能。如果它能够工作就很好了,但是让它在所有平台的 Gamepad API 中可靠地工作并非易事,而且这种努力最好花在支持真正的游戏手柄上。

对于这个特定问题,问题在于设备如何描述其输入。每个输入都有一个标志,指示输入是绝对的(具有定义的最小值和最大值)还是相对的(意味着每个输入必须与前一个值进行比较)。绝对输入用于操纵杆和触摸屏触摸点,而相对输入用于光学鼠标和触控板移动等。

一些 SpaceMouse 设备将其轴输入描述为相对的,一些描述为绝对的。当它是绝对轴时,Chrome 可以获取边界信息并使用它将轴标准化为 Gamepad API 要求的范围 [-1,+1]。当它是相对轴时,边界信息不可用,并且无法可靠地对轴进行归一化。

SpaceMouse 轴的行为总是像绝对轴,当它们被定义为相对时这是一个错误。有一个用于将 SpaceMouse 相对轴映射到绝对轴的第三方工具,我没有测试过它,但从描述中它听起来像你需要的那样:

https://github.com/nsensfel/relabsd

一些 SpaceMouse 设备(如SpaceMouse Wireless)报告绝对轴并使用 Gamepad API。

于 2021-11-30T21:57:26.533 回答