DE102019120655A1 - Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes - Google Patents

Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes Download PDF

Info

Publication number
DE102019120655A1
DE102019120655A1 DE102019120655.3A DE102019120655A DE102019120655A1 DE 102019120655 A1 DE102019120655 A1 DE 102019120655A1 DE 102019120655 A DE102019120655 A DE 102019120655A DE 102019120655 A1 DE102019120655 A1 DE 102019120655A1
Authority
DE
Germany
Prior art keywords
training
user
data
exercise
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102019120655.3A
Other languages
German (de)
Inventor
Anmelder Gleich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE102019120655.3A priority Critical patent/DE102019120655A1/en
Publication of DE102019120655A1 publication Critical patent/DE102019120655A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0002Remote monitoring of patients using telemetry, e.g. transmission of vital signals via a communication network
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1123Discriminating type of movement, e.g. walking or running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/30ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to physical therapies or activities, e.g. physiotherapy, acupressure or exercising
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/50ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for simulation or modelling of medical disorders
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2503/00Evaluating a particular growth phase or type of persons or animals
    • A61B2503/10Athletes
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2505/00Evaluating, monitoring or diagnosing in the context of a particular type of medical care
    • A61B2505/09Rehabilitation or training
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/0205Simultaneously evaluating both cardiovascular conditions and different types of body conditions, e.g. heart and respiratory condition

Abstract

Ein Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung, insbesondere für Sport- und Rehabilitationszwecke, weist folgende Schritte auf: Erfassen von Nutzerdaten über Nutzereingabe und Sensoren; Analyse der Nutzerdaten und Ermitteln von errechneten Körper- und Bewegungsdaten; Auswahl von mit den errechneten Körper- und Bewegungsdaten korrespondierenden Trainings-Daten aus einem ersten Datenspeicher, wobei die physiologische Wirkung auf den Nutzer ein Auswahlkriterium ist; und Erzeugen einer Trainings-Spezifikation; Bereitstellen von Übungsmodulen (Übungsmoduls) in einem zweiten Datenspeicher; Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der Trainings-Spezifikation; Erzeugen einer virtuellen Umgebung aus einer vom Nutzer gewählten Simulationslogik und Umgebungs-Visualisierung und 3D Modellierung; Starten des Trainings; a) Erfassen von Nutzerinformationen, wie Körperdaten und Bewegungsparameter, während des Trainings; b) IST/SOLL Vergleich der erfassten Nutzerinformationen mit den errechneten Daten; c) Anpassen der Trainings-Spezifikation an die SOLL Daten; d) Anpassen der Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der angepassten Trainings-Spezifikation; e) Anpassen der virtuellen Umgebung an die geänderten Übungsmodule; f) Ausführen der angepassten Kombination und Anordnung der ausgewählten Übungsmodule und Sprung zu Schritt i). Ferner wird ein System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung angegeben. Hierdurch werden Trainingsabläufe anhand der gewünschten Wirkung erzeugt und die Simulation individuell anhand der Nutzerinformation während des Trainings angepasst.A method for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes, has the following steps: Acquisition of user data via user input and sensors; Analysis of user data and determination of calculated body and movement data; Selection of training data corresponding to the calculated body and movement data from a first data memory, the physiological effect on the user being a selection criterion; and generating a training specification; Provision of exercise modules (exercise module) in a second data memory; Combination and arrangement of the selected exercise modules according to the requirements of the training specification; Generation of a virtual environment from a simulation logic selected by the user and environment visualization and 3D modeling; Start training; a) Acquisition of user information, such as body data and movement parameters, during training; b) ACTUAL / TARGET comparison of the recorded user information with the calculated data; c) Adapting the training specification to the TARGET data; d) Adapting the combination and arrangement of the selected exercise modules according to the specifications of the adapted training specification; e) adapting the virtual environment to the changed training modules; f) Executing the adapted combination and arrangement of the selected exercise modules and jumping to step i). A system for generating individual training sequences in a simulation environment is also specified. In this way, training processes are generated based on the desired effect and the simulation is individually adapted based on the user information during the training.

Description

Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung, insbesondere für Sport- und Rehabilitationszwecke. Die vorliegende Erfindung offenbart ein Verfahren und ein System, das in der Lage ist, maßgeschneiderte, virtuelle Trainingsabläufe in einer Simulationsumgebung zu generieren, die für Trainings- und Rehabilitationszwecke genutzt werden können. Diese Trainingsabläufe in einer Simulationsumgebung werden auf der Grundlage von Eigenschaften sowie Trainings- und Rehabilitationszielen eines Nutzers generiert. Das vorgeschlagene System ist in der Lage, das Training während der Laufzeit noch weiter anzupassen, basierend auf dem analysierten Nutzerverhalten und/oder Nutzerbewegungen.The present invention relates to a method and a system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes. The present invention discloses a method and a system which is able to generate tailor-made, virtual training sequences in a simulation environment which can be used for training and rehabilitation purposes. These training processes in a simulation environment are generated on the basis of properties as well as training and rehabilitation goals of a user. The proposed system is able to further adapt the training during the runtime, based on the analyzed user behavior and / or user movements.

Die Virtual Reality-Technologie existiert bereits seit mehreren Jahrzehnten. Ivan Sutherland baute 1968 das erste Virtual Reality Headmounted- Display (HMD), genannt The Sword of Democles. Seitdem wurde ständig versucht, diese Technologie in Produkte für den Verbraucher umzusetzen. Der Oculus Rift startete 2010 einen neuen Virtual Reality (VR)-Hype. Seitdem haben große Technologieunternehmen wie Facebook mehrere Milliarden Dollar in die Technologie und das Marketing investiert, um den Markt zu vergrößern. Im Vergleich zu früheren Versuchen, diese Systeme zu vermarkten, wurden bereits einige Millionen Geräte wie der Oculus Rift, Oculus Go und Samsung GearVR ausgeliefert. Kunden sind in der Regel Tech-Enthusiasten und Early Adopters. Der aktuelle Markt gliedert sich in drei Segmente: Mobile VR, Standalone VR und High End VR. Mobile VR-Systeme wie das Samsung GearVR erfordern, dass der Nutzer ein Smartphone in das Headset steckt. Das Smartphone dient als Bildschirm zur Darstellung des stereoskopischen Bildes und als Recheneinheit zur Ausführung der VR-Anwendungen. Eigenständige VR-Systeme hingegen können völlig unabhängig arbeiten, da sie über ein integriertes Display und eine Recheneinheit verfügen. High End VR-Systeme haben eine viel bessere Qualität als jedes andere VR-System. Sie sind die einzigen VR-Systeme, die in der Lage sind, 6DOF eines Nutzers zu erfassen. Das bedeutet, dass sie nicht nur die Ausrichtung des Kopfes des Nutzers erfassen, sondern auch die dreidimensionale Position jedes Trackers wie Headset und Handsteuerung. High End VR-Systeme können 2 Dinge ziemlich gut: 1. sie können den Körper des Nutzers erfassen 2. sie können den Nutzer in eine virtuelle Welt eintauchen, die von einer Computereinheit erzeugt wird und den Nutzer dazu animieren, bestimmte Aktionen mit seinem Körper auszuführen. Diese beiden Möglichkeiten sind der Grund, warum sich diese VR-Systeme sehr gut für Trainings- und Rehabilitationszwecke (z.B. Training oder Rehabilitation) eignen.Virtual reality technology has been around for several decades. In 1968 Ivan Sutherland built the first Virtual Reality Headmounted Display (HMD), called The Sword of Democles. Since then, attempts have been made to translate this technology into consumer products. The Oculus Rift started a new Virtual Reality (VR) hype in 2010. Since then, big tech companies like Facebook have invested billions of dollars in technology and marketing to grow the market. Compared to previous attempts to market these systems, several million devices such as the Oculus Rift, Oculus Go and Samsung GearVR have already been shipped. Customers are typically tech enthusiasts and early adopters. The current market is divided into three segments: Mobile VR, Standalone VR and High End VR. Mobile VR systems like the Samsung GearVR require the user to insert a smartphone into the headset. The smartphone serves as a screen for displaying the stereoscopic image and as a computing unit for executing VR applications. Stand-alone VR systems, on the other hand, can work completely independently, as they have an integrated display and a processing unit. High end VR systems are much better quality than any other VR system. They are the only VR systems that are able to capture 6DOF of a user. This means that they not only detect the orientation of the user's head, but also the three-dimensional position of each tracker such as the headset and hand control. High end VR systems can do two things pretty well: 1. They can capture the body of the user 2. They can immerse the user in a virtual world that is generated by a computer unit and encourage the user to perform certain actions with his body . These two possibilities are the reason why these VR systems are very well suited for training and rehabilitation purposes (e.g. training or rehabilitation).

Eine Reihe von Unternehmen haben bereits Virtual Reality (VR) Trainings Erlebnisse in Form von VR-Simulationen geschaffen, die den Nutzer bewegen. Diese Simulationen haben sich bereits als effektives Training in Bezug auf verbrannte Kalorien erwiesen. Diese Simulationen haben jedoch keinerlei Kontrolle darüber, was mit dem Nutzer vor sich geht. Bei einigen der Simulationen bewegt sich der Nutzer nach dem Zufallsprinzip. Andere erwarten, dass der Nutzer einer vordefinierten Choreographie folgt, die manuell generiert wird. Beide Arten von Simulationen erlauben es nicht, dass das Simulation für den Nutzer in Bezug auf die Intensität der Muskelauslastung, das Drehmoment, das für bestimmte Gelenke gilt und Schäden verursachen kann, die gewünschte Menge an verbranntem kcal, Reaktions- und Geschwindigkeitsverbesserungen usw. angepasst wird. Da die choreografischen Simulationen auch manuell generiert werden, steigt der Aufwand für den Aufbau dieser Simulationen mit einer höheren Anzahl von verschiedenen Bewegungen und zunehmender Komplexität der Simulation massiv an.A number of companies have already created virtual reality (VR) training experiences in the form of VR simulations that move the user. These simulations have already proven to be an effective workout on calories burned. However, these simulations have no control whatsoever over what is going on with the user. In some of the simulations, the user moves at random. Others expect the user to follow a predefined choreography that is generated manually. Both types of simulations do not allow the simulation to be adjusted for the user in terms of the intensity of muscle utilization, the torque that applies to certain joints and can cause damage, the desired amount of calories burned, improvements in reaction and speed, etc. . Since the choreographic simulations are also generated manually, the effort for setting up these simulations increases massively with a higher number of different movements and increasing complexity of the simulation.

Diese Simulationen erfordern auch, dass der Nutzer Wissen über Trainings- und Rehabilitationsaspekte vermittelt, um das Training zu planen und zu beobachten und Verletzungen während des Trainings zu vermeiden. Im Falle einer Rehabilitation muss der Nutzer wissen, was genau seinen Fortschritt unterstützt, das Simulation weiß nichts über seinen Zustand.These simulations also require that the user impart knowledge about training and rehabilitation aspects in order to plan and observe the training and avoid injuries during the training. In the case of rehabilitation, the user has to know what exactly supports his progress, the simulation knows nothing about his condition.

Um diese Nachteile zu überwinden, wurden bereits weitere Anstrengungen unternommen.Further efforts have been made to overcome these disadvantages.

So offenbart die US 2019046859 A1 ein Verfahren, ein Computersystem und ein Computerprogrammprodukt für das Sporttraining auf einem Augmented-Reality (AR)-Gerät oder einem Virtual-Reality-Gerät. Dabei kann das System das Erfassen einer Vielzahl von Nutzerbewegungsdaten unter Verwendung eines oder mehrerer Sensoren umfassen. Ferner kann das System auch ein Messen von Daten eines Nutzerkörpers und einer Blickposition basierend auf der Vielzahl von erfassten Nutzerbewegungsdaten umfassen. Es kann ferner das Berechnen einer Körperpositionsdifferenz durch Vergleichen der gemessenen Körper- und Blickposition des Nutzers mit einer von Experten spezifizierten Körperpositionssequenz umfassen. Das System kann auch das Bestimmen einer Körperpositionsqualitätsschwelle umfassen, die auf der Grundlage der berechneten Körperpositionsdifferenz nicht erfüllt ist. Die Ausführungsform kann ferner das Erzeugen eines Trainingsprogramms basierend auf der verglichenen berechneten Körperpositionsdifferenz umfassen.So reveals the US 2019046859 A1 a method, a computer system and a computer program product for sports training on an augmented reality (AR) device or a virtual reality device. The system can include the acquisition of a large number of user movement data using one or more sensors. Furthermore, the system can also include a measurement of data of a user body and a gaze position based on the plurality of captured user movement data. It can further include calculating a body position difference by comparing the measured body and gaze position of the user with a body position sequence specified by experts. The system may also include determining a body position quality threshold based on the calculated Body position difference is not met. The embodiment may further include generating an exercise program based on the compared, calculated body position difference.

Die WO 2004109575 A1 offenbart ein System und ein Verfahren zum Vorgeben von Trainingsprogrammen, bei denen Trainingsgeräte derart gesteuert werden, um Fehler für das vorgegebene Trainingsprogramm zu korrigieren, indem die Pulsfrequenz gemessen wird, wenn der Übende mit Trainingsgeräten trainiert und der Übende gemäß einem aktualisierten Trainingsprogramm zum Training geführt wird geeignet für die gemessene Trainings durch tatsächliche Übungen. Das Trainingsprogramm-Vergabesystem misst die Pulsfrequenz eines Trainierenden, um ein Trainingsprogramm für den Trainierenden vorzugeben, und umfasst: Pulsfrequenzmessmittel zum Messen der Pulsfrequenz des Trainierenden; und Trainingsprogrammaktualisierungsmittel zum Berechnen der maximalen Sauerstoffaufnahmemenge basierend auf der von den Pulsfrequenzmessmitteln gemessenen Pulsfrequenz und Aktualisieren des Trainingsprogramms für das Trainingsgerät basierend auf der maximalen Sauerstoffaufnahmemenge.The WO 2004109575 A1 discloses a system and a method for specifying exercise programs in which exercise machines are controlled to correct errors for the specified exercise program by measuring the pulse rate when the exerciser is exercising with exercise machines and the exerciser is being guided to exercise according to an updated exercise program suitable for measured workouts through actual exercises. The training program allocation system measures the pulse rate of a trainee in order to specify a training program for the trainee, and comprises: pulse rate measuring means for measuring the pulse rate of the trainee; and training program update means for calculating the maximum oxygen intake amount based on the pulse rate measured by the pulse rate measuring means and updating the training program for the exercise machine based on the maximum oxygen intake amount.

Die WO2007058512 A1 offenbart einen Gangtrainer, der ein Trainingsprogramm bereitstellt, und ein Trainingsprogramm-System, das den Gangtrainer verwendet. Der Gangtrainer umfasst ein Display, Pedale, auf denen die Füße des Nutzers platziert sind, eine Steuereinheit, die physische Informationen über den physischen Zustand des Nutzers empfängt, während sich die Pedale bewegen, ein optimales Übungsprogramm basierend auf den physischen Informationen definiert und das vordefinierte Übungsprogramme auf dem Display bereitstellt. Die Steuereinheit greift über ein Netzwerk auf einen Server zu, der zu einer Rehabilitationsorganisation gehört, und definiert das Übungsprogramm mit Hilfe der vom Server erhaltenen Rehabilitationsexpertise. Da das für den Nutzer geeignete Übungsprogramm bereitgestellt wird, wird die Übungseffizienz maximiert und mögliche gefährliche Rehabilitationssituationen können verhindert werden.The WO2007058512 A1 discloses a gait trainer that provides an exercise program and an exercise program system that uses the gait trainer. The gait trainer includes a display, pedals on which the user's feet are placed, a control unit that receives physical information about the physical condition of the user while the pedals are moving, defines an optimal exercise program based on the physical information, and the predefined exercise programs on the display. The control unit accesses a server belonging to a rehabilitation organization via a network and defines the exercise program with the aid of the rehabilitation expertise received from the server. Since the exercise program suitable for the user is provided, the exercise efficiency is maximized and possible dangerous rehabilitation situations can be prevented.

Die KR 20020030755 A offenbart ein Laufbandsystem mit Online Rehabilitationsdiagnosefunktion. Dabei wird ein Laufbandsystem bereitgestellt, bei dem der Fußboden als Sensor fungiert und die physischen Daten des Nutzers an den Server übermittelt. Die Rehabilitationsdaten des Nutzers werden vom Online-Computer beantwortet, wodurch das physische Training und das Rehabilitationsmanagement des Nutzers systematisch und kontinuierlich unterstützt werden. Mit den Daten kann der Nutzer das für den Nutzer geeignete Übungsprogramm auswählen. Das System umfasst: einen Programmverbindungsschritt, in dem sich der Nutzer in das physische Trainingsprogramm des Computers einloggt, der mit dem Laufband über eine Tastatur verbunden ist; einen Eingabeschritt von Basisdaten zum Ausführen des physischen Trainingsprogramms, wobei Nutzergewicht und Körperfettinformation durch die Boden- und Konsoleneinheit des Laufbandes eingegeben werden; einen Schritt zum Anbringen eines Impulssensors zum Anbringen des Impulssensors am Körper oder an der Führungsstange, um die Herzfrequenz des Nutzers automatisch an den Computer zu liefern; einen Schritt zum Steuern der Neigung des Bodens, wobei die Neigung des Bodens des Laufbandes automatisch gesteuert wird, um sich an den Straßenzustand der virtuellen Realität anzupassen, der durch das physische Trainingsprogramm bestimmt wird; einen Sportdaten-Messschritt, bei dem die Bewegungsgeschwindigkeit des Nutzers durch das Laufband, die durch die Umdrehung des Laufbands erfasst wird, und die durch den Pulssensor erfasste Herzfrequenz an den Computer gesendet werden; und einen Antwortschritt der Rehabilitationsdiagnose und des physischen Zustands des Nutzers vom zentralen Verwaltungsserver zum Computer des Nutzers durch Analysieren der Sportdaten des Tages.The KR 20020030755 A discloses a treadmill system with online rehabilitation diagnostic functionality. A treadmill system is provided in which the floor acts as a sensor and transmits the user's physical data to the server. The rehabilitation data of the user are answered by the online computer, whereby the physical training and the rehabilitation management of the user are systematically and continuously supported. With the data, the user can select the exercise program that is suitable for the user. The system comprises: a program connection step in which the user logs into the physical exercise program of the computer connected to the treadmill via a keyboard; an inputting step of basic data for executing the physical exercise program, wherein user weight and body fat information are inputted through the floor and console unit of the treadmill; a pulse sensor attaching step of attaching the pulse sensor to the body or the guide rod to automatically supply the user's heart rate to the computer; a step of controlling the inclination of the floor, wherein the inclination of the floor of the treadmill is automatically controlled to adapt to the virtual reality road condition determined by the physical exercise program; a sports data measuring step in which the moving speed of the user through the treadmill detected by the rotation of the treadmill and the heart rate detected by the pulse sensor are sent to the computer; and a step of responding to the rehabilitation diagnosis and the physical condition of the user from the central management server to the user's computer by analyzing the sports data of the day.

Es ist daher die Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und ein verbessertes System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung für Trainings- und Rehabilitationszwecke zur Verfügung zu stellen. Das Ziel der vorliegenden Erfindung ist es, Verbesserungen in Bezug auf Anpassung, Steuerung, Skalierung, Komplexität und Nutzerfreundlichkeit eines solchen Verfahrens und Systems bereitzustellen. Ferner sollen Trainingsabläufe anhand der gewünschten Wirkung erzeugt und die Simulation individuell anhand der Nutzerinformation während des Trainings angepasst werden.It is therefore the object of the present invention to provide an improved method and an improved system for generating individual training sequences in a simulation environment for training and rehabilitation purposes. The aim of the present invention is to provide improvements in terms of customization, control, scaling, complexity and user-friendliness of such a method and system. Furthermore, training processes should be generated based on the desired effect and the simulation should be individually adapted based on the user information during the training.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1, eine System mit den Merkmalen des Anspruchs 12 und ein Computerprogramm mit den Merkmalen des Anspruchs 16 gelöst. Vorteilhafte Weiterbildungen und Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben. Hierdurch werden Trainingsabläufe anhand der gewünschten Wirkung erzeugt und die Simulation individuell anhand der Nutzerinformation während des Trainings angepasst. Dies kann insbesondere dann von Vorteil sein, wenn aufgrund von körperlichen Einschränkungen oder Behinderungen die Ausführung der Übungen nicht den den berechneten Erwartungen entspricht und damit die gewünschte Wirkung möglicherweise nicht oder nicht in vollem Umfang eintritt.This object is achieved by a method with the features of claim 1, a system with the features of claim 12 and a computer program with the features of claim 16. Advantageous developments and embodiments of the invention are specified in the dependent claims. In this way, training processes are generated based on the desired effect and the simulation is individually adapted based on the user information during the training. This can be of particular advantage if, due to physical limitations or disabilities, the execution of the exercises does not correspond to the calculated expectations and the desired effect may not or not fully occur.

Die vorliegende Erfindung offenbart ein Verfahren und ein System, das in der Lage ist, individuelle Trainingsabläufe in einer Simulationsumgebung für Trainings- und Rehabilitationszwecke zu generieren. Dabei werden die Trainingseinheiten auf der Grundlage von Eigenschaften und Trainings- und Rehabilitationszielen eines Nutzers vom System automatisch angepasst und können die Bewegungen und damit die Art und Weise, wie die Trainingsabläufe in der Simulationsumgebung den Körper des Nutzers beeinflusst, aktiv steuern. Die Erfindung ermöglicht eine Skalierung der Komplexität dieser Trainingsabläufe in der Simulationsumgebung und übernimmt alle Planungs- und Steuerungsaktivitäten, die domänenspezifisches Wissen erfordern, wie z.B. Trainings- und Rehabilitationswissen, und die Erzeugung der Simulationsumgebung.The present invention discloses a method and a system which is able to generate individual training sequences in a simulation environment for training and rehabilitation purposes. The training units are automatically adapted by the system on the basis of properties and training and rehabilitation goals of a user and can actively control the movements and thus the way in which the training processes in the simulation environment influence the body of the user. The invention enables the complexity of these training processes to be scaled in the simulation environment and takes over all planning and control activities that require domain-specific knowledge, such as training and rehabilitation knowledge, and the generation of the simulation environment.

Das erfindungsgemäße Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung, insbesondere für Sport- und Rehabilitationszwecke, weist dabei folgende Schritte auf: Erfassen von Nutzerdaten über Nutzereingabe und/oder Sensoren; Hierbei kommen könnten beispielsweise alle Nutzerdaten Daten, wie beispielsweise Größe, Gewicht, Körperabmessungen, Puls, Blutdruck, Blutsauerstoff, Lactatwert, etc. automatisch erfasst werden. Es ist aber auch eine Kombination aus Nutzereingabe in eine entsprechende Eingabemaske und Sensorerfassung möglich; Analyse der Nutzerdaten und Ermitteln von errechneten Körper- und Bewegungsdaten; Dabei kann bei der Berechnung der der Bewegungsdaten auf gespeicherte Datensätze zurückgegriffen werden, die bereits Bewegungsdaten in Korrelation zu Körpermaßen enthalten; Auswahl von mit den errechneten Körper- und Bewegungsdaten korrespondierenden Trainings-Daten aus einem ersten Datenspeicher, wobei die physiologische Wirkung auf den Nutzer ein Auswahlkriterium ist; und Erzeugen einer Trainings-Spezifikation; Die Auswahl der Trainingsdaten erfolgt automatisch, wobei beispielsweise die zu beanspruchenden Muskel und eine entsprechende Beanspruchungsdauer anhand von gespeicherten Beanspruchungs-/Wirkung Daten erfolgt; Bereitstellen von Übungsmodulen in einem zweiten Datenspeicher; Hier können beispielsweise konkrete Übungen für eine definierte Muskelgruppe als Modul abgelegt sein; Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der Trainings-Spezifikation; Erzeugen einer virtuellen Umgebung, Umgebungs-Visualisierung und 3D Modellierung aus einer vom Nutzer gewählten Simulationslogik; Dabei kann die Simulation beispielsweise ein Rollenspiel oder beispielsweise ein virtueller Trainer/Avatar sein; die Simulation kann dabei beispielsweise zur Motivationssteigerung, intuitiven Erläuterung von Übungen und Erzeugen einer besseren Körperspannung dienen; Starten des Trainings; a) Erfassen von Nutzerinformationen, wie Körperdaten und Bewegungsparameter, während des Trainings; Hier kann die Erfassung beispielsweise über am Körper angebrachte Sensoren, über optische Bewegungsrenderer oder ähnliches erfolgen; b) IST/SOLL Vergleich der erfassten Nutzerinformationen mit den errechneten Daten; c) Anpassen der Trainings-Spezifikation an die SOLL Daten; d) Anpassen der Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der angepassten Trainings-Spezifikation; e) Anpassen der virtuellen Umgebung an die geänderten Übungsmodule; f) Ausführen der angepassten Kombination und Anordnung der ausgewählten Übungsmodule und Sprung zu Schritt a). Hierdurch wird ein geschlossener Regelkreis erzeugt, der zur Optimierung des Verfahrens, zur Vermeidung von Verletzungen des Nutzers und zur Anpassung an spezielle Bedürfnisse bei Nutzern mit körperlichen Einschränkungen oder Behinderungen beiträgt.The method according to the invention for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes, has the following steps: acquisition of user data via user input and / or sensors; Here, for example, all user data, such as height, weight, body dimensions, pulse, blood pressure, blood oxygen, lactate value, etc. could be recorded automatically. However, a combination of user input in a corresponding input mask and sensor detection is also possible; Analysis of user data and determination of calculated body and movement data; When calculating the movement data, it is possible to use stored data records which already contain movement data in relation to body measurements; Selection of training data corresponding to the calculated body and movement data from a first data memory, the physiological effect on the user being a selection criterion; and generating a training specification; The selection of the training data takes place automatically, for example the muscles to be used and a corresponding duration of use being made on the basis of stored stress / effect data; Providing exercise modules in a second data memory; Here, for example, specific exercises for a defined muscle group can be stored as a module; Combination and arrangement of the selected exercise modules according to the requirements of the training specification; Generation of a virtual environment, environment visualization and 3D modeling from a simulation logic selected by the user; The simulation can be, for example, a role play or, for example, a virtual trainer / avatar; The simulation can be used, for example, to increase motivation, intuitively explain exercises and create better body tension; Start training; a) Acquisition of user information, such as body data and movement parameters, during training; Here, the detection can take place, for example, via sensors attached to the body, via optical motion renders or the like; b) ACTUAL / TARGET comparison of the recorded user information with the calculated data; c) Adapting the training specification to the TARGET data; d) Adapting the combination and arrangement of the selected exercise modules according to the specifications of the adapted training specification; e) adapting the virtual environment to the changed training modules; f) Executing the adapted combination and arrangement of the selected exercise modules and jumping to step a). This creates a closed control loop that contributes to the optimization of the method, to avoiding injuries to the user and to adapting to special needs of users with physical limitations or disabilities.

Das erfindungsgemäße System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung weist zumindest einen Prozessor, Einrichtungen zum Erfassen von Nutzerdaten, einen ersten Datenspeicher mit Trainingsdaten, die mit Nutzerdaten korrespondieren, einen zweiten Datenspeicher mit Übungsmodulen, Virtuel Reality- bzw. Augmented Reality-Hardware zur Ausgabe der dynamischen Simulationsumgebung, Sensoren und/oder eine Bewegungserfassungseinrichtung zum Erfassen von Nutzerinformationen, wie Körperdaten und Bewegungsdaten während des Trainings, auf.The system according to the invention for generating individual training sequences in a simulation environment has at least one processor, devices for capturing user data, a first data memory with training data that corresponds to user data, a second data memory with exercise modules, virtual reality or augmented reality hardware for outputting the dynamic simulation environment, sensors and / or a movement detection device for recording user information, such as body data and movement data during training.

Erfindungsgemäß kann ein Managementsystem in ein Softwaresystem implementiert sein. Das Managementsystem holt Daten über den Nutzer, anhand dieser Daten kann es ein individuelles Training generieren. Das Training besteht aus wiederverwendbaren Komponenten, die wir Übungsmodule oder Assets nennen. Ein Übungsmodul beschreibt eine Übung und liefert trainings- und rehabilitationsspezifisches Wissen, das sich auf die Übung bezieht (z.B. wie wird sich die Ausführung dieser Übung auf den Körper des Nutzers auswirken?). Basierend auf diesen Werten ist das Managementsystem in der Lage, ein individuelles Training zu generieren. Da dies mit einem Softwaresystem abgewickelt wird, können diese Trainingsabläufe in einer Simulationsumgebung bzw. die Erlebnisse ohne großen Aufwand skaliert werden (logarithmische Wachstumsrate des Entwicklungsaufwands, abhängig von der Komplexität der Erlebnisse). Das domänenspezifische Wissen wird innerhalb der Übungsmodule dargestellt. Somit muss sich der Nutzer um keinen Aspekt des Trainings kümmern. Das Managementsystem ist auch in der Lage, die Bewegungen der Nutzer während der Laufzeit zu berücksichtigen, um die Erlebnisse weiter anzupassen. Dadurch ist das System in der Lage, die Bewegungen des Nutzers ständig zu kontrollieren, um Verletzungen zu vermeiden und ein qualitativ hochwertiges Training zu gewährleisten.According to the invention, a management system can be implemented in a software system. The management system collects data about the user, based on this data it can generate individual training. The training consists of reusable components, which we call exercise modules or assets. An exercise module describes an exercise and provides training and rehabilitation-specific knowledge that relates to the exercise (e.g. how will the execution of this exercise affect the user's body?). Based on these values, the management system is able to generate individual training. Since this is handled with a software system, these training processes can be scaled in a simulation environment or the experiences can be scaled without great effort (logarithmic growth rate of the development effort, depending on the complexity of the experiences). The domain-specific knowledge is presented within the exercise modules. Thus, the user does not have to worry about any aspect of the training. The management system is also able to take into account the movements of the users during the runtime in order to further adapt the experiences. This enables the system to constantly monitor the user's movements in order to avoid injuries and ensure high quality training.

Das System kann im Rahmen von Virtual Reality-Systemen, aber auch von Augmented Reality-Systemen und allen anderen Systemen eingesetzt werden, die in der Lage sind, einem Nutzer virtuelle Trainingsabläufe in einer Simulationsumgebung zu ermöglichen.The system can be used in the context of virtual reality systems, but also augmented reality systems and all other systems that are able to enable a user to perform virtual training processes in a simulation environment.

Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung mehrerer bevorzugter Ausführungsbeispiele der Erfindung anhand der Figuren näher dargestellt. Es zeigt:

  • 1: eine Schnittstelle zur Definition des gewünschten Muskelaufwands und des resultierenden Teils der Nutzerdatendatei, einschließlich der Freiheitsgrade für bestimmte Gelenke, die in einer .json-Datei gespeichert sind;
  • 2: Trainingsdaten, die aus Bewegungserfassungsergebnissen extrahiert und von externen Systemen wie Apple Watch und Fitbit gestreamt werden;
  • 3: Schlüssel der Nutzerdaten und Trainingsdaten werden hinzugefügt, um die Trainingsspezifikation zu generieren;
  • 4: Rückkopplungsschleife
  • 5: Datenformat A beeinflusst die virtuellen Erlebnisse B, welche die Bewegungen C des Nutzers beeinflusst
  • 6: Übungsmoduldatenformat;
  • 7: Bewegungsdaten im .json Datenformat, die eine Bewegung mit Zeitstempeln und 3D-Positionen für eine bestimmte Verbindung beschreiben;
  • 8: Wirkungsdaten in einer .json-Datei mit muskulärer Nutzung und Gelenkbereichen;
  • 9: Übungsmodul-Skript, das es dem Übungsmodul ermöglicht, die Erlebnisse aktiv zu manipulieren;
  • 10: Generierung von Übungsmodulen aus bestehenden Trainingsabläufe in einer Simulationsumgebung, (a) ausgeführter Code innerhalb der Erlebnisse. (b) aufgezeichnete Bewegungen während des Codes werden ausgeführt;
  • 11: Der Nutzer folgt dem gerenderten dreidimensionalen Pfad;
  • 12: Der Nutzer imitiert die virtuelle Person (Spiegel).
  • 13: (A) Nutzer im Stehen, die Kugel nähert sich ihm. (B) Der Nutzer geht in die Hocke, um zu verhindern, dass die Kugel ihn trifft;
  • 14: (A) Das zu boxende Objekt wird dem Nutzer angezeigt. (B) Der Nutzer schlägt das Objekt;
  • 15: Nutzer erreicht Objekt. Das erzeugte Hindernis schränkt die Bewegungsfreiheit ein (d.h. er würde gegen das Hindernis stoßen, wenn er zum Objekt geht);
  • 16: Spezifizierter Pfad und Nutzerpfad im dreidimensionalen Raum;
  • 17: Funktion f, die den Abstand zwischen Zeitstempeln der angegebenen und der Nutzerbewegung darstellt. Integral der Funktion ist Metrik, wie gut der angegebene Motor ausgeführt wurde;
  • 18: Verwendung der summierten Differenz der Abstände als Metrik;
  • 19: Systemdiagramm;
  • 20: Das Erlebnis besteht aus 3D-Modellen, Umgebungs- und Simulationslogik und Skripten. Das Übungsmodul-Skript kann auf alle davon zugreifen und so das Erlebnis generieren und manipulieren.
  • 22: Beispiel für die Nutzung der Trainingsfunktion
  • 24: Flussdiagramm, das die Ausführung des Übungsmodulplans beschreibt, speziell für drei Anlagenzustände (Start, Betrieb, Ende).
  • 26: Flussdiagramm, das beschreibt, wie man Trainingsabläufe in einer Simulationsumgebung mit Hilfe einer Liste zur Handhabung von Übungsmodulen anpasst.
  • 27: Zustandsmaschine, die eine Erlebnis beschreibt und Übungsmodule beinhaltet.
  • 28: Flussdiagramm, das beschreibt, wie man Trainingsabläufe in einer Simulationsumgebung mit einem Zustandsautomaten für den Umgang mit Übungsmodulen anpasst.
  • 29: (a) Speichern der Bewegung unter Verwendung von Winkeln und Längen der Glieder anstelle von dreidimensionalen Positionen, (b) Translation, (c) Rotation, (d) Skalierung, entsprechend den Spezifikationen des Nutzers, um die gesamte Bewegung anzupassen
  • 30: Automatische Erstellung von Formeln
  • 31: Detaillierungsgrad für den Übungsmodul-Effekt
  • 32: Erstellen eines 3D-Körperscan / Körpermodells unter Verwendung der VR- und Motion Capture-Technologie.
  • 33: Speichern der Bewegungen so, dass sie individuell angepasst werden können, basierend auf den Körpereigenschaften des Nutzers.
  • 34: Trainingsabläufe in einer Simulationsumgebung können vordefiniert werden, indem ein oder mehrere Übungsmodule verwendet werden.
  • 35: Verschiedene Bewegungsarten.
  • 36: Meta Daten für Übungsmodule.
  • 37: Metadaten für Übungsmodule.
  • 38: Übungsarten
  • 39: Personalisierung durch Parameter
  • 40: Simulationsabstraktion
  • 41: Hardware-Abstraktion
  • 42: Hardware-Abstraktion
  • 43: Vergleich von Bewegungen und Extraktion von Metadaten
  • 44: Kommentierte Bewegung.
  • 45: Code zur Abfrage von Bewegungsdaten.
  • 46: Abfrage von Nutzer und Bewegungsdaten, um einen Würfel zu erzeugen.
  • 47: Übungsmodul-Repository mit zwei Abstraktionsebenen.
  • 48: Korrektheitsscore für verschiedene Übungsmodulimplementierungen
  • 49: Übungsmodul Editor
  • 50: Simulationstestumgebung.
  • 51: Workout Customization Engine,
  • 52: Workout Customization Management System (System zur Verwaltung der Trainingsanpassung)
Further measures improving the invention are shown in more detail below together with the description of several preferred exemplary embodiments of the invention with reference to the figures. It shows:
  • 1 : an interface for defining the desired muscle effort and the resulting part of the user data file, including the degrees of freedom for certain joints, which are stored in a .json file;
  • 2 : Exercise data extracted from motion detection results and streamed from external systems such as Apple Watch and Fitbit;
  • 3 : Keys of the user data and training data are added to generate the training specification;
  • 4th : Feedback loop
  • 5 : Data format A influences the virtual experiences B, which influences the movements C of the user
  • 6 : Exercise module data format;
  • 7th : Movement data in .json data format, which describe a movement with time stamps and 3D positions for a specific connection;
  • 8th : Impact data in a .json file with muscular use and joint areas;
  • 9 : Exercise module script that enables the exercise module to actively manipulate the experience;
  • 10 : Generation of exercise modules from existing training processes in a simulation environment, (a) executed code within the experiences. (b) recorded movements during the code are performed;
  • 11 : The user follows the rendered three-dimensional path;
  • 12 : The user imitates the virtual person (mirror).
  • 13 : (A) User standing, the ball approaches him. (B) The user crouches to prevent the bullet from hitting them;
  • 14th : (A) The object to be boxed is displayed to the user. (B) the user suggests the object;
  • 15th : User reaches object. The obstacle created restricts freedom of movement (ie he would hit the obstacle if he went to the object);
  • 16 : Specified path and user path in three-dimensional space;
  • 17th : Function f, which represents the distance between timestamps of the specified and the user movement. The integral of the function is the metric of how well the specified engine performed;
  • 18th : Use the summed difference of the distances as a metric;
  • 19th : System diagram;
  • 20th : The experience consists of 3D models, environment and simulation logic and scripts. The practice module script can access all of them and thus generate and manipulate the experience.
  • 22nd : Example of using the training function
  • 24 : Flow chart that describes the execution of the exercise module plan, especially for three system states (start, operation, end).
  • 26th : Flowchart that describes how to adapt training processes in a simulation environment with the help of a list for handling training modules.
  • 27 : State machine that describes an experience and contains training modules.
  • 28 : Flowchart that describes how to adapt training processes in a simulation environment with a state machine for handling training modules.
  • 29 : (a) Store the movement using angles and lengths of the limbs instead of three-dimensional positions, (b) translation, (c) rotation, (d) scaling, according to the user's specifications to accommodate the overall movement
  • 30th : Automatic creation of formulas
  • 31 : Level of detail for the practice module effect
  • 32 : Creating a 3D body scan / body model using VR and motion capture technology.
  • 33 : Saving the movements so that they can be customized based on the body characteristics of the user.
  • 34 : Training processes in a simulation environment can be predefined by using one or more training modules.
  • 35 : Different types of movement.
  • 36 : Meta data for exercise modules.
  • 37 : Metadata for practice modules.
  • 38 : Exercise types
  • 39 : Personalization through parameters
  • 40 : Simulation abstraction
  • 41 : Hardware abstraction
  • 42 : Hardware abstraction
  • 43 : Comparison of movements and extraction of metadata
  • 44 : Annotated movement.
  • 45 : Code for querying movement data.
  • 46 : Query of user and movement data to create a cube.
  • 47 : Exercise module repository with two levels of abstraction.
  • 48 : Correctness score for different practice module implementations
  • 49 : Editor exercise module
  • 50 : Simulation test environment.
  • 51 : Workout Customization Engine,
  • 52 : Workout Customization Management System (system for managing training customization)

Das vorgeschlagene System ist in der Lage, virtuelle Trainingsabläufe in einer Simulationsumgebung anzupassen, so dass es die Notwendigkeit für relevante Daten gibt, die dem System sagen, wie die Erlebnisse angepasst werden sollen. Zu diesen Daten gehören Nutzerdaten und Trainingsdaten, die zu einer Trainingsspezifikation zusammengefasst werden.The proposed system is able to adapt virtual training processes in a simulation environment so that there is a need for relevant data telling the system how to adapt the experiences. This data includes user data and training data, which are combined to form a training specification.

Nutzerdaten beinhalten alle trainings- und rehabilitationsrelevanten Daten wie Körpergröße, Gewicht, gewünschte Trainings-Ergebnisse oder Rehabilitationsfortschritt etc. Diese Daten könnten beispielsweise von Nutzern, Experten, Ärzten usw. über spezielle Nutzeroberflächen eingegeben und spezifiziert werden. Alternativ oder kumulativ kann das System diese Daten zumindest teilweise automatisch erfassen. Auch Daten von Trainings- und Rehabilitationsplattformen wie Google Fit und Apple Health können importiert und verwendet werden. Um den Nutzer bei der Kommunikation der relevanten Daten an das System zu unterstützen, kann auch eine Umfrage verwendet werden, die die Antworten, beispielsweise in Form von ausgewählten Antworten aus einem Multiple-Choice-Format, in Trainingsziele übersetzt. Auch eine Aktivitätsdatenbank kann vordefinierte Trainingsziele für bestimmte Aktivitäten wie Schwimmen speichern. Ein Nutzer kann eingeben, dass er für die Aktivität Schwimmen trainieren möchte, die vordefinierten Daten werden in die Oberfläche geladen und können beispielsweise vom Nutzer weiter angepasst werden.User data contain all training and rehabilitation-relevant data such as body size, weight, desired training results or rehabilitation progress, etc. This data could for example be entered and specified by users, experts, doctors, etc. via special user interfaces. Alternatively or cumulatively, the system can at least partially record this data automatically. Data from training and rehabilitation platforms such as Google Fit and Apple Health can also be imported and used. In order to support the user in communicating the relevant data to the system, a survey can also be used that translates the answers, for example in the form of selected answers from a multiple-choice format, into training goals. An activity database can also store predefined training goals for specific activities such as swimming. A user can enter that he would like to train for the activity swimming, the predefined data is loaded into the interface and can be further adapted by the user, for example.

Diese Daten können, wie in 1 gezeigt, in einer .json-Datei gespeichert werden, aber auch auf andere Weise wie .xml, Datenbank etc. gespeichert werden. Ferner zeigt 1 eine Schnittstelle zur Definition des gewünschten Muskelaufwands und des resultierenden Teils der Nutzerdatendatei, einschließlich der Freiheitsgrade für bestimmte Gelenke, die in der .json-Datei gespeichert sind.This data can, as in 1 can be saved in a .json file, but can also be saved in other ways such as .xml, database etc. Also shows 1 an interface to Definition of the desired muscle effort and the resulting part of the user data file, including the degrees of freedom for certain joints, which are stored in the .json file.

2 zeigt Trainingsdaten, die aus Bewegungserfassungsergebnissen extrahiert und von externen Systemen wie Apple Watch und Fitbit gestreamt werden. Wenn Nutzer während des Trainings Bewegungen ausführen, können diese von einem Bewegungserfassungssystem wie beispielsweise dem HTC Lighthouse erfasst werden, was zu erfassten Bewegungsdaten in einem Datenformat wie .fbx führt, das die Bewegung eines menschlichen Körpers darstellt. Bewegungsanalyse-Algorithmen können verwendet werden, um die Wirkung des Trainings zu extrahieren, wie verbrannte Kalorien, Drehmoment, das auf bestimmte Gelenke angewendet wird, muskuläre Nutzung, usw. Eine Möglichkeit, dies zu tun, ist, die Körpermodelle der verbundenen Zeitstempel zu vergleichen, die Geschwindigkeit jedes Gelenks zu berechnen und die Beschleunigung zu extrahieren, um die angewandten Kräfte zu schätzen, basierend auf den geschätzten Gewichten bestimmter Körperteile. Auch eine Physik-Engine, wie beispielsweise Cannon.js oder Unity 3D (Physik-Engine integriert) etc. könnte zur Berechnung dieser Eigenschaften verwendet werden. Diese extrahierten Daten (Trainingsdaten) ermöglichen die Auswertung der Nutzerbewegungen und des Trainings. Nutzer können Vorschläge erhalten, wie sie ihre Leistung verbessern können, und das System kann diese Daten nutzen, um das Training weiter anzupassen, z.B. um Verletzungen zu vermeiden, sicherzustellen, dass genügend Kalorien verbrannt werden oder spezielle Rehabilitationsübungen auszuführen. Systeme wie Microsoft Kinect und Apple Watch könnten als Sensoren dienen, um Daten zu erfassen, einschließlich der Herzfrequenz. Daten dieser Sensoren können an das erfindungsgemäße System gestreamt werden, um mehr Trainingsdaten zu erzeugen. Trainingsdaten werden in einer .json-Datei gespeichert, können aber auch auf andere Weise wie .xml, Datenbank etc. gespeichert werden. 2 shows exercise data extracted from motion detection results and streamed from external systems such as Apple Watch and Fitbit. When users make movements during exercise, these can be recorded by a movement detection system such as the HTC Lighthouse, resulting in recorded movement data in a data format such as .fbx, which represents the movement of a human body. Motion analysis algorithms can be used to extract the effects of exercise such as calories burned, torque applied to specific joints, muscular usage, etc. One way to do this is to compare the body models of the associated timestamps, calculate the speed of each joint and extract the acceleration to estimate the forces applied based on the estimated weights of specific body parts. A physics engine such as Cannon.js or Unity 3D (integrated physics engine) etc. could also be used to calculate these properties. These extracted data (training data) enable the user movements and training to be evaluated. Users can receive suggestions on how to improve their performance, and the system can use this data to further adjust the training, e.g. to avoid injuries, ensure that enough calories are burned or carry out special rehabilitation exercises. Systems like Microsoft Kinect and Apple Watch could act as sensors to collect data, including heart rate. Data from these sensors can be streamed to the system according to the invention in order to generate more training data. Training data is saved in a .json file, but can also be saved in other ways such as .xml, database etc.

Die Trainingsspezifikation beschreibt das Training, das generiert werden muss, um die Bedürfnisse der Nutzer zu erfüllen. Die Trainingsspezifikation wird in einer .json-Datei gespeichert, kann aber auch auf andere Weise wie .xml, Datenbank etc. gespeichert werden. Die Trainingsspezifikation entsteht durch die Kombination der Nutzerdaten und der Trainingsdaten. Daher senkt die Menge der bereits verbrannten Kalorien beispielsweise die Menge der Kalorien, die noch verbrannt werden müssen. Dies ermöglicht es dem vorgeschlagenen System, die Qualität und Anpassung während des Trainings zu verbessern. Wie in 3 dargestellt, kann das Generieren der Trainingsspezifikation z.B. durch Hinzufügen der Schlüssel von Nutzerdaten und Trainingsdaten in eine neue .json-Datei erreicht werden. The training specification describes the training that must be generated in order to meet the needs of the users. The training specification is saved in a .json file, but it can also be saved in other ways like .xml, database etc. The training specification is created by combining the user data and the training data. Therefore, the amount of calories already burned lowers the amount of calories that have yet to be burned, for example. This enables the proposed system to improve quality and adaptation during training. As in 3 As shown, the generation of the training specification can be achieved, for example, by adding the keys for user data and training data to a new .json file.

Dabei handelt es sich, wie in 4 dargestellt, um eine „Rückkopplungsschleife“ und es ist möglich, durch die Kombination eines Systems, das in der Lage ist, individuelle Trainingsabläufe in einer Simulationsumgebung in einer virtuellen Umgebung zu erzeugen, und ein System, das in der Lage ist, den Nutzer und seine Daten zu erfassen.As in 4th shown to be a "feedback loop" and it is possible through the combination of a system that is able to generate individual training courses in a simulation environment in a virtual environment, and a system that is able to the user and his Collect data.

Um die Erlebnis, basierend auf der Trainingsspezifikation, anzupassen, muss das vorgeschlagene System wissen, wie man die Erlebnis erzeugt oder manipuliert, und in der Lage sein, abzuschätzen, wie sich der Einfluss auf das Training auswirkt, d.h. das System muss herausfinden, was zu tun ist, basierend auf der Art und Weise, wie die Erlebnis, also das Training und damit der Nutzer von jeder Aktion unbeeinflusst bleibt. Um dies zu ermöglichen, wird das Konzept der „Übungsmoduls“ eingeführt. Ein Übungsmoduls beschreibt eine Übung und vermittelt trainings- und rehabilitationsspezifisches Wissen, das sich auf die Übung bezieht. Übungsmoduls können verwendet werden, um nutzerdefinierte Trainingsprogramme zu erstellen.In order to adapt the experience based on the training specification, the proposed system must know how to create or manipulate the experience and be able to estimate how the influence will affect the training, i.e. the system must figure out what to do do is based on the way in which the experience, i.e. the training, and thus the user, remains unaffected by any action. To make this possible, the concept of the "exercise module" is introduced. An exercise module describes an exercise and conveys training and rehabilitation-specific knowledge that relates to the exercise. Exercise modules can be used to create custom training programs.

5 zeigt den Einfluss eines Übungsmoduls. Dabei ist das Datenformat mit A gekennzeichnet und beeinflusst die virtuelle Erlebnis B, welche die Bewegungen C des Nutzers beeinflusst, hier mit einem Oculus-Riss. 5 shows the influence of an exercise module. The data format is marked with A and influences the virtual experience B, which influences the movements C of the user, here with an oculus crack.

Übungsmodule können auf verschiedene Weise gespeichert werden, wie z.B..xml, Ordnerstrukturen, Datenbank etc. Die Hauptziele bei der Erstellung des in 6 beispielhaft gezeigten Übungsmoduldateiformats sind die folgenden: Vollständigkeit; Das Übungsmodul-Format ist in der Lage, alle Arten von Übungen durch Körperbewegungen abzudecken. Wiederverwendbarkeit; Übungsmodule sind wiederverwendbar, d.h. ein generiertes Übungsmodul wird nicht für ein einzelnes Erlebnis generiert, sondern kann möglicherweise in allen Trainingsabläufe in einer Simulationsumgebung verwendet werden. Kreative Freiheit; Übungsmodule liegen in einem Format vor, das es Entwicklern und Designern ermöglicht, Übungsmodule in ihre Programme bzw. Simulationen so zu integrieren, wie sie es wünschen. So ist z.B. ein Punch-Übungsmodul nicht auf ein bestimmtes 3D-Modell beschränkt, das den Nutzer zum Boxen animiert, sondern der Entwickler/Designer kann das Übungsmodul mit kreativer Freiheit in das Programm bzw. Spielsimulation integrieren. Erweiterbarkeit, Das Übungsmodul-Format ist sehr einfach erweiterbar. Das bedeutet, dass es möglich ist, auch parametrisierte Bewegungen, Körpergewichtsübungen, Übungen mit Objekten wie Gewichten usw. mit Hilfe von Übungsmodulen abzudecken, die von Tracking-Systemen erfasst werden können. Die Beschreibung und die Bilddatei können in einem Übungsmodul Store verwendet werden, um die angegebene Übung anzuzeigen und zu beschreiben, worum es bei dem Übungsmodul geht.Practice modules can be saved in various ways, such as .xml, folder structures, database etc. The main objectives when creating the in 6 The training module file format shown by way of example are as follows: completeness; The exercise module format is able to cover all types of exercises through body movements. Reusability; Exercise modules are reusable, ie a generated exercise module is not generated for a single experience, but can possibly be used in all training processes in a simulation environment. Creative freedom; Practice modules are available in a format that enables developers and designers to integrate practice modules into their programs or simulations as they wish. For example, a punch exercise module is not limited to a specific 3D model that encourages the user to box, but the developer / designer can integrate the exercise module into the program or game simulation with creative freedom. Expandability, The exercise module format can be expanded very easily. That means that it is possible also parameterized To cover movements, body weight exercises, exercises with objects such as weights, etc. with the help of exercise modules that can be recorded by tracking systems. The description and the image file can be used in an exercise module store to display the specified exercise and to describe what the exercise module is about.

Die Spezifikationsdatei beschreibt die Übung, z.B. die Bewegung, die der Nutzer ausführen soll. Dies kann mit Standard-Dateiformaten wie .fbx geschehen, aber auch mit z.B. einer .json-Datei, die den Pfad in Form einer dreidimensionalen Position bestimmter Gelenke im Laufe der Zeit beschreibt. So können auch 3D-Bezierkurven etc. verwendet werden, um diese Bewegungen zu definieren. 7 zeigt Bewegungsdaten im .json Datenformat, die eine Bewegung mit Zeitstempeln und 3D-Positionen für eine bestimmte Verbindung beschreiben.The specification file describes the exercise, e.g. the movement that the user should perform. This can be done with standard file formats such as .fbx, but also with, for example, a .json file that describes the path in the form of a three-dimensional position of certain joints over time. 3D Bezier curves etc. can also be used to define these movements. 7th shows movement data in .json data format, which describe a movement with time stamps and 3D positions for a specific connection.

Die Effekt- bzw. Wirkungsdatei beschreibt das trainings- und rehabilitationsspezifische Wissen, das sich auf die Übung bezieht (z.B. wie sich die Ausführung dieser Bewegung auf den Körper des Nutzers auswirken wird). Basierend auf diesen Daten ist das vorgeschlagene System in der Lage zu schätzen, wie gut jedes einzelne Übungsmodul für das Training und für den Nutzer geeignet ist. 8 zeigt Effektdaten in einer .json-Datei mit muskulärer Nutzung und Gelenkbereichen.The effect file describes the training and rehabilitation-specific knowledge that relates to the exercise (e.g. how the execution of this movement will affect the user's body). Based on this data, the proposed system is able to estimate how well each individual exercise module is suitable for the training and for the user. 8th shows effect data in a .json file with muscular usage and joint areas.

Das Übungsmodul-Skript kann verwendet werden, um das Übungsmodul in Trainingsabläufe in einer Simulationsumgebung zu integrieren. Es ist dafür verantwortlich, den Nutzer zu animieren, die angegebene Übung durchzuführen. Dies kann in Form eines Pfad-Renderers für die angegebenen Gelenke geschehen oder viel komplexer sein, wie z.B. ein Feind, der eine bestimmte Aktion/Angriff ausführt, der den Nutzer dazu bringt, sich zu bewegen, um zu verhindern, dass sein Charakter bzw. die Rolle, die der Nutzer in der virtuellen Umgebung verkörpert, getroffen wird. Es kann integriert werden, indem vordefinierte Funktionen überschrieben, globale Parameter geändert, Änderungen am Managementsystem usw. vorgeschlagen werden. Programmiersprachen wie C#, C++, C, Python, Java können verwendet werden, aber auch jede andere Art und jedes andere Format der Manipulation von Variablen in einer Computerumgebung. Bei der Simulation kann eine bestimmte Übungsmodul-Skriptklasse mit der Programmiersprache C# definiert werden, die eine Start-, Lauf- und Endfunktion beinhaltet. Diese Funktion kann auf globale Variablen zugreifen und somit das Erlebnis aktiv verändern und z.B. neue Objekte hinzufügen, bestehende ändern etc. Übungsmodule, die in einen Übungsmodul Store hochgeladen werden, können vordefinierten Code enthalten, um die Entwicklungsgeschwindigkeit für andere Entwickler zu erhöhen. 9 zeigt ein Übungsmodul Script, das es dem Übungsmodul ermöglicht, die Erlebnisse aktiv zu manipulieren.The training module script can be used to integrate the training module into training processes in a simulation environment. It is responsible for encouraging the user to perform the specified exercise. This can take the form of a path renderer for the specified joints, or it can be much more complex, such as an enemy performing a certain action / attack that causes the user to move in order to prevent his or her character / attack from being damaged. the role that the user embodies in the virtual environment is met. It can be integrated by overwriting predefined functions, changing global parameters, suggesting changes to the management system, etc. Programming languages such as C #, C ++, C, Python, Java can be used, but also any other type and format of manipulating variables in a computer environment. During the simulation, a specific exercise module script class can be defined using the C # programming language, which includes a start, run and end function. This function can access global variables and thus actively change the experience and, for example, add new objects, change existing ones etc. Exercise modules that are uploaded to an exercise module store can contain predefined code in order to increase the development speed for other developers. 9 shows an exercise module script that enables the exercise module to actively manipulate the experiences.

Bewegungen können mit Bewegungserfassungsgeräten aufgezeichnet werden, z.B. in einem Bewegungserfassungslabor. Zusätzliche Hardware wie EMG-Sensoren und Bewegungsanalysesoftware können verwendet werden, um zu bestimmen, wie sich die aufgezeichnete Bewegung auf den menschlichen Körper auswirkt. Bewegungsanalysesoftware kann verwendet werden, um dreidimensionale Bewegungen zu erzeugen. Eine Bewegungsanalysesoftware kann dann verwendet werden, um die Auswirkungen der Bewegung auf die Erstellung des Übungsmoduls zu bestimmen. Alternativ zu Bewegungsanalysesoftware können auch Bewegungsbibliotheken verwendet werden. Dies ermöglicht es, bereits erfasste und erstellte Bewegungen in Übungsmodule zu transformieren. Übungsmodule können auch aus vorhandenen Trainingsabläufe in einer Simulationsumgebung gewonnen werden. Daher werden parallel dazu der ausgeführte Code und die Nutzerbewegungen verfolgt. Basierend auf der Art und Weise, wie sich der Nutzer bewegt und welcher Code ausgeführt wird, kann das System extrahieren, welcher Teil des Codes dafür verantwortlich ist, dass der Nutzer auf eine bestimmte Weise bewegt wird. Mit diesem Wissen kann das vorgeschlagene System automatisch Übungsmodule erstellen, indem es die aufgezeichnete Bewegung als Spezifikationsdatei verwendet, eine Bewegungsanalysesoftware, um die Wirkungsdatei und den entsprechenden Code innerhalb des Übungsmodul-Skripts zu generieren. 10 zeigt die Generierung von Übungsmodulen aus bestehenden Trainingsabläufe in einer Simulationsumgebung, wobei mit „a“ der ausgeführter Code innerhalb der Erlebnis und mit „b“ der ausgeführter Code während der aufgezeichnete Bewegungen bezeichnet ist. Zum Erzeugen von Übungsmodulen aus bestehenden Trainingsabläufe in einer Simulationsumgebung kann beispielsweise auch künstliche Intelligenz (KI) zur Anwendung kommen.Movements can be recorded with motion detection devices, for example in a movement detection laboratory. Additional hardware such as EMG sensors and motion analysis software can be used to determine how the recorded motion affects the human body. Motion analysis software can be used to generate three-dimensional motion. Motion analysis software can then be used to determine the impact of motion on the creation of the exercise module. As an alternative to motion analysis software, motion libraries can also be used. This makes it possible to transform already recorded and created movements into exercise modules. Exercise modules can also be obtained from existing training processes in a simulation environment. Therefore, the executed code and the user movements are tracked in parallel. Based on the way the user moves and what code is being executed, the system can extract which part of the code is responsible for moving the user in a certain way. With this knowledge, the proposed system can automatically create exercise modules using the recorded movement as a specification file, motion analysis software to generate the impact file and the corresponding code within the exercise module script. 10 shows the generation of exercise modules from existing training processes in a simulation environment, with "a" denoting the code executed within the experience and "b" denoting the code executed during the recorded movements. Artificial intelligence (AI), for example, can also be used to generate exercise modules from existing training processes in a simulation environment.

Da der Nutzer nicht notwendigerweise an eine Maschine gebunden ist, die ihn zwingen kann, sich auf eine bestimmte Weise zu bewegen, stellt sich die Frage, wie er sich auf eine bestimmte Weise bewegen kann. Zu den Methoden, um dies zu erreichen, gehören die folgenden. Der Weg für jedes spezifische Gelenk wie die Hand kann gerendert und dem Nutzer in Form eines dreidimensionalen Weges innerhalb des Trainingsablaufs in einer Simulationsumgebung gezeigt werden, wie in 11 gezeigt. Es kann eine virtuelle Person gezeigt werden, die die angegebene Bewegung erfüllt und dem Nutzer somit zeigt, wie er sich bewegen muss. Der Nutzer soll, wie in 12 gezeigt, die virtuelle Person (Avatar) bzw. den Spiegel nachahmen.Since the user is not necessarily tied to a machine that can force him to move in a certain way, the question arises of how he can move in a certain way. Methods to achieve this include the following. The path for each specific joint such as the hand can be rendered and shown to the user in the form of a three-dimensional path within the training process in a simulation environment, as in FIG 11 shown. A virtual person can be shown that fulfills the specified movement and thus shows the user how to move. As in 12 shown to imitate the virtual person (avatar) or the mirror.

Ein anderer Aspekt ist, dass der Nutzer etwas innerhalb des Trainingsablaufs in einer Simulationsumgebung durch passive Bewegung verhindern muss. Z.B. verhindert er, dass die Kugel seinen Charakter bzw. Rolle in der Simulation trifft, indem er in die Hocke geht, wie dies in 13 dargestellt ist: Darin zeigt (A) den Nutzer im Stehen, wobei ihm sich die Kugel nähert. (B) Der Nutzer geht in die Hocke, um zu verhindern, dass die Kugel ihn trifft. Alternativ könnte der Nutzer aktiv mit der Simulation interagieren, z.B. schlägt er einen Gegenstand wie einen Feind, wie in 14 gezeigt. 14 zeigt (A) das zu boxende Objekt wird dem Nutzer angezeigt. (B) Der Nutzer schlägt das Objekt.Another aspect is that the user has to prevent something within the training process in a simulation environment through passive movement. For example, he prevents the ball from hitting his character or role in the simulation by crouching, as shown in 13 is shown: In it (A) shows the user standing, with the ball approaching him. (B) The user crouches to prevent the bullet from hitting them. Alternatively, the user could actively interact with the simulation, e.g. striking an object like an enemy, as in 14th shown. 14th shows (A) the object to be boxed is displayed to the user. (B) The user hits the object.

Alternativ könnte der Nutzer aber auch an eine Vorrichtung, wie ein Laufband, ein Fahrrad oder ähnliches gebunden sein.Alternatively, the user could also be tied to a device such as a treadmill, a bicycle or the like.

Eine Möglichkeit, den Nutzer daran zu hindern, die Aufgabe auf unerwartete Weise zu erfüllen, besteht darin, die Freiheit seiner Bewegungen zu eliminieren. Z.B. kann ein erzeugtes Hindernis die Freiheit seiner Bewegungen einschränken und somit sicherstellen, dass sich der Nutzer wie erwartet bewegt. 15 zeigt eine Situation, in der sich ein Nutzer nach einem Objekt streckt. Das erzeugte Hindernis schränkt die Bewegungsfreiheit ein , d.h. er würde gegen das Hindernis stoßen, wenn er zum Objekt ginge.One way to prevent the user from completing the task in unexpected ways is to eliminate the freedom of movement. For example, a generated obstacle can restrict the freedom of his movements and thus ensure that the user moves as expected. 15th shows a situation in which a user is reaching for an object. The obstacle created restricts the freedom of movement, ie he would hit the obstacle if he went to the object.

Es ist notwendig, menschliche Bewegungen unter Erlebnissaspekten zu vergleichen, wie z.B. zu erkennen, ob der Nutzer die vorgegebene Bewegungsbahn erfüllt hat oder nicht, aber auch zu Bewertungszwecken, z.B. zur Messung der Genauigkeit von Nutzerbewegungen. 16 zeigt eine solche vordefinierte Bewegungsbahn und die Nutzerbewegung im dreidimensionalen Raum. Eine Möglichkeit hierfür ist der Vergleich der Position jedes Zeitstempels im dreidimensionalen Raum (vorgegebener Pfad und Nutzerpfad). Dabei wird eine Funktion f berechnet, die den Abstand zwischen diesen beiden Punkten bei jedem Zeitstempel abbildet. Mit dem Integral dieser Funktion kann eine Metrik erhalten werden, wie ähnlich diese beiden Bewegungen sind. Es ist jedoch bekannt, welcher Zeitstempel der Anfang des angegebenen Pfades ist, aber es ist möglich, dass nicht bekannt ist, wo der Nutzer begonnen hat, die Bewegung auszuführen. Um dieses Problem zu lösen, muss die Bewegung des Nutzers um einen Zeitstempel für mehrere Male verschoben und die Metrik neu berechnet werden. Die Gesamtmetrik ist dann der Mindestwert dieser Metriken. Eine Möglichkeit zu wissen, wie oft die Nutzerbewegungen verschoben werden müssen, besteht darin, zu bestimmen, wann die Nutzerposition dem Endpunkt der angegebenen Bewegung am nächsten war, und dann die Nutzerbewegung um ein Zeitfenster pro Schicht zu verschieben, bis die Bewegung zu diesem bestimmten Zeitpunkt beginnt. Da die angegebene und die Nutzerbewegung aus mehreren Gelenken und damit mehreren Pfaden bestehen kann, muss dies für jeden Pfad erfolgen. Die Metrik jedes Pfadvergleichs wird zu einem Wert hinzugefügt, der angibt, wie ähnlich die Nutzerbewegung und die angegebene Bewegung sind. 17 zeigt beispielhaft eine Funktion f, die den Abstand zwischen Zeitstempeln der vorgegebenen Bewegung und der Nutzerbewegung darstellt. Das Integral der Funktion ist metrisch und zeigt, wie gut die vorgegebene Bewegung ausgeführt wurde.It is necessary to compare human movements in terms of experience, such as recognizing whether the user has fulfilled the specified movement path or not, but also for evaluation purposes, e.g. to measure the accuracy of user movements. 16 shows such a predefined movement path and the user movement in three-dimensional space. One possibility for this is to compare the position of each time stamp in three-dimensional space (specified path and user path). A function f is calculated that maps the distance between these two points for each time stamp. The integral of this function can be used to obtain a metric of how similar these two movements are. However, it is known which timestamp is the beginning of the specified path, but it is possible that it is not known where the user started to move. To solve this problem, the user's movement has to be shifted by a time stamp for several times and the metric has to be recalculated. The total metric is then the minimum value of these metrics. One way to know how often to postpone user movements is to determine when the user position was closest to the endpoint of the specified movement, and then postpone user movement one time slot per shift until the movement was at that particular point in time begins. Since the specified and the user movement can consist of several joints and thus several paths, this must be done for each path. The metric of each path comparison is added to a value that indicates how similar the user movement and the indicated movement are. 17th shows an example of a function f, which represents the distance between time stamps of the specified movement and the user movement. The integral of the function is metric and shows how well the given movement was performed.

Bei dieser Methode sind jedoch Bewegungen über z.B. 1000 Zeitfenster in der Regel besser als Bewegungen über 10000 Zeitfenster, da sich die Fehler jedes Zeitfenster summieren. Um dies zu verhindern, kann der resultierende Wert durch die Anzahl der Zeitfenster dividiert werden. Die Verwendung der summierten Differenz der Abstände als Metrik wird in 18 gezeigt. Anstatt die Ähnlichkeit zwischen den Bewegungen auf eine „semi-kontinuierliche“ (nicht kontinuierliche, weil der Raum zwischen den Zeitfenster interpoliert wird) Weise zu messen, können auch die Abstände addiert werden. Daher ist keine Funktion f oder die Berechnung eines Integrals notwendig. Eine weitere Möglichkeit, Bewegungen zu vergleichen, besteht darin, die Wirkungen anstelle der Wege selbst zu vergleichen. Dies kann leicht geschehen, indem man die Differenz für jeden Schlüssel in den Wirkungsdateien der Nutzerbewegung und der vorgegebenen Bewegung berechnet. Diese Methode ermöglicht es, die Bewegungen im Zusammenhang mit dem Effekt zu vergleichen, gibt aber keine Auskunft über die Qualität, der Nutzer hat die angegebene Bewegung erfüllt.With this method, however, movements over, for example, 1000 time windows are generally better than movements over 10000 time windows, since the errors in each time window add up. To prevent this, the resulting value can be divided by the number of time windows. The use of the summed difference of the distances as a metric is shown in 18th shown. Instead of measuring the similarity between movements in a “semi-continuous” (not continuous because the space between the time windows is interpolated), the distances can also be added. Therefore no function f or the calculation of an integral is necessary. Another way to compare movements is to compare the effects instead of the paths themselves. This can easily be done by calculating the difference for each key in the impact files of the user movement and the given movement. This method makes it possible to compare the movements in connection with the effect, but does not provide any information about the quality, the user has fulfilled the specified movement.

19 zeigt ein Systemdiagramm zum Generieren der virtuellen Erlebnisse. Hierzu muss das vorgeschlagene System herausfinden, wie die Erlebnis aussehen muss, um der Trainingsspezifikation zu entsprechen. Wie in 20 gezeigt besteht das Erlebnis aus 3D-Modellen, Umgebungs- und Simulationslogik und Skripten. Das Übungsmodul-Skript kann auf alle davon zugreifen und so das Erlebnis generieren und manipulieren. Vordefinierte Elemente im vorgeschlagenen System sind: 3D-Modelle, Umgebung und vordefinierte Skripte mit Funktionen, die das Erlebnis verändern und manipulieren und die Simulationslogik implementieren können (Prefabs). Jedes Übungsmodul enthält ein Übungsmodul-Skript. Jede Funktion im Übungsmodul-Skript (start(), running(), end()) kann verwendet werden, um auf vordefinierte Funktionen, 3D-Modelle und die Umgebung zuzugreifen. Auch Funktionen, die auf jedes Übungsmodul spezialisiert sind, können wie Zeitverzögerungen definiert werden. Auch das Übungsmodul-Skript kann auf alle Übungsmodul-relevanten Informationen wie die Spezifikation und die Effektdatei etc. zugreifen. 19th shows a system diagram for generating the virtual experiences. To do this, the proposed system must find out what the experience must look like in order to meet the training specification. As in 20th shown, the experience consists of 3D models, environment and simulation logic and scripts. The practice module script can access all of them and thus generate and manipulate the experience. Predefined elements in the proposed system are: 3D models, environment and predefined scripts with functions that can change and manipulate the experience and implement the simulation logic (prefabs). Each tutorial contains a tutorial script. Each function in the lab script (start (), running (), end ()) can be used to refer to predefined functions, 3D models and the Environment. Functions that are specialized in each exercise module can also be defined such as time delays. The exercise module script can also access all exercise module-relevant information such as the specification and the effect file, etc.

Ein Übungsmodul kann z.B. auf die globale Prefab-Funktionalität zugreifen, um einen Zeilen-Renderer zu erstellen und damit die in der Spezifikationsdatei angegebene Bewegung zu rendern. Mit einem globalen generateCubeAtPos(3D Position)-Skript kann ein Würfel an einer bestimmten Position erstellt werden. Durch das Anhängen des globalen moveCubeWithConstVelocity(Velocity)-Skripts an den Würfel bewegt sich der Würfel mit einer bestimmten Geschwindigkeit zum Nutzer. Durch das Anhängen eines detectUserPunchAnDestroy()-Skripts an den Würfel könnte die Simulation auch erkennen, ob der Nutzer den Würfel geboxt und zerstört hat und somit das Übungsmodul beendet hat. Dieses Format ermöglicht es dem Übungsmodul, ein virtuelles Erlebnis zu generieren. Mit einem System, das in der Lage ist zu bestimmen, welches Übungsmodul in welcher Reihenfolge ausgeführt werden soll, können so individuelle Trainingsabläufe in einer Simulationsumgebung für Trainings- und Rehabilitationszwecke oder ähnliche Zwecke, wie beispielsweise Trainingssituation für Luft- und Raumfahrt, Polizei oder Militär, etc. generiert werden. Die vorgeschlagene Erfindung unterstützt mehrere Möglichkeiten, virtuelle Trainingsabläufe in einer Simulationsumgebung mit diesem Konzept zu generieren und aufzubauen. Dazu gehört beispielsweise die Verwendung einer Listenstruktur und einer Zustandsmaschine. Diese Konzepte könnten z.B. von Simulationsentwicklern genutzt werden.A training module can, for example, access the global prefab functionality to create a line renderer and thus render the movement specified in the specification file. A global generateCubeAtPos (3D Position) script can be used to create a cube at a specific position. By appending the global moveCubeWithConstVelocity (Velocity) script to the cube, the cube moves towards the user at a certain speed. By attaching a detectUserPunchAnDestroy () script to the cube, the simulation could also recognize whether the user boxed and destroyed the cube and thus ended the exercise module. This format enables the practice module to generate a virtual experience. With a system that is able to determine which exercise module should be carried out in which order, individual training processes can be carried out in a simulation environment for training and rehabilitation purposes or similar purposes, such as training situations for aerospace, police or military, etc. are generated. The proposed invention supports several options for generating and setting up virtual training processes in a simulation environment with this concept. This includes, for example, the use of a list structure and a state machine. These concepts could e.g. be used by simulation developers.

Dieses Konzept kann eine Liste von Übungsmodulen verwenden, um das virtuelle Erlebnis zu generieren. Die Nutzerdaten und die Trainingsdaten werden kombiniert, so dass eine Trainingsspezifikation entsteht. Die Trainingsspezifikation ist im gleichen Datenformat wie Angabe der Übungsmodul-Wirkung.This concept can use a list of practice modules to generate the virtual experience. The user data and the training data are combined so that a training specification is created. The training specification is in the same data format as the specification of the exercise module effect.

Ein Optimierungsalgorithmus erzeugt nun eine Kombination von Übungsmodulen, d.h. eine Zahl für jedes Übungsmodul, die bestimmt, wie oft das Übungsmodul ausgeführt wird, basierend auf den Übungsmodulen, die in der Erlebnis- und der Trainingsspezifikation verfügbar sind. Die verfügbaren Übungsmodule können direkt in einem Ordner gespeichert werden, innerhalb der Trainingsabläufe in einer Simulationsumgebung oder Referenzen können gespeichert werden und die Simulation wird die Übungsmodule entsprechend herunterladen. Auch können einige Übungsmodule direkt gespeichert werden und bei anderen kann ein Link gespeichert werden. Die Aufgabe besteht darin, eine Übungsmodulkombination zu bestimmen, die die Trainingsspezifikation so gut wie möglich erfüllt, d.h. welche Übungsmodule wie oft ausgeführt werden müssen, damit die Übungsmoduleffekte zusammengenommen so nah wie möglich an der Trainingsspezifikation liegen. Um dieses Problem zu lösen, projiziert das System dieses Problem auf ein mehrdimensionales Verpackungsproblem. Dieses Problem wird dann mit einem evolutionären Algorithmus gelöst. Formel 1 beschreibt eine Trainingsfunktion, die für den evolutionären Algorithmus verwendet wird. 22 zeigt ein Beispiel für die Nutzung der Trainingsfunktion. f = j = 1 m | ( k = 1 n a k j x ( a k ) ) w j |

Figure DE102019120655A1_0001
An optimization algorithm now generates a combination of training modules, ie a number for each training module that determines how often the training module is performed, based on the training modules available in the experience and training specification. The available exercise modules can be saved directly in a folder, within the training processes in a simulation environment or references can be saved and the simulation will download the exercise modules accordingly. Some exercise modules can also be saved directly and a link can be saved for others. The task is to determine an exercise module combination that fulfills the training specification as well as possible, ie which exercise modules have to be performed how often so that the exercise module effects taken together are as close as possible to the training specification. To solve this problem, the system projects this problem onto a multi-dimensional packaging problem. This problem is then solved with an evolutionary algorithm. Formula 1 describes a training function that is used for the evolutionary algorithm. 22nd shows an example of using the training function. f = j = 1 m | ( k = 1 n a k j x ( a k ) ) - w j |
Figure DE102019120655A1_0001

Aber auch andere Optimierungsstrategien könnten zur Lösung dieses Problems eingesetzt werden. Auch die Algorithmen, wie der evolutionäre Algorithmus, können durch Änderung der Schwellenwerte usw. optimiert werden.But other optimization strategies could also be used to solve this problem. The algorithms, such as the evolutionary algorithm, can also be optimized by changing the threshold values, etc.

Nachdem das System eine Übungsmodulkombination ermittelt hat, muss die Reihenfolge der Übungsmodule geplant werden. Es ist möglich, die Übungsmodule in zufälliger Reihenfolge auszuführen. Eine weitere Möglichkeit besteht darin, die zeitliche Reihenfolge entsprechend den relevanten Daten wie einer Zahl zu optimieren, die beschreibt, wie schlecht es ist, bestimmte Übungsmodule nacheinander auszuführen (Strafpunktzahl). Tabelle 1 zeigt die die Strafpunkte für den Wechsel von Übungsmodul n zu Übungsmodul m. Tabelle 1 von / bis Übungsmodul 1 Übungsmodul 2 Übungsmodul 3 Übungsmodul 1 -1 -1 -3 Übungsmodul 2 -4 -1 -2 Übungsmodul 3 -2 -3 -1 After the system has determined a combination of training modules, the sequence of the training modules must be planned. It is possible to complete the exercise modules in random order. Another possibility is to optimize the chronological order according to the relevant data such as a number that describes how bad it is to do certain exercise modules one after the other (penalty points). Table 1 shows the penalty points for changing from exercise module n to exercise module m. Table 1 from ... to Exercise module 1 Exercise module 2 Exercise module 3 Exercise module 1 -1 -1 -3 Exercise module 2 -4 -1 -2 Exercise module 3 -2 -3 -1

Diese Zahlen können in einer globalen Tabelle, .json,.xml usw. oder innerhalb der Erlebnisse gespeichert werden. Diese Zahlen können ein globales Maß sein, aber auch für spezifische Trainingsabläufe in einer Simulationsumgebung optimiert werden. Bei einem Zeitplan, einschließlich des ermittelten Übungsmoduls, ist es möglich, die Qualität des Plans zu bestimmen, indem man die Strafpunkte für jedes Übungsmodul und die folgenden Übungsmodule addiert. Die Aufgabe besteht darin, eine zeitliche Reihenfolge von Übungsmodulen mit einem möglichst niedrigen Wert, d.h. mit möglichst wenigen Strafpunkten, zu erstellen.These numbers can be stored in a global table, .json, .xml etc. or within the experiences. These numbers can be a global measure, but they can also be optimized for specific training processes in a simulation environment. In the case of a schedule, including the established exercise module, it is possible to determine the quality of the plan by adding up the penalty points for each exercise module and the following exercise modules. The task is to create a chronological sequence of exercise modules with the lowest possible value, ie with as few penalty points as possible.

Neben der allgemeinen Simulationslogik, die z.B. die Verwaltung von Punkten, Simulationseffekten etc. implementiert, muss der generierte Übungsmodul-Plan ausgeführt werden. Daher führte das System ein Übungsmodul nach dem anderen aus, wobei jedes alle 3 Schritte (Start, Lauf, Ende) durchläuft. Der angegebene Code wird entsprechend ausgeführt und generiert so den Trainingsablauf in einer Simulationsumgebung, d.h. das Erlebnis. 24 zeigt ein Flussdiagramm, das die Ausführung des Übungsmodulplans beschreibt, speziell für drei Übungsmodulzustände (Start, Betrieb, Ende).In addition to the general simulation logic, which, for example, implements the management of points, simulation effects, etc., the generated exercise module plan must be executed. So the system performed one training module at a time, each going through all 3 steps (start, run, end). The specified code is executed accordingly and thus generates the training process in a simulation environment, ie the experience. 24 Figure 12 shows a flow chart describing the execution of the exercise module schedule, specifically for three exercise module states (start, run, end).

Die gesamte Simulationslogik kann bestimmte globale Variablen, wie runAsset, pauseAsset und endAsset ändern, um die Ausführung des Anlagenplans zu steuern. Dies ist z.B. dann erforderlich, wenn die Simulation vordefinierte Simulationsteile implementiert, die nicht durch Übungsmodule manipuliert werden sollten. Auch externe Personen wie Ärzte oder Trainingsexperten könnten gemäß einer Ausführungsform die Ausführung von Übungsmodulen on-the-fly mit Hilfe bestimmter Teile innerhalb der Simulationslogik manipulieren. Variablen wie endAsset können jedoch von dem Übungsmodul selbst, aber auch von anderen Instanzen auf true oder false gesetzt werden. Ein Bewegungsvergleich, der innerhalb der Simulationslogik läuft, kann z.B. das Übungsmodul beenden, sobald der Nutzer die angegebene Bewegung erfüllt hat. Auch ein Mechanismus zum Erkennen, ob der Nutzer das Ziel getroffen hat, könnte ein Übungsmodul beenden, das eine Boxbewegung kodiert. Die Übungsmodul-Ausführung kann in einem einzigen Thread ausgeführt werden und somit parallel zur Spielsimulationslogik laufen, kann aber auch als Instanz innerhalb der Simulationslogik ausgeführt werden. Tabelle 2 zeigt eine Liste eines Übungsmodulplans, der ausgeführt wird.

Figure DE102019120655A1_0002
The entire simulation logic can change certain global variables such as runAsset, pauseAsset and endAsset in order to control the execution of the system plan. This is necessary, for example, if the simulation implements predefined simulation parts that should not be manipulated by exercise modules. According to one embodiment, external persons such as doctors or training experts could also manipulate the execution of exercise modules on-the-fly with the aid of certain parts within the simulation logic. Variables such as endAsset can, however, be set to true or false by the training module itself, but also by other entities. A movement comparison that runs within the simulation logic can, for example, end the exercise module as soon as the user has performed the specified movement. A mechanism for recognizing whether the user has hit the target could also end an exercise module that encodes a box movement. The exercise module execution can be executed in a single thread and thus run parallel to the game simulation logic, but can also be executed as an instance within the simulation logic. Table 2 shows a list of an exercise module schedule that will be executed.
Figure DE102019120655A1_0002

Der Prozess erzeugte einen Übungsmodulplan (Assetplan), der die Trainingsvorgaben so gut wie möglich abbildet. Die Übungsmodule werden dann ausgeführt und generieren so die das virtuelle Umfeld für das Trainingserlebnis. Da die Trainingsspezifikation ständig aktualisiert wird, wenn Trainingsdaten generiert werden, wird auch die ÜbungsmodulReihenfolge ständig aktualisiert. Dies führt zu maßgeschneiderten Trainingseinheiten, die auch während des Trainings (während der Laufzeit) angepasst und optimiert werden. 26 zeigt ein Flussdiagramm, das beschreibt, wie Trainingsabläufe in einer Simulationsumgebung mit Hilfe einer Liste zur Handhabung von Übungsmodulen anpasst werden.The process generated an exercise module plan (asset plan) that depicts the training specifications as well as possible. The exercise modules are then carried out and thus generate the virtual environment for the training experience. Since the training specification is continuously updated as training data is generated, the training module order is also continuously updated. This leads to tailor-made training units that are also adapted and optimized during training (during the runtime). 26th shows a flowchart that describes how training processes are adapted in a simulation environment with the aid of a list for handling training modules.

Das Konzept einer Zustandsmaschine erlaubt es, Zustände und Interaktionen zu nutzen, um Trainingsabläufe in einer Simulationsumgebung zu generieren. Im Gegensatz zur Liste kann die Simulation nun auf verschiedene Zustände abgebildet werden und somit eine viel komplexere Simulation bilden. 27 zeigt eine Zustandsmaschine, die eine Erlebnis beschreibt und Übungsmodule beinhaltet. Jeder Knoten hat einige Vorabversionen mit vordefiniertem Code, wie z.B. Szenenwechsel beim Betreten des Zustands usw. und eine Liste von Übungsmodulen, die für den jeweiligen Zustand verfügbar sind. Daher können die verfügbaren Übungsmodule je nach Zustand begrenzt werden. Auch wenn dies die Komplexität der Simulation zu begrenzen scheint, erlaubt die Einschränkung, verschiedene Übungsmodul-Umgebungen und damit eine Vielzahl von verschiedenen Kontexten zu schaffen, was es ermöglicht, der Simulation Komplexität zu verleihen. Um die Übungsmodule zu verwalten, wird bei der Eingabe eines neuen Zustands das gleiche System wie oben beschrieben verwendet, um einen Übungsmodulplan für den jeweiligen Zustand zu erstellen, abhängig von der Trainingsspezifikation und den verfügbaren Übungsmodulen für diesen Zustand. Die Zustandslogik kann innerhalb der Simulationslogik implementiert werden und steuert die Erstellung und Ausführung des Übungsmodulplans, indem sie die verfügbaren Übungsmodule basierend auf dem aktuellen Stand des Erlebnisses begrenzt. Dabei wird das Erlebnis für jeden Zustand angepasst, und somit wird das gesamte Erlebnis angepasst.The concept of a state machine makes it possible to use states and interactions to generate training processes in a simulation environment. In contrast to the list, the simulation can now be mapped to different states and thus form a much more complex simulation. 27 shows a state machine that describes an experience and includes training modules. Each node has some pre-release versions with pre-defined code, such as scene changes when entering the state, etc. and a list of training modules available for the respective state. Therefore, the available practice modules can be limited depending on the state. Even if this seems to limit the complexity of the simulation, the restriction allows different training module environments and thus a variety of different contexts to be created, which makes it possible to add complexity to the simulation. In order to manage the training modules, when entering a new condition, the same system is used as described above to create a training module plan for the respective condition, depending on the training specification and the available training modules for that condition. The state logic can implemented within the simulation logic and controls the creation and execution of the exercise module plan by limiting the available exercise modules based on the current state of the experience. The experience is adjusted for each condition, and thus the entire experience is adjusted.

Im Gegensatz zur Verwendung einer Liste erlaubt die Zustandsmaschine jedoch keine globale Optimierung, da die Nutzerinteraktion den Zustand des Erlebnisses und damit den Optimierungsprozess beeinflusst. Das heißt, die Qualität der Anpassung ist gering, wenn sich der Zustand des Erlebnisses häufig ändert, da die Anpassung nur im Rahmen von Zuständen erfolgt.In contrast to the use of a list, however, the state machine does not allow global optimization, since the user interaction influences the state of the experience and thus the optimization process. That is, the quality of the adjustment is low if the state of the experience changes frequently, since the adjustment only takes place within the framework of states.

Bei allen Ausführungsformen ist die dynamische Anpassung und Veränderung des Trainingsablaufs in der Simulationsumgebung gegeben, d.h. im Gegensatz zu bekannten Videospielübungen, werden nicht vordefinierte Spielszenen aufgerufen und wiedergegeben, sondern es werden individuelle neue Szenen und Sequenzen basierend auf den Nutzerdaten on the fly erstellt und verändert.In all embodiments, the dynamic adaptation and change of the training process is given in the simulation environment, i.e. in contrast to known video game exercises, predefined game scenes are not called up and played, but individual new scenes and sequences are created and changed on the fly based on the user data.

Dabei können Methoden wie die Zustandsvorhersage verwendet werden. Das bedeutet, dass das System schätzt, wie lange der Nutzer im aktuellen Zustand bleibt und eine Wahrscheinlichkeit für die nächsten n Zustände berechnet. Dies kann auf der Grundlage gespeicherter Daten des Nutzers selbst und/oder anderer Nutzer erfolgen und hilft dem vorgeschlagenen System, die Erlebnisse auf globaler Ebene anzupassen, indem es mehrere Übungsmodulpläne berechnet, einschließlich möglicher zukünftiger Zustände, und sich für den Zeitplan mit der geringsten erwarteten Differenz zur Trainingsspezifikation entscheidet. 28 zeigt ein Flussdiagramm, das beschreibt, wie man Trainingsabläufe in einer Simulationsumgebung mit einem Zustandsmaschine für den Umgang mit Übungsmodulen anpasst.Methods such as state prediction can be used for this. This means that the system estimates how long the user will remain in the current state and calculates a probability for the next n states. This can be done on the basis of stored data of the user himself and / or other users and helps the proposed system to adapt the experiences on a global level by calculating several exercise module schedules, including possible future states, and choosing the schedule with the smallest expected difference decides on the training specification. 28 shows a flow diagram that describes how to adapt training processes in a simulation environment with a state machine for dealing with training modules.

Im Zusammenhang mit der Erzeugung von Übungsmodulen wurde weiter oben eine Methode beschrieben, die es ermöglicht, aus bestehenden Trainingsabläufen in einer Simulationsumgebung Übungsmodule zu generieren, indem die Bewegungen der Nutzer und der ausgeführte Code parallel beobachtet werden. Zusätzlich zur Generierung neuer Übungsmodule ermöglicht diese Methode die Kontrolle bestehender Trainingsabläufe in einer Simulationsumgebung, die nicht speziell für das vorgeschlagene System konzipiert oder verwendet wurden. Dies kann durch Dekompilieren der Erlebnisse, Einfügen der generierten Übungsmodule anstelle des Codes, der zur Generierung der Übungsmodule und Kompilierung der Erlebnis verwendet wurde, erfolgen. Daher bleibt die gesamte Struktur und Logik der Erlebnisse gleich, aber feste Teile, die zur Generierung der Übungsmodule verwendet wurden, können durch das vorgeschlagene System manipuliert werden, um die Erlebnisse anzupassen.In connection with the generation of exercise modules, a method was described above that makes it possible to generate exercise modules from existing training processes in a simulation environment by observing the movements of the users and the executed code in parallel. In addition to generating new training modules, this method enables the control of existing training processes in a simulation environment that were not specifically designed or used for the proposed system. This can be done by decompiling the experiences, inserting the generated exercise modules in place of the code that was used to generate the exercise modules, and compiling the experience. Therefore, the entire structure and logic of the experiences remain the same, but fixed parts that were used to generate the exercise modules can be manipulated by the proposed system in order to adapt the experiences.

Da jeder Trainingsablauf in der Simulationsumgebung bzw. jedes Erlebnis durch die Übungsmodule definiert ist, welche in die Trainingsabläufe in der Simulationsumgebung einfließen und jedes Übungsmodul durch einen spezifischen Effekt bzw. eine spezifische Wirkung für den Nutzer definiert ist, können Trainingsabläufe in einer Simulationsumgebung anhand ihrer durchschnittlichen Wirkung klassifiziert werden, d.h. einige Trainingsabläufe in einer Simulationsumgebung können besonders gut für Beintrainings oder den Aufbau von Ausdauer usw. sein. Durch den Vergleich der Trainingsspezifikation und der durchschnittlichen Auswirkungen bestimmter Trainingsabläufe in einer Simulationsumgebung kann ein Score berechnet werden, der beschreibt, wie die Erlebnis in die Trainings- und Rehabilitationsziele der Nutzer passt. Daher können dem Nutzer spezifische Trainingsabläufe in einer Simulationsumgebung empfohlen werden, die für die Trainings- und Rehabilitationsanforderungen und -ziele des Nutzers gut geeignet sind.Since each training process in the simulation environment or each experience is defined by the exercise modules, which flow into the training processes in the simulation environment and each exercise module is defined by a specific effect or a specific effect for the user, training processes in a simulation environment can be based on their average Effect can be classified, ie some training processes in a simulation environment can be particularly good for leg training or building endurance, etc. By comparing the training specification and the average effects of certain training processes in a simulation environment, a score can be calculated that describes how the experience fits into the training and rehabilitation goals of the user. Therefore, specific training sequences can be recommended to the user in a simulation environment that are well suited to the training and rehabilitation requirements and goals of the user.

Dieser Weg kann bereits eine gute Referenz für die Bewegung sein, die der Nutzer ausführen soll, aber jeder Nutzer wird unterschiedliche Körpereigenschaften wie Körpergröße und Armlänge haben. Daher kann die reine Bewegung auf eine Bewegung von Gelenken und Verbindungen abstrahiert werden, die in Form von Winkeln und Beziehungen zwischen Gelenken und Verbindungen anstelle von 3D-Positionen gespeichert werden kann. Dann können diese Bewegungen übersetzt und skaliert werden, basierend auf der Körpergröße und Armlänge des Nutzers, um seine Körperparameter anzupassen. Diese Methode kann mit einem kompletten 3D-Körperscan des Nutzers präzisiert werden. Dieser Ansatz erlaubt es, die Bewegungen sehr genau zu definieren. Aber für die meisten Anwender werden die ursprünglichen Bewegungen bereits ausreichend sein. Daher ist ein Body Scan, etc. nicht für alle Anwender notwendig, auch wenn es eine gute Methode zur Steigerung der Präzision ist. 29 zeigt ein entsprechendes Vorgehen bei der Erfassung: (a) Speichern der Bewegung unter Verwendung von Winkeln und Längen der Glieder anstelle von dreidimensionalen Positionen, (b) Translation, (c) Rotation, (d) Skalierung, entsprechend den Spezifikationen des Nutzers, um die gesamte Bewegung anzupassen. Diese Methode ermöglicht es, jede aufgezeichnete Bewegung an die Körperspezifikationen jedes einzelnen Nutzers anzupassen.This path can already be a good reference for the movement that the user should perform, but each user will have different body characteristics such as height and arm length. Therefore, the pure motion can be abstracted to motion of joints and connections, which can be stored in the form of angles and relationships between joints and connections instead of 3D positions. Then these movements can be translated and scaled based on the user's height and arm length to adjust their body parameters. This method can be specified with a complete 3D body scan of the user. This approach allows the movements to be defined very precisely. But for most users the original movements will be sufficient. Therefore, a body scan, etc. is not necessary for all users, even if it is a good method for increasing precision. 29 shows a corresponding procedure for the acquisition: (a) storing the movement using angles and lengths of the limbs instead of three-dimensional positions, (b) translation, (c) rotation, (d) scaling, according to the user's specifications, around the adjust entire movement. This method makes it possible to adapt every recorded movement to the body specifications of each individual user.

Die Spezifikationsdatei kann auch Körpergewichtsübungen, Übungen mit externen Objekten oder auch Übungen mit mehreren Personen definieren.The specification file can also define body weight exercises, exercises with external objects or even exercises with several people.

Für einige Trainings wie diejenigen, die externe Objekte beinhalten, müssen einige Anforderungen erfüllt werden, wie z.B. die Anwesenheit des benötigten Objekts. Bei Übungen mit Gewichten müssen beispielsweise die Gewichte vorhanden sein. Um festzustellen, welche Objekte verfügbar sind, kann z.B. die SLAM-Methode verwendet werden. Die Anforderung kann z.B. in einer .json-Datei angegeben werden und einen Wert von Bedeutung für bestimmte IDs zuweisen. Diese IDs beziehen sich auf die Objekte, die benötigt werden. Der Wert 10 könnte bedeuten, dass das Objekt für die Übung absolut notwendig ist, wenn das Objekt nicht verfügbar ist, kann die Übung nicht ausgeführt werden, daher kann das Übungsmodul nicht genutzt und in das Erlebnis integriert werden. Die ID kann sich auch auf eine bestimmte Klasse von Objekten wie ein Gewicht beziehen, unabhängig davon, ob ein 5kg-Gewicht oder ein 10kg-Gewicht verfügbar ist.For some trainings, such as those involving external objects, some requirements must be met, such as the presence of the required object. For example, when doing exercises with weights, the weights must be present. The SLAM method, for example, can be used to determine which objects are available. The requirement can, for example, be specified in a .json file and assign a value that is significant for certain IDs. These IDs relate to the objects that are required. The value 10 could mean that the object is absolutely necessary for the exercise, if the object is not available, the exercise cannot be carried out, so the exercise module cannot be used and integrated into the experience. The ID can also refer to a specific class of objects such as a weight, regardless of whether a 5kg weight or a 10kg weight is available.

Da die Ausführung einer Übung immer von externen Parametern wie Körpergröße, Gewicht, Armlänge des Nutzers für Bewegungen und Körpergewichtstraining und dem Gewicht externer Objekte für Übungen mit z.B. Gewichten abhängt, besteht Bedarf an internen Parametern. Die Parameterdatei kann z.B. eine .json-Datei sein und beschreibt die Parameter, die für die Anlagen wichtig sind. Basierend auf diesen Parametern können genaue Spezifikationen für die Anlage berechnet werden. Bei der Verwaltung der Anlagenstruktur können diese internen Parameter mit den Istwerten, dargestellt durch den Nutzer und die Umgebung, überschrieben werden. So kann der Gewichtsparameter eines Übungsmoduls durch das tatsächliche Gewicht des externen Objekts, das in der Nutzerumgebung vorhanden ist, überschrieben werden.Since the execution of an exercise always depends on external parameters such as body height, weight, arm length of the user for movements and body weight training and the weight of external objects for exercises with e.g. weights, there is a need for internal parameters. The parameter file can e.g. be a .json file and describes the parameters that are important for the systems. Based on these parameters, exact specifications for the system can be calculated. When managing the system structure, these internal parameters can be overwritten with the actual values presented by the user and the environment. The weight parameter of an exercise module can be overwritten by the actual weight of the external object that is present in the user environment.

Der Effekt kann feste Zahlen, aber auch Formeln beinhalten, die sich auf die Parameterdatei beziehen. So kann z.B. die Verwendung des linken Bizeps durch eine Formel dargestellt werden, die auf den Gewichtsparameter verweist, der durch das tatsächliche Gewicht des aktuellen externen Objekts überschrieben wird.The effect can contain fixed numbers, but also formulas that refer to the parameter file. For example, the use of the left bicep can be represented by a formula that references the weight parameter that is overwritten by the actual weight of the current external object.

Die Wirkung von Übungsmodulen kann für mehrere Nutzer gemessen werden. Zusammen mit ihren Parametern können die Formeln, die das Verhältnis zwischen Parametern und Wirkung beschreiben, berechnet und im Übungsmodul gespeichert werden. 30 zeigt das automatische Erstellung von Formeln für mehrere Nutzer basierend auf der Evaluierung des gemessenen Effekts und der Parameter.The effect of exercise modules can be measured for several users. Together with their parameters, the formulas that describe the relationship between parameters and effect can be calculated and saved in the exercise module. 30th shows the automatic creation of formulas for multiple users based on the evaluation of the measured effect and the parameters.

31 zeigt einen Detaillierungsgrad für den Übungsmodul-Effekt. Der Übungsmodul-Effekt kann in verschiedenen Detaillierungsgraden gespeichert werden. Z.B. könnte es einen Übungsmodulwert so beschreiben, dass er für bestimmte Zwecke gut oder schlecht ist, feste Effekte oder Effekte beschreiben, die von Parametern wie dem Körpergewicht des Nutzers abhängen. 31 shows a level of detail for the practice module effect. The practice module effect can be saved in different levels of detail. For example, it could describe an exercise module value in such a way that it is good or bad for certain purposes, describe fixed effects or effects that depend on parameters such as the body weight of the user.

Ein dreidimensionaler Körperscan kann beispielsweise durch die Verwendung spezifischer Haltungen und Simulationselemente erstellt werden, um Parameter wie die Armlänge zu filtern. 32 zeigt das Erstellen eines 3D-Körperscan / Körpermodell unter Verwendung der VR- und Motion Capture-Technologie. Diese Daten können gespeichert werden, um den Anpassungsprozess zu verbessern, aber sie können auch auf andere Dinge außerhalb des Fitspace-Bereichs angewendet werden, z.B. können sie von Modeunternehmen zur Anpassung von Kleidung verwendet werden. 33 zeigt das Speichern der Bewegungen, so dass sie individuell angepasst werden können, basierend auf den Körpereigenschaften des Nutzers.For example, a three-dimensional body scan can be created using specific postures and simulation elements to filter parameters such as arm length. 32 shows the creation of a 3D body scan / body model using VR and motion capture technology. This data can be saved to improve the customization process, but it can also be applied to other things outside of the Fitspace area, e.g. it can be used by fashion companies to customize clothes. 33 shows the storage of the movements so that they can be customized based on the body characteristics of the user.

Übungsmodule können auch Metadaten, wie z.B. ein Label, enthalten, wofür sie gut sind, wie in 36 gezeigt. Auf diese Weise kann ein Nutzer festlegen, welche Art von Erlebnis er bevorzugt, wie Abenteuer oder Action. Der WCE kann diese Bezeichnungen berücksichtigen, indem er auf der Grundlage des berechneten Anlagenplans einen Strafpunkt berechnet. Dies kann durch den Vergleich der Anzahl der Übungsmoduls, die die Label-ähnliche Aktion beinhalten, mit denen, die nicht bewerten, wie viel von einer Action-Erlebnis die generierte Erlebnis ist, erfolgen.Practice modules can also contain metadata, such as a label, which they are good for, as in 36 shown. In this way, a user can determine which type of experience he prefers, such as adventure or action. The WCE can take these designations into account by calculating a penalty point on the basis of the calculated layout plan. This can be done by comparing the number of exercise modules that include the label-like action with those who do not rate how much of an action experience the experience generated is.

Eine Alternative zur Trainingsspezifikation ist ein Effektsystem. Das heißt, ein Managementsystem hat eine Effektanforderung erstellt und leitet diese an das Workout Customization Engine (WCE) weiter. Die Anfrage hängt von der Bewegungsanalyse, den Nutzerdaten, den Trainingsdaten usw. ab, wie in 37 schematisch dargestellt.An alternative to the training specification is an effects system. This means that a management system has created an effect request and forwards it to the Workout Customization Engine (WCE). The request depends on the motion analysis, user data, training data, etc., as in 37 shown schematically.

Wie in 38 gezeigt, gibt es viele Arten von Übungsmoduls, wie z.B. einen zur Verbesserung der Geschwindigkeit, Reaktion, Kalorienverbrennung durch Energieverbrauch, Verbesserung der Muskelaktivität usw.As in 38 shown, there are many types of exercise module such as one to improve speed, response, burn calories through energy expenditure, improve muscle activity, etc.

Neben der Verwendung von Übungsmodulen zur Anpassung der Erlebnis können auch Parameter verwendet werden. Basierend auf den Kalorien, die ein Nutzer verbrennen möchte, können z.B. Simulationsparameter, wie die Stärke seiner Angriffe innerhalb der Simulation, angepasst werden. Eine große Menge an Kalorien zu verbrennen würde die Kraft verringern, was den Nutzer zwingen würde, aktiver zu sein, um innerhalb der Simulation zu gewinnen. Diese Methode erlaubt es jedoch nicht, aktiv nutzerspezifische Trainingsabläufe in einer Simulationsumgebung zu generieren. Die Kontrolle über die Erlebnis und das Training ist viel geringer, als bei der Nutzung von Übungsmodulen. Eine derartige Anpassung auf Basis von Parametern, ohne die Notwendigkeit von Übungsmoduln, wird in 39 gezeigt.In addition to using exercise modules to customize the experience, parameters can also be used. Based on the calories that a user would like to burn, for example simulation parameters such as the strength of his attacks within the simulation can be adjusted. Burning a large amount of calories would decrease strength, forcing the user to be more active in order to gain within the simulation. However, this method does not allow active, user-specific training processes to be generated in a simulation environment. The control over the experience and the training is much less than when using exercise modules. Such an adjustment based on parameters, without the need for training modules, is described in 39 shown.

Da es sich bei den Trainingsabläufe in einer Simulationsumgebung um Trainingsabläufe in einer virtuellen Umgebung handelt, besteht die Möglichkeit, das, was die Nutzer sehen, aktiv zu manipulieren. Daher ist ein Konzept namens Simulationsabstraktion möglich. Simulationsabstraktion bedeutet, wie in 40 gezeigt, dass mehrere Nutzer zusammen spielen können, auch wenn sie verschiedene Simulationen spielen. Ein Nutzer könnte eine Zombie-Simulation zusammen mit einem anderen Nutzer spielen, der tatsächlich eine Natursimulation spielt. Beide Nutzer denken, dass sie ihre spezifische Simulation zusammen spielen. Dies ist möglich, da das zugrunde liegende Interaktionskonzept das gleiche ist und ein Managementsystem die Simulation steuern kann. Z.B. könnte der Nutzer, der eine Zombie-Simulation spielt, einen Zombie mit einem Schwert angreifen, der Nutzer, der die Natursimulation spielt, sieht genau, was der andere Nutzer tut, aber nach seinem Erlebnis benutzt er einen Stock, um eine Falle zu zerstören. Die Nutzer können über eine Internetverbindung verbunden sein. Diese Methode ist nicht auf zwei Nutzer begrenzt. Mehrere Nutzer, die mehrere Trainingsabläufe in einer Simulationsumgebung spielen, können teilnehmen. Das WCE muss die Erlebnis global optimieren, basierend auf allen Trainingsabläufen in der Simulationsumgebung und allen Nutzern und den Trainingsvorgaben der Nutzer, da sich alle Trainingsabläufe in einer Simulationsumgebung und Nutzer gegenseitig beeinflussen.Since the training processes in a simulation environment are training processes in a virtual environment, it is possible to actively manipulate what the users see. Hence, a concept called simulation abstraction is possible. Simulation abstraction means, as in 40 demonstrated that multiple users can play together even if they play different simulations. One user could play a zombie simulation with another user who is actually playing a nature simulation. Both users think that they are playing their specific simulation together. This is possible because the underlying interaction concept is the same and a management system can control the simulation. For example, the user who plays a zombie simulation could attack a zombie with a sword, the user who plays the nature simulation sees exactly what the other user is doing, but after his experience he uses a stick to destroy a trap . The users can be connected via an internet connection. This method is not limited to two users. Several users who play several training courses in a simulation environment can participate. The WCE has to optimize the experience globally, based on all training processes in the simulation environment and all users and the training specifications of the users, since all training processes in a simulation environment and users influence each other.

Ähnlich wie bei der Simulationabstraktion gibt es auch die Möglichkeit, verschiedene Arten von Hardware zu abstrahieren, wie in 41 gezeigt. Beispielsweise können zwei Nutzer innerhalb desselben Erlebnisses interagieren, der eine verwendet zu Hause einen Oculus Rift, der andere verwendet ein BlackBoxVR-Gerät in einem Trainingsstudio. Da diese verschiedenen Arten von Hardware die Nutzerinteraktionen auf unterschiedliche Weise einschränken und unterstützen, muss das Managementsystem durch einen Pool von möglichen Interaktionen für jedes Hardwaresystem bereitgestellt werden, um ein gemeinsames Erlebnis in virtueller Umgebung für mehrere Nutzer zu erzeugen. Die Methode der Simulationsabstraktion und der Hardwareabstraktion kann gleichzeitig angewendet werden. Das bedeutet, dass mehrere Nutzer mehrere Simulationen mit unterschiedlichen Hardwaresystemen spielen können, aber alle denken, dass sie das gleiche Erlebnis haben, ohne Hardwarebeschränkungen. Diese Abstraktionsmethoden könnten verwendet werden, um viel größere Trainingsabläufe in einer Simulationsumgebung, Turniere usw. zu schaffen, da die Hardware und die Erlebnis keinen Einfluss darauf haben, wer teilnehmen kann.Similar to simulation abstraction, there is also the option of abstracting different types of hardware, as in 41 shown. For example, two users can interact within the same experience, one using an Oculus Rift at home and the other using a BlackBoxVR device in a training studio. Since these different types of hardware restrict and support user interactions in different ways, the management system must be provided by a pool of possible interactions for each hardware system in order to create a common experience in a virtual environment for several users. The method of simulation abstraction and hardware abstraction can be used at the same time. This means that multiple users can play multiple simulations with different hardware systems, but everyone thinks they will have the same experience with no hardware restrictions. These abstraction methods could be used to create much larger training flows in a simulation environment, tournaments, etc., since the hardware and experience have no bearing on who can participate.

Wie in 42 gezeigt, kann ein Adapter-Repository vorhanden sein. Jeder Adapter kann zwischen der Hardware und der Software platziert werden, um die Hardware zu abstrahieren.As in 42 shown, there may be an adapter repository. Each adapter can be placed between the hardware and the software to abstract the hardware.

Da die Bewegung der Nutzer ausgewertet und gespeichert wird und das System über die Trainings- und Rehabilitationsbedingungen des Nutzers informiert ist, können diese Daten in einer Datenbank gespeichert werden. 43 zeigt einen Vergleich von Bewegungen und Extraktion von Metadaten. Nutzerbewegung wird dann mit gespeicherten Bewegungen verglichen, spezifische Eigenschaften wie kleine Richtungsänderungen der Bewegung können unter bestimmten Bedingungen auf eine Verletzung hinweisen, die dem Nutzer vorgeschlagen werden kann. Am Ende dieser Methode geht es darum, die Bewegung des Nutzers mit gespeicherten Bewegungen zu vergleichen, ähnliche Bewegungen könnten ähnliche Trainings- und Rehabilitationszustände anzeigen, daher könnte das vorgeschlagene System diese Zustände erkennen und dem Nutzer helfen, herauszufinden, ob etwas schief läuft, wie z.B. eine Verletzung.Since the movement of the user is evaluated and saved and the system is informed about the training and rehabilitation conditions of the user, this data can be saved in a database. 43 shows a comparison of movements and extraction of metadata. User movement is then compared with stored movements; specific properties such as small changes in direction of movement can, under certain conditions, indicate an injury that can be suggested to the user. At the end of this method, the aim is to compare the user's movement with stored movements, similar movements could indicate similar training and rehabilitation conditions, so the proposed system could recognize these conditions and help the user to find out if something is going wrong, e.g. an injury.

Die Hardwareabstraktion kann auch von mehreren Übungsmodul-Skripten unterstützt werden, was bedeutet, dass es für jede Art von Hardware, wie beispielsweise Assetscript_HighEnd, Assetscript_Virzoom etc., ein Asset-Skript gibt. Jedes Übungsmodul enthält eine Spezifikationsdatei, die auch eine Standard-Bewegungsdatei wie .fbx sein kann. Da diese Bewegung ein Stück eines Trainings beschreibt, kann es, wie in 44 dargestellt, auch Kommentare geben, z.B. eine START-, END-Bewegungs- und END-ASSET-Anmerkung, die anzeigen, wann die Bewegung beginnt, wann die reine Bewegung wie ein Schlag ausgeführt wird und wann die gesamte Bewegung endet.The hardware abstraction can also be supported by several practice module scripts, which means that there is an asset script for every type of hardware, such as Assetscript_HighEnd, Assetscript_Virzoom etc. Each exercise module contains a specification file, which can also be a standard motion file such as .fbx. Since this movement describes a part of a training session, it can, as in 44 also give comments, e.g. a START, END-Movement and END-ASSET annotation, which indicate when the movement begins, when the pure movement is carried out like a stroke and when the entire movement ends.

Auf bewegungsrelevante Daten kann mittels Code zugegriffen werden. So kann z.B. der Pfad der linken Hand abgefragt und dann gerendert werden. Die abgefragten Daten können Daten wie Bewegungspfade, aber auch Daten wie Gesamtabstände bestimmter Verbindungen etc. beinhalten. 45 zeigt einen Code zur Abfrage von Bewegungsdaten. Dies ermöglicht es, diese Bewegungen direkt mit dem Simulationsereignis zu verbinden. Daher könnte die Position der linken Hand im Moment, in dem die Bewegung ausgeführt wird, abgefragt werden, um einen Würfel an dieser Position zu erzeugen, wie in 46 gezeigt, so dass der Nutzer den Würfel boxen und die Bewegung ausführen kann. Da diese Bewegungen mit Hilfe der bereits in diesem Dokument beschriebenen Methode der parametrischen Bewegungen angepasst werden können, können auch kundenspezifische Daten verwendet werden, um die Simulationsumgebung zu beeinflussen.Data relevant to movement can be accessed using code. For example, the path of the left hand can be queried and then rendered. The queried data can include data such as movement paths, but also contain data such as total distances of certain connections etc. 45 shows a code for querying movement data. This enables these movements to be linked directly to the simulation event. Therefore, the position of the left hand at the moment the movement is performed could be queried in order to generate a cube at that position, as in FIG 46 shown so that the user can box the cube and make the move. Since these movements can be adapted using the parametric movement method already described in this document, customer-specific data can also be used to influence the simulation environment.

Das Übungsmodul-Repository ist in zwei Abstraktionsebenen unterteilt, wie in 47 gezeigt. Die erste Abstraktionsebene stellt die verschiedenen Übungsmodule dar. Die zweite sind die verschiedenen Implementierungen für jedes Übungsmodul. Entwickler können Level 1 für die Suche nach Bewegungen und Effekten und Level 2 für die Suche nach Simulationsereignissen und konkreten Implementierungen nutzen.The lab module repository is divided into two levels of abstraction, as in 47 shown. The first level of abstraction represents the different training modules. The second is the different implementations for each training module. Developers can use level 1 to search for movements and effects and level 2 to search for simulation events and concrete implementations.

Jede Implementierung kann spezifische zusätzliche Dateien wie 3D-Modelle usw. beinhalten, die für die Ausführung der spezifischen Übungsmodul-Implementierung relevant sind. Um die Korrektheit der verschiedenen Anlagenimplementierungen zu gewährleisten, könnte ein Korrektheits- oder Präzisionswert anzeigen, wie genau der Effekt das Objekt beschreibt. Dies ist beispielhaft in 48 gezeigt. Dieser Wert kann berechnet werden, indem man den Effekt mit den realen Effekten vergleicht, die für mehrere Nutzer gemessen werden.Each implementation may contain specific additional files such as 3D models etc. relevant to the execution of the specific training module implementation. To ensure the correctness of the various system implementations, a correctness or precision value could indicate how accurately the effect describes the object. This is exemplified in 48 shown. This value can be calculated by comparing the effect with the real effects measured for several users.

Ein Übungsmodul-Editor, wie in 49 dargestellt, ermöglicht es Entwicklern, die im Übungsmodul angegebene Bewegung zu rendern und das Übungsmodul-Skript mittels visueller Rückmeldung zu erstellen. Das Übungsmodul-Skript kann auch globale Parameter, wie die allgemeine Simulationsgeschwindigkeit, usw. verwenden, um das Erlebnis anzupassen. Dadurch können Trainingsabläufe in einer Simulationsumgebung beispielsweise an das Alter eines Nutzers angepasst werden, z.B. wenn schnelle Bewegungen insgesamt schlecht für den Körper des Nutzers sind. Auch Nutzerinteraktionen, wie die Auswahl einer bestimmten Waffe in einem Simulation, usw. können genutzt werden, um das Simulation und den Übungsmodulplan zu beeinflussen. Dies kann in der Simulationslogik oder in bestimmten Übungsmodulen selbst implementiert werden.A tutorial editor, as in 49 shown, allows developers to render the motion specified in the tutorial and create the tutorial script using visual feedback. The tutorial script can also use global parameters such as general simulation speed, etc. to customize the experience. As a result, training sequences in a simulation environment can be adapted to the age of a user, for example, if fast movements are generally bad for the user's body. User interactions, such as the selection of a certain weapon in a simulation, etc. can also be used to influence the simulation and the training module plan. This can be implemented in the simulation logic or in certain exercise modules themselves.

Eine Testumgebung, die es Entwicklern ermöglicht, ihre Simulatione zu testen, ist in 50 gezeigt. Die Simulationlogik und die Übungsmodule werden verwendet, um den Nutzer und die Simulationsumgebung darzustellen. Der Entwickler kann die Qualität des Simulation bewerten.A test environment that allows developers to test their simulations is in 50 shown. The simulation logic and the exercise modules are used to represent the user and the simulation environment. The developer can evaluate the quality of the simulation.

Im Gegensatz zu dem Konzept, dass die Workout Customization Engine (WCE) Übungsmodul auswählt und diese Übungsmodule die Simulation oder das Erlebnis direkt manipulieren, können Übungsmodule auch in einem Workout Customization Management System (WCMS) bereitgestellt werden. In diesem Szenario schlagen die Übungsmodule dem Managementsystem Operationen und Ereignisse vor, die die Simulation oder das Erlebnis direkt manipulieren.In contrast to the concept that the Workout Customization Engine (WCE) selects exercise modules and these exercise modules directly manipulate the simulation or the experience, exercise modules can also be provided in a Workout Customization Management System (WCMS). In this scenario, the practice modules propose operations and events to the management system that directly manipulate the simulation or experience.

51 zeigt das Arbeitsprinzip der Workout Customization Engine (WCE). Die WCE erhält folgende Daten:

  • • Trainingsspezifikation
  • • verfügbare Übungsmodule
  • • weitere Daten wie Tabelle, die Strafpunktzahl für aufeinanderfolgende Übungsmodule m und n speichert (Tabelle 1)
51 shows the working principle of the Workout Customization Engine (WCE). The WCE receives the following data:
  • • Training specification
  • • available exercise modules
  • • Further data such as a table that stores the penalty points for successive exercise modules m and n (Table 1)

Aus diesen Daten wird die Übungsmodulreihenfolge bestimmt. Die Virtuelle Umgebung ergibt sich durch die Ausführung der Simulationslogik und den Übungsmodulen entsprechend der Übungsmodulreihenfolge. Dabei manipulieren die Übungsmodule direkt die virtuelle Umgebung, z.B. durch Erzeugen eines 3D Objektes. Soll die Ausführung eines Übungsmoduls gestoppt werden, z.B. weil dem Nutzer im Rahmen der Simulation ein Sachverhalt erklärt werden soll, muss die Simulationslogik entweder direkt in das Übungsmodul oder die Übungsmodulausführung eingreifen. Die Simulationslogik und die Übungsmodulausführung sind also zwei unterschiedliche parallel ablaufende Prozesse, die sich gegenseitig beeinflussen können. Man könnte auch von einer „dezentralen“ Lösung sprechen, weil es kein übergeordnetes System gibt und beide Prozesse die Virtuelle Umgebung direkt manipulieren und anpassen können.The order of the training modules is determined from this data. The virtual environment results from the execution of the simulation logic and the exercise modules according to the sequence of the exercise modules. The exercise modules manipulate the virtual environment directly, e.g. by creating a 3D object. If the execution of an exercise module is to be stopped, e.g. because an issue is to be explained to the user during the simulation, the simulation logic must either intervene directly in the exercise module or in the execution of the exercise module. The simulation logic and the execution of the exercise module are therefore two different processes running in parallel that can influence each other. One could also speak of a “decentralized” solution because there is no higher-level system and both processes can manipulate and adapt the virtual environment directly.

Eine weitere Lösung stellt das Workout Customization Management System (WCMS) dar, das ein übergeordnetes Managementystem ist. Das Arbeitsprinzip der WCE mit WCMS ist in 52 gezeigt. Bei der Übungsmodulausführung manipulieren die Übungsmodule die Virtuelle Umgebung nicht mehr direkt, sondern liefern dem WCMS ihre Funktionalität, machen also einen Vorschlag, was als nächstes in der virtuellen Umgebung geschehen könnte. Das WCMS hat dann die Möglichkeit die Funktionalität des Übungsmodul auszuführen bzw. zu erlauben, zu pausieren, das Übungsmodul zu beenden etc. Das kann dann auf Grundlage der Simulationslogik erfolgen. Beispielsweise könnte das Übungsmodul, das als nächstes ausgeführt werden soll, eine Priorität von 4 haben, die Aktion, welche die Simulationslogik ausführen möchte, aber eine Priorität von 10, z.B. dem Nutzer im Rahmen der Simulation etwas erklären. Das WCMS entscheidet dann anhand der Prioritäten, erst die Aktion der Simulationslogik auszuführen, das Übungsmodul währenddessen zu pausieren und es erst weiter auszuführen, nachdem die Aktion der Simulationslogik beendet wurde. Das WCMS ist also keine Alternative zur WCE, sondern ermöglicht einen alternativen Aufbau des Gesamtsystems. Die Erfindung beschränkt sich in ihrer Ausführung nicht auf das vorstehend angegebene bevorzugte AusführungsbeiAnother solution is the Workout Customization Management System (WCMS), which is a higher-level management system. The working principle of the WCE with WCMS is in 52 shown. When executing the exercise module, the exercise modules no longer manipulate the virtual environment directly, but provide the WCMS with their functionality, i.e. make a suggestion as to what is next in the virtual environment Environment could happen. The WCMS then has the option of executing or allowing the functionality of the exercise module, pause, end the exercise module, etc. This can then be done on the basis of the simulation logic. For example, the training module that is to be carried out next could have a priority of 4, but the action that the simulation logic wants to carry out, but a priority of 10, e.g. explain something to the user during the simulation. The WCMS then decides on the basis of the priorities to first execute the action of the simulation logic, to pause the exercise module during this and to only continue to execute it after the action of the simulation logic has ended. The WCMS is therefore not an alternative to the WCE, but enables an alternative structure of the overall system. The embodiment of the invention is not limited to the preferred embodiment specified above

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • US 2019046859 A1 [0006]US 2019046859 A1 [0006]
  • WO 2004109575 A1 [0007]WO 2004109575 A1 [0007]
  • WO 2007058512 A1 [0008]WO 2007058512 A1 [0008]
  • KR 20020030755 A [0009]KR 20020030755 A [0009]

Claims (16)

Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung, insbesondere für Sport- und Rehabilitationszwecke, wobei das Verfahren folgende Schritte aufweist: - Erfassen von Nutzerdaten über Nutzereingabe und Sensoren; - Analyse der Nutzerdaten und Ermitteln von errechneten Körper- und/oder Bewegungsdaten; - Auswahl von mit den errechneten Körper- und Bewegungsdaten korrespondierenden Trainings-Daten aus einem ersten Datenspeicher, wobei die physiologische Wirkung auf den Nutzer ein Auswahlkriterium ist; und - Erzeugen einer Trainings-Spezifikation; - Bereitstellen von Übungsmodulen (Übungsmoduls) in einem zweiten Datenspeicher; - Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der Trainings-Spezifikation; - Erzeugen einer virtuellen Umgebung, Umgebungs-Visualisierung und 3D Modellierung aus einer vom Nutzer gewählten Simulationslogik; - Starten des Trainings; wobei das Verfahren ferner folgende Schritte aufweist: a) Erfassen von Nutzerinformationen, wie Körperdaten und Bewegungsparameter, während des Trainings; b) IST/SOLL Vergleich der erfassten Nutzerinformationen mit den errechneten Daten; c) Anpassen der Trainings-Spezifikation an die SOLL Daten; d) Anpassen der Kombination und Anordnung der ausgewählten Übungsmodule nach den Vorgaben der angepassten Trainings-Spezifikation; e) Anpassen der virtuellen Umgebung an die geänderten Übungsmodule; f) Ausführen der angepassten Kombination und Anordnung der ausgewählten Übungsmodule und Sprung zu Schritt a).Method for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes, the method comprising the following steps: - Acquisition of user data via user input and sensors; - Analysis of user data and determination of calculated body and / or movement data; - Selection of training data corresponding to the calculated body and movement data from a first data memory, the physiological effect on the user being a selection criterion; and - Generating a training specification; - Provision of exercise modules (exercise module) in a second data memory; - Combination and arrangement of the selected exercise modules according to the requirements of the training specification; - Generation of a virtual environment, environment visualization and 3D modeling from a simulation logic selected by the user; - start training; the method further comprising the steps of: a) Acquisition of user information, such as body data and movement parameters, during training; b) ACTUAL / TARGET comparison of the recorded user information with the calculated data; c) Adapting the training specification to the TARGET data; d) Adapting the combination and arrangement of the selected exercise modules according to the specifications of the adapted training specification; e) adapting the virtual environment to the changed training modules; f) Executing the adapted combination and arrangement of the selected exercise modules and jumping to step a). Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1, wobei die zeitliche Reihenfolge der Übungsmoduls entsprechend den relevanten Daten wie einer Zahl zu optimieren, die beschreibt, wie schlecht er ist, um bestimmte Übungsmodule nacheinander auszuführen (Strafpunktzahl).Method for creating individual training processes in a simulation environment Claim 1 , optimizing the time sequence of the exercise module according to the relevant data such as a number that describes how bad it is in order to carry out certain exercise modules one after the other (penalty points). Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-2, wobei die Wirkung des Trainings mit einem Bewegungsanalyse-Algorithmen extrahiert und im ersten Datenspeicher gespeichert wird.Method for creating individual training processes in a simulation environment Claim 1 - 2 , the effect of the training being extracted with a motion analysis algorithm and stored in the first data memory. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-3, wobei die Körpermodelle der verbundenen Zeitstempel vergleichen werden, die Geschwindigkeit jedes Gelenks berechnet wird und die Beschleunigung daraus extrahiert wird und basierend auf den Gewichten bestimmter Körperteile doe angewandten Kräfte berechnet werden.Method for creating individual training processes in a simulation environment Claim 1 - 3 , comparing the body models of the associated timestamps, calculating the speed of each joint and extracting the acceleration therefrom and calculating the applied forces based on the weights of certain body parts. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-4, wobei ein Übungsmodul ein Übungsmodell beschreibt und trainings- und rehabilitationsspezifisches Wissen, das sich auf die Übung bezieht, enthält.Method for creating individual training processes in a simulation environment Claim 1 - 4th , whereby an exercise module describes an exercise model and contains training- and rehabilitation-specific knowledge that relates to the exercise. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-5, wobei das Verfahren eine Umgebungs-Visualisierung verwendet, die die gespeicherte Trainingseinheit durch Visualisierung des Bewegungspfades oder durch Visualisierung eines menschlichen Modells aufzeigt, das die Trainingseinheit durchführt.Method for creating individual training processes in a simulation environment Claim 1 - 5 , wherein the method uses an environmental visualization that shows the stored training unit by visualizing the movement path or by visualizing a human model performing the training unit. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-6, wobei der Nutzer bzw. die Rolle, die der Nutzer in der virtuellen Umgebung verkörpert, mittels der virtuellen Umgebung und Objekte zur korrekten Ausführung der Übungsmodule veranlasst wird.Method for creating individual training processes in a simulation environment Claim 1 - 6 wherein the user or the role that the user embodies in the virtual environment is prompted to correctly execute the training modules by means of the virtual environment and objects. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-7, wobei Einrichtungen zum Erkennen, ob der Nutzer die vorgegebene Bewegungsbahn erfüllt hat oder nicht, vorgesehen sind, wobei hierfür der Vergleich der Gelenkpositionen jedes Zeitstempels im dreidimensionalen Raum erfasst und daraus Funktionen f berechnet werden, die den Abstand zwischen diesen Punkten bei jedem Zeitstempel abbilden und daraus einen Fehlerwert extrahieren.Method for creating individual training processes in a simulation environment Claim 1 - 7th , whereby devices for recognizing whether the user has fulfilled the specified trajectory or not are provided, whereby for this purpose the comparison of the joint positions of each time stamp is recorded in three-dimensional space and functions f are calculated therefrom which map the distance between these points for each time stamp and extract an error value from it. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-8, wobei ein Optimierungsalgorithmus eine Kombination und/oder zeitliche Reihenfolge von Übungsmodulen erzeugt.Method for creating individual training processes in a simulation environment Claim 1 - 8th , with an optimization algorithm generating a combination and / or chronological sequence of training modules. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-9, wobei eine Zustandsmaschine vorgesehen ist, um Trainingsabläufe in einer dynamischen Simulationsumgebung zu generieren.Method for creating individual training processes in a simulation environment Claim 1 - 9 , a state machine being provided in order to generate training sequences in a dynamic simulation environment. Verfahren zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 1-10, wobei eine Simulationsabstraktion vorgesehen ist, mittels der mehrere Nutzer zusammen interagieren können, auch wenn sie sich in verschiedene virtuellen Umgebungen und Szenarien befinden.Method for creating individual training processes in a simulation environment Claim 1 - 10 , whereby a simulation abstraction is provided, by means of which several users can interact together, even if they are in different virtual environments and scenarios. System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung, wobei das System zumindest einen Prozessor, Einrichtungen zum Erfassen von Nutzerdaten, einen ersten Datenspeicher mit Trainingsdaten, die mit Nutzerdaten korrespondieren, einen zweiten Datenspeicher mit Übungsmodulen, Virtuel Reality- bzw. Augmented Reality-Hardware zur Ausgabe der dynamischen Simulationsumgebung, Sensoren und/oder eine Bewegungserfassungseinrichtung zum Erfassen von Nutzerinformationen, wie Körperdaten und Bewegungsdaten während des Trainings, aufweist.System for generating individual training processes in a simulation environment, the system having at least one processor, devices for capturing user data, a first data memory with training data corresponding to user data, a second data memory with exercise modules, virtual reality or augmented reality hardware for output of the dynamic simulation environment, sensors and / or a movement detection device for recording user information, such as body data and movement data during training. System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 12, wobei das System ferner Einrichtungen zur Verbindung mit einem Netzwerk, vorzugsweise mit dem Internet aufweist.System for creating individual training processes in a simulation environment Claim 12 the system further comprising means for connection to a network, preferably to the Internet. System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 12-13, wobei Adapter-Repository vorgesehen sind, wobei jeder Adapter zwischen der Hardware und der Software platziert ist, um die Hardware zu abstrahieren.System for creating individual training processes in a simulation environment Claim 12 - 13 , adapter repositories are provided, each adapter being placed between the hardware and the software to abstract the hardware. System zum Erzeugen individueller Trainingsabläufe in einer Simulationsumgebung nach Anspruch 12-14, wobei das System so konfiguriert ist, dass es das Verfahren nach einem der Ansprüche 1 bis 11 ausführtSystem for creating individual training processes in a simulation environment Claim 12 - 14th , wherein the system is configured to perform the method of any of Claims 1 to 11 executes Computerprogramm, umfassend Befehle, die beim Laden und Ausführen des Programms auf dem System nach einem der Ansprüche 12 bis 15 dieses veranlasset, dass die Schritte des Verfahrens nach einem der Ansprüche 1 bis 11 auszuführen.Computer program, comprising instructions which, when the program is loaded and executed on the system, according to one of the Claims 12 to 15th this causes the steps of the method according to one of the Claims 1 to 11 execute.
DE102019120655.3A 2019-07-31 2019-07-31 Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes Withdrawn DE102019120655A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019120655.3A DE102019120655A1 (en) 2019-07-31 2019-07-31 Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019120655.3A DE102019120655A1 (en) 2019-07-31 2019-07-31 Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes

Publications (1)

Publication Number Publication Date
DE102019120655A1 true DE102019120655A1 (en) 2021-02-04

Family

ID=74165522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019120655.3A Withdrawn DE102019120655A1 (en) 2019-07-31 2019-07-31 Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes

Country Status (1)

Country Link
DE (1) DE102019120655A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220358309A1 (en) * 2021-05-04 2022-11-10 Tencent America LLC Vision-based motion capture system for rehabilitation training
CN116612859A (en) * 2023-07-17 2023-08-18 山东第一医科大学第二附属医院 Postoperative limb coordination nerve recovery training management system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220358309A1 (en) * 2021-05-04 2022-11-10 Tencent America LLC Vision-based motion capture system for rehabilitation training
CN116612859A (en) * 2023-07-17 2023-08-18 山东第一医科大学第二附属医院 Postoperative limb coordination nerve recovery training management system
CN116612859B (en) * 2023-07-17 2023-10-10 山东第一医科大学第二附属医院 Postoperative limb coordination nerve recovery training management system

Similar Documents

Publication Publication Date Title
DE102020107913A1 (en) USING GAME STYLE PATTERNS TO CREATE VIRTUAL REPRESENTATIONS OF PLAYERS
DE102019120655A1 (en) Method and system for generating individual training sequences in a simulation environment, in particular for sports and rehabilitation purposes
DE102015208804A1 (en) Apparatus and method for computer-aided simulation of surgical procedures
Laird An exploration into computer games and computer generated forces
Bai et al. Enhancing emotional experience by building emotional virtual characters in vr volleyball games
Stahlke et al. Usertesting without the user: Opportunities and challenges of an ai-driven approach in games user research
Fabro et al. Using reinforcement learning techniques to select the best action in setplays with multiple possibilities in robocup soccer simulation teams
Pagnussat et al. Bimanual motor skill in recruitment of forest harvest machine operators
Bonk et al. Learning and memory for sequences of pictures, words, and spatial locations: An exploration of serial position effects
Lindström et al. Predicting player trajectories in shot situations in soccer
Kohwalter et al. Understanding game sessions through provenance
Willmott et al. An adversarial planning approach to Go
Floyd et al. An active approach to automatic case generation
CN114186696A (en) Visual system and method for AI training teaching
Dreveck et al. Easy Learning of Reinforcement Learning with a Gamified Tool
Danousis et al. Exergames in the GAME2AWE platform with dynamic difficulty adjustment
Bos Improving the Chess Elo System With Process Mining
Milani et al. BEDD: The MineRL BASALT Evaluation and Demonstrations Dataset for Training and Benchmarking Agents that Solve Fuzzy Tasks
Kaminka et al. Performance competitions as research infrastructure: Large scale comparative studies of multi-agent teams
Cavadas et al. Training human-like bots with Imitation Learning based on provenance data
Antonio et al. Caos coach 2006 simulation team: An opponent modelling approach
Mozgovoy et al. Behavior capture with acting graph: a knowledgebase for a game ai system
Souza et al. DDA-MAPEKit: A Framework for Dynamic Difficulty Adjustment Based on MAPE-K Loop
DE102020213843A1 (en) Procedure for determining optimized work processes of mobile work machines using methods of artificial intelligence
Vago et al. INTEGRA: An Open Tool To Support Graph-Based Change Pattern Analyses In Simulated Football Matches.

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee