HN 공개: D-POINT - 6자유도를 지원하는 오픈소스 디지털 스타일러스
(github.com/Jcparkyn)- D-POINT는 카메라 추적과 관성 측정을 사용해 6DoF 입력, 낮은 지연시간, 압력 감지, 서브밀리미터 정확도를 제공하는 오픈소스 디지털 스타일러스
- 평평한 표면 어디서나 사용할 수 있으며, 소비자용 웹캠과 함께 동작하는 방식
- 본체는 두 개의 3D 프린트 부품으로 구성되며, 힘 센서, USB-C로 충전되는 Li-ion 배터리, 로직과 Bluetooth를 위한 Arduino 기반 개발 보드를 내장한 하드웨어
- 스타일러스 뒤쪽에 붙인 8개의 인쇄된 ArUco 마커를 OpenCV로 감지하고, 롤링 셔터 보정, PnP 자세 추정, 좌표 변환을 거쳐 카메라 기준 자세와 드로잉 표면 기준 펜촉 위치·방향을 계산하는 시각 자세 추정 흐름
- 관성 융합은 가속도계와 자이로스코프 데이터를 VPE 추정값과 Extended Kalman Filter로 결합하고, Rauch-Tung-Striebel 알고리듬으로 실시간 추정값을 보정하는 구조
- 카메라 프레임의 시간 지연을 처리하기 위해 음의 시간 측정 업데이트 알고리듬을 사용하며, EKF 구현에는 NumPy와 Numba를 사용함
- 관성 측정은 카메라만 사용하는 구현보다 지연시간을 크게 줄이고, 빠른 움직임에서 정확도와 보고율을 개선하기 위한 구성
- 전기공학 학부 논문 프로젝트의 일부로 만들어졌으며, 코드와 설계 파일은 공개되어 있지만 “plug and play” DIY 프로젝트를 의도한 것은 아님
댓글과 토론
Hacker News 의견들
-
아주 멋짐. 내가 공상만 하던 걸 실제로 구현해서 동작하게 만들었음
Elite: Dangerous를 할 때 HOTAS와 페달을 썼는데, 우주선을 더 잘 조종하는 방법이 있지 않을까 계속 생각했음. 우주선은 피치, 요, 롤뿐 아니라 6방향 추력까지 다뤄야 하니까
손에 쥔 우주선 모형을 움직이면 Elite 안의 우주선도 똑같이 움직이는 장치를 원했는데, 링크된 프로젝트가 딱 그걸 할 수 있어 보임. 추력은 다른 손으로 비슷하게 제어하면 될 듯
이런 낯설고 새로운 입력 방식은 정말 놀랍고, 이런 능력이 생기면 상상력이 크게 확장됨- 16살쯤의 좋은 기억 중 하나가 있음. 손에 쥐고 흔들어 조작하는 3D 마우스를 사서 Marines라고 적힌 모자에 테이프로 붙인 뒤, 바로 CS: Source에 들어가 모두를 박살 낼 준비를 했음
실제 실력은 비슷했던 것 같지만, 완전히 털렸다면 더 웃겼을 듯
이론은 손보다 머리가 훨씬 정밀하니 둘을 조합하면 조준이 좋아질 거라는 거였음. 왼쪽을 보면서 눈꼬리로 화면을 봐야 할 것 같지만, 실제로는 두 마우스 시스템이 꽤 성립함. 현대식으로 다시 해보고 싶었지만 머리에 이상한 막대기를 붙인 엄청난 괴짜처럼 보이게 됨. 그래도 그런 스타일이 좋음
네 아이디어도 정말 멋지니 만들어보면 좋겠음 - 이런 게임용으로 아직 SpaceOrb369를 갖고 있음. USB로 쓸 수 있게 변환기를 만드는 사람도 있음
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 - SF 시리즈 The Expanse에서 Rocinante는 CAD와 3D 모델링에 흔히 쓰는 3DConnexion SpaceMouse로 일부 조종됨
- 이런 6자유도 조이스틱은 수십 년 전부터 있었음: https://3dconnexion.com/nl/spacemouse/
- 16살쯤의 좋은 기억 중 하나가 있음. 손에 쥐고 흔들어 조작하는 3D 마우스를 사서 Marines라고 적힌 모자에 테이프로 붙인 뒤, 바로 CS: Source에 들어가 모두를 박살 낼 준비를 했음
-
학부 졸업 논문 프로젝트라니! 이걸로 최고 점수를 못 받는다면 세상에 정의가 없는 것임
- 왜 그렇게 생각하는지 궁금함
내가 학부를 할 때는 과학적 작업이 강조됐음. 그래서 새로움이나 적용 가능성은 성적에서 중요하지 않았고, 그 내용을 얼마나 과학적으로 글로 전달했는지가 중요했음. 이 프로젝트의 글을 보지 못해서 성적 관점으로는 판단하기 어려움 - 사진부터 아래로 내려봤는데, 책상을 보자마자 “아, 기숙사 방이네”라는 생각이 들었음
- 대학 성적 != 품질 :-) 그래도 동의함
- 왜 그렇게 생각하는지 궁금함
-
아주 멋짐. 웹캠을 쓴 걸 보니, 지금의 일반적인 단일 약 78도 시야각 웹캠이 언젠가 스테레오 어안 웹캠으로 바뀔 미래가 있을지 궁금해짐
그런 웹캠이면 눈 추적을 곁들인 제스처 같은 새 사용자 경험, 이 스타일러스나 레이싱 게임용 핸들 같은 주변기기 상호작용, VR 존재감까지 포함한 훨씬 유연한 3D 180도 웹캠 회의가 가능해질 수 있음
컴퓨터 화면 앞의 전체 3D 공간을 입력 방식으로 쓰는 시대가 오고 있는 느낌이고, 원글의 웹캠 활용은 그 방향의 작은 발걸음처럼 보임- 몇 년 전 Intel과 파트너들이 노트북에 RealSense 모듈을 넣던 때에는 이게 곧 올 줄 알았는데, 지금은 관련 업체들이 기업·산업 시장 쪽으로 초점을 옮긴 것 같음
- 이런 건 아쉽게도 비관적으로 봄. Mac의 터치 패널은 맥락 인식·반응형·완전 통합 입력조차 키보드+마우스로 얻는 흐름을 깨기 어렵다는 걸 보여줬음
지금도 새로 나온 마우스라는 물건 자체를 망설이는 사람이 있음 - TrackIR는 머리에 단 반사체로 머리 추적을 할 수 있음. 하지만 머리에 아무것도 달지 않아도 Tobii eye tracker는 머리와 눈 추적을 완전히 수동적으로 할 수 있음
여기에 손/손가락 제스처 제어, 스타일러스나 마우스 같은 주변기기를 더하는 게 명백한 다음 단계 같지만, 그들이나 다른 누구도 그렇게 하는 것 같지는 않음 - Anker PowerConf 300 웹캠을 쓰는데, Mac이나 Windows에서 AnkerWork 소프트웨어로 115도까지 갈 수 있음
-
좋음. 특히 융합 부분이 좋음
“노트북 키보드… 손 자세, 3D 스타일러스, 터치”를 탐색하면서 든 생각들임. 버튼을 더하면 3D 마우스가 되지만, 카메라 커버리지가 골칫거리가 될 수 있음. 본체는 대부분 비어 있고 배터리도 더 얇게 만들 수 있음. 가느다란 젓가락/칫솔 같은 스타일러스를 들고도 어느 정도 타이핑할 수 있었음. 마커와 이상하게 큰 팁이 있어도 가능했음
탁구공 크리스마스 장식에서 잘라낸 큰 팁은 ThinkPad 키보드 위를 꽤 매끄럽게 미끄러졌고, 덜 작은 힘 센서와 추가 팁 마커를 넣을 공간도 줬음. 얇은 연선 실리콘 리본 케이블은 끈처럼 유연할 수 있어서, 시작할 때는 스타일러스를 Arduino에 묶어 썼음
오목한 금속 클리커 같은 걸 버튼 하나 또는 세 개로 쓰면 관성 센서가 어떻게 해석할지 궁금함 -
롤링 셔터 보정이 꽤 멋지고, 내가 떠올렸을 것 같지는 않음. 처음부터 문제가 될 걸 알고 있었는지, 아니면 나머지 시스템을 만든 뒤에야 알아챘는지 궁금함
- 영향이 있을 거라는 건 알고 있었음. 비슷한 프로젝트 관련 문헌 대부분이 그래서 글로벌 셔터 카메라를 쓰니까. 다만 얼마나 큰지는 확신이 없었음
보통은 아주 눈에 띄지 않을 정도로 작았지만, 특정 상황에서는 정말 드러났음. 예를 들어 펜촉은 한곳에 둔 채 펜을 회전할 때가 그랬음
가장 놀랐던 건 내 해법이 현실을 꽤 거칠게 근사한 것인데도 얼마나 잘 먹혔는지였음. 훨씬 정교한 처리 기법이 많지만 결국 필요하지 않았음
시도해보고 싶었던 것 하나는 롤링 셔터 인식 PnP[1]였음. 이론적으로는 롤링 셔터 왜곡을 이용해서 한 장의 이미지에서 자세와 속도를 동시에 추정할 수 있음
[1] https://www-sop.inria.fr/members/Philippe.Martinet/publis/20...
- 영향이 있을 거라는 건 알고 있었음. 비슷한 프로젝트 관련 문헌 대부분이 그래서 글로벌 셔터 카메라를 쓰니까. 다만 얼마나 큰지는 확신이 없었음
-
6자유도 관련이라면 전부 좋아하는데, 하드웨어와 컴퓨터 비전 자세 추정도 잘했지만 오히려 그릴 수 있고 회전도 되는 소프트웨어 표면이 더 인상적임
같은 효과를 내는 손가락 슬라이더 같은 어떤 물리적 사용자 인터페이스 컨트롤에도 쓸 수 있어 흥미로움. 문제 해결 능력을 보여주는 좋은 프로젝트이고 제대로 해낸 것 같음
참고로 내가 처음 쓴 6자유도 컨트롤러는 IR LED 블루투스 수신기로 개조한 WiiMote 컨트롤러[1]를 빼면, 시대를 앞섰던 Logitech MX Air[2]였음
[1] https://web.cs.ucdavis.edu/~okreylos/ResDev/Wiimote/MainPage...
[2] https://www.cnet.com/reviews/logitech-mx-air-review/ -
아주 멋진 프로젝트이고, 문서도 도움이 되며, 칼만 필터 사용의 좋은 현실 예시임
-
정말 멋지고, 내가 꿈꾸던 것과 딱 맞음
회사가 완전 원격 근무로 바뀐 뒤 화이트보드 세션이 계속 그리웠음. 내가 떠올릴 수 있었던 최선은 오래된 iPad와 데스크톱 브라우저 양쪽에 공유 화이트보드 웹앱을 띄운 뒤, 데스크톱에서 화면 공유를 하고 iPad에 싼 스타일러스로 그리는 방식이었음
꽤 괜찮지만 내 iPad가 너무 오래돼 느림. 교체하기도 부담됨. 일반 웹캠과 비교적 낮은 기술 수준의 스타일러스라면 훨씬 낫고, 외부 기기 필요도 완전히 없앨 수 있음- 가장 싼 Wacom 태블릿[1]은 67캐나다달러임. 다른 브랜드에는 더 싼 것도 있음
[1] https://wacomstore.ca/product/one-by-wacom-small/
- 가장 싼 Wacom 태블릿[1]은 67캐나다달러임. 다른 브랜드에는 더 싼 것도 있음
-
훌륭함. 기계식 키보드를 사는 것처럼 특정 브랜드에 종속되지 않는다는 점이 좋음
-
아주 멋짐
로보틱스나 VR에도 유용할 수 있겠음. 카메라 하나로 손 추적도 가능하지 않을까?
질문: 자이로+가속도계로 압력도 추적할 수 있을까? 적어도 “탭” 정도는?
또 질문: 비용은 얼마나 드는지, 특히 압력 센서가 궁금함- 탭 감지는 자이로/가속도계로 충분히 할 수 있지만, 제대로 된 압력 감도, 즉 획을 긋는 중간에 압력이 바뀌는 걸 처리하려면 압력 센서 말고는 할 수 있는 게 별로 없음
이론적으로는 충분히 정확한 자세 추정과 탄성 있는 펜촉으로 가능하지만, 내가 얻은 정확도 수준에서는 현실적이지 않았음
압력 센서는 약 20호주달러에 샀지만, 미국에서는 훨씬 싸게 약 5달러에 구할 수 있음(https://www.arrow.com/en/products/hsfpar003a/alps-electric). 다만 꽤 특수한 부품이라 파는 곳이 많지 않음. 맞춤 PCB가 추가로 10호주달러, Arduino가 약 20달러였음. 전체 부품 목록은 https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md에 있음
- 탭 감지는 자이로/가속도계로 충분히 할 수 있지만, 제대로 된 압력 감도, 즉 획을 긋는 중간에 압력이 바뀌는 걸 처리하려면 압력 센서 말고는 할 수 있는 게 별로 없음