HN presentado: D-POINT - un stylus digital de código abierto con soporte para 6 grados de libertad
(github.com/Jcparkyn)- 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
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
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
https://en.m.wikipedia.org/wiki/SpaceOrb_360
https://www.tindie.com/products/vputz/orbotron-9001-version-...
https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
https://youtu.be/T2-IHgNYaKA
¡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
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
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
Incluso hoy hay gente que duda de adoptar el simple hecho de un mouse nuevo
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
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
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
[1] https://wacomstore.ca/product/one-by-wacom-small/
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?
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