Hello everyone.

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.
Options

Physical origin of HL coordinate system?

ElspinElspin
edited May 2016 in Questions And Answers

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.

Tagged:

Best Answer

Answers

  • Options

    Curious about this too.

  • Options

    @Elspin please help elaborate on the scenario that you need this for? Personally, never felt the need to design my application around this information.

  • Options
    Jarrod1937Jarrod1937 ✭✭✭

    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.

  • Options
    ElspinElspin
    edited May 2016

    @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.

  • Options
    Jarrod1937Jarrod1937 ✭✭✭
    edited May 2016

    @Elspin said:
    @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.

  • Options

    @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.

  • Options
    Jarrod1937Jarrod1937 ✭✭✭
    edited May 2016

    @Elspin said:
    @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.

  • Options

    Elspin, do you have an actual HL device to perform the above experiment?

  • Options
    edited May 2016

    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.

  • Options

    Yup in RemoteHeadManager.cs, change the cube to a sphere and change the scale from 0.2 to .01.

    GameObject CreateRemoteHead()
        {
            GameObject newHeadObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            newHeadObj.transform.parent = this.gameObject.transform;
            newHeadObj.transform.localScale = Vector3.one * 0.01f;
            return newHeadObj;
        }
    

    ===
    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?)

  • Options
    ElspinElspin
    edited May 2016

    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.

  • Options

    Does someone found the exact position of the pivot point of Hololens HMD? I mean, something more millimetrically precise.

  • Options

    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?)

Sign In or Register to comment.