My Math Forum  

Go Back   My Math Forum > College Math Forum > Linear Algebra

Linear Algebra Linear Algebra Math Forum


Reply
 
LinkBack Thread Tools Display Modes
April 28th, 2017, 03:48 AM   #1
Newbie
 
Joined: Apr 2017
From: United Kingdom

Posts: 2
Thanks: 0

New position based on spatial offset and rotation

I'm working on a project which I am hoping will teach me more about maths, but I am struggling to wrap my head around this one. I have got an electromagnetic motion tracker which tracks a sensor in global space. It gives me its position (xyz) and its rotation in Euler angles (yaw, pitch, roll).

I have attached the sensor which is tracked to a baseball cap which is worn by someone and this allows me to track their head movements. However, I want to then infer the position of facial features based on this position and rotation value. To do this, I have calculated an estimated spatial offset between the sensor and the facial feature I wish to track. I have done this my measuring the offset along the X, Y and Z axis.

I was beginning to think I was making progress but I am now stuck again. I have composed a rotation matrix from the Euler angles given to me by the motion tracker. I think that I will need this rotation matrix, but I'm just not sure on the rest of the process.

I'm not necessarily looking for someone to calculate it for me, but rather to help me understand the process I need to go through. I have done a lot of reading online and there are a few things which I think are going to help me, but then I struggle to link it directly back to what I want.

To recap:

I have the position of the motion tracker in global space (attached to the top of the person's head)
I have the rotation matrix representing the rotation of the motion tracker in global space
I have the spatial offset between the sensor and the facial feature (measured along the X,Y,Z axis in global space.

I am trying to use the above information to calculate the new position of the facial feature in global space should the person move their head.

Last edited by skipjack; August 10th, 2017 at 02:47 AM.
Lawrence23 is offline  
 
May 2nd, 2017, 05:02 AM   #2
Newbie
 
Joined: Apr 2017
From: United Kingdom

Posts: 2
Thanks: 0

OK so I think I may have come up with how to do it. I would appreciate it if someone could go over my workings and confirm whether or not I have reached the correct approach.

I have the following recorded values for a specific point in time:

Motion tracker sensor in global space (p1)
Motion tracker sensor orientation as euler angles (rX, rY, rZ)
Position of a facial feature in global space (p2)
I get the spatial offet by p2 - p1. I use this to create a translation matrix (T)

I take the following steps to allow me to calculate the position of the facial feature in global space for all subsequent recordings of the motion tracker sensor in global space.

1. I subtract the original motion tracker orientation from the motion tracker orientation to give me the delta orientation in x, y, z.

2. I create a rotation matrix (r1)

3. I record the new position of the motion tracker (p2)

4. I multiply p2 * r1

5. I translate the resulting vector by T

6. The resulting vector (I hope) is the facial feature position in global space.
Lawrence23 is offline  
Reply

  My Math Forum > College Math Forum > Linear Algebra

Tags
based, offset, position, rotation, spatial



Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
I want to understand the math behind OpenGL quaternion, rotation axis and rotation an TheForgetfulGamer Applied Math 1 February 8th, 2017 10:16 PM
Distance between two offset unequal circles GsJosh Algebra 16 January 22nd, 2012 11:37 PM
From relative rotation to absolute rotation in 3D space Maegfaer Algebra 1 August 27th, 2010 10:01 PM
Find point given lati/long offset, heading and distance anubis2007 Algebra 0 July 21st, 2010 01:00 AM
Offset in 2 global 3d rotation given euler angles princebilly Algebra 0 March 31st, 2009 04:45 PM





Copyright © 2017 My Math Forum. All rights reserved.