Movement assessment device

By combining lidar and camera to capture three-dimensional data, using databases to identify anatomical features, and generating real-time protractors, the existing goniometers have large errors, complex operations and sensor dependence problems, real-time goniometers are solved, and high-precision remote measurements and simplified operational motion evaluation are achieved.

CN116490126BActive Publication Date: 2025-09-023D4MEDICAL LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202080107063.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-11-11
Filing Date
2020-11-24
Publication Date
2025-09-02
Estimated Expiration
2040-11-24

AI Technical Summary

Technical Problem

In the prior art, mechanical and digital goniometers have large errors, need to be measured close to the object, rely on sensor accuracy and cannot be measured remotely, require multiple sizes of goniometers to accommodate different anatomical parts, and user operations are complex, especially smartphone applications have errors in alignment and attitude settings.

Method used

Using a combination of lidar and camera, by capturing point data in the three-dimensional coordinate space, using a database to compare anatomical features and motion types, generate real-time protractors, measure and display angles in real time, and provide a portable electronic goniometer device to automatically identify anatomical features and generate animated images.

Benefits of technology

It achieves high-precision, remote measurement of body flexibility and range of motion, reduces dependence on sensors, simplifies user operations, adapts to different anatomical parts, and provides real-time motion evaluation and posture correction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116490126B_ABST
    Figure CN116490126B_ABST
Patent Text Reader

Abstract

The present invention relates to an electronic goniometer device comprising a camera, a lidar camera, a device for processing multiple points in three-dimensional space within the same field of view as the camera, and a geometry analyzer for analyzing the geometry of individual points and groups of points. The geometry analyzer determines parameters such as angle, range of motion, and speed of moving points in three-dimensional space to match and identify points representing physical features of the captured object in a video image captured by the camera. The geometry analyzer determines whether these physical features are moving or stationary within a set of predetermined allowable parameters, indicating that the object's motion is correct. A real-time protractor and metric calculator are included to determine angles, range of motion, and other goniometer measurements.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method and apparatus for measuring body flexibility and range of motion. Background Art

[0002] When assessing physical flexibility and range of motion in medical patients, goniometers are commonly used to measure joint motion of limbs, joints, and body flexion.

[0003] As the present invention Figure 1 As shown, a known physical goniometer 100 comprises a pair of long arms 101, 102 connected by a rotatable joint 103, each arm having a distance scale scale for measuring the distance from a pivot point, and the arms are rotatable relative to each other around the pivot point. A circular protractor 104 is provided at one end of one of the arms, having a graduated circle marked with angles from a fixed reference point corresponding to the main central length axis of the first arm.

[0004] As the present invention Figure 2 and Figure 3 As shown, in use, to measure the flexion or movement angle of two body parts, such as a person's elbow joint, a practitioner or clinician aligns the center of the pivot point by estimation with the nominal center of rotation of the elbow joint, visually aligns the first arm of the goniometer with the major length of the upper arm, and visually aligns the second arm of the goniometer with the lower portion of the arm. The patient is asked to maximally extend or flex their arm, and the clinician realigns the first and second arms of the goniometer with the major lengths of the upper and lower portions of the arm. Angle measurements are taken by visually reading the angle between the two goniometer arms using a graduated goniometer. To measure the maximum range of joint motion of the elbow joint, a first angle reading is taken at maximum extension of the patient's arm, and a second angle reading is taken at maximum flexion of the patient's arm.

[0005] As the present invention Figure 4 As shown, it is a known digital medical goniometer. Figure 1 The advantage of a digital goniometer is that instead of having a physical circular plate protractor at the pivot point of the goniometer arms to measure the angle between the two arms, a digital electronic meter is provided to measure the angle between the two goniometer arms and display it on a liquid crystal display.

[0006] The use of known digital goniometers is similar to that of mechanical goniometers, but instead of reading the angle on a mechanical scale, the practitioner reads the angle digitally displayed on a liquid crystal display, which allows the angle between the two arms to be read with an order of magnitude greater accuracy than with a mechanical goniometer.

[0007] There are also various known applications for handheld computing devices, including smartphones, that provide goniometer functionality and measure range of body motion, including the known RateFast Goniometer application and the known Goniometer-Pro (G-pro) application.

[0008] As the present invention Figure 5 Shown is a screen view of a known RateFast goniometer application in an operating mode in which a camera of a smartphone or other handheld computing device is used to capture video or still digital images of a limb to be measured.

[0009] The Goniometer app overlays a picture of a mechanical goniometer onto a screen image viewed through the digital camera of a smartphone or other handheld computing device. The goniometer's screen image is fixed relative to the screen and, therefore, the smartphone. The user uses the smartphone to establish an initial reference for the pose of the subject being measured by visually aligning the center point of the on-screen goniometer image with the center of the joint image, moving the smartphone until the goniometer center coincides with the center of the joint and the dominant lower arm of the goniometer image remains substantially vertical. The user captures this initial orientation image, and the app also captures initial smartphone orientation data to be used as a reference orientation for the smartphone's internal posture sensor.

[0010] The user then aligns the main arm of the on-screen goniometer with the main length of a first limb part on one side of the joint, such as the upper arm. A first image is captured at a first orientation of the smartphone, where the smartphone is held in an orientation corresponding to the main length axis of the first body part on one side of the joint. The application determines the orientation of the smartphone in the first orientation using data from an inclinometer or accelerometer in the smartphone. The user then tilts the entire smartphone so that the main length of the on-screen goniometer image is aligned with the main length of a second body part on the other side of the joint, and captures a second image at a second orientation of the smartphone. The application measures the smartphone's posture using the inclinometer and / or accelerometer in the smartphone to obtain a second angle / orientation relative to vertical.

[0011] The application then calculates the angular difference between the first and second directions, which corresponds to the angle of the joint being measured.

[0012] In another mode of operation, rather than aligning the goniometer's screen image with the subject's limb or body part on either side of a joint, the user simply orients the entire smartphone so that the length of the device is parallel to the major length of the body part. For example, to measure the flexion angle of an elbow joint, the user aligns the length of the smartphone's screen with the major length of the upper arm part and captures a first reading, which causes the app to record orientation data (angle from vertical) from the smartphone's built-in accelerometer data. The user then repeats the operation by aligning the smartphone's screen with the major length of the lower arm part on the other side of the joint to capture another reading. The app records the smartphone's orientation using the readings from the smartphone's built-in orientation sensor or accelerometer.

[0013] As the present invention Figure 7 Shown is a screen view of a known Goniometer-pro (G-pro) goniometer device, also used in smartphones or other handheld computing devices, showing how a user can attach the device to their arm to measure limb angles. In the G-pro system, angle measurements are taken from the handheld device's internal accelerometer. This requires an initial calibration of the device at a known initial pose or orientation. The angle of motion is then determined based on acceleration and deceleration measurements about the known initial orientation.

[0014] Goniometers known in the prior art have the following problems. Mechanical goniometer errors arise from misalignment between the length of the robotic arm and the length of the limb part, and there are limits to the accuracy of visually reading angles from a mechanical goniometer. The user needs to be close to the object and cannot observe the object's posture from a distance. In addition, more than one type of goniometer may be required. A range of goniometers operating at different scales may be required to cover different scales of body movement, such as the swing of the hip and the flexion of the finger. Larger and smaller goniometers may be required for different parts of the anatomy.

[0015] exist Figure 4 In the case of digital goniometers, the angle measurement between the two arms of the goniometer is improved, but the accuracy of the angle measurement is still limited by the alignment of the goniometer arms with the major length axes of the body part.

[0016] In the known Goniometer-Pro app for smartphones, users strap their smartphone to a limb, such as their forearm, and then exercise the limb, such as moving their arm through a series of movements. The angle of the smartphone relative to the horizontal or vertical is measured using an accelerometer built into the smartphone.

[0017] In the case of electronic goniometer applications for smartphones or other handheld devices, measurement errors can arise due to misalignment of the major length of the smartphone screen or the central axis of the smartphone screen with the major length of the body part, as well as accuracy limitations on orientation readings provided by the handheld computing device's built-in sensors, which rely on accelerometers. Accelerometers are referenced to a nominal vertical orientation and determine the orientation of the handheld computing device by measuring acceleration and deceleration as the handheld computing device rotates or tilts relative to an initial reference position.

[0018] Known electronic goniometer smartphone applications require a setup process in which the smartphone is held horizontally or upright, and the user must learn how to perform the setup process. The user must hold the smartphone horizontally or upright so that a digital electronic level inside the device can record a reference pose.

[0019] With known electronic goniometers, a licensed physician needs to be present with the person being measured so that they can perform the setup process and measurements. Alternatively, if the person being measured uses the known electronic goniometer away from the physician, they need to be trained on how to use it. Summary of the Invention

[0020] A first aspect of the present invention provides a data processing method for describing anatomical features of an object;

[0021] The input data includes a plurality of point coordinates in a first three-dimensional coordinate space, wherein the plurality of point coordinates represent anatomical features of the object;

[0022] Here’s how:

[0023] determining one or more geometric parameters of the coordinates of a plurality of points;

[0024] comparing the determined geometric parameters with respective sets of predetermined geometric parameters stored in a database, each set of predetermined geometric parameters corresponding to a respective pre-stored motion type stored in the database; and

[0025] According to the comparison result, the motion of the plurality of point coordinates is identified by using pre-stored motion types.

[0026] As a preferred technical solution, the data processing method for describing the anatomical features of an object as described above includes dividing a plurality of point coordinates into point groups, each point group representing a discrete anatomical feature.

[0027] As a preferred technical solution, the data processing method for describing the anatomical features of an object as described above includes determining the angles between various point groups, each point group representing an anatomical feature.

[0028] A data processing method for describing anatomical features of an object as described above includes determining an angle between a first point group representing a first anatomical feature and a second point group representing a second anatomical feature.

[0029] The process of determining one or more geometric parameters of the coordinates of a plurality of points as described above includes determining the following parameters:

[0030] Angles between pairs of point coordinates;

[0031] One or more lines that coincide with a set of point coordinates;

[0032] The angle between two different sets of point coordinates;

[0033] Relative motion between two different sets of point coordinates;

[0034] The speed of a single point in three-dimensional coordinate space;

[0035] The movement speed of each set of point coordinates in the three-dimensional coordinate space;

[0036] The relative movement speed between each group of coordinates;

[0037] The direction of the line that coincides with the set of point coordinates;

[0038] The direction of each group of point coordinates in the three-dimensional coordinate space;

[0039] The rotation direction of each set of point coordinates in the three-dimensional coordinate space;

[0040] The rotation speed of each set of point coordinates in the three-dimensional coordinate space;

[0041] Translational motion of a single point in three-dimensional coordinate space;

[0042] The translational motion of each set of point coordinates in the three-dimensional coordinate space.

[0043] The data processing method for describing the anatomical features of an object as described above includes preprocessing input data by transforming a plurality of three-dimensional coordinates in a first coordinate space into a plurality of point coordinates in a corresponding second coordinate space.

[0044] The anatomical features represented by the point coordinates as described above include:

[0045] the subject's skeletal joints;

[0046] a single limb of the subject;

[0047] Individual body parts of the subject;

[0048] Individual bones of the subject;

[0049] The object's individual bone groupings.

[0050] As a preferred technical solution, the data processing method for describing the anatomical features of an object as described above includes generating a real-time protractor for displaying the angle between at least two sets of point coordinates.

[0051] The data processing method for describing the anatomical features of an object as described above comprises the following steps:

[0052] comparing the pose of the object by comparing the orientation of the first set of three-dimensional coordinates representing the anatomical feature to a stored reference orientation for the anatomical feature; and

[0053] Relative to the reference direction, it is determined whether the direction of the set of three-dimensional coordinates exceeds a predetermined direction range.

[0054] As a preferred technical solution, the data processing method for describing the anatomical features of an object as described above further includes capturing a video image of the object in a three-dimensional coordinate space;

[0055] Generates a protractor that moves in real time with the object's motion; and

[0056] Overlay the protractor on the video image.

[0057] A second aspect of the present invention provides a method for determining a motion range of an object, the method being as follows:

[0058] (1) capturing a two-dimensional image of the object in a first three-dimensional coordinate space;

[0059] (2) receiving a set of data points, the set of data points representing a plurality of points in a first three-dimensional coordinate space;

[0060] (3) identifying a single point group from the plurality of points, wherein each identified point group corresponds to an anatomical feature of the object; and

[0061] (4) Compare the relative positions of each point in the identified point group with the relative position data stored in the reference database.

[0062] Preferably, the pre-stored position data in the reference database are each respectively associated with a corresponding posture or movement exercise of the subject.

[0063] Preferably, the pre-stored position data in the reference database are arranged into a set of predetermined profiles, each profile representing a posture or a movement.

[0064] Preferably, the pre-stored data in the database includes angle data.

[0065] A method for determining the range of motion of an object as described above includes comparing the motion of each point in a group of points identified in a three-dimensional space with reference motion data stored as records in a reference database.

[0066] Comparison as described above refers to comparing a set of parameters describing the motion of the identified set of points with a corresponding reference set of predetermined parameters, the predetermined parameters being as follows:

[0067] Movement speed;

[0068] Direction of movement;

[0069] Movement distance;

[0070] Movement angle;

[0071] Acceleration

[0072] Deceleration

[0073] The main muscles involved in the movement

[0074] Accessory muscles for movement;

[0075] A method for determining the range of motion of an object as described above includes comparing the relative directions of the individual points in the identified point group with predetermined directions stored in a reference database.

[0076] A method for determining a motion range of an object as described above includes mapping a plurality of data points representing points in a first three-dimensional coordinate space into data points corresponding to a plurality of points in a second three-dimensional coordinate space.

[0077] A method for determining a motion range of an object as described above includes:

[0078] Analyze the motion of the first identified point group;

[0079] analyzing the motion of the second identified point group;

[0080] comparing the motion of the first and second identified sets of points to determine relative motion; and

[0081] comparing the relative motion between the first and second identified point groups to a plurality of predetermined relative motion records, each record corresponding to a particular movement or exercise; and

[0082] Based on the comparison, one of a plurality of predetermined motion types is identified.

[0083] A method for determining the range of motion of an object, as described above, includes a protractor that generates angle measurement data. The angle data can be measured dynamically in real time. Based on the data describing the change in angle over time, the following parameters can be determined: angular velocity; angular acceleration; and angular deceleration.

[0084] A method for determining a motion range of an object as described above includes:

[0085] determining a motion path of the identified set of points; and

[0086] Generates a protractor that follows the same motion path as the identified set of points.

[0087] As described above, the principal plane of the protractor in the three-dimensional coordinate space is consistent with the plane where the motion trajectory of the point group representing the anatomical features in the three-dimensional space is located.

[0088] The protractor as described above comprises an arc of a semicircle in a three-dimensional coordinate space.

[0089] The radial extension of the protractor as described above is directed in the same direction as the main direction of the group of points representing the anatomical feature.

[0090] The intended target angle is displayed as a strip or line.

[0091] The method for determining the motion range of an object as described above further includes:

[0092] inputting data describing a three-dimensional model of internal anatomical features corresponding to the external anatomical features identified in process (3); and

[0093] Generates rendered images of three-dimensional models of internal anatomical features.

[0094] A method for determining a motion range of an object as described above, further comprising specifying an orientation angle of the three-dimensional model; and

[0095] Update the specified angle in real time, which is equivalent to the real-time movement angle of the point group consistent with the anatomical features of the object.

[0096] A third aspect of the present invention provides a method for determining a correct posture of an object in a first coordinate system, the method being as follows:

[0097] receiving a point coordinate data stream for a plurality of points describing one or more anatomical features of a corresponding object in a three-dimensional coordinate space;

[0098] comparing the point coordinate data with a plurality of predetermined reference data representing a correct posture;

[0099] If the received point coordinate data differs from the reference data by more than a predetermined amount, a warning message is generated indicating that the point coordinate data is not within predetermined limits of the plurality of reference data.

[0100] The process of comparing the point coordinate data with a plurality of predetermined reference data as described above includes:

[0101] identifying each set of three-dimensional coordinate points in the point coordinate data corresponding to a body part of the subject;

[0102] Identify the corresponding angles between each set of three-dimensional coordinate points in the point coordinate data;

[0103] Match each set of angles of the point coordinate data with the corresponding angles of the reference data.

[0104] A method for determining a correct posture of an object in a first coordinate system as described above includes:

[0105] comparing an azimuth of a first line passing through a pair of three-dimensional coordinate points with an azimuth of a second line stored in the reference data; and

[0106] It is determined whether the azimuth of the first line differs from the azimuth of the second line by an angle outside a predetermined angular range.

[0107] A fourth aspect of the present invention provides a handheld portable electronic goniometer device, comprising:

[0108] means for capturing a lidar data stream comprising a plurality of points in a three-dimensional coordinate space;

[0109] means for analyzing the geometry of a plurality of points to determine angles between the plurality of points;

[0110] a database for storing a plurality of predetermined records, each record containing information regarding an angle of motion of an anatomical feature; and

[0111] Means for matching angles between a plurality of points with angles in predetermined records of a database.

[0112] A handheld portable electronic goniometer device as described above comprises means for generating a protractor for indicating determined angles between a plurality of points.

[0113] A handheld portable electronic goniometer device as described above comprises means for generating an electronic measuring instrument for measuring a certain angle.

[0114] A handheld portable electronic goniometer device as described above comprises means for detecting when a determined angle is outside a predetermined angle range stored in predetermined records of a database.

[0115] A handheld portable electronic goniometer device as described above includes means for sending angle data to an animation generator for generating an animated image of a structure identified in a predetermined record of a database.

[0116] The handheld portable electronic goniometer device as described above further comprises a report controller for generating a visual report of the change of the determined angle over time.

[0117] A fifth aspect of the present invention provides a method for processing three-dimensional data in a handheld portable electronic goniometer device, the method being as follows:

[0118] Capturing a lidar data stream comprising a plurality of points in a three-dimensional coordinate space;

[0119] analyzing the geometry of multiple points to determine angles between multiple pairs of points;

[0120] storing a plurality of predetermined records, each record containing information regarding a predetermined angle or direction of movement of an anatomical feature; and

[0121] The determined angles between the plurality of point pairs are matched to predetermined angles in a predetermined record.

[0122] A method of processing three-dimensional data in a handheld portable electronic goniometer device as described above includes generating a protractor for indicating a determined angle.

[0123] A method for processing three-dimensional data in a handheld portable electronic goniometer device as described above includes generating an electronic measuring instrument for measuring a certain angle.

[0124] A method of processing three-dimensional data in a handheld portable electronic goniometer device as described above includes detecting when an angle is outside a predetermined angular range.

[0125] A method of processing three-dimensional data in a handheld portable electronic goniometer device as described above includes generating an animated image of a structure identified in a predetermined record, the animated image having components arranged at a certain angle.

[0126] A method for processing three-dimensional data in a handheld portable electronic goniometer device as described above further includes generating a visual report of the determined angle over time.

[0127] Further aspects are as described in the claims of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0128] In order to better understand the present invention and to illustrate how to implement the present invention, specific embodiments, methods and processes according to the present invention will now be described by way of example only with reference to the accompanying drawings, in which:

[0129] Figure 1 A known mechanical medical goniometer for measuring joint articulation is schematically illustrated;

[0130] Figure 2 Schematically illustrates the use of a known mechanical goniometer to measure the extension angle of a human elbow joint;

[0131] Figure 3 Schematic illustration of the use of a known mechanical goniometer to measure the flexion angle of a human elbow joint:

[0132] Figure 4 Schematically illustrates a known digital goniometer that provides a digital readout of an angle measurement of an articulated joint;

[0133] Figure 5 Schematic illustration of a screen view of a known RateFast goniometer application program based on a digital computing platform, such as a smartphone;

[0134] Figure 6 Schematically illustrates a screen view of a known smartphone-based Goniometer-pro (G-pro) device;

[0135] Figure 7 The use of a motion assessment device according to a specific embodiment and method of the present invention is schematically illustrated in a perspective view;

[0136] Figure 8 Schematic illustration of the hardware components of a device for measuring body movement and body flexibility;

[0137] Figure 9 The structure of different processes and modules according to a specific embodiment of the present invention is schematically illustrated;

[0138] Figure 10 An example of the process performed during an assessment session according to the specific method of the present invention is schematically illustrated;

[0139] FIG11 schematically illustrates an example of a process performed during an assessment session according to a specific method of the present invention, with A and B being parts of FIG11 , respectively;

[0140] Figure 12 schematically illustrates a view of a two-dimensional screen image of an object in a first coordinate space and a two-dimensional view of a plurality of three-dimensional points in a second coordinate space, the three-dimensional points being displayed by overlaying the two-dimensional image of the object;

[0141] Figure 13schematically illustrates a view of a two-dimensional screen image of an object in a first three-dimensional coordinate space, overlaid with a protractor display generated according to a specific method of the present invention;

[0142] Figure 14 Schematically illustrating a screen view of a portion of an assessment session, including a two-dimensional image of an object in a first three-dimensional coordinate space, the image having a protractor display associated therewith; a plurality of metric views generated according to a specific method of the present invention, each metric view displaying a measured movement parameter for an identified movement or exercise type;

[0143] Figure 15 schematically illustrates a screen view of a portion of an assessment session in which a subject incorrectly performs a specific identified type of movement or exercise, showing a two-dimensional image of the subject in a first three-dimensional coordinate space, accompanied by a graduated protractor, a meter or dial-type display showing spinal alignment, and written instructions to the user displayed on a screen;

[0144] Figure 16 schematically illustrates a screen view of a portion of an assessment session in which a subject incorrectly performs a particular identified type of movement or exercise, showing a two-dimensional image of the subject in a first three-dimensional coordinate space, accompanied by an upright protractor and a lateral protractor overlaid on the subject image in the primary view, and a dial or speedometer-type display showing a parameter of the subject that is outside a predetermined target range for the identified type of movement or exercise being performed;

[0145] Figure 17 schematically illustrating screen views of a portion of an assessment session, showing in a front view (first screen area) a two-dimensional video image of a subject in a first three-dimensional coordinate space, and in a side view (second screen area) a three-dimensional digitally generated dynamic kinematic anatomical view of internal anatomical features showing individual muscles and portions of a skeleton being assessed during the assessment session, the anatomical view moving in sync with the subject's body movements;

[0146] Figure 18 Schematically illustrates an example of generating an assessment report in real time during an assessment session according to a specific method of the present invention, involving a shoulder abduction exercise; and

[0147] Figure 19 Schematically illustrates the Figure 18 The report represents a second example of an evaluation report for the same evaluation session. DETAILED DESCRIPTION

[0148] A specific embodiment of the present invention will now be described by way of example. To provide a comprehensive understanding, the following description includes numerous specific details. However, it will be apparent to those skilled in the art that the present invention may be implemented without limitation to these specific details. In other cases, well-known methods and structures have not been described in detail to avoid unnecessarily obscuring the description.

[0149] Hereinafter, the term "user" refers to a person who operates a device or method according to a specific embodiment of the present invention.

[0150] In this specification, the term "object" refers to an object, primarily a human being, but may also include an animal or a robot, whose range of motion is being measured or determined.

[0151] In the case where the object is the same person as the user, ie the object is taking measurements of itself according to an embodiment, the object is referred to as the user. That is, the user is taking measurements of himself as the object.

[0152] Throughout this specification, when referring to a subject, the term "posture" is used to refer to the way a subject holds body parts, such as the shoulders, neck, or back, in relation to each other, and / or to a particular position when standing, sitting, or lying. Examples of postures include: upright; slouching; reclining; stretching; bowing; relaxing; and tensing. The term "posture" can be used to describe a variety of postures, but generally, a posture is a type of gesture.

[0153] In this specification, the term "position" when referring to the position of a subject's body refers to the overall orientation of the body and / or the configuration of its parts relative to each other. Examples of such positions include, but are not limited to, standing, sitting, kneeling on one or both knees, lying down, reclining, prone, supine, raising one arm vertically, raising both arms vertically or leaning to horizontal, raising one or both arms substantially horizontally, raising one knee, or raising one leg. Position also applies to individual body parts, for example, an arm can be in a vertical position or a bent / leaned position; a leg can be in a bent or extended position, a position with fingers spread, a position with fingers together, or a closed position (fist). A position may have several alternative postures. For example, a person in a sitting position may be in a focused upright position or in a slouched position.

[0154] In this manual, modules named with the prefix AR are Apple Unless otherwise stated, all other modules, class routines and processes are created by the inventors of the present invention.

[0155] Overview

[0156] As the present invention Figure 7As shown, a motion assessment device 7000 according to a specific embodiment of the present invention is schematically illustrated in perspective view. The motion assessment device includes a handheld or portable computing platform having a housing; a digital processor; an internal battery pack; a memory device; a data storage device; a camera device capable of capturing still images; a light detection and ranging (LiDAR) device; a direction measuring device to determine the orientation of the device, such as one or more motion sensors and / or accelerometers; and a user interface including a touch screen that can accept commands and instructions from a user touching the screen, the touch screen also including a visual display device that displays images generated by the video camera device in real time and can overlay computer-generated images onto still or video images or scenes displayed on the screen.

[0157] Human subject 7001 is located within the field of view of the camera device and the field of view of the lidar device of motion assessment device 7000. Real-time video images are captured by the camera device and converted into images comprising multiple two-dimensional pixel frames, as is known in the art. The video images comprise a sequence of multiple independent two-dimensional image data frames captured at a predetermined rate of frames per second.

[0158] LiDAR detector instruments are known in the art and comprise a light pulse transmitter that emits a sequence of light pulses and a light pulse detector that detects the reflected light pulses. LiDAR devices illuminate a field of view (FOV), in this case, the first coordinate space where human subjects reside, with a rapid series of laser pulses, typically exceeding 150,000 pulses per second. A sensor detects reflections of the light pulses from surfaces in the FOV and measures the amount of time it takes for each pulse to reflect from the pulse transmitter. The round-trip time from pulse emission to pulse reflection is proportional to the distance of the reflecting surface from the transmitter and sensor. Therefore, by measuring the time difference between pulse emissions, a measure of the distance between the pulse and the reflecting surface in the FOV can be determined. The beams are scanned left and right in a three-dimensional array, so the direction / angle of the pulse beam center relative to the main central axis of the LiDAR instrument is known. Assuming the LiDAR instrument remains relatively stationary, the instrument can determine the position of a three-dimensional point in the first coordinate space by calculating the vertical and horizontal angles relative to the centerline of the LiDAR instrument and the time required to reflect the transmitted pulse. This gives the distance from the LiDAR instrument.

[0159] Human user 7002 holds motion assessment device 7000 and points a camera and lidar instrument at a human subject in a field of view in a first coordinate space. The camera records frames of image data (video data), and the lidar instrument records frames of lidar data. A lidar data frame includes multiple three-dimensional coordinates, each of which corresponds to a reflection point on the surface of a human body, or any other object in the field of view, that has reflected light from a lidar light pulse transmitter. Therefore, each lidar data frame includes multiple sampling points on the surface of the human body, as well as reflection data points from other objects in the first coordinate space (e.g., walls, floors, and ceilings).

[0160] The lidar camera captures data about the object in a first 3D coordinate space, which is the physical location or room where the object is standing as a series of 3D coordinates. A set of points representing the object's main anatomical components is preprocessed at 60 frames per second. These points are then converted to a second 3D coordinate space, which is more convenient for subsequent processing. The first 3D coordinate space corresponds to the 3D coordinate space of the real scene where the subject is standing, while the video image and lidar data form a second 3D coordinate space, a virtual coordinate space used for further processing and analysis of these points.

[0161] As the present invention Figure 8 FIG. 1 schematically illustrates the components of a user portable computing platform including a device for measuring body movement. The device includes a processor 8000; a memory 8001; an electronic data storage device 8002; a user interface 8003 including a touch screen for receiving commands and instructions and for displaying images including video and still images; a wireless interface 8004 including The device also includes a user interface and a Wi-Fi interface; a digital video camera 8005 that can also capture still images; a LiDAR camera 8006 capable of capturing LiDAR images including depth / range information; a battery and power supply unit 8007; and a data bus 8008 that enables all components to communicate with each other. The device also includes a housing. The user interface may include a keyboard, which may be a touchscreen keyboard; a touchpad or a mouse; various input and output ports; various physical connections, such as a USB connector; and a port for receiving a memory card, such as an SD or micro SD memory card. The user interface 8003 preferably also includes a sound interface, including an audio speaker, a microphone, and a microphone / phono jack.

[0162] As the present invention Figure 9 , which schematically illustrates an apparatus for measuring body movement and body flexibility.

[0163] According to a first specific embodiment, the apparatus comprises a set of modules for performing the specific method of the present invention. Generally speaking, these modules include an input module 9000; a tool set module CA Tools 9001; an analysis module CA Analyze 9002; and an output module CA Output 9003. Unless otherwise specified, all modules operate in parallel, and communication between modules also occurs in parallel.

[0164] The input module 9000 includes a first input module 9050 and a second input module 9051. The first input module includes an augmented reality kit ARKit 9004, which is used to Products; AR Body Tracking 9005, also an Apple product; AR 3D Skeleton 9006; WOLAR Session Manager 9007. Figure 8 In the example, classes starting with AR are all Apple classes, and other classes are all in accordance with the specific embodiments and methods herein.

[0165] The second input module 9051 includes a video output 9060; a vision 9061 including a VN detection human posture request 9062 and a VN detection human gesture request 9063; and a depth map 9064 including body joint coordinates and hand joint coordinates.

[0166] CA tool module 9001 includes a medical database 9020; an automatic evaluation detection module 9021; a geometric analysis controller 9022; a set of virtual protractors 9023; a set of measurement views or speedometers 9024; a report analysis controller 9025; an overcompensation controller 9026; and a depth analysis controller 9027.

[0167] The CA analysis module 9002 includes a WOLAR body module 9010 ; joint coordinates 9012 ; a main evaluation view controller 9013 , which runs an evaluation session 9014 and provides session analysis 9015 ; and a WOL motion body module 9016 .

[0168] The CA output module 9003 includes a visualization 9030, a three-dimensional view 9031, and an assessment report 9032. The visualization 9030 includes a side view 9033, a front view 9034, a metric view 9035, and a protractor view 9036.

[0169] Input Module

[0170] ARKit Module

[0171] The ARKit module is an Apple module that provides pre-processing of lidar and video data. Part of ARKit is the AR body tracking feature and the AR 3D skeleton module.

[0172] AR human tracking module

[0173] When ARKit recognizes a person in the rear-facing camera feed, it generates an AR body anchor, which can be used to track the body's movements. This enables plane detection and image detection. If you use a body anchor to display a virtual character, you can set the character on a selected surface or image.

[0174] AR configuration. The semantic type human detection framework is enabled by default, which will cause ARKit to detect the joint positions of people in the camera frame through the human detection framework.

[0175] Within the AR Body Tracking module, there’s also the ability to track people in the physical environment and visualize their movements by applying the same body movements to virtual characters.

[0176] AR 3D Skeleton Module

[0177] The AR Body Anchor contains an instance of the AR Skeleton subclass to provide the positions of its joints in 3D space. The Joint Local Transformation attribute describes the 3D offset of a joint relative to its parent joint. The Joint Local Transformation attribute describes the 3D offset of a joint relative to the body anchor transformation. AR 3D Skeleton input contains instances of 3D coordinate points on a body, such as a human body derived from LiDAR data. The AR 3D Skeleton module provides a continuous stream of data instances to start a session. Each AR 3D Skeleton data instance contains a set of coordinates in 3D space that come from a LiDAR optical ranging camera. The 3D coordinates represent points on an object image, particularly a point on a human body. For example, a set of points in 3D space coordinates is provided, corresponding to an object image of a human body, where the 3D points represent individual joints located at or on:

[0178] - The centerline / midline of the human body;

[0179] -The center line of each arm of the human body;

[0180] -The center line of each leg of the human body;

[0181] -The centerline of the human head.

[0182] As a collection of joints, the AR 3D Skeleton protocol describes the state of a human body whose motion ARKit can track. AR 3D Skeleton subclasses provide the positions of the tracked body joints in 3D space, specifically their joint local transform and joint model transform properties.

[0183] Since laser beams cannot penetrate the human body, they cannot directly measure the position of bones within the body. The 3D coordinates of the AR 3D skeleton represent the approximate positions of the main skeletal components of the person being measured within the field of view of the camera and lidar sensor. For example, a person's arm can be represented as a 3D coordinate line located at the location of the human object in the first coordinate space.

[0184] The data instance stream received from the AR 3D skeleton is a real-time data stream, containing 60 instances per second, equivalent to one frame of data points. Therefore, as the human subject in the camera's field of view moves around, the AR 3D skeleton provides a continuously updated dataset in real time, representing the 3D data coordinates of the subject's moving human body parts. The data received from the AR 3D skeleton constitutes the input data stream to the CA analysis module and the CA tool module. Typically, each instance (frame) contains approximately 93 independent 3D coordinates.

[0185] WOLAR Session Manager Module

[0186] The WOLAR Session Manager module 9007 coordinates the communication between ARKit and the AR 3D Skeleton module. The rest of the system is the CA Analysis Module 9002, the CA Tool Module 9001, and the CA Output Module 9003. The WOLAR Session Manager module also manages the interfaces and communications between the CA Analysis Module, the CA Tool Module, and the CA Output Module.

[0187] CA analysis module

[0188] The WOLAR Human Module 9010 in the CA Analysis Module 9002 receives a dataset from the Input Module 9000 and creates a new set of 3D coordinate instances from the AR 3D Skeleton dataset, where the AR 3D Skeleton dataset includes multiple 3D coordinate instances as described above. The dataset created by the WOLAR Human Module contains an optimized and normalized version of the AR 3D Skeleton dataset, whose format is optimized for use with the WOLAR Skeleton and WOLAR Session Manager modules. Normalization includes creating a predefined 3D space within the WOLAR Human Module and fitting the AR 3D Skeleton dataset within the predefined 3D space. To convert between the AR 3D Skeleton space and the WOLAR Human 3D space, each 3D point of each instance in the AR 3D Skeleton space is multiplied by a multiplication factor that fits the 3D point to the corresponding point in the WOLAR Human 3D space.

[0189] The WOLAR human body module 9010 generates a WOLAR skeletal model 9011, which includes a normalized data set output from the WOLAR human body module. The normalized data set includes multiple independent instances, each of which includes multiple independent three-dimensional coordinates in the WOLAR human body space, and the set of three-dimensional coordinates represents the coordinate position on the object's human skeleton in time. The WOLAR skeletal data set includes multiple instances, and the coordinate position of the point of the human skeleton of the object it represents changes over time (in the example of the present invention, at 60 frames per second, each frame is a separate instance of the WOLAR skeletal data set).

[0190] The continuous real-time data output stream of the WOLAR skeleton provides multiple joint coordinates 9012. The joint coordinates are input to the main evaluation view controller 9013.

[0191] The main assessment view controller 9013 controls the view that the user sees on the user display screen. All tools in the CA tool module 9001 are used by or can be used by the main assessment view controller 9013.

[0192] Once the automatic assessment detection module 9021 automatically detects recognizable motion, the main assessment view controller can automatically start the session, and the report analysis controller 9025 begins recording the session, and the report analysis controller provides analysis and results of the object's motion during the session. The recording of the session data and the analysis and report generation of the data proceed in parallel. Alternatively, the session can be started manually by the user.

[0193] CA Tool Module

[0194] Medical database 9020 contains data describing a plurality of different human motion and position types. Each different motion type and each position type is stored as a record comprising a set of three-dimensional coordinates and parameters such as the angles between the three-dimensional coordinate sets that are characteristic of a particular posture or motion.

[0195] Types of physical exercises involving movements and postures may include any one or more of the following examples: standing upright with arms straight down; lateral rotation stretch; raising arms (left arm); raising arms (right arm); raising arms, right and left arms; forward standing bend; leaning back / backward; turning head to the left; turning head to the right; tilting head to the left; tilting head to the right; raising head; lowering head; twisting upper body to the left; twisting upper body to the right; leg extension / leg curl exercise (left leg), raising leg forward (left leg); Leg raise (right leg) forward; leg raise (left leg) backward; leg raise (right leg) backward; leg raise (left leg) sideways; leg raise (right leg) sideways; leg extension / leg flexion movement (right leg); elbow extension / elbow flexion movement (left arm); elbow extension / elbow flexion movement (right arm); wrist flexion movement (left wrist); wrist flexion movement (right wrist); individual extension and flexion movements for each finger and thumb of each hand; ankle flexion to the left or right; movements performed while sitting or lying down. In principle, any movement, position or posture of any part of the human body or the entire body can be included in the movement monitored, measured and / or analyzed by the device of the present invention.

[0196] For each individual position, posture, or movement record in the medical database, the following information can be stored: the name of the movement; the target range of the movement, such as the angle range in degrees; the primary and secondary muscles used in the movement; the joint name, muscle group, and antagonist movement. Other similar information can be saved to the medical database.

[0197] The automatic evaluation detection module 9021 identifies which type of motion or posture the subject is performing from the real-time stream of joint coordinates and matches the motion or posture type with an equivalent pre-stored motion or posture type in a medical database. If the medical database does not contain an equivalent pre-stored record of the motion or posture type that is equivalent to the motion or posture being performed by the user, the automatic evaluation detection module can optionally be configured to create a new database record corresponding to the motion or posture.

[0198] Using a medical database, the automated assessment detection automatically identifies what type of motion the subject is performing. It does this by using a series of geometric calculations computed in the geometry analysis controller 9022.

[0199] Using the medical database 9020, the automatic assessment detector 9021 automatically identifies which movement the subject is performing by comparing the joint coordinates 9012 output from the WOLAR body (which in turn is obtained from a continuous lidar stream derived from the three-dimensional points output by the AR three-dimensional skeleton) with the records stored in the medical database 9020 to determine whether any record stored in the medical database matches the movement or posture represented by a set of joint coordinates 9012 output from the WOLAR skeleton module 9011.

[0200] The medical database 9020 can be implemented as a plurality of data records, for example in a spreadsheet format, where on one axis all of the different possible types of exercises that a subject can perform are listed, and on another axis all of the different parameters associated with each type of movement are listed, defining the thresholds for what constitutes acceptable or correct movement for that type, including maximum and minimum angles of movement between groups of joint coordinates, where the joint groups are grouped to represent individual body features, such as joints, limbs, digits (fingers, toes), etc. The medical database stores records containing the following types of information:

[0201] A sport or exercise (name of sport);

[0202] A posture (posture name)

[0203] For each type of movement and / or posture:

[0204] A set of points corresponds to one or more individual body parts;

[0205] Which body parts need to be tracked / monitored for specific types of exercise;

[0206] Which joints need to be tracked / monitored for a specific type of movement;

[0207] Ranges of maximum and minimum angles corresponding to angles between individual body parts that are correct or acceptable for a particular type of motion or posture, including thresholds for those parameters;

[0208] the maximum angular extent of the principal length of a particular body part compared to a particular coordinate in coordinate space, within the constraints of the motion type, including thresholds for those parameters;

[0209] Which combinations of the above parameters are contained in each individual movement or each individual posture;

[0210] Corresponding 3D motion animation

[0211] By comparing the parameter combination determined by the geometric analysis controller 9022, such as horizontal movement plus circular movement, with the parameter combination for each movement type or each posture stored in the medical database 9020, then the individual movement or posture type can be identified from the medical database.

[0212] After identifying a particular motion type or gesture type from the medical database that corresponds to the data generated from the geometry analysis controller, the individual upper and lower limit parameters for the identified motion or gesture can be read from the pre-stored record of that motion type in the medical database 9020. The overcompensation controller 9026 uses this information to confirm whether the subject is performing the motion correctly.

[0213] For example, during shoulder flexion, the spine needs to remain upright within limits while the shoulder is flexing. The data record for this type of movement in the medical database 9020 may indicate that for this exercise, the shoulder angle and spine angle need to be monitored and also displayed on the user interface in the form of a real-time display of virtual protractors, one angle for each protractor.

[0214] The overcompensation controller 9026 continuously monitors necessary parameters, such as those read from the medical database 9024, during the subject's shoulder flexion exercise and outputs angular readings of the subject's arm angle in real time using the virtual protractor 9023 during the shoulder flexion exercise. During the shoulder flexion exercise, by monitoring the real-time information describing the subject's spinal posture from the geometric analysis controller 9022, the overcompensation controller 9026 can monitor that the subject's spine remains substantially vertical within the specified angular limits appropriately recorded in the medical database 9024, i.e., the shoulder flexion movement, and thereby determine that the movement is being performed correctly.

[0215] However, if the overcompensation controller 9026 determines that the signal output by the geometric analysis controller is about a posture of the subject's spinal line that is too far from vertical, outside the limits contained in the appropriate records in the medical database 9020, then the overcompensation controller 9026 will generate an alarm signal.

[0216] By comparing the actual angle of movement of the subject's body feature with the corresponding acceptable angles stored in a medical database, it can be determined whether the movement was performed correctly by the subject without the need for medically trained human movement training.

[0217] As an example, if a subject raises their arm in front of them, the medical database would record this, including information about which joints of the body need to be tracked and what are the safe or correct maximum and minimum angles of movement for the arm within which the subject is considered to have performed that movement or exercise correctly.

[0218] Automatic evaluation and detection module 9021 obtains data from geometric analysis controller 9022 and medical database 9020 and compares the two sets of data to match the geometric analysis data with equivalent data from pre-stored records in the medical database. If the angles in the geometric analysis data are within a limit, are identical to angles recorded in the medical database, and correspond to a specific type of motion, then automatic evaluation and detection module 9021 identifies the geometric analysis data as corresponding to the same type of motion as the record in the medical database containing similar angle data.

[0219] The geometry analysis controller 9022 performs a series of geometric calculations by examining each set of three-dimensional points comprising the joint coordinates 9012 to provide angle data and other metrics, such as the rate of change of angle and direction of the line number of three-dimensional points, the rate of change of line direction, the rate of change of the absolute position of a single three-dimensional point, and other parameters that describe the absolute position of the joint coordinates in the three-dimensional coordinate space, as well as similar parameters that describe the relative position of each joint coordinate with respect to each other. For example, the change in the absolute position of the joint coordinates in the three-dimensional coordinate space can be determined by the geometry analysis controller, such as the absolute distance offset corresponding to the movement of the elbow joint in the first coordinate system occupied by the object. The geometry analysis controller 9022 controls each operation performed on the joint coordinates 9012.

[0220] The geometry analysis controller 9022 provides a tracking function for tracking the movement of the subject's body parts in real time.

[0221] The data input to the geometric analysis controller includes numerical data corresponding to a plurality of points observed on the user's screen, each point representing a three-dimensional point in a three-dimensional coordinate space, wherein the points move in real time with the real-time motion of the object and the approximate location of points on or within the object's body. The input points include three-dimensional real-time motion data points in the three-dimensional coordinate space, which are obviously unrelated to each other in the first instance, in the sense that all points will be related to locations on, within, or in close proximity to the object. The creation of further relationships between the points is performed in the geometric analysis controller to group the points into multiple groups of points, each representing a body part or other body feature. The input points need to be analyzed in order to group them into groups, each group corresponding to and representing an anatomical feature of the object.

[0222] Such analysis may include applying correlation algorithms to pairs or groups of points to determine whether the motion of an individual point is strongly correlated with that of any other individual point, thereby determining which multiple points share strong correlations of motion with each other and thus can be assigned to a commonly named body part, and which individual points have little or no correlation with other points, thereby determining that the points do not belong to the same named body part.

[0223] The angles between the three-dimensional coordinate sets of the joint coordinates are calculated in real time and continuously updated. The output of the geometric analysis controller includes angle data describing the angles between the individual three-dimensional coordinate sets or lines.

[0224] The output of the Geometry Analysis Controller includes the following data:

[0225] The position of the point in the three-dimensional coordinate space (the second coordinate space);

[0226] A point group represents a collection of three-dimensional structures (physical features of an object);

[0227] A beam or line, including its orientation in three-dimensional coordinate space and its length;

[0228] Angles between groups of points, corresponding to angles between the object's three-dimensional structure or physical features;

[0229] The velocity of a single point in the second coordinate space;

[0230] The velocity of the point group in the second coordinate space;

[0231] The acceleration / deceleration of a point moving in the second coordinate space;

[0232] The direction of movement of the point in the second coordinate space

[0233] All of the above data outputs are derived from or determined from multiple 3D joint coordinates, i.e., multiple points input to the geometry analysis controller, which are derived from the original AR 3D skeleton data.

[0234] The combination of output parameters of the geometric analysis controller is identified by comparison with motion type records stored in the medical database 9020. For example, if a set of three-dimensional points is identified as forming a specific pattern in the second coordinate space and / or having a specific angle or direction within the second coordinate space, and the pattern matches a corresponding pattern of body part records stored in the medical database, then the point pattern can be identified as the corresponding body part.

[0235] The geometry analysis controller also provides geometry data, such as angle data, to the metric viewset module and the virtual protractor.

[0236] The virtual protractor module 9023 generates data describing a set of virtual protractors that are displayed near the image of a human subject on the visual display device. The virtual protractors can overlay the image of the human subject presented on the screen or can be adjacent to the image of the human subject. The virtual protractors display the angle being measured, such as the angle between the main line of the arm and the main line of the torso, and display the numerical value of the angle in real time. The virtual protractors can be overlaid on the two-dimensional image of the human subject on the visual display device.

[0237] The virtual protractor module 9036 is responsible for drawing the protractor on the screen of the user interface. The virtual protractor module is driven by the geometric analysis controller 9022 and the automatic evaluation detection module 9021.

[0238] The metric view module 9035 generates a metric view, such as a speedometer view that displays in real time the rate of change of the angle of a particular skeletal component (e.g., an arm) relative to another skeletal component (e.g., a spine). A metric view typically includes a digital display that changes in real time based on the parameter it represents. For example, a metric view may include a real-time display of an angle in degrees, whose value changes in real time as the monitored angle changes in real time. For each movement, using the medical database 9020, a specific type of metric view corresponding to that type of movement is specified so that the type of movement the object is performing can be automatically detected by using the automatic evaluation detection module 9021, and the appropriate type can be found in the medical database. A collection of one or more metric views can be generated and displayed on the screen of the visual display device, as controlled by the main evaluation view controller 9013.

[0239] The report analysis controller module 9025 records all joint coordinate data collected during a session in real time. The data is recorded during the session. The session report analysis controller stores all metrics and parameters visible to the user on the screen.

[0240] In further embodiments, a record of the joint coordinate data collected within a session and all other session parameters and data may be saved locally for transmission to a remote location or server after the session.

[0241] The overcompensation controller 9026 analyzes the joint coordinates 9012 and identifies the joint coordinates corresponding to a specific skeletal component, such as the subject's spine, and also includes an algorithm for comparing the subject's overall pose or position with pre-stored records of appropriate motion types stored in the medical database 9020. Each motion record in the medical database has joint coordinates in three-dimensional space in a second coordinate system that correspond to the ideal or "in-limit" orientation, positioning, and pose of a single skeletal component when the motion is correctly executed.

[0242] Information from each of the medical database 9020, automatic assessment detection 9021, geometry analysis controller 9022, virtual protractor module 9034, measurement view 9024, report analysis controller 9025 and overcompensation controller 9026 is fed to the main assessment view controller 9013, which controls the view the user sees on the screen.

[0243] For example, to obtain goniometer measurements of minimum arm position (arm vertically downward from the shoulder) and maximum arm position (e.g., arm raised to its fullest extent) when the subject stands upright and raises or lowers their arms, the subject should be standing upright, i.e., with the torso substantially vertical when viewed from the front, and the position of the spine, approximating the centerline of the torso, also vertical.

[0244] Comparison of the subject's posture or motion with reference postures or motions stored in the medical database 9020 can be performed in a variety of ways. In a first approach, the geometry analysis controller 9022 identifies joint coordinate lines corresponding to individual anatomical features, such as bones, and analyzes the spatial relationships between the individual joint coordinate lines, each representing a different anatomical feature, to determine whether the major length axes of the anatomical features are within a predetermined angle relative to each other.

[0245] For example, in the case of a subject's arm, a first set of joint coordinates corresponds to the lateral epicondyle of the humerus, a second set of joint coordinates corresponds to the radial styloid, and a third set of joint coordinates corresponds to the coordinates of the acromion, each of which can be automatically identified and manually adjusted. Additionally, a fourth set of coordinates can be identified, corresponding to other regions of the subject's body. While the three-dimensional joint coordinates corresponding to the features of the lateral epicondyle of the humerus, the radial styloid, and the acromion are in relative motion in real time, a set of joint coordinates corresponding to the body is identified. The coordinates corresponding to the body are continuously monitored in real time to determine whether they are substantially within the coordinate space and within predetermined limits retrieved from records in a medical database. Records in the database may include angles of deviation from the vertical (Z) coordinate. To determine whether the subject's posture is outside of the predetermined limits, a best-fit straight line based on a mathematical equation, such as a least-squares fit equation, is continuously calculated, from which a best-fit line passing through the three-dimensional coordinates corresponding to the subject's spine can be determined. The angle that this line makes with the vertical Z axis in the coordinate space is continuously monitored and compared to corresponding angle parameters corresponding to that particular type of motion stored in the data records in the medical database. If the angle of the real-time calculated line from the vertical Z direction deviates above a predetermined angular limit, this indicates that the subject is over-tilting, in which case an overcompensation controller 9026 generates parameters representing the specific motion being performed by the subject's motion in an external signal. The overcompensation controller sends a signal to the report analysis controller 9025, which stops recording the three-dimensional joint coordinate data stream until the angle between the continuously recalculated line corresponding to the subject's spine and the upright vertical line in the coordinate space is within a predetermined angular value.

[0246] The overcompensation controller 9026 continuously compares the frame stream of three-dimensional joint coordinates 9012 corresponding to the subject's spine, calculates whether these joint coordinates represent a vertical spine, or if not vertical, calculates the angle from vertical in a second coordinate space, and compares the angle of the joint coordinates to the maximum allowable angle that is within the limits for that type of motion and is stored as part of the medical record for that particular type of motion.

[0247] If the motion of the subject's spine, as represented by the real-time data stream of joint coordinates, exceeds the limits, i.e., the angle of the spine relative to the vertical exceeds the range of angles specified in the medical record for that particular motion type, then the overcompensation controller generates a signal that is sent to the CA output module 9003 so that the visualization module can generate a signal on the screen view indicating that the motion was not performed correctly. This can be, for example, a flashing protractor or metric display, or a change in color of the protractor or metric display.

[0248] protractor

[0249] The protractor is generated according to the virtual protractor module 9023 and visualized by the protractor visualization module 9036, which generates a user display for the protractor. The protractor consists of a graduated linear scale and a pointer. A ribbon indicator may be provided. The linear scale may be circular or partially circular, with the graduations preferably expressed in degrees, but may also be expressed in radians. The pointer may include a rotating needle-type pointer that rotates around the linear scale to point to an angle on the scale. The ribbon indicator preferably includes a highlighted line extending through an angle in a circular path, wherein the angle represented is the target motion angle.

[0250] The measurements to which the pointer and ribbon indicators are assigned on a separate protractor display can be as follows. The pointer can be assigned to indicate the following:

[0251] The current angle of motion of the body part or limb;

[0252] The ideal or target angles of motion (maximum range of motion) for a body part or limb.

[0253] Color band indicators can be assigned to indicate any of the following metrics:

[0254] The range of motion of a body part or limb measured during the session, with a ribbon showing the range of motion extending between the maximum and minimum angles;

[0255] The ideal range of motion for a body part or limb for a particular type of sport or exercise is shown as a band extending between the maximum and minimum angles.

[0256] Overcompensation warning signs

[0257] When the overcompensation controller 9026 generates an overcompensation alarm signal due to determining that the subject is exercising in an incorrect posture or position, the overcompensation alarm signal prohibits the reporting analysis controller 9025 from recording data until the overcompensation controller 9026 either stops generating the overcompensation alarm signal or generates a cancel signal to cancel the overcompensation state. This means that the device will not record any motion data of the subject while the subject's posture is incorrect for the type of sport or exercise being performed.

[0258] In response to an overcompensation alarm signal being generated for any particular parameter exceeding a predetermined limit, such as shoulder angle exceeding a predetermined limit, a protractor image output 9036 is used to modify that particular parameter, typically by turning the protractor to display a different color, such as red, so that the user can see that the parameter is outside the limit set for proper execution of the exercise.

[0259] The overcompensation warning signal also changes the color of the report and hides the odometer view on the screen.

[0260] Point Group

[0261] The data input to the geometry analysis controller 9022 includes a series of points, each of which has a position in a second three-dimensional coordinate space updated at 60 frames per second. These points are nominally unrelated to each other, that is, when they are input into the type tree analysis controller, there is no individual correlation data between the points. However, because the points received from the AR three-dimensional skeleton represent locations on the subject's body, there is some correlation between individual points and groups of points. The geometry analysis controller determines the correlation between the points and arranges the points into groups of points, where each group of points represents a unique anatomical feature of the subject.

[0262] The geometric analysis controller applies additional algorithms that find correlations between pairs of individual points and determine how closely individual points are collocated relative to other individual points in the input data stream in order to group the points together. The correlation functions include:

[0263] The instantaneous position of a point compared to the instantaneous positions of other points in a second coordinate space—points that are immediately adjacent to each other may, but are not necessarily, part of the same anatomical feature;

[0264] · comparison of the speed of movement of a point with the speed of movement of other points - points that move at the same speed as one another, or at a speed that is within a threshold variation of the speed of movement of another point, are likely to be part of the same anatomical feature as the other point;

[0265] Comparing the direction of motion of a point with other points—two points moving in the same direction in 3D coordinate space are likely to be associated with the same anatomical feature;

[0266] Line drawing algorithm - By drawing lines connecting directly adjacent pairs of points, the orientation of each pair of points can be compared to the orientation of every other pair of points. Three or more series of points that form a straight line or a nearly straight line are more likely to be connected to the same anatomical feature.

[0267] • Acceleration or deceleration rates - points that accelerate or decelerate to the same degree, or within a predetermined range of variation from one another, are more likely to be part of the same anatomical feature.

[0268] The geometric analysis controller uses one or more of the above-described algorithms to arrange the points into point groups, where each group of points is assigned to represent a specific anatomical feature. Preferably, the anatomical feature is a body part formed around a specific bone between skeletal joints. For example, the upper arm formed around the humerus can be identified or defined as an anatomical feature; the forearm portion can be identified or defined as another independent anatomical feature; and the joint area between the upper arm and forearm corresponding to the elbow joint can be defined as an anatomical feature. Each anatomical feature is represented by a group or multiple points.

[0269] Identify groups of points that have anatomical features of an object

[0270] While the geometric analysis controller forms groups of points, each group of points represents a different anatomical feature that needs to be identified and recognized relative to the anatomy of the object. The recognition of anatomical features can be achieved by an algorithm that examines the following parameters;

[0271] Number of inflection points of a point line - By examining the number and order of inflection points of the curvature of a point line and by comparing it with pre-stored data of point patterns representing specific anatomical features, the deformation of an anatomical feature using a set of points can be identified;

[0272] The absolute distances between points in a group relative to a second coordinate system;

[0273] Angle of motion of a group of points - By examining the angle of motion of a group of points, the possible anatomical features of the group of points can be determined, and those anatomical features that cannot move within the range of angles at which the group of points moves in the three-dimensional coordinate space can be excluded;

[0274] Speed ​​of movement of a group of points - By examining the speed of movement of a group of points, the range of possible anatomical features that the group of points could represent can be reduced or narrowed down. For example, a finger moves much faster than an intact arm. If the speed of movement of the group of points is greater than that of a human arm, then the anatomical features of a human arm can be eliminated from the possible anatomical features represented by the group of points, while the finger remains in the set of possible anatomical features.

[0275] Identify the movement or exercise

[0276] Identification of a specific movement or exercise is performed by an algorithm in the automatic evaluation detection module 9021 based on the point groups output from the geometric analysis controller 9022. The automatic evaluation detection module uses data and information from the geometric analysis controller. For each group of points, parameters include: the speed of movement of the group of points; the nominal identification / naming of the point group, such as identifying the point group as a specific anatomical feature; the angle of movement of the point group (angular range of movement); the shape of the point group; and the orientation of the point group within the second three-dimensional coordinate space.

[0277] For example, if the type tree analysis controller outputs data for a particular group of points, specifying that the group of points moves within a particular angular range at a particular motion angular velocity, the automatic assessment detection module 9021 can compare that information with the data stored in the medical database 9020, and thus the automatic assessment detection module can identify the group of points that has a particular record of that motion or exercise stored in the medical database 9020.

[0278] Report Analysis

[0279] Having identified from the automatic assessment detection module 9021 which sport or exercise the subject is performing and the overcompensation controller 9026 not generating an overcompensation alarm signal, confirming that the subject is moving within predetermined allowable parameters for the particular sport, the report analysis controller 9025 generates data to generate a graphical report in real time that documents the actions performed by the subject.

[0280] A visual representation of the report is generated by the assessment report module 9032.

[0281] CA output

[0282] The visualization component 9030 includes a three-dimensional view visualization component 9031; an assessment report visualization component 9032; a side view visualization component 9033; a main view visualization component 9034; a metric view visualization component 9035; and a protractor visualization component 9036.

[0283] 3D View

[0284] The 3D view visualization component 9031 generates an animated screen display of muscle motion, including the skeletal component. Data for the 3D view is obtained from a known muscle motion animation generator. One or more muscle types are automatically identified from data records of specific identified movements or exercises stored in the medical database 9020. Data describing the movement type is sent to an external muscle motion animator, which has pre-stored 3D models of specific muscles and skeletal groups for each identified movement type. The animation engine returns a rendered image containing the skeletal component and the rendered image representing the identified muscle or muscles. Data describing the muscle type and the angular orientation of the limb or other body part to which the muscle is attached is sent from the main evaluation view controller 9013 to a conventional muscle animation module, which updates the data 60 times per second. This module returns a rendered image of the virtual object's partial anatomy, showing the relevant muscles moving in real time according to the same instantaneous angles, orientations, and poses adopted by the object, as identified by the geometry analysis controller 9022.

[0285] After selecting one or more muscles, the muscle animator creates an animation of the movement of those muscles, such as when bending an elbow or lifting a leg. To create the animation, the object motion is identified by the automatic evaluation detection module 9021 based on information generated in real time in the geometry analysis controller 9022 and referenced by data in the medical database 9020 as described above. Once the type of motion is known, the medical database is checked to see if there is already a record of this type of motion in the medical database, and whether there is a 3D model animation of this type of motion in the medical database. The relevant animation model is launched through the WOLAR session manager 9007, which acts as a bridge to the animation engine, and the animation engine returns rendered images, which are converted into on-screen displays by the 3D view component 9031.

[0286] In the three-dimensional view display, as the subject bends their arm, for example, the geometric analysis controller 9022 determines the direction, angle, velocity of the group of points representing the anatomical components of the arm, which are sent to the main evaluation view controller 9013 which manages sending and receiving data from the animation engine and displays the computer generated animated image in real time on the side view of the screen so that as the subject moves their arm in real time, the animated anatomical display moves accordingly in real time.

[0287] Sound prompts

[0288] At various stages of operation, sounds can be played through the speaker or through the microphone jack of the user interface to give the user intuitive feedback during device operation. Sound prompts may be generated in the following events:

[0289] When adding ARKit anchor 1001;

[0290] When the subject moves, a sound, such as a "click," is emitted for every 10° increase in the limb's angle.

[0291] If the subject overcompensates, an alarm sounds.

[0292] If the subject reaches a new personal best maximum during exercise, a sound will be emitted

[0293] Assessment Report

[0294] The assessment report 9032 receives data from the report analysis controller module 9025 and the assessment session 9014. The metrics view module 9024, the report analysis controller 9025, the overcompensation controller 9026, and the assessment session 9014 work together, each providing data input to the assessment report 9032. Individual assessment report outputs for a session may include the following data:

[0295] Maximum range of motion for the session;

[0296] When reaching maximum range of motion during a session;

[0297] When maximum range of motion is not achieved during a session;

[0298] Reaching overcompensation limits when attempting to achieve movement.

[0299] The above-mentioned evaluation report data is preferably displayed in a graphical form.

[0300] How to operate - Overview

[0301] These embodiments are intended for use with a user operating the measurement device and directing the field of view of the measurement device toward the subject. If the measurement device is placed on a tripod or other fixed device, the measurement device may be operated by the subject themselves, so the subject may be the same person as the user, but the measurement device is primarily operated by a user who is different and separate from the subject being measured.

[0302] The user points the handheld computer's camera at the object whose range of motion is to be determined. The object is located within the field of view of the camera and the lidar camera in real space, known as the first coordinate space. The user reads information from the screen, instructing the subject on how to stand or lie down, as well as how to perform specific exercises or movements, such as standing upright and raising the right arm, keeping it straight. The user verbally communicates these instructions to the subject, who then performs them to the best of their ability.

[0303] Throughout the session, an on-screen menu continuously presents written instructions and information to the user on how to use the device. The instruction set includes:

[0304] Instructions on the subject's posture or position, and how to correct the posture, such as "lay your head flat on the ground";

[0305] Instructions for each anatomical part of the subject to perform the exercise or movement (e.g., "bend your elbow by bringing your palm toward your shoulder"), as many instructions as needed for each, depending on the specific type of movement or exercise being assessed;

[0306] Instructions and information regarding session administration and management, such as entering name, patient number, clinician name, etc. Instructions and information regarding administration and management may only be required if the session information is to be stored remotely after the session.

[0307] The measurement device may analyze the points aligned with the subject's body parts at different locations and may determine if the subject has adopted a posture that is detrimental to the examination position, such as by not keeping their spine straight during a standing exercise, or by slouching during a seated exercise, and generate a user-visible alert message so that the user can verbally convey instructions to the subject so that they can correct their posture during the exercise.

[0308] The AR 3D Skeleton module provides a continuous stream of data instances. When receiving a stream of points from the AR 3D Skeleton, the WOLAR Human Module 9010 prepares those points that were originally coordinates in the first coordinate space by converting them into coordinates in the second coordinate space. The WOLAR Human is an instance of a class that itself has information about the skeleton of the subject being measured, including height and other parameters. The WOLAR Human Module 9010 forms a set of calculations on the AR 3D Skeleton data to convert points from the first coordinate space to the second coordinate space, where all subsequent processing is performed. The WOLAR Human Module 9010 and the WOLAR Skeleton Module 9011 normalize the initial coordinate data of the AR 3D Skeleton points derived from the first coordinate space to fit into the second coordinate space. The second coordinate space is a three-dimensional scene used for further processing, analysis and visualization, and corresponds to the view and scene seen on the user's display screen.

[0309] The WOLAR Human class works in parallel with the WOLAR Session Manager class to project the original points onto the three-dimensional scene in the second coordinate space and produce joint coordinates 9012 in the second three-dimensional coordinate space.

[0310] The process of generating joint coordinates 9012 performed by the WOLAR Human Body Module 9010, the WOLAR Skeleton Module 9011, and the WOLAR Session Manager 9007 can be described as a pre-analysis to generate joint coordinate data, which is pre-processed data derived from points and provided as a coordinate stream in a three-dimensional first coordinate space. The joint coordinate data comprises a set of points that are presented as a dynamic stream of three-dimensional coordinates in a second three-dimensional coordinate space.

[0311] The main analysis is managed by the main evaluation view controller 9013. Once the joint coordinate data is available, the analysis of the CA tool is performed.

[0312] Once the automatic assessment detection module 9021 recognizes motion, the assessment session begins. The assessment session module 9014 is a submodule of the main assessment view controller 9012. The main assessment view controller manages the assessment session. If the user presses the RESET command on the screen, the current assessment session will be terminated and a new assessment session may be started.

[0313] The Assessment Session 9014 is an entity that stores information but has no actions. The Session Analysis 9015 is an entity that does have actions as described in the present invention, including which parameters to analyze, which exercises to plot, which speedometers to display, and how to report data.

[0314] The CA tool module 9001 continuously analyzes the movement of points in the second coordinate space in real time via the geometric analysis controller 9022, automatically identifies which type of exercise the subject is performing, and provides this information to the automatic assessment detection module 9021, which compares the data provided by the geometric analysis controller with multiple records in the medical database 9020 until a match is found and the subject's movement can be matched to a known pre-stored exercise or movement, such as shoulder flexion.

[0315] Optionally, the input module 9000 may also include the known AppleCreateML action classifier module. This module can be trained by inputting ideally 50 or more video instances of a series of different people performing the same physical therapy movement, such as extension and retraction of the arm (flexion and elbow) into the known Apple action classifier module. After training, the Apple action classifier will then automatically identify the type of movement or physical therapy exercise in new videos during an assessment or measurement session and will return data identifying the type of physical therapy exercise being performed. This information can be used to automatically select the correct appropriate type of record in the medical record database, i.e., select records based on the type of physical therapy exercise identified or movement actually performed by the subject.

[0316] Once the type of movement the subject is performing is identified and matched to a movement type in the medical database, pre-stored parameters for that movement type are applied to the session. These pre-stored parameters include target values ​​for the range of motion or angle of a particular body part that the subject should attempt to achieve, as well as limits on postural changes, such as maintaining the subject's spine within predetermined vertical limits within a second coordinate space, or the relative position of the subject's head (e.g., keeping the head upright) that must be maintained for the movement or exercise to be performed correctly.

[0317] At all times during the session, the overcompensation control module 9026, which receives data from the geometric analysis controller 9022 and the medical database 9020, continuously checks to see if any of the group of points representing body parts is outside the limits of the motion being performed and can interrupt data collection by the reporting analysis controller 9025 during periods of motion outside the limits.

[0318] The visualization modules 9030 - 9036 run continuously throughout the session to generate their respective views for real-time display on the screen.

[0319] The entire session is recorded by the report analysis controller 9025 so that the session can be replayed on screen after the exercise is completed and the evaluation report is created.

[0320] The output includes visual outputs that are viewed on the user's display. In optimal mode, the views are divided into side view, front view, metric view, and protractor.

[0321] The side view 9033 includes: the name of the exercise; the target range; and the current range.

[0322] The main view 9034 is the portion of the screen in which the video image of the subject patient is displayed, and all overlay information drawn on top of the main view is entirely overlaid on the main view, such as a movable protractor, images of points representing skeletal components or body parts.

[0323] In optimal mode, the metric view 9035 is displayed on the right side of the screen and includes multiple individual speedometer-type displays in the form of circular dials with movable needles.

[0324] The protractor view 9036 shows one or more protractors within the main view 9034, which can be overlaid onto the video image of the subject or can be located near the video image of the subject.

[0325] Specific methods for conducting conversations

[0326] As the present invention Figure 10 , a schematic diagram of a process for performing an evaluation session is shown. Figure 10 In the project, all ARKit-enabled projects are known. Entities, all other entities and processes shown were designed by the inventors. Unless otherwise stated, Figure 10 All processes shown or described in the run in parallel.

[0327] In process 1000, an ARKit body tracking session begins, which kicks off all other processes. The WOLAR session manager 9007 runs body tracking configuration 1002 and extracts ARKit anchors in process 1003. AR technology is anchor-based, allowing ARKit to view a scene in a first three-dimensional coordinate space, such as a clinic or room where a subject is to perform an exercise, and to move and find real-world objects that can be identified by lines or angles, such as doors, walls, floors, tables, and more, and in particular, for this embodiment and method, to find people or other animals in three-dimensional space.

[0328] The WOLAR Session Manager 9007 runs continuously, waiting for the appearance of recognition anchors, i.e., human objects within the field of view of the camera and lidar cameras, and then activates CA analysis 9002, CA tools 9001 and CA output 9003.

[0329] ARKit anchor 1003 feeds lidar-derived data points into AR 3D skeleton 9006, producing a set of data points in the first 3D coordinate space that are updated at 60 frames per second.

[0330] When an assessment session begins, defined motions are identified during the process. The WOLAR Session Manager creates a WOLAR Human instance, which receives data from the AR 3D Skeleton 9006 and performs a set of calculations to transform from the first 3D coordinate space to the second 3D coordinate space. The WOLAR Session Manager creates an instance of the WOLAR Skeleton 9011, which provides data describing a set of points in the second 3D coordinate space. The WOLAR Skeleton contains the AR 3D Skeleton dataset that was transformed from the first 3D coordinate space to the second 3D coordinate space through a set of calculations.

[0331] The data output from WOLAR Human 9010 and WOLAR Skeleton 9011 is input to the main evaluation view controller 9013. The WOLAR Skeleton dataset is continuously updated in real time, and updates 1006 are input to the main evaluation view controller 9013. Updates are performed in the same manner as the original creation of the WOLAR Skeleton entity. Therefore, once the WOLAR Skeleton entity 1004 is created, it does not need to be recreated; it is simply updated with new data. The conversion from the first three-dimensional coordinate space to the second three-dimensional coordinate space is also handled in the same manner as the original dataset. Updates occur at a rate of 60 updates per second. The result of creating the WOLAR Human 9010 entity 1003, the WOLAR Skeleton entity 9011 1004, and the continuous updating of the WOLAR Skeleton dataset is a continuous stream of points in the second three-dimensional coordinate space that can be further processed and analyzed. The data is then transferred to the main class's main evaluation view controller 9013 for further analysis.

[0332] For each update of the points in the second three-dimensional coordinate space, which occurs at an optimal rate of 60 data sets per second, a parallel process of calculating angles 1007 occurs. Each time an update occurs, the geometry analysis controller 9022 performs angle calculations. The calculated angles include angles between different groups of points, each representing a different anatomical feature. For example, the angles between a first group of points representing the elbow and a second group of points representing the spine can be calculated. Similarly, the angles between the bones of the index finger can be calculated in real time, or the angles between the thigh / femur and the calf can be calculated. Furthermore, the geometry analysis controller 9022 calculates the rate of change of angles, the relative speed of movement of the groups of points representing anatomical features in the second three-dimensional coordinate space, and the relative positions of the groups of points representing anatomical features. The automatic assessment detection module 9021 compares this data with pre-stored records in the medical database 9020 to determine whether a known (i.e., predefined and stored) exercise type or exercise can be identified in process 1008. This question is also implemented with the question "Create assessment session?" 1009.

[0333] If no known predefined motion type or exercise corresponding to the motion represented by the angles and other data provided by the geometry analysis controller 9022 is identified in the medical database 9020, then no assessment session is created and (optionally) a new motion type can be defined in the medical database 9020 instead in process 1010. The three-dimensional joints can be visualized 1011 by displaying points on the screen overlaying the subject video, which is only defined if no motion is defined. If motion is defined, the defined session can be visualized using a protractor and other views in process 1013, and visualization points on the body are not required 1111.

[0334] Defining a new motion is optional. If a new motion type is not defined in process 1010, the main evaluation view controller continues to loop through items 1001, 1002, 1003, 1004, 1007, 1008, 1010, and 1111, continuing to analyze points in the WOLAR skeleton until the defined motion is recognized by the automatic evaluation detection module 9021 in process 1008.

[0335] When the defined motion is recognized, a new evaluation session is created in process 1012 and the main evaluation view controller 1005 can start a visualization definition session 1013 using the visualization module in the CA tool to create the protractor, metric view and 3D animation.

[0336] Creating an evaluation session 1012 occurs only once per evaluation session. If the query "Is the movement defined?" 1008 evaluates to "yes," and the query "Is the evaluation session created?" 1009 also evaluates to "yes," the report analysis controller 9025 begins recording session data. The report analysis controller 9025 is activated only once during an evaluation session. Once the evaluation session 1025 is created, it continuously updates the same evaluation session during the evaluation session. The operational instance of the report analysis controller exists only during the creation of the evaluation session 1012.

[0337] Once the assessment session is created, the overcompensation control module 9026 is also activated. Once activated, the overcompensation control will continuously monitor to see if any of the subject's motion parameters exceed predetermined limits stored in the medical database 9020.

[0338] If any overcompensation is detected in process 1014, the current assessment session is placed in critical mode in process 1015 and the reporting analysis controller 9025 is prohibited 1016 from capturing parameters via an overcompensation alarm signal generated by the overcompensation controller 9026. Critical mode causes the metric view display to disappear from the screen view, and the protractor for the measured quantity or parameter that exceeds the predetermined limits for that exercise type is highlighted on the screen, for example by changing the protractor to a different color and displaying any associated dials / speedometers associated with that parameter. Critical mode also causes an alarm signal and instructions to be generated to indicate to the user the error the subject made while performing the exercise, such as "keep your spine straight." The session remains in critical mode until the overcompensation controller module 9026 determines that the parameter that was previously out of limit is now within the predetermined limits contained in the medical database 9020 for that type of exercise or movement. At this point, the overcompensation controller module 9026 cancels the overcompensation alarm signal and the critical mode state is lifted. The reporting analysis controller 9025 resumes saving session data, and the visualization component resumes generating displays of the metric view, protractor, and other views.

[0339] If no overcompensation is detected during process stage 1014, the current session is in assessment mode 1017, meaning that data is captured 1018 and recorded by the report analysis controller module 9025, and all appropriate metric views, protractors, and 3D views are displayed on the screen. Typically, at the beginning of an assessment session, the subject will not overcompensate their movements, and no overcompensation is detected during process 1014. However, later during an exercise or workout, the subject may extend their movements beyond the predetermined limits for that type of exercise or sport, which can trigger overcompensation detection and activate critical mode as described above.

[0340] The Capture Maximum process 1018 captures the maximum extent of motion, e.g., the maximum angular motion of a body part. The Do Not Capture Maximum process 1016 occurs during critical mode, i.e., when overcompensation of subject motion is detected, meaning that any angle data or other parameter associated with a set of points representing the subject's anatomy is not recorded because it is not a true maximum for that parameter, because it was obtained when the subject was adopting a posture or position outside the allowed parameters for that type of motion, e.g., if the subject's spine is bent beyond the allowed range relative to the vertical.

[0341] Whenever the geometry analysis controller 9022 is calculating an angle or other geometric parameter, unless display is suppressed by a critical mode condition, the parameter is visualized on the screen in real time 1013 by displaying and / or updating a protractor view 1019, displaying or updating a side view 1020, displaying or updating an on-screen main view 1021, and displaying and / or updating a metric view 1022. As the incoming AR 3D skeletal point set is refreshed at this rate, the visualization is updated 60 times per second.

[0342] The assessment session continues, and at any time during the session, the user has the option at 1123 to display a report for the assessment session in process 1123. If the user chooses to display the report, the session is ended in process 1124, which results in visualization of the final assessment session report in process 1125. Ending the session in the End Session process 1124 means that no more data is captured, and the assessment report for the current session is visualized.

[0343] Alternatively, if the user does not wish to display a report, the user can reset the session at any time at process 1126, in which case the assessment session ends at process 1127. If the session is reset at 1126 without displaying a report, then the session ends at 1127 and data is no longer captured by the report analysis controller 9025, but there is no final assessment report for the user to view.

[0344] If overcompensation is not detected in process 1014, the user can request the 3D view at any time by selecting an on-screen command in process 1128. If the 3D view is not selected, the 3D animation is hidden in process 1129. If the user selects to display the 3D view animated model in process 1128, the 3D model is visualized in process 1130, and the WOLAR Session Manager module 9007 drives the 3D view animation to move synchronously with the subject's movements in process 1131. Specifically, the WOLAR Session Manager sends relevant angle data and other geometric data to the 3D animation engine, which updates 60 times per second. The animation engine returns an output displayed by the 3D view component 9031, showing a rendering of the selected anatomical feature corresponding to the type of exercise being performed. The motion of the animated 3D model is synchronized with the subject's movement in the first 3D coordinate space. The 3D view enables the user to visualize which muscles are involved in the exercise, and the 3D view can be rotated to view a side view of the animated 3D model of the anatomy.

[0345] As shown in Figure 11 of the present invention, a further process flow of a specific method according to the present invention is schematically illustrated. Unless otherwise specified, the logical entities shown in Figure 11 are each ongoing process, which runs continuously in real time or is less restricted by other processes in the process suite shown.

[0346] A person in the LiDAR camera's field of view begins moving 1100, thus starting a session. The session type 1101 can be an ARKit session 1101 and / or a capture video session 1103. Starting the capture video session 1103 runs a pose / gesture VISION request 1104, extracts VISION joints 1105, and generates 2D skeletal data 1106.

[0347] Starting an ARKit session 1102 runs the body tracking configuration process 1107, which extracts ARKit anchors and generates three-dimensional skeleton data Skeleton3D1109.

[0348] The two-dimensional skeleton data Skeleton2D and the three-dimensional skeleton data Skeleton3D are combined into body joint coordinate data 1110.

[0349] The main update process 1111 results in the generation of visualizations, protractors, metrics, and views 1112. The main update 1111 results in a process determining 1113 whether the object is in the correct position. If the object is not in the correct position, the process places the session in critical mode 1114 and displays 1115 the object's limitations and errors, thereby limiting the view and display as described above.

[0350] If the subject is determined to be in the correct position or posture 113, the process continues with taking posture measurements 1115 and determining 1116 whether these posture measurements can be validated as a specific type of motion in process 1116. If the posture measurements are inconsistent with the validated motion, then the process places the session into critical mode 1114 and displays limitations and errors 1115, which are displayed in the main update 1111.

[0351] If the motion is verified, the process determines 1117 whether an evaluation session has been created, and if not, the system creates an evaluation session in process 1118 , which prompts the master update process 1111 .

[0352] If an evaluation session has been created, it already exists, and the process monitors whether any overcompensation is detected at process 1119. If overcompensation is detected at any time during the session, the capture of maximum motion parameters is disabled at process 1120. However, as long as no overcompensation is detected, the device continues to record 3D skeletal data and video, and the session is in evaluation mode 1121, where maximum motion parameters are captured at process 1122. The captured maximum motion parameters of the object are fed into the master update 1111.

[0353] If overcompensation is not detected in process 1119 , the three-dimensional coordinates may be displayed in process 1123 and the results may be displayed in process 1124 .

[0354] If the user does not wish to display the three-dimensional data, the three-dimensional model can be hidden in process 1124. If the user chooses to display the three-dimensional data, the three-dimensional model is visualized in process 1126, and the three-dimensional visualization is driven in synchronization with the motion capture in process 1127.

[0355] If the user chooses to visualize the results in process 1124 , the results are visualized in process 1128 .

[0356] Selecting Display Results in process 1124 provides the option to reset the evaluation session in process 1129. If the user selects to reset the evaluation session, the reset occurs in the process, and the process then continues with determining the session entry process 1101 as described above. If the user does not activate Reset Evaluation, the creation of the master update continues in process 1111.

[0357] The following logical entities, processes, commands, and queries exist in the logical process of FIG. 11 of the present invention:

[0358] Show 3D view?

[0359] Hide 3D Model

[0360] Display limitations, errors

[0361] Session is in critical mode

[0362] Do not capture the maximum value

[0363] no

[0364] ARKit Session

[0365] Extracting ARKit Anchors

[0366] Skeleton3D

[0367] yes

[0368] Running the Body Tracking Configuration

[0369] no

[0370] no

[0371] yes

[0372] Visualizing 3D models

[0373] Drive and motion capture synchronization

[0374] Is the location correct?

[0375] Is the movement validated?

[0376] Has the evaluation session been created?

[0377] Overcompensation detected?

[0378] Session Type

[0379] Major Update

[0380] Taking posture measurements

[0381] Start exercising

[0382] Joint Data Provider

[0383] Start a session

[0384] Body joint coordinates

[0385] no

[0386] no

[0387] yes

[0388] Show results?

[0389] Run pose / gesture VISION request

[0390] no

[0391] Visualize the results

[0392] Reset Session

[0393] Extract VISION joints

[0394] Skeleton2D

[0395] yes

[0396] Visual UI, Protractor, Metrics, Views

[0397] Capturing video sessions

[0398] no

[0399] Creating an evaluation session

[0400] Capture Maximum

[0401] The session is in evaluation mode

[0402] no

[0403] Reset assessment?

[0404] yes

[0405] As the present invention Figure 12 , schematically illustrating a two-dimensional screen image showing an object existing in a first coordinate space, and a two-dimensional view of a plurality of three-dimensional points in the first coordinate space, the three-dimensional points being displayed as points superimposed on the two-dimensional image of the object.

[0406] exist Figure 12 In [1], multiple 3D points are provided as AR 3D Skeleton data, which tracks the approximate skeletal / anatomical features of an object in a first coordinate space. As the object moves in the first coordinate space, the point stream roughly tracks the movement of the object's major anatomical features, including the limbs and spine. A set of 93 individual points is received, and the 3D coordinates of each point are updated 60 times per second. These points comprise the AR 3D Skeleton data.

[0407] As the present invention Figure 13 , schematically illustrates an example of a protractor display 1300 generated by the protractor visualization module 9036 using data output by the virtual protractor module 9023. The protractor display includes a semicircle having an angle scale. In a three-dimensional coordinate space, the protractor includes a semicircle whose major central axis coincides with a horizontal plane in the three-dimensional coordinate space. The diameter of one side of the semicircle remains horizontal in the three-dimensional coordinate space. The orientation of the scale of the virtual protractor follows a set of points representing the subject's arm, such that when the subject swings their arm in the first coordinate space, the major plane coincident with the semicircular protractor scale moves in the second three-dimensional coordinate space such that the major plane of the protractor display remains substantially coincident with the line of points representing the subject's arm.

[0408] As the present invention Figure 14, schematically illustrates a screen view of an object on a device's user interface. The image of the object is displayed as a two-dimensional video image. Overlaid on the two-dimensional image are a protractor image 1408 and multiple metric view images 1402-1406. The protractor image is generated from data output by the virtual protractor module 9023 and the protractor visualization module 9036. The metric views are generated from data output by the metric view (speedometer) module 9024 and visualized by the metric view visualization module 9035. In the example shown, the first metric view 1401 shows a circle with an angle scale and a movable marker icon that moves around a circular path according to the angle of motion of an anatomical feature (in this case, the shoulder angle during shoulder flexion). The circular display is divided into a left half (when viewed by the user) and a right half (when viewed on the screen). The left half corresponds to the subject's right shoulder when facing the camera and lidar device, and the right half corresponds to the subject's left shoulder when facing the device's camera and lidar camera. As the subject raises their right arm, the corresponding (left) portion of the circular range of motion display displays the angle of motion in real time. The circular dot icon indicates the instantaneous angle adopted by the right shoulder, and the circular ribbon indicates the maximum angular range of motion achieved by the subject's shoulder during the current exercise. There is also a digital display showing the current instantaneous flexion angle of the shoulder.

[0409] The second metric display 1402 indicates the angle of arm tilt on a circular dial type. The second metric display view includes a rotatable needle that pivots around the center point of the circular display, with counterclockwise movement of the needle indicating arm tilt in one direction and clockwise movement indicating arm tilt in the other opposite direction.

[0410] The third metric display 1403 includes a circular dial display with a rotatable needle that rotates around the center point of the circular display to display spinal alignment. A needle pointing vertically upward indicates vertical spinal alignment. If the needle appears tilted to the left as seen by the user, this corresponds to an alignment in which the subject's spine is tilted to one side, and if the needle appears tilted to the opposite right, this corresponds to an alignment in which the subject's spine is tilted to the opposite side. The tilt angle from vertical is displayed in degrees on a scale around the perimeter of the circular dial display.

[0411] A fourth metric display 1404 displays the numerical target shoulder flexion range of motion, in this case 170°. A fifth metric view display 1405 displays the currently achieved shoulder flexion range of motion, in this case 155°. A sixth metric display 1406 provides a graphical report of shoulder flexion angle on the vertical Y-axis versus time on the horizontal X-axis. The graph is completed in real time as the subject moves their arm.

[0412] All the above metric views are dynamically calculated in the metric view generation module 9024 and displayed dynamically generated by the metric view visualization module 9035.

[0413] As the present invention Figure 15 The figure schematically illustrates a first example of a protractor display being disabled when the overcompensation controller 9026 generates an overcompensation alarm signal. The display screen is disabled so that the previously Figure 13 All metric views displayed in the video are disabled and not displayed, except for the spine alignment display 1303, which shows that the subject's spine is misaligned for the shoulder flexion movement being performed. The protractor view changes to a different color (preferably red), and a message "Keep your spine straight" is generated and displayed on the screen. In addition, a row of dots representing the subject's spine is overlaid on the subject's video display, showing the approximate position of the subject's spine.

[0414] As the present invention Figure 16 FIG. 1 schematically illustrates a second example of a screen view with a protractor display when the overcompensation controller 9026 generates an overcompensation alarm signal. Figure 14 , the subject's shoulders have become misaligned compared to the metric views displayed in the figure, resulting in the overcompensation controller 9026 detecting the misalignment, causing all metric views except the shoulder alignment dial display to be disabled. A metric display associated with the misalignment parameter, in this case a shoulder alignment display, is generated and displayed, along with an upright goniometer 1600 and a lateral goniometer 1601, in this case the lateral goniometer indicating that the subject has moved their arm too far forward in front of their body, which is outside the allowable parameters for properly exercising shoulder flexion. The value of the shoulder alignment is displayed on the metric view of shoulder alignment, in this case outside the target parameters, and the lateral goniometer is highlighted in a color indicating an outside target parameter condition, in this example red.

[0415] As the present invention Figure 17FIG. 1 schematically illustrates a screen view comprising a main view displaying a video of an object, generated by the main view visualization module 9034, and a digitally generated 3D anatomical view generated by the 3D view module 9031. The main view occupies a first area of ​​the screen, and the 3D view occupies a second area of ​​the screen. The 3D view is generated externally from the prior art system. The WOLAR session manager module 9007 sends data describing the desired 3D view to a known 3D view generator, including data describing: the type of motion being performed; the individual anatomical features desired to be displayed, such as specific muscles and bones desired in the 3D view; and data describing the relative angles and orientations of each anatomical feature in a second 3D coordinate space. The known 3D view generation module returns a rendered image to the WOLAR session manager, which is then displayed by the 3D view visualization module, generating a visible screen display. As the user moves their arm in real time, the 3D view is continuously updated and refreshed at 60 frames per second, so that the anatomical representation provided by the 3D view follows the motion of the object in real time, employing the same or substantially the same positions and angles of the anatomical features as the subject.

[0416] As the present invention Figure 18 FIG2 schematically illustrates an example of a progress report generated by the report analysis controller module 9025, in this example a shoulder abduction progress report. The progress report includes three graphical displays corresponding to:

[0417] Range - a graphical display of the angular range of motion of an anatomical feature on the vertical axis (y-axis) relative to time on the horizontal axis;

[0418] Shoulder Alignment – ​​A graphical display of shoulder alignment angle on the vertical axis, versus time on the horizontal axis;

[0419] Spinal Alignment – ​​Graphical display of spinal alignment angle on the vertical axis, and time on the horizontal axis.

[0420] For each graphical display, a horizontally moving vertical cursor tracks the instantaneous value of the parameter being measured and displays the numerical value of the parameter. Other metrics generated by the metric view component 9035 are also displayed, including date, time, range target, maximum range, and joint (muscle or muscle group connected by the joint).

[0421] As the present invention Figure 19As shown, a graphical report containing data generated by the report analysis controller 9025 is schematically shown, and the display of the graphical report is generated by the assessment report visualization module 9032. The graphical report in this example includes a two-dimensional chart with a horizontal time axis (x-axis) and a vertical movement angle axis (y-axis). As the subject performs the exercise in real time, individual measurements of the angles of the body parts (in this case, the subject's arms) are plotted at periodic time intervals during the exercise. The report analysis controller provides all the basic data parameters, and the assessment report visualization module 9032 inserts the data into a predetermined report format, an example of which is shown in FIG. Figure 19 As shown in the figure, a subroutine can be applied to connect the data points with lines to create a line graph. Alternatively, the assessment report visualization module can have other pre-set report formats, such as a bar chart format.

[0422] Additional data that can be visualized on the graphical reports includes:

[0423] The name of the movement or exercise, such as "shoulder abduction"

[0424] ·date

[0425] ·time

[0426] Range goals, measured in degrees, are the ideal range of motion for a specific sport or exercise;

[0427] Maximum range – the maximum range of motion the subject actually achieved during the session;

[0428] Joint – the name of a muscle or muscle group that is connected by a joint during movement, such as the glenohumeral muscle;

[0429] Initial range – the initial range of motion achieved during the exercise;

[0430] Current Range - The current range of motion achieved during the workout.

[0431] Improvements and Changes

[0432] In the current best mode implementation, sessions are not stored in a database and the data is deleted when the session ends. However, in an alternative embodiment, the WOLAR Session Manager can be connected to the device's communication port to wirelessly transmit all session data to a remote data storage device or remote database for remote storage and subsequent processing.

[0433] In the best mode currently, the device is optimized for use on a tablet-type handheld computing platform. However, in general, the specific method of the present invention can be used on a computer having a computer such as the present invention. Figure 8The basic components shown in the figure can be executed on any hardware platform, as long as the data connection speed in the computing platform is fast enough and has a high enough bandwidth. Figure 9 The modules shown may be implemented on a distributed computing platform.

[0434] In the above embodiments and methods, examples of human subjects are shown, but the embodiments and methods can be used in veterinary surgery, where appropriate variations of individual movements and exercise types are stored in the medical database 9020.

[0435] advantage

[0436] The above specific embodiment has the following advantages compared with various goniometers in the prior art:

[0437] - With the presently presented embodiments and methods, there is effectively an easy-to-use plug-and-play system for making range of motion measurements;

[0438] - All measurements required to determine the range of motion of a limb or joint are performed by a single device;

[0439] - The device disclosed herein does not have to be strapped to, resting on, or otherwise attached to the person whose range of motion is to be determined;

[0440] - The device disclosed in the present invention can be used by a single user who needs to determine the range of motion;

[0441] - More conveniently, the device disclosed herein can be operated by a second person, who does not necessarily have to be a qualified medical professional;

[0442] - Compared to prior art electronic goniometer devices which require a more lengthy setup and initial reference process, the use of the device disclosed in the present invention requires minimal setup process;

[0443] - Due to the minimal setup process, the learning curve for users determining how to use specific embodiments of the present disclosure is short, and users can be up and running using these embodiments very quickly with little or no training.

[0444] The overcompensation control functionality described herein allows embodiments to determine whether an exercise or movement was performed correctly. Previously, in the prior art, only a doctor or physical therapist could determine whether a subject performed an exercise or movement correctly. Prior art electronic goniometers do not provide the ability to determine whether a subject performed an exercise or movement correctly and do not collect sufficient information to make such an assessment.

[0445] - For each type of exercise or sport, multiple parameters can be displayed simultaneously in real time using a variety of visual displays (e.g., graphical displays, odometer-type displays, and protractor displays), thereby achieving ease of use, enhanced information availability, and enhanced information visualization compared to prior art goniometer devices;

[0446] Motion capture, as a technology concept, has been known for many years, but it typically requires a studio with tracking monitors and a body suit equipped with sensors. Previously, it had not been possible to implement it in a portable, handheld device for goniometer measurement, allowing the measurement of motion parameters of humans or animals on a single device, without any setup or user expertise.

Claims

1. A method for performing angle measurements between anatomical features of a human subject using a goniometer by processing data describing the anatomical features of the human subject, characterized in that The data includes a plurality of point coordinates in a first three-dimensional coordinate space, wherein the plurality of point coordinates represent anatomical features of the object; Here’s how: capturing a two-dimensional video image of the object in a first three-dimensional coordinate space; determining the position of a three-dimensional point in a first three-dimensional coordinate space by calculating the vertical and horizontal angles relative to the centerline of the light detection and ranging device and the time required to reflect a transmitted pulse, the transmitted pulse giving the distance between the point and the light detection and ranging device; Transforming a plurality of three-dimensional coordinates in a first three-dimensional coordinate space into a plurality of point coordinates in a corresponding second three-dimensional coordinate space; determining one or more geometric parameters of coordinates of a plurality of points in a second three-dimensional coordinate space; identifying anatomical features from determined geometric parameters; Divide the coordinates of multiple points into point groups, each point group represents a discrete anatomical feature; comparing the determined geometric parameters with sets of predetermined geometric parameters stored in a database, each set of predetermined geometric parameters corresponding to a respective pre-stored motion type for the identified anatomical feature stored in the database; and identifying a motion type from the pre-stored motion types for the identified anatomical feature based on a result of the comparison; Generate a protractor in a second three-dimensional coordinate space that moves in real time with the object's motion; Overlay the protractor on the video image; The principal plane of the protractor in the second three-dimensional coordinate space is consistent with the plane where the motion trajectory of a group of point coordinates representing anatomical features in the second three-dimensional coordinate space is located.

2. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 1, characterized in that: The process of determining one or more geometric parameters of the coordinates of a plurality of points includes determining the following parameters: Angles between pairs of point coordinates; A line that coincides with a set of point coordinates; The angle between two different sets of point coordinates; Relative motion between two different sets of point coordinates; The movement speed of a single point coordinate in the second three-dimensional coordinate space; The movement speed of each set of point coordinates in the second three-dimensional coordinate space; The relative movement speed between each group of coordinates; The direction of the line that coincides with the set of point coordinates; The direction of each set of point coordinates in the second three-dimensional coordinate space; The rotation direction of each set of point coordinates in the second three-dimensional coordinate space; The rotation speed of each set of point coordinates in the second three-dimensional coordinate space; Translational motion of a single point in the second three-dimensional coordinate space; The translational motion of each set of point coordinates in the second three-dimensional coordinate space.

3. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 1, wherein: The anatomical features represented by the point coordinates include: the subject's skeletal joints; a single limb of the subject; Individual body parts of the subject; Individual bones of the subject; The object's bone grouping.

4. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 1, wherein: The method includes displaying the angle between at least two sets of point coordinates in real time.

5. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 1, wherein: The following steps are involved: comparing the pose of the object by comparing the orientation of the first set of three-dimensional coordinates representing the anatomical feature to a stored reference orientation for the anatomical feature; as well as Relative to the reference direction, it is determined whether the direction of the set of three-dimensional coordinates exceeds a predetermined direction range.

6. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 1, wherein: Here’s how: comparing the relative positions of the identified groups of point coordinates with relative position data stored in a reference database; Each pre-stored position data stored in the reference database is associated with a corresponding posture or movement exercise of the object.

7. A method for performing goniometer-assisted angle measurement between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, characterized in that: The pre-stored position data in the reference database is arranged into a set of predetermined profiles, each profile representing a posture or a movement exercise.

8. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: The pre-stored position data in the reference database includes angle data.

9. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: This includes comparing the motion of each point coordinate in the set of point coordinates identified in the three-dimensional space with reference motion data stored as a record in a reference database.

10. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 9, characterized in that: Comparison refers to comparing a set of parameters describing the motion of the identified set of point coordinates with a corresponding reference set of predetermined parameters, the predetermined parameters being as follows: Movement speed; direction of movement; Movement distance; Movement angle; acceleration; Deceleration.

11. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: This includes comparing the relative directions of the individual point coordinates in the identified set of point coordinates with predetermined directions stored in a reference database.

12. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: Also includes: Analyze the motion of the first identified set of point coordinates; analyzing the motion of the second identified set of point coordinates; comparing the motion of the first and second identified sets of point coordinates to determine relative motion; as well as comparing the relative motion between the first and second identified sets of point coordinates to a plurality of predetermined relative motion records, each record corresponding to a particular motion; as well as Based on the comparison, one of a plurality of predetermined motion types is identified.

13. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: include: determining a motion path of the identified set of point coordinates; as well as Generates a protractor that follows the same motion path as the identified set of point coordinates.

14. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: The protractor comprises an arc of a semicircle in a second three-dimensional coordinate space.

15. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 14, characterized in that: The radial extension of the goniometer is directed in the same direction as the principal directions of the coordinate set of a point representing the anatomical feature.

16. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: The intended target angle is displayed as a strip or line.

17. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 6, wherein: Also includes: inputting data describing a three-dimensional model of internal anatomical features corresponding to external anatomical features; and Generates rendered images of three-dimensional models of internal anatomical features.

18. A method for performing goniometer-based angle measurements between anatomical features of a human subject by processing data describing the anatomical features of the human subject according to claim 17, wherein: Also included is an orientation angle of the three-dimensional model of a specified internal anatomical feature; and The specified angle is updated in real time, which is equivalent to the real-time movement angle of the coordinate group of a point being consistent with the actual anatomical features of the object.

19. A handheld portable electronic goniometer device for measuring angles between anatomical features of a human subject using a goniometer, characterized in that: include: a camera for capturing video images; a light detection and ranging instrument for capturing a stream of point coordinates in a first three-dimensional coordinate space, the point coordinates representing anatomical features of the object; means for analyzing the geometry of a plurality of point coordinates to determine angles between the plurality of point coordinates; a database for storing a plurality of predetermined records, each record comprising information regarding an angle of motion of an anatomical feature; means for matching the angles of motion of the plurality of point coordinates with angles in predetermined records of a database; A device for generating a protractor for indicating a certain angle between the coordinates of a plurality of points; wherein the goniometer is operable to: determining the position of a three-dimensional point in a first three-dimensional coordinate space by calculating the vertical and horizontal angles relative to the centerline of the light detection and ranging device and the time required to reflect a transmitted pulse, the transmitted pulse giving the distance between the point and the light detection and ranging device; Transforming a plurality of three-dimensional coordinates in a first three-dimensional coordinate space into a plurality of point coordinates in a corresponding second three-dimensional coordinate space; determining one or more geometric parameters of coordinates of a plurality of points in a second three-dimensional coordinate space; identifying anatomical features from determined geometric parameters; Divide the coordinates of multiple points into point groups, each point group represents a discrete anatomical feature; comparing the determined geometric parameters with sets of predetermined geometric parameters stored in a database, each set of predetermined geometric parameters corresponding to a respective pre-stored motion type for the identified anatomical feature stored in the database; and identifying a motion type from the pre-stored motion types for the identified anatomical feature based on a result of the comparison; Generate a protractor in a second three-dimensional coordinate space that moves in real time with the object's motion; Overlay the protractor on the video image; The principal plane of the protractor in the second three-dimensional coordinate space is consistent with the plane where the motion trajectory of a group of point coordinates representing anatomical features in the second three-dimensional coordinate space is located.

20. The handheld portable electronic goniometer device according to claim 19, characterized in that: A detection means is included when the determined angle is outside a predetermined angle range stored in a predetermined record of a database.

21. A handheld portable electronic goniometer device according to claim 19 or 20, characterized in that: Means are included for sending the angle data to an animation generator for generating an animated image of a structure identified in a predetermined record of a database.

22. The handheld portable electronic goniometer device according to claim 19, characterized in that: A report controller is also included for generating a visual report of the determined angle over time.

Citation Information

Patent Citations

  • Modular mobile connected pico projectors for a local multi-user collaboration

    CN103460255A

  • Image-based measurement tools

    US20140300722A1

  • Training system and methods for designing, monitoring and providing feedback of training

    US20170368413A1

  • Method and system for motion capture to enhance performance in an activity

    WO2019183733A1