Slide 1: 6DOF Webinar
6DOF Webinar Welcome! Wednesday, May 26, 2016
Slide 2: Presenters
Presenters Erwin Schoonderwaldt Daniel Thompson Host Live chat & questions Field Applications and Support Team (FAST)
Slide 3: Webinar control panel
Webinar control panel Show/hide control panel Full screen Audio settings View and enter questions
Slide 4: Overview of topics
Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid body (basics) – Definition of local coordinate system (LCS) – Use of virtual markers • Representation of 6DOF data in QTM [15 min] – Euler angles – Rot
Slide 5: Introduction to 6DOF Tracking
Part 1 INTRODUCTION TO 6DOF TRACKING
Slide 6: What is 6DOF tracking?
What is 6DOF tracking? 3D tracking • Tracking of a single marker • Measurement of position (X, Y, Z) • 3 degrees of freedom 6DOF tracking • Tracking of an object (3 or more markers attached to a rigid body) • Measurement of position and orientation (pose) • 6 degrees of freedom (3 for position, 3 fo
Slide 7: Why 6DOF tracking?
Why 6DOF tracking? Additional information • Pose of an object rather than position of a single marker • Tracking virtual points where no physical marker can be attached (e.g. position of eyes when doing head tracking) Redundancy • 6DOF tracking more robust in case of occlusions of single markers – R
Slide 8: Creating a 6DOF Model in QTM
Part 2 CREATING A 6DOF MODEL IN QTM
Slide 9: Preparation of a rigid body
Preparation of a rigid body Marker configuration: three main principles • At least 3 markers 4 markers or more recommended for redundancy • Markers should not be on one line Markers must span a plane (or a volume) • Asymmetric placement of markers Necessary for a unique definition of the orientation
Slide 10: Preparation of a rigid body
0000 Preparation of a rigid body QUALISYS
Slide 11: Preparation of a rigid body
Preparation of a rigid body Multiple rigid bodies • Use a unique marker configuration for each body Necessary for correct identification
Slide 12: QTM Example: Creating a 6DOF model
Creating a 6DOF model QTM EXAMPLE
Slide 13: QUALISYS
QUALISYS
Slide 14: Definition of local coordinate system
Definition of local coordinate system WHY? • Meaningful rotation axes – orientation of ship/aircraft – Flexion angle of knee
Slide 15: Definition of local coordinate system
Definition of local coordinate system Change the definition of the local coordinate system (LCS) • Tranlation and rotation Three methods 1. Based on Global Coordinate System Put rigid body in a known (fixed) orientation relative to GCS 2. Based on specific marker positions Use (calibration) markers
Slide 16: QTM Example: Define Local Coordinate System using markers
Define Local Coordinate System using markers QTM EXAMPLE
Slide 17: 2. Define LCS using markers
2. Define LCS using markers Landmarks (calibration markers) RightSide LeftSide NasalBridge
Slide 18: 2. Define LCS using markers
2. Define LCS using markers User input 1. Define main axis (X) RightSide LeftSide NasalBridge Local Coordinate System
Slide 19: 2. Define LCS using markers
2. Define LCS using markers User input 2. Define secondary axis (Z) RightSide LeftSide NasalBridge Local Coordinate System
Slide 20: 2. Define LCS using markers
2. Define LCS using markers Construction of LCS QTM calculates third axis and recalculates second axis (cross prod) RightSide LeftSide NasalBridge Local Coordinate System
Slide 21: QUALISYS
QUALISYS
Slide 22: QTM Example: 6DOF tracking and virtual markers
6DOF tracking and virtual markers QTM EXAMPLE
Slide 23: Virtual markers in 6DOF model
Virtual markers in 6DOF model Summary • Points in the rigid body definition that do not correspond with tracked markers • Virtual markers do not add new information… • Can be useful as visual aid – Showing points of interest (where it is difficult or impossible to apply a marker) – For example: eyes
Slide 24: 3. LCS based on another rigid body
3. LCS based on another rigid body • Use another rigid body as a reference for position and/or orientation
Slide 25: Define LCS based on another rigid body
Define LCS based on another rigid body • Use another rigid body as a reference for position and/or orientation
Slide 26: QTM Example: Define LCS using another rigid body
Define Local Coordinate System using another rigid body QTM EXAMPLE
Slide 27: Saving, loading and editing
Saving, loading and editing Saving and loading rigid bodies • Save to XML file • Possible to edit (or generate in an external program and import into QTM)
Slide 28: QUALISYS
QUALISYS
Slide 29: Representation of 6DOF Data in QTM
Part 3 REPRESENTATION OF 6DOF DATA IN QTM
Slide 30: Pose of rigid body
Pose of rigid body • Position of origin of rigid body relative to reference system – X, Y, Z • Orientation of rigid body relative to reference system – Euler angles – Rotation matrix • Residual – Average error (in mm) of measured marker positions compared to fitted 6DOF model (definition)
Slide 31: Euler angles
Euler angles • Definition – Three coordinate rotations in sequence can describe any rotation – 12 valid Euler sequences – Order of rotations gives different results (representation) By Lionel Brits - Hand drawn in Inkscape by me, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=3362239
Slide 32: Euler angles
Euler angles ® Project Options - [Project: 2016-05 6DOF Webinar] To use Euler angles to describe a rotation, ‘you must first determine your choice of Euler angle definition. Select Euler angle definition Custom ©) Qualsys standard r system 6D data points are always calculated relative to a “The defa
Slide 33: Euler angles
Euler angles • Qualisys standard 1. Roll (about X, between -180 and 180 deg) 2. Pitch (about Y’, between -90 and 90 deg) 3. Yaw (about Z’’, between -180 and 180 deg) • Cardan or nautical angles (used to describe orientation of a ship or aircraft) 1. Yaw / Heading (about Z) 2. Pitch / Elevation (abou
Slide 34: Euler angles
Euler angles • Problem – Singularity: large fluctuations of first and third rotation angles when second angle is at extremes (+/-90 deg) (cf. gimbal lock) • Choice of Euler sequence – Choose best representation based on application (meaningful rotations) – Avoid singularity
Slide 35: Rotation matrix
Rotation matrix • More suitable for computational purposes – No singularities
Slide 36: Rotation matrix
Rotation matrix • Exported by QTM as array of 9 elements per frame (𝑟0 , 𝑟1 ,…, 𝑟8 ) Rotation matrix 𝑟0 𝑟3 𝑟6 𝐳𝐁 𝑅 = 𝑟1 𝑟4 𝑟7 𝑟2 𝑟5 𝑟8 𝐲𝐁 𝒛 𝑩𝟎 𝒙𝑩 𝒚 𝒙 Global Coordinate System
Slide 37: Rotation matrix
Rotation matrix • Exported by QTM as array of 9 elements per frame (𝑟0 , 𝑟1 ,…, 𝑟8 ) Rotation matrix 𝑟0 𝑟3 𝑟6 𝐳𝐁 𝑅 = 𝑟1 𝑟4 𝑟7 𝑟2 𝑟5 𝑟8 𝐲𝐁 𝒛 𝑩𝟎 Mapping of basis vectors 𝒙𝑩 𝑅 = 𝒙𝑩 𝒚𝑩 𝒛𝑩 Basis vectors of LCS expressed 𝒚 in global coordinates 𝒙 Global Coordinate System
Slide 38: Rotation matrix
Rotation matrix • Exported by QTM as array of 9 elements per frame (𝑟0 , 𝑟1 ,…, 𝑟8 ) Rotation matrix 𝑟0 𝑟3 𝑟6 𝐳𝐁 𝑅 = 𝑟1 𝑟4 𝑟7 𝑟2 𝑟5 𝑟8 𝐲𝐁 𝒛 𝒑 𝑩𝟎 Transform 𝒙𝑩 Local to global 𝒑 = 𝑅 ∙ 𝒑′ + 𝑩 𝟎 𝒚 Global to local 𝒙 𝒑′ = 𝑅𝑇 ∙ 𝒑 − 𝑩 𝟎 Global Coordinate System
Slide 39: File export
File export • Matlab (data structure) • TSV (text format, separate file for 6DOF)
Slide 40: RT streaming
RT streaming • QTM server / RT protocol (TCP/IP, UDP/IP) – 6DOF data: positions, Euler angles, Rotation matrix, Residual • Real-time plugins – Matlab – Labview • Open Sound Control (OSC) • Unity SDK – Control position and orientation of game objects or cameras
Slide 41: QUALISYS
QUALISYS
Slide 42: References
References • Rotations and Euler angles – Wikipedia: Euler angles (https://en.wikipedia.org/wiki/Euler_angles) – James Diebel (2006), Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors (https://www.astro.rug.nl/software/kapteyn/_downloads/attitude.pdf) • QTM Manual – 6DOF Pr
Slide 43: Questions and Answers (errata)
Questions and Answers (errata) • First session (Asia) – Q: Is it possible to show angular velocity of a rigid body? – A: Yes, you can show this in a plot. The velocity data cannot be exported though. To plot angular velocity, open a data info window (ctrl+d), Display 6DOF data, right click on the ri
Slide 44: Questions and Answers (errata)
Questions and Answers (errata) • Second session (Europe) – Q: Is there any way to apply an offset on the rotation of the local coordinate system? – A: Yes, there may be several ways to achieve that. • 1) In the 6DOF tab, select the rigid body and press the Rotate button. Here you can manually apply
Slide 45: Questions and Answers (errata)
Questions and Answers (errata) • Third session (North/South America) – Q: If you have processed a trial and then use virtual markers to replace a missing marker and reprocess, does it reprocess the whole trial? Then you would lose the other processing you have done. – A: When you reprocess, make sur
Slide 46: Questions and Answers (errata)
Questions and Answers (errata) – Q: Can you define a centroid between two markers? – A: There is not direct way to do this in the 6DOF interface. However, you can add a point to the rigid body and define it manually. In that case you need to calculate the centroid of the markers in local coordinates