

{"id":163,"date":"2019-06-18T11:14:21","date_gmt":"2019-06-18T09:14:21","guid":{"rendered":"https:\/\/project.inria.fr\/bowi\/?page_id=163"},"modified":"2019-06-18T11:14:21","modified_gmt":"2019-06-18T09:14:21","slug":"bowi-simulator","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/bowi\/bowi-simulator\/","title":{"rendered":"BoWI Simulator"},"content":{"rendered":"<p><\/p>\n<p id=\"aui_3_4_0_1_982\" class=\"p1\">The BoWI Simulator has been designed to explore and compare algorithms for Gesture and Posture recognition\u00a0based on IMU and radio measurements.\u00a0The first version was released in June 2013 and has been improved since.\u00a0The first goal of the simulator is to generate synthetic signals equivalent to measurements corresponding to different scenarios. The second goal is to support algorithm exploration and comparison. The advantage of the approach is the repeatability of the scenarios while we can change any other parameter.<\/p>\n<p>The simulator, whose organization is shown in Figure 1, uses standard BVH files that contain motions of an avatar that can be extracted from a motion capture system like Moven, and the description of a set of nodes positioned on the body. With such a capture the position and orientation of each joint of the avatar can be computed for each frame. It is then possible to compute ideal values of IMU. The real distances between any couple of points on the avatar are also accessible directly by computation. Then for each IMU axis an error compliant with noise models is added to generate realistic measurements. Based on these IMU and Radio models, noisy sensor data (attitude, speed, acceleration) are produced for every node and RSSI (radio received signal power) values are computed for every pair of nodes.<\/p>\n<div id=\"attachment_103\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-103\" class=\"size-large wp-image-103\" src=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1-1024x447.png\" alt=\"\" width=\"900\" height=\"393\" srcset=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1-1024x447.png 1024w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1-300x131.png 300w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1-768x335.png 768w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1-150x65.png 150w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu1.png 1575w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><p id=\"caption-attachment-103\" class=\"wp-caption-text\">Figure 1: Principle of the BoWI simulator<\/p><\/div>\n<h3 id=\"aui_3_4_0_1_1002\"><strong id=\"aui_3_4_0_1_1001\">Outcomes<\/strong><\/h3>\n<p>The simulator has been successfully used to compare and select a set of algorithms that have been partially implemented on the Zyggie V1 demonstrator and will be fully implemented on Zyggie V2. These algorithms are also necessary for the design of a dedicated Node Architecture that will be evaluated as candidate for an ultra low-power ASIC implementation. Figure 2 shows how the simulator can be used to test different algorithms in the context of gesture and posture identification. The algorithms first tested using the simulator were:<\/p>\n<ul>\n<li>The Extended Kalman Filter (EKF) computes the orientation of the node.<\/li>\n<li>The LMS filter is used to predict position and speed.<\/li>\n<li>IPE is an iterative and cooperative algorithm to compute node positions based on estimates of other nodes&#8217; position.<\/li>\n<li>A classification algorithm (PCA-based for the first version) is also introduced to estimate a posture according to a library of partial postures (arm, back, legs) proposed by BoWI designers. This classification is distributed among the sensor nodes and central node (the user\u2019s smartphone). The classification is based on posture radio signatures that take advantage of BoWI intrinsic redundancy.<\/li>\n<\/ul>\n<div id=\"attachment_102\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-102\" class=\"size-large wp-image-102\" src=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-1024x617.png\" alt=\"\" width=\"900\" height=\"542\" srcset=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-1024x617.png 1024w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-300x181.png 300w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-768x462.png 768w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-150x90.png 150w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme-250x150.png 250w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme.png 1435w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><p id=\"caption-attachment-102\" class=\"wp-caption-text\">Figure 2: BoWI Simulator instance to test different algorithms in the context of posture detection.<\/p><\/div>\n<p>As a relevant example, Figure 3 depicts the results of simulator outputs on a continuous\u00a0<em>Capoeira<\/em>\u00a0movement.\u00a0The simulator was absolutely necessary to design and refine the sets of algorithms and was also an essential tool to identify opportunities and limitations of the BoWI approach.<\/p>\n<div id=\"attachment_101\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-101\" class=\"size-large wp-image-101\" src=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2-1024x742.png\" alt=\"\" width=\"900\" height=\"652\" srcset=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2-1024x742.png 1024w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2-300x217.png 300w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2-768x556.png 768w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2-150x109.png 150w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/BoWI_Simulator_scheme2.png 1089w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><p id=\"caption-attachment-101\" class=\"wp-caption-text\">Figure 3: Illustration, with a Capoeira movement, of possible signatures to be extracted during a PCA-based classification.<\/p><\/div>\n<p id=\"aui_3_4_0_1_1065\">he different algorithms were designed and simulated in the context of three application classes:<\/p>\n<ol>\n<li><strong>Static Posture<\/strong>\u00a0recognition based on accelerometer, magnetometer and\/or RSSI measurements and classification algorithms (e.g. PCA).\n<ul>\n<li><strong>Applications<\/strong>: Simon Posture Game (repetition of postures), Home Control.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Gesture Recognition<\/strong>\u00a0is considered as a temporal sequence of static postures, including sparse use of gyroscopes.\n<ul>\n<li><strong>Applications<\/strong>: Remote (at home) Functional Rehabilitation, Sport gesture monitoring, Musculoskeletal disorders risk monitoring (workplace risk prevention).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Motion Capture<\/strong>\u00a0is not based on classification but on orientation determination and 3D geolocation of the nodes.\n<ul>\n<li><strong>Applications<\/strong>: Gesture recording, Video Game, etc.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>igure 4 shows an example of 12 postures that were used for an application of static posture recognition. Results in Figure 5 represent the error rate for each posture as a function of the orientation error of the user. This orientation error represents the tolerance of the system to recognize inexact postures with a PCA using two eigenvalues with orientation data only (Fig. 5 left) and orientation + RSSI (Fig. 5 right).<\/p>\n<div id=\"attachment_100\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-100\" class=\"size-large wp-image-100\" src=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2-1024x196.png\" alt=\"\" width=\"900\" height=\"172\" srcset=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2-1024x196.png 1024w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2-300x58.png 300w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2-768x147.png 768w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2-150x29.png 150w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu2.png 1575w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><p id=\"caption-attachment-100\" class=\"wp-caption-text\">igure 4: Example of Static Posture recognition on 12 postures.<\/p><\/div>\n<p><div id=\"attachment_99\" style=\"width: 957px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-99\" class=\"size-full wp-image-99\" src=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3.png\" alt=\"\" width=\"947\" height=\"329\" srcset=\"https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3.png 947w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3-300x104.png 300w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3-768x267.png 768w, https:\/\/project.inria.fr\/bowi\/files\/2019\/06\/simu3-150x52.png 150w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><\/a><p id=\"caption-attachment-99\" class=\"wp-caption-text\">Figure 5: Error rate for each of the 12 postures as a function of the orientation error of the user.<\/p><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>The BoWI Simulator has been designed to explore and compare algorithms for Gesture and Posture recognition\u00a0based on IMU and radio measurements.\u00a0The first version was released\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/project.inria.fr\/bowi\/bowi-simulator\/\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":1611,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-163","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/pages\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/users\/1611"}],"replies":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/comments?post=163"}],"version-history":[{"count":1,"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/pages\/163\/revisions"}],"predecessor-version":[{"id":164,"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/pages\/163\/revisions\/164"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/bowi\/wp-json\/wp\/v2\/media?parent=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}