# VR: is it possible to calculate hand position relative to head based off these known orientations and lengths?

If we have 3, 9DoF IMUs for absolute orientation data on the:

1. wrist
2. upper arm
3. forehead

and we know the length of the:

1. wrist
2. upper arm
3. shoulder to base of neck
4. neck

and we also know the global position of the forehead on some external coordinate system

Is it possible to estimate the position of the user's hand just off these known orientations, body lengths, and head position?

• do an experiment ... sit in a chair ... stretch your arm horizontally in front of you ... keep your head upright ... measure the distance between your forehead and your hand ... now lean forward as far as you can, while keeping your head upright and your arm horizontal ... measure again ... do same while leaning back Feb 7 at 2:41

## 1 Answer

You might be interested in this paper:

M. Quigley, R. Brewer, S. P. Soudararaj, V. Pradeep, Q. Le, and A. Y. Ng, "Low-cost Accelerometers for Robotic Manipulator Perception," in Proc. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010.

Where the authors instrumented a 6 and 7 DoF robotic arm with "low cost" accelerometers and used those instead of encoders to measure joint positions.

To answer your question, "is it possible?", yes of course it is possible. But how usable it will be entirely depends on how accurate you need it to be. Here are some considerations you should consider:

1. You tagged the question as "VR". So if this will be mounted on a human, realize that humans are squishy compared to robots, and getting accurate measurements of "link lengths" will be difficult. Also repeated placement of sensors will be a challenge. Be prepared for lengthy calibration times each time the sensors are mounted.
2. Don't underestimate the flexibility of the human shoulder. There are more joints there than you probably realize. Modeling as a simple ball and socket is likely insufficient. The kinematic chain between a human's head and hand is very complex.
3. If you measured just accelerations w.r.t. gravity, there are ambiguities that you can't measure. For example these two arm configurations will look the same:

So you will have to integrate accelerations and velocities over time. Since you said you will be using an IMU I assume you know this already.

1. The IMU should have a gyro which is better to integrate to get position. But will have drift over time. So it will need to zeroed from time to time. But humans are not still, so this may be a challenge.

2. Humans can move very fast. This may saturate the sensors.

• This issue does not lie within the arm. Using 2 IMUs alone is enough to get the full range of motion of the human arm. The point of the question is to see if it is possible to backtrack calculations to the location of the headset. Feb 7 at 16:26
• I'm confused. You said you have the global position of the head...
– Ben
Feb 7 at 19:22