Show HN: Open-source digital stylus with six degrees of freedom
github.com
github.com
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.
https://en.m.wikipedia.org/wiki/SpaceOrb_360
https://www.tindie.com/products/vputz/orbotron-9001-version-...
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.
Those are great, but nothing really compares to the original SpaceOrb360 controller form-factor for gaming IMO.
I haven't used the SpaceOrb360 but it looks like it would be a lot of wrist strain to hold it and use it for long periods. But I like the button placement under the right hand... hmm.
With the SpacePilot, I have my right hand on the keyboard or mouse so I can bind whatever buttons I want, and I suppose I could one-hand a regular controller and get A/B/X/Y/stick/triggers in my right hand instead. Hmm. Would that be easier on the wrists than melding the two together? I'm not sure. It would certainly give me more buttons to play with...
It have the same issue for my Logitech G600 that it can't pick up some inputs. I set up the macros in LGHUB with keystrokes (multiple modifiers with keys) and use AHK to grab those and expands the capabilities of my G600 than what LGHUB offers.
I found it interesting how companies invest heavy in hardware and don't bother to improve the software side.
If anything the hardware is the hard part to copy and open source drivers could do nothing but benefit them and ensure wide platform compatibility and longevity, and yet so many companies like this insist on closing things up and forcing hackers to reverse engineer everything. It's bizarre logic to me.
Is it a track-ball, a rotary encoder, and a 3D stick?
It's flexible, and there are LEDs and linear optical sensors set up with an occluder in between that casts a shadow (or passes a light through a slit, according to the patent). The sensor detect where along the sensor the shadow or light falls, which indicates how much you have translated or rotated the control in a particular axis.
1: https://www.fictiv.com/teardowns/spacenavigator-3d-mouse-tea...
Mechanically, it’s something like an Rx/Rz two-axis joystick with sliding knob part on top that can be slid in X/Y, pushed/pulled in Z and twisted in Ry as well. All axes are spring centered.
Two sticks?
https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
I used a CH Pro throttle, which has enough hats to sort of mimic that 2 stick action. Main throttle back forward for main engine and retros. A smaller thumb stick/hat for each of Y and Z axis.
(In case anyone is wondering, I transitioned from the Warthog throttle with DeltaSim's slew mod with zero issues, I find the STECS Standard way more versatile and flexible).
I couple this with a Gunfighter Ultimate stick (V3), and Crosswinds pedals, all profile mounted. (My GFU grip has twist, but I don't use it.)
When you add TrackIR in my case (or VR for others), there's quite a bit of immersion going on! :-)
I play DCS and Star Citizen these days, also used to fly Elite Dangerous though. Building the combined quad screen workstation / simrig has been a wonderful side project over the past few years. ;)
I don't know how fast, but depending on which axis it rotates on and how fast, it may be going in several directions at once.
What would be the word for "To Kagi"? They use "Fetch" in the search field, but it hasn't really stuck with me.
You wouldn't say I am AT&Ting or AOLing for browsing the internet or Honda-ing / Ducati-ing for using the motorcycle
I think I played about the same, but it would’ve been funnier if I’d gotten creamed.
The theory was that my head is much more precise than my hands, so using a combination of both should improve my aim. It might sound like you’ll end up looking left and trying to see out of the corner of your eye, but in practice the two-mouse system ends up working out. I’ve always wanted to revive the idea for modern times, but you end up looking like a huge dork with a dildo glued to your head. I like that style though.
Your idea sounds way cool. You should make it!
What do you mean? I do get stares at the grocery store or on the street occasionally but no one ever mentioned anything.
Then try staying in control with an unbalanced ship, or after you inevitably smashed one of the thrusters into a rock. It's a pretty space-nerd game too, they simulate details like reaction wheel saturation.
15 years later and I'm still convinced that the SpaceOrb 360 is THE GREATEST GAME CONTROLER OF ALL TIME. See what I did with the all cap there? It's the G.O.A.T. and it's a tragedy that it lost the battle to "WASD" keyboard and mouse gaming and the "two thumbs" style of controller.
If you've ever tried a SpaceOrb, you probably already know this. If you didn't live through the SpaceOrb's hayday (around 1994-5 with the original Quake, and Descent, truly one of the greatest games ever) then this post will sound like I'm a crotchety old dude trying desperately to relive my the golden hour of my youth. Ok, so you got me. What of it? ;)
https://www.hanselman.com/blog/the-best-controller-for-fps-a...
Degrees of freedom: https://hanselmanblogcontent.azureedge.net/WindowsLiveWriter...
I had purchased a box of these when they were going away, and sponsored a custom driver. For a while there were other solutions available, like OrbShield:
// via SeedStudio: https://www.seeedstudio.com/Orbshield-v1-0-kit-p-671.html?qu...
// via Tindie: https://www.tindie.com/products/vputz/orbotron-9001-version-...
Undergrad! If you didn't get top marks on this there is no justice
Undergrad is trying to learn the necessary basics to be able to get into academia.
Of course undergrads could publish papers already and be part of academia, but in this case I am not sure if there is any novelty or if it's just a nice product idea.
I do give a flying fuck about applicability and novelty, especially for an undergrad.
- 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 180° 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.
Even today some people are still on the fence about the new fangled mouse!
- too easy to accidentally touch while reaching top-row keys.
- cannot be used by feel.
- replaces existing keys, removing functionality.
- turns off sometimes, so we have to tap once to wake it first.
- some common actions used to be 1 key, are now two taps (volume, brightness).
- does not always register my taps. No unambiguous indication that the tap was recognized.
There are infrared depth cameras in various phones and laptop cameras now.
[VR] Motion controllers: https://en.wikipedia.org/wiki/Motion_controller#Gaming
Inertial navigation system: https://en.wikipedia.org/wiki/Inertial_navigation_system
Inertial measurement unit : https://en.wikipedia.org/wiki/Inertial_measurement_unit :
> An inertial measurement unit (IMU) is an electronic device that measures and reports a body's specific force, angular rate, and sometimes the orientation of the body, using a combination of accelerometers, gyroscopes, and sometimes magnetometers. When the magnetometer is included, IMUs are referred to as IMMUs.[1]
Moasure does displacement estimation with inertial measurement (in a mobile app w/ just accelerometer or also compass sensor data?) IIUC: https://www.moasure.com/
/? wireless gesture recognition RSSI: https://scholar.google.com/scholar?q=wireless+gesture+recogn...
/? wireless gesture recognition RSSI site:github.com : https://www.google.com/search?q=wireless+gesture+recognition...
Awesome-WiFi-CSI-Sensing > Indoor Localization: https://github.com/Marsrocky/Awesome-WiFi-CSI-Sensing#indoor...
3D Scanning > Technology, Applications: https://en.wikipedia.org/wiki/3D_scanning#Technology
Are there a limited set of possible-path-corresponding diffraction patterns that NIRS (Near-Infrared Spectroscopy) could sense and process to make e.g. a magic pencil with pressure sensitivity, too?
/q.hnlog "quantum navigation": https://news.ycombinator.com/item?id=36222625#36250019 :
> Quantum navigation maps such signal sources such that inexpensive sensors can achieve something like inertial navigation FWIU?
From https://news.ycombinator.com/context?id=36249897 :
> Can low-cost lasers and Rdyberg atoms e.g. Rydberg Technology solve for [space-based] matter-wave interferometry? [...] Does a fishing lure bobber on the water produce gravitational waves as part of the n-body gravitational wave fluid field, and how separable are the source wave components with e.g. Quantum Fourier Transform/or and other methods?
Because the digitizer
Wouldn't such a capability also be useful for surgical AR/AI, robotics, and training?
Some random-ish thoughts from exploring "a laptop keyboard... with hand pose, 3D stylus, and touch". Adding buttons yields a 3D mouse - but camera coverage can be a pain. Note the body is largely empty (and battery could be slimmed) - I could more-or-less type while holding a slim chopstick/toothbrush-like stylus (even with the markers, and a weirdly big tip). A big tip (sliced from a ping-pong ball sized xmas decoration) could slide fairly smoothly on a ThinkPad keyboard (and gave room for a less compact force sensor, and an extra tip marker). Thin stranded silicone ribbon cable can be string-like flexible - I just tethered the stylus to an arduino to get started.
Hmm... I wonder what the inertial sensor might make of something like a dimpled metal clicker, as a button (or three)?
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...
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. Helpful documentation
3. Nice real world example for the use of a Kalman Filter!
Since the move to full remote work at my company, I've been longing for whiteboard sessions. The best I could conjure up was to use an old iPad and load up a shared whiteboarding webapp in a browser on both iPad and my desktop, and then share screen from my desktop, using a cheapo stylus on the iPad to draw.
It's pretty good, but my iPad is super old and slow. Replacing it is not affordable. But a conventional web cam + a relatively low-tech stylus would be much better, and drop the need for an external device completely.
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...
2: I paid about $20 AUD for the pressure sensor, but they can be had for quite a bit cheaper (~$5 USD) in the US (https://www.arrow.com/en/products/hsfpar003a/alps-electric). Only problem is they're quite specialized, so not many places sell them. The custom PCB was another $10AUD, and the Arduino was about $20. There's a full parts list at https://github.com/Jcparkyn/dpoint/blob/main/setup-guide.md.
I'm guessing it's the size of the ArUco markers, combined with accelerometer for smoother tracking - but that seems quite imprecise?
You're right that this is the least precise dimension for PnP, but it turns out to be good enough if the corner positions are decently accurate. Using sub-pixel refinement for the corner locations helps a lot (this is built into OpenCV — it looks at the brightness values for multiple pixels around the corner to get an estimate more accurate than one pixel). Having corner positions further apart in 3D space helps as well, which is part of the reason I used two "rings" of markers.
In my case I was getting somewhere in the ballpark of 1-2mm of depth error at ~3cm away from the camera, so ~0.5% relative error. Smoothing from the accelerometer stops this from being noticeable most of the time, but it will sometimes crop up in bad conditions (e.g. if one of the markers is being missed on some frames due to lighting problems).
Reminds me of how sad I am nobody's done a good job of cheaply cloning the lighthouse tech that valve/htc use.
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...
Though it would be nice to do more tests. For example, there is some error when drawing sharp corners. It would be instructive to see how that changes as you change the angle, etc. And how that changes based on location on the paper.
Until it's solved, the better practical use for this is probably a controller for VR or 3D software.
However, it does an impressively good job with low camera frame rates. I tested it at 10FPS (discarding every third frame), and the results are barely distinguishable from 30FPS. Below that it starts having difficulty.
OpenXR isn't a niche API when you are dealing with 6dof input devices.
Because you are the one who is complaining.