[HN Gopher] Show HN: Open-source digital stylus with six degrees... ___________________________________________________________________ Show HN: Open-source digital stylus with six degrees of freedom Author : jcparkyn Score : 102 points Date : 2023-11-12 20:48 UTC (2 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | extraduder_ire wrote: | Outside tracking with a camera is not something I would have | thought of. Seems cool. | | Reminds me of how sad I am nobody's done a good job of cheaply | cloning the lighthouse tech that valve/htc use. | jcparkyn wrote: | I should point out that I'm not the first person to use camera | tracking for this [1], but to my knowledge there hasn't | previously been a serious attempt to combine it with inertial | or pressure sensors (which are both necessary for competing | with graphics tablets) or make it open-source. | | [1] http://media.ee.ntu.edu.tw/research/DodecaPen/ | mtsr wrote: | AFAIK you can actually get the sensors used for tracking at | somewhat OK prices. But iirc the sensors actually do some part | of the position calculations and as such aren't simple enough | to be really cheap. | charcircuit wrote: | Too bad this wasn't made as an OpenXR API layer so that it could | be used with existing software | noddingham wrote: | It's open source so... | ipsum2 wrote: | The great thing is that its open source, so you can add | whatever niche APIs you want to it! | slaucon wrote: | The rolling shutter compensation is pretty cool and isn't | something I would have thought of. Did you know that would be an | issue from the start or notice it only after you built the rest | of the system? | jcparkyn wrote: | I knew it would have an effect (most of the literature for | similar projects just uses global shutter cameras for this | reason), but wasn't sure how significant it would be. It turned | out to be small enough that it usually wasn't super noticeable, | but in certain cases it really showed up (e.g., rotating the | pen while keeping the tip in one place). | | The thing I was most surprised by was how effective my solution | was, given that it's a pretty gross approximation of reality. | There are lots of much more sophisticated techniques for | dealing with it, which I didn't end up needing. | | One thing I would've liked to try out is using rolling-shutter- | aware PnP [1], which can theoretically estimate pose and | velocity simultaneously from one image, by exploiting the | rolling shutter distortions. | | [1] https://www- | sop.inria.fr/members/Philippe.Martinet/publis/20... | ipsum2 wrote: | Very cool! It has the added benefit of being able to manipulate | objects in 3d. How does it compare to graphic tablets in terms of | accuracy? | jcparkyn wrote: | Currently it's not quite at the level of graphics tablets, but | it's not too far off, and I think there's quite a bit of | potential to improve it using similar techniques [1]. | | In terms of absolute accuracy, I measured an average error of | 0.89mm (for the position of the tip) across the entire area of | an A4 page with the camera in one place. In practice you have | more precision than that though, because most of the errors are | constant biases (not random noise). | | For example, here's one of the tests [2] I did for the thesis, | which compares the recorded stroke to what I actually wrote | (scanned from carbon paper). After aligning the two captures | (as a global 2D position offset, everything else is retained), | the average distance from the recorded stroke to the scan was | 0.158mm. | | [1] This paper (which I linked in another comment) uses some | more advanced techniques for pose estimation which could | definitely be applied here (but it's closed-source, and I | didn't have time to re-implement it from scratch): | http://media.ee.ntu.edu.tw/research/DodecaPen/ | | [2] https://github.com/Jcparkyn/dpoint/files/13329235/main- | sketc... | tomcam wrote: | > This project was part of my undergraduate thesis for electrical | engineering. I | | Undergrad! If you didn't get top marks on this there is no | justice | jcparkyn wrote: | Thanks! I'll get results in about two weeks (fingers crossed) | bloopernova wrote: | Very cool. They've done what I've daydreamed about, and actually | got it to work! | | When I played _Elite: Dangerous_ I used a "hand on throttle and | stick" (HOTAS) setup, along with foot pedals. I couldn't help but | think that there must be a better way to control a spaceship: | your ship can pitch, yaw, and roll in addition to being able to | fire thrusters in 6 directions. | | I wanted a handheld ship model that I could move such that the | ship in _Elite_ would move in the same way. The linked project | looks like it could do just that. Thrust would be controlled in a | similar way, but with my other hand. | | Strange or new input models like that are so amazing to me. Our | imagination can really fly high with these sorts of capabilities. | squigz wrote: | This is why 2 sticks is a fairly common setup for space games | Arelius wrote: | I still hold onto my SpaceOrb369 for this sort of game. There | is a guy that makes a converter to make it work over USB... | | https://en.m.wikipedia.org/wiki/SpaceOrb_360 | | https://www.tindie.com/products/vputz/orbotron-9001-version-... | myself248 wrote: | I have the slightly newer version, branded by HP as the | SpacePilot, and use it daily in Fusion 360 CAD. It has a | native USB connection, and 6 user-definable hotkeys below an | unimpressive LCD. | | It requires some old drivers that aren't officially supported | (why would they remove support for perfectly good hardware | from the newer drivers? To send good stuff to the landfill, | of course!), but when Autodesk tried to move Fusion to the | new driver model exclusively, user outcry persuaded them to | leave the old drivers in as an option. Apparently there's | quite a few of us using those SpacePilots, and the phrase | "from my cold, dead fingers" comes up not infrequently. | tadfisher wrote: | In the sci-fi series _The Expanse_ , the _Rocinante_ is | controlled in part by a 3DConnexion SpaceMouse, commonly used | in CAD and 3D modeling. | pests wrote: | I always imagined a sphere suspended / held by a minimum number | of strings (or rods?) / attachments. By physically pushing, | pulling, and twisting the sphere you could detect these | movements via compression and tension in the attachments. You | could motorize those strings/rods to give resistence and | feedback to the piloting. | bloopernova wrote: | Yeah that's almost exactly what I was daydreaming of! Weaker | gyroscopes might mean a ship can rotate in one direction | slower than others, and feedback to a controller could model | that for the user. | navane wrote: | this 6dof "joystick" has been around for decades: | https://3dconnexion.com/nl/spacemouse/ | lagrange77 wrote: | 1. Very cool project | | 2. Helpful documentation | | 3. Nice real world example for the use of a Kalman Filter! | jimmySixDOF wrote: | I'm a big fan of all things 6DOF ! Nice work on the hardware and | computer vision pose work but I am almost more impressed by the | software surface you are drawing into and able to rotate. Thats | interesting and could be used with any tangible user interface | control like a finger slider for the same effect. Good project | for problem solving skills looks like you nailed it bravo! | | Btw the first 6DOF controller I had other (than a hacked WiiMote | controller as a ir led Bluetooth receiver [1]) was the logitec mx | air which was ahead of its day [2]. | | [1] | https://web.cs.ucdavis.edu/~okreylos/ResDev/Wiimote/MainPage... | | [2] https://www.cnet.com/reviews/logitech-mx-air-review/ | tomp wrote: | Very cool! | | Could be useful for robotics / VR as well. One-camera hand | tracking anyone? | | Question: could you use gyro+accel to track pressure as well? Or | at least "taps"? | | Another question: how much does it cost? in particular, the | pressure sensor... | crazygringo wrote: | Very cool. The use of a webcam really makes me wonder if there's | a future where our regular single ~78deg FOV webcams are going to | be replaced by dual (stereo) fisheye webcams that can: | | - Enable all sorts of new UX interactions (gestures with eye | tracking) | | - Enable all sorts of new peripheral interactions (stylus like | this, but also things like a steering wheel for racing games) | | - Enable 3D 180deg filming for far more flexible webcam meetings, | including VR presence, etc. | | The idea of being able to use the entire 3D space in front of | your computer display as an input method feels like it's coming, | and using a webcam the way OP describes feels like it's a little | step in that direction. ___________________________________________________________________ (page generated 2023-11-12 23:00 UTC)