The Mixed Reality Forums here are no longer being used or maintained.
There are a few other places we would like to direct you to for support, both from Microsoft and from the community.
The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.
For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.
If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.
And always feel free to hit us up on Twitter @MxdRealityDev.
Physical origin of HL coordinate system?
I'm working on some devices for external referencing, and I need to figure out where the physical origin of the HL is. What I mean by this is, if I were to say the hololens camera is at the origin (0,0,0) in unity, I can request a cube be drawn at say 0,0,1 (1 meter directly in front). What point on the headset (or around the headset) does that coordinate system lead back to? is it somewhere between the two lenses back a few millimetres? Is it the middle of the two lenses? I'd like to be as precise as possible about this. Thanks in advance.
Best Answer
-
OptionsPatrick mod
Neeraj and I took the sharing test scene and scaled down the remote user's representation to a small point. It looks like the origin is between the user's eyes, a little bit behind the actual device. We'll follow up with the platform team to see if there is anything documented that can give us some precision beyond a 'little bit'.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.(Daddy, what does 'now formatting drive C:' mean?)
6
Answers
Curious about this too.
@Elspin please help elaborate on the scenario that you need this for? Personally, never felt the need to design my application around this information.
I think the Hololens, in Unity at least, starts where the camera starts, at least initially when spatial data is being gathered. Since the Hololens controls the camera coordinates, you can easily see where the Hololens is by printing out the camera position vector.
With that said, you shouldn't need to know this info. If you need someone relative to the Hololens, use the camera position or attach a script to the camera...etc.
@neerajwadhwa as I said in my post, external referencing using another positioning system. I'm working with an engineering firm, not a game development company, so "2 meters in front of the headset when you put an object at (0,0,2)" is not good enough. I need to know 2 meters from what physical point. I'm working under the assumption that it's somewhere around the lenses (maybe centre of the two?) but it's not clear.
@Jarrod1937 I think you've misunderstood the question entirely.
Then you should have provided more information in your question. If this is for engineering, you need to consider what level of accuracy is required, as accurate as possible isn't a very good spec. It mainly does tracking by the camera, not the depth sensors, and different lighting environments...etc can increase the error or jitter you'll get.
Either way, the physical reference point used by the Hololens in relation to the hologram can be given via the camera coordinates as suggested. Have the hologram projected onto a reference object (a wall or something physically easy to reference in real life), get the vector magnitude of the distance from the hologram position to the camera position, measure the physical distance from the front of the lens to the reference point, the delta is the offset to add for where it thinks it's center is. From here you can probably make the assumption that the horizontal location is in the middle of the Hololens.
My guess is that since it uses the center camera for referencing position, the actual location is probably that camera, but experiments will tell. Short of one of the engineers who dealt with this on the Hololens, experimenting is going to be your only way, as it's not documented anywhere that I'm aware of.
@Jarrod1937 I think the question was clear to others but I'll rephrase. The point isn't to evaluate the tracking accuracy of the hololens tracking but to fully understand what physical point in the real world relative to the headset it projects the coordinates from. It seems pretty certain that at least the y axis 0 is not on the depth camera, because an object only translated in the +ve z axis is centred in the middle of the screen, but the more difficult part of the point to locate is the origin along the z axis.
And what I suggested above should work to identify that point. My purpose of bringing up the accuracy is that getting more accurate than whatever the relative tracking error is, may yield little gain. You can define the accuracy down to the millimeter, but if the tracking is only cm accurate, you must take it with a grain of salt. Obviously, the coordinate system to physical point location only matter if the tracking for that coordinate system is as accurate. Granted, I'm only an electrical engineering student, but that is something I'd look into as well.
Elspin, do you have an actual HL device to perform the above experiment?
Neeraj and I took the sharing test scene and scaled down the remote user's representation to a small point. It looks like the origin is between the user's eyes, a little bit behind the actual device. We'll follow up with the platform team to see if there is anything documented that can give us some precision beyond a 'little bit'.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.
(Daddy, what does 'now formatting drive C:' mean?)
In the holotoolkit sharing example, it positions a cube at the position of each hololens. The center of that cube should be the position of the headset. It seems about just above the nose ridge or in front of the headband that supports the thing.
It's RemoteHeadManager.cs and CustomMessages.cs that both creates it and places it on remote clients. I ran it on 2 hololenses and where it showed up on the remote hololens was centered where I describe above.
Yup in RemoteHeadManager.cs, change the cube to a sphere and change the scale from 0.2 to .01.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.
(Daddy, what does 'now formatting drive C:' mean?)
Big thanks @Patrick , @neerajwadhwa , and @LeefromSeattle . That should get me close enough to do some testing on external referencing and positioning. The tests I've done so far look "sort of right" I'd say but this should help me get a lot closer and help justify breaking out the calipers eventually.
@Jarrod1937 the tracking system isn't the only thing that matters - if you're trying to do external referencing you care more about how accurate the screen is at projecting relative to its origin, as external tracking may be supplied.
@Trev yes, we have 2 HoloLens devices here, but I think what @Patrick is more useful to us.
Does someone found the exact position of the pivot point of Hololens HMD? I mean, something more millimetrically precise.
A mm precise point isn't specified. I'm not certain, but it could potentially vary from device to device. If you have an application that would need this level of precision, it may be best to design the application such that the point could be updated at run time.
===
This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.
(Daddy, what does 'now formatting drive C:' mean?)