- D-POINT एक open source digital stylus है जो camera tracking और inertial measurement का उपयोग करके 6DoF input, low latency, pressure sensing और sub-millimeter accuracy प्रदान करता है
- इसे किसी भी सपाट surface पर इस्तेमाल किया जा सकता है, और यह consumer-grade webcam के साथ काम करता है
- इसकी body दो 3D-printed parts से बनी है, और hardware में force sensor, USB-C से charge होने वाली Li-ion battery, logic और Bluetooth के लिए Arduino-based development board शामिल हैं
- stylus के पीछे लगाए गए 8 printed ArUco markers को OpenCV से detect किया जाता है, फिर rolling shutter correction, PnP pose estimation और coordinate transformation के जरिए camera के reference में pose और drawing surface के reference में pen tip की position व orientation की गणना की जाती है—यह visual pose estimation flow है
- inertial fusion में accelerometer और gyroscope data को VPE estimates और Extended Kalman Filter के साथ combine किया जाता है, और Rauch-Tung-Striebel algorithm से real-time estimates को correct किया जाता है
- camera frames की time delay को handle करने के लिए negative-time measurement update algorithm का उपयोग किया जाता है, और EKF implementation में NumPy और Numba का इस्तेमाल होता है
- inertial measurement, camera-only implementation की तुलना में latency को काफी घटाने और तेज movements में accuracy व reporting rate को बेहतर बनाने के लिए शामिल किया गया है
- यह electrical engineering undergraduate thesis project के हिस्से के रूप में बनाया गया था; code और design files public हैं, लेकिन इसे “plug and play” DIY project के रूप में intended नहीं किया गया है
1 टिप्पणियां
Hacker News की राय
बेहद शानदार। जिस चीज़ की मैं सिर्फ कल्पना करता था, उसे असल में लागू करके चलने लायक बना दिया गया है
Elite: Dangerous खेलते समय मैं HOTAS और पैडल इस्तेमाल करता था, और लगातार सोचता था कि क्या स्पेसशिप को बेहतर तरीके से कंट्रोल करने का कोई तरीका नहीं हो सकता। आखिर स्पेसशिप में सिर्फ pitch, yaw, roll ही नहीं, बल्कि 6 दिशाओं की thrust भी संभालनी पड़ती है
मैं ऐसा डिवाइस चाहता था जिसमें हाथ में पकड़े स्पेसशिप मॉडल को हिलाने पर Elite के अंदर की स्पेसशिप भी वैसी ही हिले, और लिंक किया गया प्रोजेक्ट बिल्कुल वही कर पाने जैसा दिखता है। thrust शायद दूसरे हाथ से उसी तरह कंट्रोल की जा सकती है
ऐसे अनजाने और नए input तरीकों को देखना वाकई हैरान करने वाला है, और ऐसी क्षमता मिलते ही कल्पना की सीमा काफी बढ़ जाती है
असल skill शायद लगभग वैसी ही रही होगी, लेकिन अगर मैं पूरी तरह पिट गया होता तो और भी मज़ेदार होता
theory यह थी कि हाथ की तुलना में सिर कहीं ज़्यादा precise होता है, इसलिए दोनों को मिलाने से aim बेहतर होगा। लगता है जैसे बाईं तरफ देखते हुए आंख के कोने से स्क्रीन देखनी पड़ेगी, लेकिन असल में two-mouse system काफी हद तक काम करता है। इसे modern तरीके से फिर आज़माना चाहता था, लेकिन इससे मैं सिर पर अजीब-सी छड़ी लगाए एक जबरदस्त geek जैसा दिखूंगा। फिर भी मुझे वह style पसंद है
तुम्हारा idea भी सच में शानदार है, इसे बनाकर देखना चाहिए
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
undergraduate thesis project है! अगर इसे top grade नहीं मिलता, तो दुनिया में न्याय नहीं है
जब मैं undergraduate कर रहा था, तब scientific work पर ज़ोर था। इसलिए नया होना या लागू हो पाना grades में महत्वपूर्ण नहीं था; महत्वपूर्ण यह था कि उस content को scientific तरीके से लिखकर कितनी अच्छी तरह communicate किया गया है। इस project का write-up मैंने नहीं देखा, इसलिए grades के नज़रिए से आकलन करना मुश्किल है
बेहद शानदार। webcam इस्तेमाल होते देखकर सोचता हूं कि क्या भविष्य में आज के आम single लगभग 78-degree field-of-view webcam की जगह कभी stereo fisheye webcam आ जाएगा
ऐसे webcam से eye tracking के साथ gestures जैसे नए user experience, इस stylus या racing game steering wheel जैसी peripherals के साथ interaction, और VR presence तक शामिल करते हुए कहीं ज़्यादा flexible 3D 180-degree webcam meetings संभव हो सकती हैं
लगता है कि computer screen के सामने की पूरी 3D space को input method के रूप में इस्तेमाल करने का दौर आ रहा है, और original post में webcam का इस्तेमाल उस दिशा में एक छोटा कदम लगता है
आज भी कुछ लोग नए mouse नाम की चीज़ को लेकर ही हिचकिचाते हैं
इसमें hand/finger gesture control और stylus या mouse जैसी peripherals जोड़ना obvious next step लगता है, लेकिन वे या कोई और ऐसा करता हुआ नहीं दिखता
अच्छा है। खासकर fusion वाला हिस्सा पसंद आया
“laptop keyboard… hand pose, 3D stylus, touch” explore करते हुए आए विचार हैं। buttons जोड़ें तो यह 3D mouse बन जाता है, लेकिन camera coverage सिरदर्द हो सकता है। body ज़्यादातर खाली है और battery को भी और पतला बनाया जा सकता है। पतली chopstick/toothbrush जैसी stylus पकड़े हुए भी कुछ हद तक typing कर पाया। marker और अजीब तरह के बड़े tip के साथ भी संभव था
ping-pong ball Christmas ornament से काटा गया बड़ा tip ThinkPad keyboard के ऊपर काफी smooth तरीके से slide हुआ, और कम छोटे force sensor तथा extra tip marker के लिए जगह भी मिली। पतला stranded silicone ribbon cable डोरी जैसा flexible हो सकता है, इसलिए शुरुआत में stylus को Arduino से बांधकर इस्तेमाल किया
concave metal clicker जैसी किसी चीज़ को एक या तीन buttons के रूप में इस्तेमाल करने पर inertial sensor इसे कैसे interpret करेगा, यह जानने की उत्सुकता है
rolling shutter correction काफी शानदार है, और मुझे नहीं लगता कि मैं खुद इसके बारे में सोच पाता। उत्सुकता है कि क्या आपको शुरू से पता था कि यह समस्या बनेगी, या बाकी सिस्टम बनाने के बाद ही इसका एहसास हुआ
आम तौर पर यह इतना छोटा था कि ज़्यादा दिखता नहीं था, लेकिन कुछ खास स्थितियों में यह वाकई उभरकर दिखता था। जैसे जब pen tip को एक जगह रखकर pen को rotate किया जाता था
सबसे चौंकाने वाली बात यह थी कि मेरा solution reality का काफी rough approximation होने के बावजूद कितना अच्छा काम कर गया। इससे कहीं ज्यादा sophisticated processing techniques हैं, लेकिन आखिर में उनकी जरूरत नहीं पड़ी
एक चीज़ जिसे मैं आज़माना चाहता था, वह rolling shutter-aware PnP[1] थी। Theory में, rolling shutter distortion का इस्तेमाल करके एक ही image से pose और velocity दोनों को एक साथ estimate किया जा सकता है
[1] https://www-sop.inria.fr/members/Philippe.Martinet/publis/20...
6DoF से जुड़ी हर चीज़ मुझे पसंद है, और hardware व computer vision pose estimation भी अच्छे से किया गया है, लेकिन सच कहूँ तो जिस software surface पर draw किया जा सकता है और जिसे rotate भी किया जा सकता है, वह और भी ज्यादा impress करता है
यह दिलचस्प है कि इसी effect को finger slider जैसे किसी भी physical user interface control में इस्तेमाल किया जा सकता है। यह problem-solving ability दिखाने वाला अच्छा project है और लगता है इसे सही तरह से किया गया है
संदर्भ के लिए, मेरा पहला 6DoF controller—IR LED Bluetooth receiver में बदले गए WiiMote controller[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/
बहुत शानदार project है, documentation भी मददगार है, और Kalman filter के इस्तेमाल का अच्छा real-world example है
सच में शानदार है, और बिल्कुल वैसा ही है जैसा मैं सपना देखता था
कंपनी के पूरी तरह remote work पर जाने के बाद से मुझे whiteboard sessions की लगातार कमी महसूस होती रही। मेरे दिमाग में आया सबसे अच्छा तरीका यह था कि एक पुराने iPad और desktop browser दोनों पर shared whiteboard web app खोलूँ, फिर desktop से screen share करूँ और iPad पर सस्ते stylus से draw करूँ
यह काफी ठीक है, लेकिन मेरा iPad इतना पुराना है कि slow है। उसे replace करना भी महंगा लगता है। एक सामान्य webcam और relatively low-tech stylus हो तो यह कहीं बेहतर होगा, और external device की जरूरत भी पूरी तरह खत्म हो सकती है
[1] https://wacomstore.ca/product/one-by-wacom-small/
बेहतरीन। mechanical keyboard खरीदने की तरह, यह बात अच्छी है कि आप किसी specific brand में lock-in नहीं होते
बहुत शानदार
robotics या VR में भी यह उपयोगी हो सकता है। क्या एक camera से hand tracking भी संभव नहीं होगी?
सवाल: क्या gyro+accelerometer से pressure भी track किया जा सकता है? कम से कम “tap” जितना?
एक और सवाल: cost कितनी आती है, खासकर pressure sensor की
Theory में sufficiently accurate pose estimation और elastic pen tip से यह संभव है, लेकिन मुझे जो accuracy level मिला, उसमें यह realistic नहीं था
pressure sensor मैंने करीब 20 Australian dollars में खरीदा था, लेकिन US में यह काफी सस्ता, लगभग 5 dollars में मिल सकता है(https://www.arrow.com/en/products/hsfpar003a/alps-electric). हालांकि यह काफी specialized component है, इसलिए इसे बेचने वाली जगहें ज्यादा नहीं हैं। custom PCB के 10 Australian dollars और Arduino के लगभग 20 dollars और लगे। पूरी parts list https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md पर है