1 puntos por GN⁺ 2023-11-13 | 1 comentarios | Compartir por WhatsApp
  • D-POINT es un stylus digital de código abierto que usa seguimiento por cámara y medición inercial para ofrecer entrada 6DoF, baja latencia, detección de presión y precisión submilimétrica
  • Puede usarse sobre cualquier superficie plana y funciona junto con una webcam de consumo
  • El cuerpo está compuesto por dos piezas impresas en 3D e integra hardware con sensor de fuerza, batería Li-ion recargable por USB-C y una placa de desarrollo basada en Arduino para la lógica y Bluetooth
  • Flujo de estimación visual de postura que detecta con OpenCV ocho marcadores ArUco impresos colocados en la parte trasera del stylus, y mediante corrección de rolling shutter, estimación de pose PnP y transformación de coordenadas calcula la pose con respecto a la cámara y la posición y orientación de la punta con respecto a la superficie de dibujo
  • La fusión inercial combina datos de acelerómetro y giroscopio con estimaciones VPE y un Extended Kalman Filter, y corrige las estimaciones en tiempo real con el algoritmo Rauch-Tung-Striebel
  • Para manejar la latencia temporal de los frames de cámara, usa un algoritmo de actualización de medición en tiempo negativo, y la implementación del EKF utiliza NumPy y Numba
  • La medición inercial reduce significativamente la latencia frente a una implementación que solo usa cámara, y está pensada para mejorar la precisión y la tasa de reporte en movimientos rápidos
  • Fue creado como parte de un proyecto de tesis de licenciatura en ingeniería eléctrica, y aunque el código y los archivos de diseño están publicados, no fue pensado como un proyecto DIY “plug and play”

1 comentarios

 
GN⁺ 2023-11-13
Comentarios de Hacker News
  • Está buenísimo. Hicieron realidad algo que yo solo imaginaba y lograron que funcionara
    Cuando jugaba Elite: Dangerous usaba HOTAS y pedales, pero siempre pensaba si no habría una mejor forma de controlar la nave. Al fin y al cabo, una nave espacial no solo maneja pitch, yaw y roll, sino también empuje en 6 direcciones
    Yo quería un dispositivo donde al mover en la mano una maqueta de nave espacial, la nave dentro de Elite se moviera igual, y el proyecto enlazado parece hacer justamente eso. El empuje probablemente se podría controlar de forma parecida con la otra mano
    Este tipo de métodos de entrada extraños y nuevos son realmente sorprendentes, y cuando aparece una capacidad así, la imaginación se expande muchísimo

    • Tengo uno de mis buenos recuerdos de cuando tenía como 16 años. Compré un mouse 3D que se controlaba agitándolo en la mano, lo pegué con cinta a una gorra que decía Marines, y me metí directo a CS: Source listo para destrozar a todos
      Creo que en realidad mi desempeño fue más o menos el mismo, aunque habría sido más gracioso si me hubieran aplastado por completo
      La teoría era que la cabeza es mucho más precisa que la mano, así que combinarlas debería mejorar la puntería. Parecería que habría que mirar a la izquierda mientras ves la pantalla con el rabillo del ojo, pero en la práctica un sistema de dos mouse funciona bastante bien. Quise volver a intentarlo de forma moderna, pero terminas viéndote como un tremendo rarito con una vara extraña pegada a la cabeza. Igual, ese estilo me gusta
      Tu idea también está buenísima, ojalá la construyas
    • Para este tipo de juegos todavía tengo un SpaceOrb369. Incluso hay gente que hace adaptadores para poder usarlo por USB
      https://en.m.wikipedia.org/wiki/SpaceOrb_360
      https://www.tindie.com/products/vputz/orbotron-9001-version-...
    • Si se trata de “una mejor forma de controlar una nave espacial”, ¿no bastarían dos sticks?
      https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
      https://youtu.be/T2-IHgNYaKA
    • En la serie de ciencia ficción The Expanse, la Rocinante se controla en parte con un 3DConnexion SpaceMouse, de los que suelen usarse para CAD y modelado 3D
    • Este tipo de joysticks de 6 grados de libertad existe desde hace décadas: https://3dconnexion.com/nl/spacemouse/
  • ¡Que esto sea un proyecto de tesis de licenciatura! Si no saca la nota más alta con esto, entonces no hay justicia en el mundo

    • Me da curiosidad por qué piensas eso
      Cuando yo hice la licenciatura, se hacía mucho énfasis en el trabajo científico. Por eso, la novedad o la aplicabilidad no eran tan importantes para la nota; lo importante era qué tan científicamente se comunicaba por escrito el contenido. Como no he visto el texto de este proyecto, es difícil juzgarlo desde la perspectiva de la calificación
    • Empecé por las fotos y bajé un poco; en cuanto vi el escritorio pensé: “ah, sí, es un cuarto de residencia estudiantil
    • Las notas universitarias != calidad :-) Aun así, estoy de acuerdo
  • Está muy bueno. En particular, me hizo pensar en que usan una webcam, y me pregunté si en algún momento el webcam común actual, con un campo de visión de unos 78 grados, podría evolucionar a una webcam estéreo ojo de pez
    Con una webcam así podrían hacerse posibles nuevas experiencias de usuario mucho más flexibles: gestos con seguimiento ocular, interacciones con periféricos como este stylus o un volante para juegos de carreras, e incluso videollamadas 3D de 180 grados con sensación de presencia tipo VR
    Da la impresión de que se acerca una época en la que todo el espacio 3D frente a la pantalla de la computadora se use como método de entrada, y el uso de la webcam en la publicación original parece un pequeño paso en esa dirección

    • Hace unos años, cuando Intel y sus socios estaban metiendo módulos RealSense en laptops, pensé que esto llegaría pronto, pero ahora parece que las empresas relacionadas se han enfocado más en el mercado corporativo e industrial
    • Lamentablemente, con esto soy pesimista. El panel táctil de la Mac mostró que incluso una entrada contextual, reactiva y completamente integrada tiene dificultades para romper el flujo que ya se obtiene con teclado + mouse
      Incluso hoy hay gente que duda de adoptar el simple hecho de un mouse nuevo
    • TrackIR puede hacer seguimiento de cabeza con un reflector pegado a la cabeza. Pero incluso sin llevar nada puesto, el eye tracker de Tobii puede hacer seguimiento completo de cabeza y ojos de forma totalmente pasiva
      Sumándole control gestual de manos/dedos y periféricos como stylus o mouse, parecería el siguiente paso obvio, pero no da la impresión de que ellos ni nadie más lo estén haciendo
    • Uso una webcam Anker PowerConf 300 y en Mac o Windows se puede llegar hasta 115 grados con el software AnkerWork
  • Está bueno. En especial me gustó la parte de la fusión
    Son ideas que me surgieron al explorar “teclado de laptop… postura de la mano, stylus 3D, touch”. Si le agregas botones, se vuelve un mouse 3D, aunque la cobertura de la cámara podría ser un dolor de cabeza. El cuerpo está mayormente vacío y la batería también podría hacerse más delgada. Incluso sosteniendo un stylus delgado, tipo palillo o cepillo de dientes, podía escribir hasta cierto punto. También se podía con un marcador y una punta exageradamente grande
    Una punta grande recortada de un adorno navideño de ping-pong se deslizaba bastante suave sobre el teclado de un ThinkPad, y además dejaba espacio para meter un sensor de fuerza menos pequeño y marcadores extra en la punta. Un cable plano de silicona con hilos finos puede ser tan flexible como un cordón, así que al principio usé el stylus atado a un Arduino
    Me pregunto cómo interpretaría un sensor inercial algo como un clicker metálico cóncavo usado como uno o tres botones

  • La corrección de rolling shutter está bastante genial, y no creo que se me hubiera ocurrido. Me pregunto si ya sabías desde el principio que sería un problema, o si te diste cuenta solo después de construir el resto del sistema

    • Sabía que probablemente tendría algún efecto. La mayor parte de la literatura sobre proyectos similares usa cámaras con obturador global por eso mismo. Pero no tenía claro qué tan grande sería
      Por lo general era tan pequeño que casi no se notaba, pero en ciertas situaciones sí se hacía muy evidente. Por ejemplo, cuando dejabas la punta del lápiz en un mismo lugar y girabas el lápiz
      Lo que más me sorprendió fue lo bien que funcionó mi solución, aun siendo una aproximación bastante burda de la realidad. Hay técnicas de procesamiento mucho más sofisticadas, pero al final no hicieron falta
      Una cosa que quería probar era PnP con reconocimiento de rolling shutter[1]. En teoría, se puede usar la distorsión de rolling shutter para estimar al mismo tiempo la pose y la velocidad a partir de una sola imagen
      [1] https://www-sop.inria.fr/members/Philippe.Martinet/publis/20...
  • Me encanta todo lo relacionado con 6 grados de libertad; el hardware y la estimación de pose por visión por computadora están muy bien logrados, pero lo que más me impresionó fue la superficie de software sobre la que se puede dibujar y que también se puede rotar
    Es interesante porque podría usarse en cualquier control físico de interfaz de usuario, como un deslizador para los dedos, que produzca el mismo efecto. Es un gran proyecto que demuestra capacidad para resolver problemas, y parece que está muy bien ejecutado
    Por cierto, el primer controlador de 6 grados de libertad que usé fue, aparte de un mando WiiMote modificado con un receptor Bluetooth de LED IR[1], el adelantado a su época Logitech MX Air[2]
    [1] https://web.cs.ucdavis.edu/~okreylos/ResDev/Wiimote/MainPage...
    [2] https://www.cnet.com/reviews/logitech-mx-air-review/

  • Es un proyecto muy bueno, la documentación también ayuda, y es un gran ejemplo real del uso de un filtro de Kalman

  • Está realmente genial, y es justo lo que yo había soñado
    Desde que mi empresa pasó a trabajo completamente remoto, he seguido extrañando las sesiones de pizarrón. Lo mejor que se me había ocurrido era abrir una app web de pizarrón compartido tanto en un iPad viejo como en el navegador de escritorio, compartir pantalla desde la computadora y dibujar en el iPad con un stylus barato
    Funciona bastante bien, pero mi iPad ya es demasiado viejo y lento. También me cuesta justificar reemplazarlo. Con una webcam común y un stylus de tecnología relativamente simple sería mucho mejor, e incluso se podría eliminar por completo la necesidad de un dispositivo externo

  • Excelente. Me gusta que no te ata a una marca específica, como cuando compras un teclado mecánico

  • Está muy bueno
    También podría ser útil en robótica o VR. ¿No sería posible hacer seguimiento de manos también con una sola cámara?
    Pregunta: ¿se podría rastrear la presión con giroscopio + acelerómetro? ¿Al menos algo como un “tap”?
    Otra pregunta: ¿cuánto cuesta, especialmente el sensor de presión?

    • La detección de taps sí puede hacerse bastante bien con giroscopio/acelerómetro, pero para una sensibilidad de presión de verdad, es decir, manejar cambios de presión a mitad de un trazo, no hay mucho que se pueda hacer sin un sensor de presión
      En teoría podría lograrse con una estimación de pose lo bastante precisa y una punta elástica, pero con el nivel de precisión que yo obtuve no era realista
      El sensor de presión me costó unos 20 dólares australianos, pero en Estados Unidos se puede conseguir mucho más barato, alrededor de 5 dólares (https://www.arrow.com/en/products/hsfpar003a/alps-electric). Eso sí, es una pieza bastante especializada, así que no la venden en muchos lugares. El PCB personalizado sumó otros 10 dólares australianos, y el Arduino costó unos 20 dólares. La lista completa de componentes está en https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md