1 pontos por GN⁺ 2023-11-13 | 1 comentários | Compartilhar no WhatsApp
  • D-POINT é uma stylus digital open source que usa rastreamento por câmera e medições inerciais para oferecer entrada 6DoF, baixa latência, detecção de pressão e precisão submilimétrica
  • Pode ser usada em qualquer superfície plana e funciona em conjunto com uma webcam de consumo
  • O corpo é composto por duas peças impressas em 3D, com hardware que integra um sensor de força, uma bateria Li-ion recarregável por USB-C e uma placa de desenvolvimento baseada em Arduino para lógica e Bluetooth
  • Fluxo de estimativa visual de pose que detecta com OpenCV os 8 marcadores ArUco impressos fixados na parte traseira da stylus e, após correção de rolling shutter, estimativa de pose PnP e transformação de coordenadas, calcula a pose em relação à câmera e a posição/direção da ponta da caneta em relação à superfície de desenho
  • A fusão inercial combina dados do acelerômetro e do giroscópio com estimativas VPE por meio de um Extended Kalman Filter, com uma estrutura que corrige as estimativas em tempo real usando o algoritmo Rauch-Tung-Striebel
  • Para lidar com o atraso temporal dos frames da câmera, usa um algoritmo de atualização de medição com tempo negativo; a implementação do EKF usa NumPy e Numba
  • As medições inerciais fazem parte da configuração para reduzir significativamente a latência em relação a uma implementação que usa apenas câmera, melhorando a precisão e a taxa de reporte em movimentos rápidos
  • Foi criado como parte de um projeto de TCC de graduação em engenharia elétrica; o código e os arquivos de design estão públicos, mas não foi concebido como um projeto DIY “plug and play”

1 comentários

 
GN⁺ 2023-11-13
Comentários no Hacker News
  • Muito legal. Pegaram algo que eu só imaginava e realmente implementaram de um jeito que funciona
    Quando eu jogava Elite: Dangerous, usava HOTAS e pedais, mas sempre ficava pensando se não existiria uma forma melhor de controlar a nave. Afinal, uma nave espacial precisa lidar não só com pitch, yaw e roll, mas também com empuxo em 6 direções
    Eu queria um dispositivo em que, ao mover na mão um modelo de nave espacial, a nave dentro de Elite se movesse exatamente da mesma forma, e o projeto linkado parece fazer exatamente isso. O empuxo provavelmente poderia ser controlado de forma parecida com a outra mão
    Esses tipos de métodos de entrada estranhos e novos são realmente incríveis, e quando esse tipo de capacidade surge, a imaginação se expande bastante

    • Tenho uma boa lembrança de quando tinha uns 16 anos. Comprei um mouse 3D que se controlava segurando e balançando na mão, prendi com fita num boné escrito Marines e fui direto para o CS: Source pronto para destruir todo mundo
      Acho que meu desempenho real foi mais ou menos o mesmo, mas teria sido ainda mais engraçado se eu tivesse sido completamente humilhado
      A teoria era que a cabeça é muito mais precisa que a mão, então combinar as duas melhoraria a mira. Parece que seria preciso olhar para a esquerda e enxergar a tela com o canto do olho, mas na prática um sistema de dois mouses até funciona bem. Eu queria tentar de novo de uma forma moderna, mas aí eu pareceria um super esquisitão com uma haste estranha presa na cabeça. Ainda assim, eu gosto desse estilo
      Sua ideia também é muito boa, então seria legal ver isso sendo feito
    • Ainda tenho um SpaceOrb369 para esse tipo de jogo. Também tem gente fazendo adaptadores para usá-lo por USB
      https://en.m.wikipedia.org/wiki/SpaceOrb_360
      https://www.tindie.com/products/vputz/orbotron-9001-version-...
    • Se a ideia é “uma forma melhor de controlar a nave espacial”, talvez bastem dois sticks?
      https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
      https://youtu.be/T2-IHgNYaKA
    • Na série de ficção científica The Expanse, a Rocinante é parcialmente pilotada com um 3DConnexion SpaceMouse, comum em CAD e modelagem 3D
    • Esses joysticks de 6 graus de liberdade já existem há décadas: https://3dconnexion.com/nl/spacemouse/
  • Um projeto de TCC de graduação! Se isso não tirar nota máxima, então não existe justiça no mundo

    • Fiquei curioso sobre por que você pensa assim
      Quando eu fiz a graduação, o foco era em trabalho científico. Então novidade ou aplicabilidade não eram importantes para a nota; o que importava era o quão cientificamente o conteúdo era comunicado por escrito. Como eu não vi o texto deste projeto, é difícil julgar do ponto de vista da avaliação
    • Desci a página desde as fotos e, assim que vi a mesa, pensei: “ah, isso é um quarto de dormitório
    • Nota na faculdade != qualidade :-) mas concordo
  • Muito legal. Como usaram uma webcam, isso me fez pensar se no futuro as webcams comuns de hoje, com campo de visão único de cerca de 78 graus, algum dia serão substituídas por webcams estéreo olho de peixe
    Com uma webcam assim, poderiam surgir experiências de usuário novas, como gestos combinados com rastreamento ocular, interação com periféricos como este stylus ou um volante para jogos de corrida, e até chamadas em webcam 3D de 180 graus bem mais flexíveis, incluindo presença em VR
    Dá a impressão de que estamos chegando a uma era em que todo o espaço 3D em frente à tela do computador pode ser usado como método de entrada, e o uso de webcam no post original parece um pequeno passo nessa direção

    • Alguns anos atrás, quando a Intel e seus parceiros colocavam módulos RealSense em notebooks, eu achei que isso chegaria logo, mas agora parece que as empresas da área mudaram o foco para o mercado corporativo e industrial
    • Infelizmente sou pessimista com isso. O painel de toque do Mac mostrou que até uma entrada contextual, responsiva e totalmente integrada tem dificuldade para romper o fluxo obtido com teclado + mouse
      Ainda hoje tem gente que hesita diante da simples ideia de um mouse novo
    • O TrackIR consegue fazer rastreamento de cabeça com um refletor preso na cabeça. Já o Tobii eye tracker consegue rastrear cabeça e olhos de forma totalmente passiva, sem precisar prender nada na cabeça
      Adicionar a isso controle por gestos de mão/dedos e periféricos como stylus ou mouse parece claramente o próximo passo, mas nem eles nem ninguém mais parece estar fazendo isso
    • Eu uso a webcam Anker PowerConf 300, e no Mac ou no Windows dá para chegar a 115 graus com o software AnkerWork
  • Gostei. Especialmente da parte de fusão
    São pensamentos que tive enquanto explorava “teclado de notebook... postura da mão, stylus 3D, toque”. Se adicionar botões, vira um mouse 3D, mas a cobertura da câmera pode se tornar um problema. O corpo do dispositivo é quase todo vazio, e a bateria também pode ficar mais fina. Eu conseguia até digitar razoavelmente segurando um stylus fino tipo hashi/escova de dentes. Também dava com marcadores e pontas estranhamente grandes
    Uma ponta grande recortada de um enfeite de Natal de bola de pingue-pongue deslizava bem suavemente sobre o teclado do ThinkPad, além de dar espaço para um sensor de força menos minúsculo e marcadores extras na ponta. Um cabo flat de silicone de fios trançados bem finos pode ser flexível como um cordão, então no começo eu usava o stylus preso a um Arduino
    Fico me perguntando como sensores inerciais interpretariam algo como um clicker metálico côncavo usado como um ou três botões

  • A correção de rolling shutter ficou bem legal, e não parece o tipo de coisa em que eu teria pensado. Fico curioso se você já sabia desde o início que isso seria um problema, ou se só percebeu depois de montar o resto do sistema

    • Eu sabia que teria algum impacto. A maior parte da literatura sobre projetos parecidos usa câmeras com obturador global por esse motivo. Só não tinha certeza de quão grande seria esse impacto
      Na maior parte do tempo, era pequeno o bastante para quase não ser perceptível, mas em certas situações ficava bem evidente. Por exemplo, quando a ponta da caneta ficava parada em um ponto e a caneta era girada
      O que mais me surpreendeu foi o quanto a minha solução funcionou bem, mesmo sendo uma aproximação bem grosseira da realidade. Existem técnicas de processamento muito mais sofisticadas, mas no fim não foram necessárias
      Uma coisa que eu queria ter tentado era PnP com reconhecimento de rolling shutter[1]. Em teoria, dá para usar a distorção de rolling shutter para estimar ao mesmo tempo a pose e a velocidade a partir de uma única imagem
      [1] https://www-sop.inria.fr/members/Philippe.Martinet/publis/20...
  • Eu gosto de tudo que envolve 6 graus de liberdade, e embora o hardware e a estimativa de pose por visão computacional estejam muito bons, o mais impressionante para mim é a superfície de software em que dá para desenhar e também girar
    É interessante porque isso também pode ser usado em qualquer controle físico de interface do usuário, como um slider operado com o dedo, que produza o mesmo efeito. É um ótimo projeto que mostra capacidade de resolver problemas, e parece que foi muito bem executado
    Só como referência, o primeiro controlador de 6 graus de liberdade que usei, fora um controle WiiMote[1] modificado com receptor Bluetooth de LED infravermelho, foi o visionário Logitech MX Air[2]
    [1] https://web.cs.ucdavis.edu/~okreylos/ResDev/Wiimote/MainPage...
    [2] https://www.cnet.com/reviews/logitech-mx-air-review/

  • Projeto muito legal, a documentação ajuda bastante, e é um bom exemplo do uso de filtro de Kalman no mundo real

  • Muito legal, é exatamente o tipo de coisa que eu sonhava ter
    Desde que a empresa passou para trabalho totalmente remoto, continuo sentindo falta das sessões de quadro branco. A melhor solução que consegui imaginar foi abrir um app web de quadro branco compartilhado em um iPad antigo e também no navegador do desktop, compartilhar a tela pelo desktop e desenhar no iPad com uma stylus barata
    Funciona até que bem, mas meu iPad é velho demais e ficou lento. Também pesa no bolso trocar. Se isso funcionar com uma webcam comum e uma stylus de tecnologia relativamente simples, é bem melhor, e ainda pode eliminar totalmente a necessidade de dispositivos externos

  • Excelente. Gosto do fato de não prender você a uma marca específica, como acontece ao comprar um teclado mecânico

  • Muito legal
    Isso também pode ser útil em robótica ou VR. Será que não daria para fazer rastreamento de mãos com uma única câmera também?
    Pergunta: será que dá para rastrear pressão com giroscópio + acelerômetro? Pelo menos algo como um “tap”?
    Outra pergunta: quanto custa, especialmente o sensor de pressão?

    • Detectar tap dá perfeitamente para fazer com giroscópio/acelerômetro, mas para uma sensibilidade à pressão de verdade — ou seja, lidar com a pressão mudando no meio do traço — praticamente não há muito o que fazer sem um sensor de pressão
      Em teoria, daria para fazer isso com estimativa de pose suficientemente precisa e uma ponta de caneta elástica, mas com o nível de precisão que consegui, isso não era realista
      Comprei o sensor de pressão por cerca de 20 dólares australianos, mas nos EUA dá para encontrar bem mais barato, por volta de 5 dólares (https://www.arrow.com/en/products/hsfpar003a/alps-electric). Só que é uma peça bem específica, então não é vendida em muitos lugares. A PCB personalizada custou mais 10 dólares australianos, e o Arduino cerca de 20 dólares. A lista completa de componentes está em https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md