Como sugiere el título, tengo un problema con el uso de SpaceMouse en Chrome en Ubuntu. En Windows 10 funciona bien. He intentado instalar 3DxWare 10 y spacenavd pero sigue sin funcionar. Vale la pena mencionar que el mouse funciona perfectamente con Gazebo, por lo que debe ser un problema con Chrome. ¿Hay alguna bandera en Chrome o software adicional para hacer que SpaceMouse sea compatible con Gamepad api en javascript?
Respuesta corta: si tu SpaceMouse no funciona con Gamepad API en Chrome para Linux, prueba con relabsd .
Respuesta larga: SpaceMouse está lo suficientemente cerca de un gamepad que a veces funciona pero a veces no. Sería bueno si funcionara, pero hacer que funcione de manera confiable en Gamepad API en todas las plataformas no es trivial y ese tipo de esfuerzo se dedica mejor a admitir gamepads reales.
Para este problema específico, el problema es cómo el dispositivo describe sus entradas. Cada entrada tiene un indicador que indica si la entrada es absoluta (con un valor mínimo y máximo definido) o relativa (lo que significa que cada entrada debe compararse con el valor anterior). Las entradas absolutas se usan para cosas como joysticks y puntos de contacto de pantalla táctil, mientras que las entradas relativas se usan para cosas como ratones ópticos y movimientos de trackpad.
Algunos dispositivos SpaceMouse describen sus entradas de eje como relativas, algunos como absolutas. Cuando se trata de un eje absoluto, Chrome puede obtener la información de los límites y usarla para normalizar el eje al rango [-1,+1] según lo requiera la API de Gamepad. Cuando se trata de un eje relativo, la información de los límites no está disponible y el eje no se puede normalizar de forma fiable.
Los ejes de SpaceMouse siempre se comportan como ejes absolutos, es un error cuando se definen como relativos. Hay una herramienta de terceros para mapear ejes relativos de SpaceMouse a ejes absolutos, no la he probado, pero por la descripción parece que hace lo que necesita:
https://github.com/nsensfel/relabsd
Algunos dispositivos SpaceMouse (como SpaceMouse Wireless ) informan ejes absolutos y funcionan con Gamepad API.