46
6DOF Webinar Welcome! Wednesday, May 26, 2016

6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Embed Size (px)

Citation preview

Page 1: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

6DOF Webinar

Welcome!

Wednesday, May 26, 2016

Page 2: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Presenters

Erwin Schoonderwaldt

Host

Daniel Thompson

Live chat & questions

Field Applications and Support Team (FAST)

Page 3: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Webinar control panel

Show/hide control panel

Full screen

Audio settings

View and enter questions

Page 4: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

– Rotation matrices

– Export formats and RT streaming

Page 5: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

INTRODUCTION TO 6DOF

TRACKING

Part 1

Page 6: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 for rotation)

By Yaw_Axis.svg: Auawise derivative work: Jrvz (Yaw_Axis.svg) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)],

via Wikimedia Commons

Page 7: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

– Requires more than 3 markers

We need at least three visible markers in each frame

Page 8: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

CREATING A 6DOF MODEL

IN QTM

Part 2

Page 9: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

Page 10: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Preparation of a rigid body

Page 11: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Preparation of a rigid body

Multiple rigid bodies

• Use a unique marker configuration for each body

Necessary for correct identification

Page 12: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

QTM EXAMPLE

Creating a 6DOF model

Page 13: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid
Page 14: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Definition of local coordinate system

WHY?

• Meaningful rotation axes

– orientation of ship/aircraft

– Flexion angle of knee

Page 15: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 on rigid body

3. Based on another rigid body

Use another rigid body as a reference

Page 16: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

QTM EXAMPLE

Define Local Coordinate System

using markers

Page 17: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

2. Define LCS using markers

NasalBridge

LeftSideRightSide

Landmarks (calibration markers)

Page 18: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

2. Define LCS using markers

NasalBridge

1. Define main axis (X)

Local Coordinate System

User input

LeftSideRightSide

Page 19: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

2. Define LCS using markers

NasalBridge

2. Define secondary axis (Z)

Local Coordinate System

User input

LeftSideRightSide

Page 20: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

2. Define LCS using markers

NasalBridge

Local Coordinate System

Construction of LCS

LeftSideRightSide

QTM calculates third axis and

recalculates second axis (cross prod)

Page 21: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid
Page 22: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

QTM EXAMPLE

6DOF tracking and virtual markers

Page 23: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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, joint centers

Tip!

Help to find gaps in 6DOF tracking (visible as gaps in virtual trajectory)

Page 24: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

3. LCS based on another rigid body

• Use another rigid body as a reference for position and/or orientation

Page 25: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Define LCS based on another rigid body

• Use another rigid body as a reference for position and/or orientation

Page 26: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

QTM EXAMPLE

Define Local Coordinate System

using another rigid body

Page 27: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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)

Page 28: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid
Page 29: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

REPRESENTATION OF 6DOF

DATA IN QTM

Part 3

Page 30: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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)

Page 31: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

Page 32: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Euler angles

Page 33: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 (about Y’)

3. Roll / Bank (about X’’)

Page 34: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

Page 35: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Rotation matrix

• More suitable for computational purposes

– No singularities

Page 36: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Rotation matrix

• Exported by QTM as array of 9 elements per frame (𝑟0, 𝑟1,…, 𝑟8)

𝒙

𝒚

𝒛

𝒙𝑩

𝐲𝐁

𝐳𝐁

𝑩𝟎

Global Coordinate System

𝑅 =

𝑟0 𝑟3 𝑟6𝑟1 𝑟4 𝑟7𝑟2 𝑟5 𝑟8

Rotation matrix

Page 37: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Rotation matrix

• Exported by QTM as array of 9 elements per frame (𝑟0, 𝑟1,…, 𝑟8)

𝒙

𝒚

𝒛

𝒙𝑩

𝐲𝐁

𝐳𝐁

𝑩𝟎

Global Coordinate System

𝑅 =

𝑟0 𝑟3 𝑟6𝑟1 𝑟4 𝑟7𝑟2 𝑟5 𝑟8

Mapping of basis vectors

𝑅 = 𝒙𝑩 𝒚𝑩 𝒛𝑩

Basis vectors of LCS expressed

in global coordinates

Rotation matrix

Page 38: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

Rotation matrix

• Exported by QTM as array of 9 elements per frame (𝑟0, 𝑟1,…, 𝑟8)

𝒙

𝒚

𝒛

𝒙𝑩

𝐲𝐁

𝐳𝐁

𝒑𝑩𝟎

Global Coordinate System

𝒑 = 𝑅 ∙ 𝒑′ + 𝑩𝟎

𝑅 =

𝑟0 𝑟3 𝑟6𝑟1 𝑟4 𝑟7𝑟2 𝑟5 𝑟8

Local to global

Transform

Rotation matrix

𝒑′ = 𝑅𝑇 ∙ 𝒑 − 𝑩𝟎

Global to local

Page 39: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

File export

• Matlab (data structure)

• TSV (text format, separate file for 6DOF)

Page 40: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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

Page 41: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid
Page 42: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 Project options:

http://docs.qualisys.com/qtm/QTMhelp.htm#Project_options/6DOF_tracking.htm

– Tracking/processing:

http://docs.qualisys.com/qtm/QTMhelp.htm#Processing_measurement/6DOF_tracking_of_rig

id_bodies.htm

– Appendix F “Rotation angle calculations in QTM”:

http://docs.qualisys.com/qtm/QTMhelp.htm#Rotation_appendix/Appendix_G_Rotation_angle

_calculations_in_QTM.htm

• QTM Real time protocol

– http://qualisys.github.io/Real-Time-Protocol-Documentation/

Page 43: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 rigid body, expand "Plot",

expand "Velocity" and select the angle.

Page 44: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 rotations about the basis axes. This changes the 6DOF definition.

• 2) Start a measurement (new button or ctrl+n), open the 6DOF tab and press the "Reset

Rotation" button. This will reset the current orientation of all rigid bodies to the

orientation of the global coordinate system. This option also changes the 6DOF

definition.

• 3) You can also change the coordinate system which is used to express the position

and orientation of the rigid body. For this, select the rigid body and press the Coordinate

System button. You can define a custom coordinate system relative to the global

coordinate system, which is then used as a reference for the selected rigid body. When

you are in measurement mode you can use the "Get position" or "Get orientation"

buttons to set the current position/orientation of the rigid body as a reference. This

option does not change the 6DOF definition itself, but it alters the reference.

Page 45: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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 sure to checking only the 6DOF option

and keep "Reidentify all body markers" unchecked. Earlier work

including already filled gaps will be retained. You will only loose work if

you reprocess 2D data and Tracking, and reapplying AIM may relabel

markers you have corrected earlier.

– Q: Is it possible to define more than one body in the same

measurament, and define a particular local system for each body

– A: Yes, it is even possible to include the same markers in several rigid

bodies, so you can have several 6DOF representation based on the

same markers.

Page 46: 6DOF Webinar - Amazon S3 · Overview of topics • Introduction to 6DOF tracking [5 min] • Creating a 6DOF model in QTM (example: head tracking) [40 min] – Preparation of a rigid

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.

This is easiest if you include the two markers from the beginning in the

6DOF definition. Your centroid is than just the average of the X, Y, Z

coordinates of the two markers.