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

How Stationary is the StationaryFrameOfReference

I have a couple questions about how the StationaryFrameOfReference relates to other coordinate systems after reading https://developer.microsoft.com/en-us/windows/holographic/Coordinate_systems.html#stationary_frame_of_reference

That article explains that the stationary frame of reference is stationary as the device moves.
Q1A: Specifically, does this mean that the values of the stationary-frame-of-reference is fixed and that all other coordinate-systems change. eg suppose I queried for a stationary-frame-of-reference and an attached-coordinate-system and I then moved the device. Would only the attached-coordinate-system change? or is there a separate transform between the attached-coordinate-system and the stationary-coordinate-system that changes?

Q1B: ok forget that attached-coordinate-system example. What changes between the stationary-frame-of-reference and a cameraPose when I move the device. Same deal?

At the end it says that: "Therefore, the system adjusts as the user walks around a larger area resulting in holograms that you've placed in a stationary coordinate system may be seen to drift off their original position."
Q2: Can you be more specific by what you mean exactly by "the system adjusts". The system adjusts what exactly to cause the perceived drift? See to me I'm thinking the StationaryFrameOfReference is allowed to drift, but it's probably not meant to drift too much. ie it's meant to be TheMostStationaryFrameOfReference and not Literally TheAbsolutelyStationaryFrameOfReference.

Q1 and Q2 are different cases to me. Q1 is about relative motion and Q2 is about drift. I specifically didn't mention SpatialAnchors because I'm assuming it'll extend the above mechanisms.

Answers

  • Options
    ContextVRContextVR ✭✭✭

    @Sean I am not an expert ion this, but I'll try to clarify this a bit by giving a simple example. Say you start your HoloLens app, and spawn a sphere at your current position in the virtual world. Then you walk 2 meters and spawn another sphere at then current position in the virtual world. As you walk walk back to the original position, HoloLens adjusts its understanding of the physical world and determines that you actually walked 1.5 meters instead of 2 meters. However, your spheres are still 2 meters apart in the virtual world, since their coordinates in the stationary frame of reference remained the same, and this change would be perceived as spheres drifting from their original positions in the physical world.

    To sum this up, object coordinate values in the stationary frame of reference would stay the same, but since the stationary frame of reference depends on how HoloLens understand the physical world, the frame of reference coordinate system itself may change slightly over time (move, stretch, turn, skew) as the user walks around, which could be perceived as object drift relative to the physical world.

    To compensate for this perceived object drift, smart engineers at Microsoft came up with an idea of a spatial anchor that encodes a set of properties that identify a particular location in the physical world. It's probably done through some advanced computer vision techniques, but it keeps virtual objects anchored in the real world. This means that as the stationary frame of reference changes over time, stationary frame of reference coordinates of virtual objects placed into spacial anchors will be adjusted to compensate for the drift.

    I hope this helps clarify things a bit.

  • Options

    Hi Dmitri, thank you for replying.

    The answer I'm really wanting is an explanation about how drift and the relative coordinate systems work. ie I'm hoping someone would say: you don't care about that - the system handles it for you. It just works. But since you asked - yeah there is drift everywhere. There is a central drift error function that takes in measurements scored by distance and is constantly tweaking coordinate values to minimize local and global pop and drift error... or something like that.

    The spatial anchor thing I continue to assume just runs on top of the basic coordinate mechanisms systems. ie if you have stationary frame of reference and camera poses working, then spatial anchors are just added on top of that... maybe spatial anchors are easier than camera poses because they aren't supposed to move.

  • Options
    ContextVRContextVR ✭✭✭

    @Sean I guess your question is specifically about the internal working of the spatial anchor mechanism, and HoloLens team is probably your best resource on that.

Sign In or Register to comment.