question

Tomáš avatar image
0 Likes"
Tomáš asked Phil BoBo commented

VR view height according to different height of users

Hello,

we are struggling with right setting of height for each user. We are performing assembly workshops for new working stations using VR in FlexSim and there are different people comming to try. We know how to set manualy view by treenode, but is there any way how to make it automated based on real height of person? Headset itself of course can do so (Meta Quest Pro), but we have hard times to trasfer this to FlexSim.

1723712782235.png

Thanks for your answer in advance!

Regards

Tom

FlexSim 23.0.15
vr modevirtual realityergonomics
1723712782235.png (46.9 KiB)
· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Ralf Gruber avatar image Ralf Gruber ♦ commented ·
Bump after a week
0 Likes 0 ·

1 Answer

Phil BoBo avatar image
0 Likes"
Phil BoBo answered Phil BoBo commented

You don't need to dynamically adjust the FlexSim camera to account for different heights of different people.

Within the VR headset software, you can "Reset View." When you do this, it will align wherever the physical headset currently is with the camera's position (the viewpoint, shown in the viewsettings/viewpoint... attributes in your screenshot) within the simulation:

1724429552674.png

1724429566244.png

So whatever the height of the viewpoint is in the simulation, that's the position in reality where the headset should be when you "Reset View."

Then, whenever you move the headset from that position, the rendered view is an offset from the camera position. So when you look left, the eye looks left relative to the simulation viewpoint. Whenever you move up (taller people), the eye is higher up in the simulation. Whenever you move down (shorter people), the eye is lower in the simulation:

1724429682182.png

1724429689719.png

The important thing is not dynamically adjusting the viewpoint to accommodate taller or shorter people. It is resetting the headset in reality at the height where the camera viewpoint is in the simulation.


1724429552674.png (126.5 KiB)
1724429566244.png (121.3 KiB)
1724429682182.png (95.7 KiB)
1724429689719.png (94.3 KiB)
· 5
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Tomáš avatar image Tomáš commented ·

Dear Phil, thank you for your answer. If I got it correctly, simply said, there should be a person who initialize it with manualy set position (ex. 160 cm) in view point raidus by some "sample" person who fits into this heihgt and then it is adjusted once you switch people (ex. 180cm) directly without turning VR off. This is not very good solution for us, when we work with more models at one time for example and need sometimes reset in between, imagine we have showcase for 10 people and they need the same initial position but correct height. Is there any other way how to have this in nicer way? Hopefuly you got my point and limitations which we are suffering if we do not have dynamic change of viewpoint by real size.

0 Likes 0 ·
Phil BoBo avatar image Phil BoBo ♦♦ Tomáš commented ·

Well, what do you want it to do then?

What does "is there any way how to make it automated based on real height of person? Headset itself of course can do so (Meta Quest Pro)" mean?

The headset doesn't know how tall the person wearing it is. It only knows where the headset is positioned relative to where the headset was reset.

You have the same information and controls as other VR apps running on the headset. You are in control of what you do with that information.

You don't have to manually set nodes in the tree. You can programmatically do so.

For example, the example Oculus Touch VR demo model has an object with OnPreDraw that sets the viewpoint:

treenode view = param(1);

if (getvarnum(view, "vrmode")) {
  set(viewpointrx(view), 0);
  set(viewpointry(view), 0);
  set(viewpointradius(view), 1.74);
}

That model is designed so that the view is 1.74 meters from the floor. When demoing that model at a tradeshow, we have each person reset the headset after they put it on. For someone 180cm, it will feel like they are 6 cm shorter in VR than they are in reality; for someone 160cm, it will feel like they are 14 cm taller in VR than they are in reality. But all the objects and controls in the simulation are positioned with the expectation that the person's head is positioned at 1.74 meters in the simulation when standing in a reset position.

I don't understand what you want the software to do. The software can't determine how tall a person is; only where the headset is relative to where it was reset.

EDIT: I found a command that may do what I think you want it to do. Rather than tracking relative to the headset, there's an Oculus SDK command (ovr_SetTrackingOriginType) to adjust the tracking relative to the floor height calibrated in the guardian system. Then you could set the viewpointradius to 0 and the headset's position would be calculated relative to the calibrated floor position instead of relative to the reset location. I'll add a case to the development list to look into this. In the meantime, tracking only works relative to eye level, not the calibrated floor position.

0 Likes 0 ·
Tomáš avatar image Tomáš Phil BoBo ♦♦ commented ·

Dear Phil,

thank you for your answer. To answer your questions:

  • We want to have every person wearing VR headset in FlexSim real height due to correct ergonomy
  • Headset is having floor defined, means in native environment of Meta it has real height of everyone wearing it
  • We use this setting via programming and our complete VR library is programmed for interactive items, objects etc., but its still kind of manual to set this viewpointradius for each person separately
  • Thanks for this hint with Oculus SDK command, it seems this could be the solution we need, unfortunately have no clue how to work with such command, could you guide us, please?

Thanks a lot!


EDIT: We checked in other tools we are using in VR (example Robot Studio from ABB) and it is using real height once VR in initiated, because there is an "object" reflecting to Meta floor defined and thats why it knows the real height. Of course precondition is to have defined floor in Meta, but thats sure. We can return as well relative height of joystick and headset, means we can count if the joystick is lying on the floor in time you wear glasses (to figure out where floor is), but this is not the solution you want to do with each person to lay down joystick and bend for it again once recounted. Maybe it can pop up some other ideas as well.

0 Likes 0 ·
Show more comments