{"id":479,"date":"2013-10-22T14:56:45","date_gmt":"2013-10-22T21:56:45","guid":{"rendered":"http:\/\/bestperformancegroup.com\/?page_id=479"},"modified":"2014-09-25T01:15:41","modified_gmt":"2014-09-25T08:15:41","slug":"angular-kinematics","status":"publish","type":"page","link":"http:\/\/bestperformancegroup.com\/?page_id=479","title":{"rendered":"Angular Kinematics"},"content":{"rendered":"<p>One of the main keys to truly understanding the kinematics of human motion, is to recognize that the ONLY degrees of freedom (DOF) in the human body are angular kinematic DOF. \u00a0There are no translational or linear DOF in the human skeletal system. \u00a0In reality, there is some translational &#8220;slop&#8221; in human joints provided by ligaments, soft tissues, and joint surface contact areas as arthrokinematic joints reach their physiologic range of motion limitations; however as discussed in the <a href=\"http:\/\/bestperformancegroup.com\/?page_id=541\" target=\"_blank\">rigid body mechanics section<\/a>, for modeling purposes the human skeletal system can be viewed as a system of osteokinematic rigid links connected by joints.<\/p>\n<p>Three dimensional (3D) positional analysis is very easy to understand conceptually and also very easy to implement post-processing algorithm work such as filtering or interpolation routines.\u00a0 Body locations are stored simply as a 3D point (x, y, z) and all we need to know is the value for each coordinate axis. \u00a0The order is not important just as long as we know the value for each axis. \u00a0For example, for 3D point (1024, 512, 256) we can get to the exact 3D point by moving 1st in any of the 3 axes by the appropriate coordinate value, followed by the appropriate coordinate value in either of the 2 remaining axes, and then measuring the final distance in the remaining axis. \u00a0This process can be repeated for any of the different axis combinations &#8211; eg., XYZ, YXZ, ZXY, etc &#8211; and we still get to the same exact 3D spot in every scenario simply by using the (X, Y, Z) values in any order.<\/p>\n<p>The same cannot be said for working with rotations.\u00a0 Unfortunately working with 3D rotations is not nearly as simple as working with 3D positions, but it is much more important for any kinematic analysis or subsequent kinetic analysis.\u00a0 That is because all human movement is based on joint rotational DOF. \u00a0While we can measure the 3D position of any point along any segment of the human body, we can only get from point A to point B through an underlying joint rotational DOF. \u00a0So it is critical to know how to work with 3D rotations for kinematic analysis.<\/p>\n<p>To characterize any human body segment, we need to specify the 3D position of the body segment stored as a 3D point (x, y, z) as well as the segment rotational information.\u00a0 For 3D rotations, there are a number of different ways to represent the same rotation, although each will result in very different numbers:<\/p>\n<ol>\n<li><span style=\"text-decoration: underline;\"><strong>Euler Angles:<\/strong><\/span> Euler\u2019s theorem states that all 3D rotations can be represented by three ordered rotations.\u00a0 Thus, Euler Angles requires 3 ordered rotations around orthogonal axes.\u00a0 The axes can be world or local axes.\u00a0 The order of the rotations is important as they are non-commutative.\u00a0 Euler angles have a number of problems that make them difficult to use as a general rotation format.\u00a0 There is no easy concatenation of rotations, interpolation algorithms for missing or noisy data are very complicated due to the orthogonal ordered rotations, and a condition known as gimbal lock can occur when axes align after of a series of rotations.\u00a0 Euler angles can be used as a compact methodology for displaying the series of rotations, but it is necessary to use 3&#215;3 rotation matrices for any subsequent analysis.\u00a0 For these reasons, they are not often used in 3D animation as they are not computationally cheap.<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>Axis-Angle:<\/strong><\/span> Euler also proved that any 3D rotation can be represented as a rotation around an arbitrary axis.\u00a0 And that leads to the Axis-Angle format, which specifies an axis and how much rotation around it in a counterclockwise direction via right hand rule.\u00a0 Similar to Euler Angles, this methodology requires the 3&#215;3 rotation matrix to concatenate in post-processing algorithms.<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>Rotation matrices:<\/strong><\/span> 3&#215;3 rotation matrices are ideal for any computational work, especially rotations, transformations, and concatenations.\u00a0 They are not ideal for interpolation algorithms, but there are routines that can help with maintaining orthonormal requirements. \u00a0Rotation matrices are often used in post-processing algorithms, especially custom routines. \u00a0However, because 9 variables are required in the 3&#215;3 matrix at each time step, they are not favored in character animation routines.<\/li>\n<li><span style=\"text-decoration: underline;\"><strong>Quaternions:<\/strong><\/span> these are 4 parameter representations of rotations which is essentially a modified axis-angle representation using an extension to complex numbers.\u00a0 Multiplication of two quaternions is non-commutative.\u00a0 Quaternion based extended Kalman filtering algorithms are often used with 9 DOF IMU data for estimating 3D positions. \u00a0Quaternions are also used for any computationally sensitive algorithms because only 4 variables are required for each time step to specify 3D rotations as opposed to the more computationally expensive 3&#215;3 rotation matrix.<\/li>\n<\/ol>\n<p>The <a href=\"http:\/\/bestperformancegroup.com\/?page_id=549\">Direction Cosines and Rotation Matrices<\/a> post provides a very detailed review of 3&#215;3 rotation matrices and how to develop them from Euler angle rotation sets.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-479\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-479\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=email\" target=\"_blank\" title=\"Click to email this to a friend\"><span>Email<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>One of the main keys to truly understanding the kinematics of human motion, is to recognize that the ONLY degrees of freedom (DOF) in the human body are angular kinematic DOF. \u00a0There are no translational or linear DOF in the &hellip; <a href=\"http:\/\/bestperformancegroup.com\/?page_id=479\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-479\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-479\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"http:\/\/bestperformancegroup.com\/?page_id=479&amp;share=email\" target=\"_blank\" title=\"Click to email this to a friend\"><span>Email<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"parent":77,"menu_order":3,"comment_status":"open","ping_status":"open","template":"sidebar-page.php","meta":{"spay_email":""},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P3sofn-7J","_links":{"self":[{"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/pages\/479"}],"collection":[{"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=479"}],"version-history":[{"count":13,"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/pages\/479\/revisions"}],"predecessor-version":[{"id":1185,"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/pages\/479\/revisions\/1185"}],"up":[{"embeddable":true,"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=\/wp\/v2\/pages\/77"}],"wp:attachment":[{"href":"http:\/\/bestperformancegroup.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}