{"id":147,"date":"2022-07-21T19:30:21","date_gmt":"2022-07-21T18:30:21","guid":{"rendered":"https:\/\/wp.coventry.domains\/e2edu\/?page_id=147"},"modified":"2022-08-22T19:51:24","modified_gmt":"2022-08-22T18:51:24","slug":"movement-analysis","status":"publish","type":"page","link":"https:\/\/wp.coventry.domains\/e2edu\/movement-analysis\/","title":{"rendered":"Movement Analysis"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This article discusses how raw motion data that has been obtained through motion capture can be processed to extract higher level movement attributes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Raw Motion Capture Data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The data obtained through motion capture typically represents a temporal sequence of positions and rotations of body joints. Joint positions are represented as three-dimensional vectors. Joint orientation are represented as <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Quaternion\" target=\"_blank\">quaternions <\/a>which are four dimensional vectors out of which three dimensions are complex numbers. This type of data lends itself to reconstruct a so called skeleton representations of poses. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/CapturySkeleton.jpg\" alt=\"\" class=\"wp-image-276\" width=\"311\" height=\"509\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/CapturySkeleton.jpg 607w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/CapturySkeleton-183x300.jpg 183w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption>Example of a skeleton representation of a pose obtained through motion capture. Joints are represented here as balls and bones as cones. Contrary to the joints, the bones are not directly part of the recording but are reconstructed afterwards based on the hierarchy of joints. <\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Physical Quantities<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Information about body motion can only be indirectly obtained by calculating how joint positions and orientations change from frame to frame. Some of the more intuitively understandable physical quantities that describe aspects of motion are velocity, acceleration, and jerk. Velocity describes how positions change over time, acceleration describes how velocity changes over time, and jerk describes how acceleration changes over time. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/pos_vel_acc_jerk.png\" alt=\"\" class=\"wp-image-287\" width=\"409\" height=\"604\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/pos_vel_acc_jerk.png 693w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/pos_vel_acc_jerk-203x300.png 203w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><figcaption>Graphs depicting temporal sequences of physical values that correspond to derivatives of each other. Image from \u00a9<a rel=\"noreferrer noopener\" href=\"https:\/\/www.vernier.com\/vernier-ideas\/measurement-of-jerk\/\" data-type=\"URL\" data-id=\"https:\/\/www.vernier.com\/vernier-ideas\/measurement-of-jerk\/\" target=\"_blank\">Vernier<\/a>.<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">There are two types of motion data that are of interest in motion capture. One deals with how joints positions change over time and the other how joint rotations change over time. In the first case, we are dealing linear derivatives such as linear velocity, linear acceleration, and linear jerk. In the second case, we are dealing with angular derivatives, i.e. angular velocity, angular acceleration, and angular jerk. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Linear derivatives can easily be obtained by calculating the discrete derivative of the joint positions with regards to time. The equations for this are as follows:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linvel_eq.jpg\" alt=\"\" class=\"wp-image-281\" width=\"257\" height=\"85\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linvel_eq.jpg 688w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linvel_eq-300x100.jpg 300w\" sizes=\"auto, (max-width: 257px) 100vw, 257px\" \/><figcaption>Linear velocity calculated from position difference <\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linaccel_eq.jpg\" alt=\"\" class=\"wp-image-280\" width=\"239\" height=\"86\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linaccel_eq.jpg 606w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linaccel_eq-300x108.jpg 300w\" sizes=\"auto, (max-width: 239px) 100vw, 239px\" \/><figcaption>Linear acceleration calculated from velocity difference<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linjerk_eq.jpg\" alt=\"\" class=\"wp-image-282\" width=\"236\" height=\"74\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linjerk_eq.jpg 609w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/linjerk_eq-300x95.jpg 300w\" sizes=\"auto, (max-width: 236px) 100vw, 236px\" \/><figcaption>Linear jerk calculated from acceleration difference<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Angular derivatives can be obtained in a similar manner by calculating the discrete derivative of the joint orientations with regards to time. The equations for this are as follows:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angvel_eq.jpg\" alt=\"\" class=\"wp-image-291\" width=\"250\" height=\"79\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angvel_eq.jpg 621w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angvel_eq-300x95.jpg 300w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><figcaption>Angular velocity calculated from rotation difference<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angacc_eq.jpg\" alt=\"\" class=\"wp-image-289\" width=\"250\" height=\"74\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angacc_eq.jpg 619w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angacc_eq-300x89.jpg 300w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><figcaption>Angular acceleration calculated from angular velocity difference<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angjerk_eq.jpg\" alt=\"\" class=\"wp-image-290\" width=\"244\" height=\"78\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angjerk_eq.jpg 619w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/angjerk_eq-300x95.jpg 300w\" sizes=\"auto, (max-width: 244px) 100vw, 244px\" \/><figcaption>Angular jerk calculated from angular acceleration difference<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Laban Effort Factors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While physical quantities of motion are easy to compute from raw motion capture data, these quantities are not necessarily particularly meaningful for dance. Dancers and choreographers often think about body movement in terms of more qualitative aspects such as its expressive, aesthetic, or communicative properties. An article on <a href=\"https:\/\/wp.coventry.domains\/e2edu\/motion-capture\/\">movement representation<\/a> provides information about some aspects of movements that dancers we worked with refer to. There is also an article available that describes more general <a href=\"https:\/\/wp.coventry.domains\/e2edu\/movement-qualities\/\">movement qualities<\/a> in dance. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the purpose of movement analysis, the formalisations introduced by the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/labaninstitute.org\/about\/laban-movement-analysis\/\" target=\"_blank\">Laban Movement Analysis<\/a>&nbsp;(LMA) system has informed fields such as robotics and human computer interaction. Central to LMA are four categories that formalise different aspects of the human body: Body, Space, Shape, and Effort. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Effort category describes aspects that relate to the dynamics, energy, and inner intention of movement, all of which contribute to the expressivity of movement. This category is subdivided into four Effort Factors: Space, Weight, Time, Flow. Each Factor possesses two opposing dimensions. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The Space factor describes the directedness of movement which can either be Direct or Indirect. <\/li><li>The Weight factor describes the strength of movement which can either be Light or Strong. <\/li><li>The Time factor describes the urgency of movement which can either be Sustained or Sudden. <\/li><li>The Flow factor describes the continuity of movement which can either be Free or Bound.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Several researchers have proposed algorithms for deriving numerical representations of LMA categories from physical descriptors of motion. A particularly exhaustive <a rel=\"noreferrer noopener\" href=\"https:\/\/www.researchgate.net\/publication\/281657311_A_Review_of_Computable_Expressive_Descriptors_of_Human_Motion?_iepl%5BgeneralViewId%5D=vT64eHSNI0uepdTg4RoYqkNNPtY3uM4j5CnC&amp;_iepl%5Bcontexts%5D%5B0%5D=searchReact&amp;_iepl%5BviewId%5D=qY7ZT90qcHGPRAZQ05NQ2IunlLszPZuJ5fb2&amp;_iepl%5BsearchType%5D=publication&amp;_iepl%5Bdata%5D%5BcountLessEqual20%5D=1&amp;_iepl%5Bdata%5D%5BinteractedWithPosition1%5D=1&amp;_iepl%5Bdata%5D%5BwithEnrichment%5D=1&amp;_iepl%5Bposition%5D=1&amp;_iepl%5BrgKey%5D=PB%3A281657311&amp;_iepl%5BtargetEntityId%5D=PB%3A281657311&amp;_iepl%5BinteractionType%5D=publicationTitle\" target=\"_blank\">review of algorithms for computing expressive movement descriptors<\/a> has been published at the Movement and Computing conference in 2015 by Larboulette and Gibet. This review includes algorithms that have been proposed for calculating the four Laban Effort Factors. The equations provided here are directly taken from this publication. The symbols employed in these equations are as follows: x refers to position, v to linear velocity, a to linear acceleration, j to linear joint, t to time, T to time window length, k to joint index, and \u03b1 to joint mass. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"175\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/SpaceEffort_eq.png\" alt=\"\" class=\"wp-image-303\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/SpaceEffort_eq.png 496w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/SpaceEffort_eq-300x106.png 300w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><figcaption>Equation for calculating Space Effort from joint positions. \u00a9Caroline Larboulette and Sylvie Gibet<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"469\" height=\"161\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/WeightEffort_eq.png\" alt=\"\" class=\"wp-image-304\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/WeightEffort_eq.png 469w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/WeightEffort_eq-300x103.png 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><figcaption>Equation for calculating Weight Effort from joint linear velocities. \u00a9Caroline Larboulette and Sylvie Gibet<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"174\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/TimeEffort_eq.png\" alt=\"\" class=\"wp-image-302\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/TimeEffort_eq.png 396w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/TimeEffort_eq-300x132.png 300w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><figcaption>Equation for calculating Time Effort from joint linear accelerations. \u00a9Caroline Larboulette and Sylvie Gibet<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"200\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/FlowEffort_eq.png\" alt=\"\" class=\"wp-image-305\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/FlowEffort_eq.png 379w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/FlowEffort_eq-300x158.png 300w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><figcaption>Equation for calculating Flow Effort from joint linear jerks. \u00a9Larboulette and Gibet<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">One important point to note is that the equations consist of two parts. One of these parts (usually the second) sums the contribution of all the joints to an Effort Factor by scaling them with the joints&#8217; masses. Obtaining reasonable estimates for these masses is not easy, especially when dealing with motion capture recordings that contain many joints. For the purpose of biomechanical modelling, several tables have been published that contain empirically obtained values for key body parts. A good summary of such tables is provided by <a href=\"https:\/\/www.researchgate.net\/publication\/271292606_Estimation_of_mass_moment_of_inertia_of_human_body_when_bending_forward_for_the_design_of_a_self-transfer_robotic_facility\">Ramachandran et al<\/a>. If accuracy is not major concern, then the weights of motion capture joints can be guessed from such tables. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"343\" src=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/body_weights.jpg\" alt=\"\" class=\"wp-image-309\" srcset=\"https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/body_weights.jpg 816w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/body_weights-300x126.jpg 300w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/body_weights-768x323.jpg 768w, https:\/\/wp.coventry.domains\/e2edu\/wp-content\/uploads\/sites\/3486\/2022\/07\/body_weights-788x331.jpg 788w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><figcaption>&nbsp;Body segment weights as percentage of total body weight. \u00a9Ramachandran et al.<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">As part of the E2-Create project, a small movement analysis library has been developed as addon for the <a rel=\"noreferrer noopener\" href=\"https:\/\/openframeworks.cc\/\" target=\"_blank\">Openframeworks <\/a>creative coding environment. This library provides functionality to calculate both physical motion quantities and Laban Effort Factors in real-time from a motion capture stream of data. This library includes configurations files containing estimates of joint masses for the <a href=\"https:\/\/www.qualisys.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Qualisys<\/a> and <a href=\"https:\/\/captury.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Captury <\/a>motion capture systems. This library is available <a rel=\"noreferrer noopener\" href=\"https:\/\/bitbucket.org\/dbisig\/ofxdabdataproc_11\/src\/master\/\" target=\"_blank\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article discusses how raw motion data that has been obtained through motion capture can be processed to extract higher level movement attributes. Raw Motion Capture Data The data obtained through motion capture typically represents a temporal sequence of positions and rotations of body joints. Joint positions are represented as three-dimensional vectors. Joint orientation are [&hellip;]<\/p>\n","protected":false},"author":2154,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"class_list":["post-147","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/pages\/147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/users\/2154"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/comments?post=147"}],"version-history":[{"count":37,"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/pages\/147\/revisions"}],"predecessor-version":[{"id":2587,"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/pages\/147\/revisions\/2587"}],"wp:attachment":[{"href":"https:\/\/wp.coventry.domains\/e2edu\/wp-json\/wp\/v2\/media?parent=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}