US20250319359A1
SYSTEM AND METHOD FOR SIMULATED FLYWHEEL TRAINING
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
OxeFit, Inc.
Inventors
Peter Neuhaus
Abstract
A control system for simulating flywheel training includes processing circuitry. The processing circuitry is programmed to obtain sensor data indicating movement of an end effector of fitness equipment. The processing circuitry is also programmed to operate an electric motor of the fitness equipment, based on the movement of the end effector, to exert a force on the end effector. The force on the end effector is determined based on a result of a physics-based simulation of a virtual flywheel in order to provide a flywheel training experience for a user without requiring a flywheel physically coupled to the end effector.
Figures
Description
BACKGROUND
[0001]Aspects of the present application relate to fitness equipment, for example exercise equipment useful for strength and/or endurance training. One goal for some users of fitness equipment is to improve performance, ability, competitive level, etc. at a sport or game, intended to result from improved fitness, strength, mobility, endurance, etc. achieved via repeated use of the fitness equipment. Flywheel training involves a rope wound about a shaft with a flywheel mounted to the shaft. When the user moves an end effector, the flywheel is driven to rotate. The user exerts a force during a concentric portion of an exercise to accelerate the flywheel, and exerts force during an eccentric portion of the exercise to decelerate the flywheel. Flywheel training can advantageously provide increased resistance during the eccentric portion of the exercise compared to other cable or dumbbell exercises.
SUMMARY
[0002]One implementation of the present disclosure is fitness equipment, according to some embodiments. In some embodiments, the fitness equipment includes an electric motor, a tensile member, an end effector, a sensor, and a controller. In some embodiments, the tensile member is coupled with an output shaft of the electric motor. In some embodiments, the end effector is coupled to the electric motor through the tensile member and configured for interaction with a user during performance of a flywheel training exercise by the user. In some embodiments, the electric motor is operable to provide a force to the end effector through the tensile member. In some embodiments, the sensor is configured to obtain at least one of a position, a velocity, or an acceleration of the end effector. In some embodiments, the controller is programmed to cause the electric motor to operate to exert the force on the end effector during the interaction with the user by generating motor controls by simulating rotation of a virtual flywheel using the at least one of the position, the velocity, or the acceleration of the end effector.
[0003]In some embodiments, the controller is further programmed to, during a wind-out phase of the flywheel training exercise, determine a first force to be exerted on the end effector based on the acceleration of the end effector and a characteristic of a simulated flywheel using a first model of the simulated flywheel. In some embodiments, the controller is further programmed to track a speed of the simulated flywheel. In some embodiments, the controller is further programmed to cause the electric motor to operate to exert the first force on the end effector. In some embodiments, the first force is exerted on the end effector in a direction opposing a first direction of motion of the end effector during the wind-out phase of the flywheel training exercise. The wind-out phase occurs over a concentric portion of the flywheel training exercise when the tensile member is winding out, according to some embodiments.
[0004]In some embodiments, the controller is further programmed to, during a wind-in phase of the flywheel training exercise, determine a second force to be exerted on the end effector based on a comparison between a speed of the end effector and the speed of the simulated flywheel using a second model of the simulated flywheel. In some embodiments, the controller is programmed to cause the electric motor to operate to exert the second force on the end effector. In some embodiments, the second force exerted on the end effector in the direction that is the same as a second direction of motion of the end effector during the wind-out phase of the flywheel training exercise and opposing a force exerted by the user on the end effector in the first direction. The wind-in phase occurs over an eccentric portion of the flywheel training exercise when the tensile member is being wound in or taken up, according to some embodiments.
[0005]In some embodiments, the second model of the simulated flywheel is different than the first model of the simulated flywheel. In some embodiments, the second model includes a monotonically increasing function of the comparison between the speed of the end effector and the speed of the simulated flywheel.
[0006]In some embodiments, the controller is further programmed to determine whether to transition a simulator of a virtual flywheel out of a wind-out state corresponding to the wind-out phase of the flywheel training exercise and into a wind-in state corresponding to the wind-in phase of the flywheel training exercise. In some embodiments, the controller is programmed to transition the simulator out of the wind-out state and into the wind-in state responsive to at least one of (i) a position of the end effector exceeding a maximum allowable position corresponding to an end of the wind-out phase, or (ii) a simulated payout of the virtual flywheel returning to an intermediate position of the end effector after passing the maximum allowable position. In some embodiments, the controller is programmed to determine whether to transition the simulator of the virtual flywheel out of the wind-in state and into the wind-out state responsive to at least one of (i) the position of the end effector being less than or equal to a minimum allowable position corresponding to an end of the wind-in phase, or (ii) a speed of the virtual flywheel being less than or equal to zero.
[0007]In some embodiments, the controller is programmed to implement a calibration phase before the flywheel training exercise by operating a display screen of the fitness equipment to prompt the user to perform one or more repetitions of the flywheel training exercise. In some embodiments, the controller is programmed to record a first position of the end effector at which the end effector is fully retracted. In some embodiments, the controller is programmed to record a second position of the end effector at which the end effector is fully extended. In some embodiments, the controller is programmed to use the first position and the second position of the end effector to transition a simulator of a virtual flywheel between a wind-out state corresponding to the wind-out phase of the flywheel training exercise and a wind-in state corresponding to the wind-in phase of the flywheel training exercise.
[0008]In some embodiments, the controller is programmed to operate a user interface of the fitness equipment to prompt the user to enter a user input indicating a characteristic of a virtual flywheel for the flywheel training exercise. In some embodiments, the controller is programmed to, based on the characteristic of the virtual flywheel, cause the electric motor to operate to exert the force on the end effector during interaction with by the user to simulate the flywheel training exercise across both the wind-out phase and the wind-in phase of the flywheel training exercise.
[0009]In some embodiments, the fitness equipment further includes a gearbox and a spool. In some embodiments, the output shaft of the electric motor is coupled with the gearbox, and the gearbox is coupled with the spool, the spool configured to take-up and let-out the tensile member responsive to movement of the end effector.
[0010]Another implementation of the present disclosure is a method of simulating a flywheel training exercise, according to some embodiments. In some embodiments, the method includes providing exercise equipment including a motor and an end effector operably coupled with the motor. In some embodiments, the method includes obtaining a user input indicating a desired characteristic of a virtual flywheel, the desired characteristic determining an amount of resistance to be exerted on the end effector by the motor during the flywheel training exercise. In some embodiments, the method includes obtaining calibration data indicating a first position and a second position of the end effector corresponding to a range of motion of the flywheel training exercise. In some embodiments, the method includes, during a wind-out phase in which the end effector is moved in a first direction, determining a first force to be exerted on the end effector using a simulation of a flywheel based on acceleration of the end effector, and operating the motor to exert the first force on the end effector. In some embodiments, the method includes, during a wind-in phase in which the end effector is moved in a second direction, determining a second force to be exerted on the end effector using the simulation of the flywheel based on speed of the end effector, and operating the motor to exert the second force on the end effector.
[0011]In some embodiments, determining the first force during the wind-out phase of the flywheel training exercise includes determining the first force based on an acceleration of the end effector and the desired characteristic of the virtual flywheel. In some embodiments, determining the second force during the wind-in phase of the flywheel training exercise includes determining the second force based on a monotonically increasing function of a difference between a speed of the end effector and a simulated speed of the virtual flywheel. In some embodiments, the simulated speed of the virtual flywheel is updated based on a previously determined simulated speed of the virtual flywheel and a force exerted by a user on the end effector. In some embodiments, the calibration data is obtained by at least one of (i) prompting a user to perform a repetition of the flywheel training exercise and recording the first position and the second position of the end effector, (ii) predicting the first position and the second position of the end effector based on one or more characteristics of the user, or (iii) predicting the first position and the second position of the end effector based on a first position and a second position of the end effector for a different exercise. In some embodiments, the method includes determining whether to transition the simulation of the virtual flywheel out of a wind-out state corresponding to the wind-out phase of the flywheel training exercise and into a wind-in state corresponding to the wind-in phase of the flywheel training exercise responsive to at least one of (i) a position of the end effector exceeding the first position, or (ii) a simulated payout of the virtual flywheel returning to an intermediate position of the end effector after passing the second position.
[0012]In some embodiments, the method includes determining whether to transition the simulation of the virtual flywheel out of a wind-in state and into a wind-out state responsive to at least one of (i) the position of the end effector being less than or equal to a minimum allowable position corresponding to an end of the wind-out phase, or (ii) a speed of the virtual flywheel being less than or equal to zero. In some embodiments, the first force is determined in the wind-out phase during a concentric portion of a repetition of the flywheel training exercise, and the second force is determined in the wind-in phase during an eccentric portion of the repetition of the flywheel training exercise. In some embodiments, the speed of the end effector and the acceleration of the end effector are determined based on sensor data from a position sensor and inertial measurement data obtained from an inertial measurement unit positioned within the end effector.
[0013]Another implementation of the present disclosure is a control system for simulating flywheel training, according to some embodiments. In some embodiments, the control system includes processing circuitry. In some embodiments, the processing circuitry is programmed to obtain sensor data indicating movement of an end effector of fitness equipment. In some embodiments, the processing circuitry is programmed to operate an electric motor of the fitness equipment, based on the movement of the end effector, to exert a force on the end effector, the force on the end effector determined based on a result of a physics-based simulation of a virtual flywheel in order to provide a flywheel training experience for a user without requiring a flywheel physically coupled to the end effector.
[0014]In some embodiments, a size of the virtual flywheel for the physics-based simulation is user adjustable to adjust a behavior of the virtual flywheel and the force exerted on the end effector responsive to movement of the end effector. In some embodiments, the processing circuitry is further programmed to, prior to the operation of the electric motor to simulate the flywheel training experience, operate a display screen of the fitness equipment to prompt the user to perform multiple repetitions of the flywheel training exercise with the end effector. The processing circuitry is also programmed to record minimum and maximum positions of the end effector while performing the multiple repetitions. The processing circuitry is also programmed to implement the physics-based simulation of the virtual flywheel using the minimum and maximum positions to determine when to transition between a wind-in state and a wind-out state of the virtual flywheel.
[0015]In some embodiments, the sensor data includes position data obtained from a position sensor operably coupled with an output shaft of the electric motor. In some embodiments, the movement of the end effector includes a speed and an acceleration of the end effector. In some embodiments, the speed and the acceleration of the end effector are determined by the processing circuitry using numerical differentiation of the position data and a filter.
[0016]Another implementation of the present disclosure is one or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations, according to some embodiments. The operations may include obtaining data indicating movement of an end effector of fitness equipment. The operations can also include determining a target force for a motor of the fitness equipment by, during a first phase of an exercise, determining the target force based on an acceleration of the end effector, and during a second phase of the exercise, determining the target force based on a simulated speed of a virtual mass. The operations may also include controlling the motor based on the target force. In some embodiments, the virtual mass is a virtual flywheel.
BRIEF DESCRIPTION OF THE FIGURES
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
DETAILED DESCRIPTION
[0027]Before turning to the figures, which illustrate certain exemplary embodiments in detail, it should be understood that the present disclosure is not limited to the details or methodology set forth in the description or illustrated in the figures. It should also be understood that the terminology used herein is for the purpose of description only and should not be regarded as limiting.
[0028]Referring generally to the figures, an exercise apparatus and methods relating thereto are shown. In particular, an exercise apparatus configured as a motorized strength training apparatus is shown. In the motorized strength training apparatus described herein, an electric motor operates to generate a tension in a cable. An end effector, in particular an exercise implement such as a handle, bar, etc. can be connected to the cable such that the tension is communicated to the exercise implement and a force is exerted on a user holding (or otherwise in contact with) the exercise implement. As described in further detail below, fitness equipment within the scope of the present disclosure can provide an integrated fitness and game (e.g., sport) experience, which can cause users to increase their fitness and game performance.
[0029]According to various embodiments, a control system including a controller and a motor are configured to implement simulated flywheel training. The motor may be operably coupled with the end effector. The controller is configured to use sensor data indicating motion of the end effector as the user performs an exercise and perform a physics-based simulation of a virtual flywheel. The controller operates the motor to provide a counter-force that opposes a direction of motion of the movement of the end effector in accordance with the physics-based simulation of the virtual flywheel in order to implement a simulated flywheel training experience for the user without requiring a physical flywheel to be coupled with the end effector.
[0030]Referring now to
[0031]The exercise apparatus 100 can also include a first cable extending from the first motor 112 and a second cable extending from the second motor 114. The exercise apparatus 100 also includes a first terminal 122 coupled to the first stanchion and repositionable along the first stanchion 104, and a first set of pulleys 123 positioned at the base platform 102. In the state shown in
[0032]The exercise apparatus 100 also includes a second terminal 124 coupled to the second stanchion 106 and repositionable along the second stanchion 106, and a second set of pulleys 125 positioned at the base platform 102. In the state shown in
[0033]As shown in
[0034]The display console 108 may be configured to display information relating to operation of the exercise apparatus 100 to a user. As shown in
[0035]The first stanchion 104 and the second stanchion 106 extend upwards from the base platform 102 and are spaced apart from one another near an end of the base platform 102. The first stanchion 104 and the second stanchion 106 are shown as being substantially symmetric across a center line of the base platform 102. As shown in
[0036]The first terminal 122 is coupled to the first stanchion 104 and is configured to be selectively repositioned along the first stanchion 104. For example, the first terminal 122 may include a projection that rides along a groove or slot of the first stanchion 104 (or vice-versa) and can be selectively held in place at various heights using a pin configured to engage apertures of the first stanchion 104. The first terminal 122 can include a handle to facilitate repositioning of the first terminal 122. The second terminal 124 is coupled to the second stanchion 106 and is configured to be selectively repositioned along the second stanchion 106. For example, the second terminal 124 may include a projection that rides along a groove or slot of the second stanchion 106 (or vice-versa) and can be selective held in place at various heights using a pin configured to engage apertures of the second stanchion 106. The second terminal 124 can include a handle to facilitate repositioning of the second terminal 124. Accordingly, the first terminal 122 and the second terminal 124 can be repositioned (e.g., manually by a user) to various heights along the first stanchion 104 and the second stanchion 106, i.e., at various heights above the base platform 102. In some embodiments, actuators (e.g., linear actuators) are included in the first stanchion 104 and the second stanchion 106 to automatically move the first terminal 122 and the second terminal 124, for example as described in U.S. patent application Ser. No. 17/584,245, filed 20 Jan. 2022, the entire disclosure of which is incorporated by reference herein.
[0037]The first motor 112 is shown as being positioned on the base platform 102 at a bottom end of the first stanchion 104. The first motor 112 can be operationally coupled to a first cable such that the first motor 112 can generate tension in the first cable. In some examples, the first motor 112 can include an electric motor coupled to a spool such that the electric motor operates to generate a torque that rotates the spool. In such examples, the spool is coupled to a first cable such that the first cable can be repeatedly wound and unwound from the spool of the first motor 112 by operation of the first motor 112.
[0038]The first motor 112 is configured to controllably generate a force that acts both acts to retract a first cable towards the first motor 112 and to resists the first cable from being pulled out (unspooling, releasing) from the first motor 112. Thus, the first motor 112 can provide a controllable tension in the first cable in different phases (e.g., concentric and eccentric phases) of exercises performed using the exercise apparatus 100, for example providing different amounts of tension in different phases or otherwise dynamically altering the tension. In some embodiments, the first motor 112 includes a permanent magnet direct current motor. In various embodiments, the first motor 112 includes a belt, a gear, a set of gears, various gearing, etc.
[0039]The second motor 114 is shown as being positioned on the base platform 102 at a bottom end of the second stanchion 106. The second motor 114 is operationally coupled to a second cable such that the second motor 114 can generate tension in the second cable 120. Other than acting on the second cable rather than the first cable, the second motor 114 is configured substantially the same as the first motor 112 in the examples shown. Various exercises that can be enabled by the operation of the first motor 112 and the second motor 114 including strength training exercises, cardio exercises (e.g., rowing, paddling, swimming, skiing, etc. exercises), Pilates exercises, etc., and are shown in U.S. patent application Ser. No. 17/495,584 filed Oct. 6, 2021, U.S. patent application Ser. No. 17/462,237 filed Aug. 31, 2021, and U.S. patent application Ser. No. 17/495,575 filed Oct. 6, 2021, the entire disclosures of which are incorporated by reference herein.
[0040]Referring now to
[0041]The multi-cable force production system 202 can be configured as described in detail in U.S. patent application Ser. No. 16/909,003, filed Jun. 23, 2020, the entire disclosure of which is incorporated by reference herein. The multi-cable force production system 202 as shown here in
[0042]The multi-cable force production system 202 is also shown as include platform (base, foundation, exercise surface, etc.) 218. Platform 218 can include one or more sensors configured to detect user interactions with the platform 218, for example one or more force sensors, pressure sensors, load cells, accelerometers, acoustic sensors (microphones), etc. For example, the base platform 218 may include one or more force plates coupled to a frame of the platform 218 so as to be slightly moveable, enabling the one or more force plates to measure (e.g., weigh) forces and/or pressures exerted thereon and/or accelerations thereof (e.g., caused by a user).
[0043]The pacing lighting system 204 can be configured as described in detail in U.S. patent application Ser. No. 17/010,573, filed Sep. 2, 2020, the entire disclosure of which is incorporated by reference herein. The pacing lighting system 204 as shown here in
[0044]The display interface 206 is configured to show various instructions, exercise data, resistance amounts, exercise routines, and other information to a user. The display interface 206 may be a touchscreen to enable interaction between the user and the display interface 206. For example, the display interface 206 may be configured to accept user inputs requesting operations and changing settings for the fitness system 200, force production system 202, and/or pacing lighting system 204. Various customized exercise programs and content can be provided via the display interface 206, including as described in U.S. patent application Ser. No. 16/909,003 cited above and incorporated herein by reference.
[0045]The fitness system 200 is also shown as including an integrated bench 208 which can be selectively included or removed from the fitness system 200 to enable exercises suitable for performance using a bench (e.g., bench press). The integrated bench 208 may be configured to be coupled to the platform 218 in some embodiments. The integrated bench 208 can be adjustable to different inclinations for various exercises. In some embodiments, the integrated bench 208 includes sensors or electronics to facilitate use of the integrated bench with other elements of the fitness system 200.
[0046]The fitness system 200 is also shown as including adjustable rails 210. The adjustable rails 210 are positioned below the cradles 211 and along sides of the platform 218, and are configured to stop the bar from moving lower than height defined by the adjustable rails 210. The adjustable rails 210 can thus receive the barbell 214 when a user is unable to complete an exercise or otherwise wishes to place the barbell 214 somewhere other than in the cradles 211.
[0047]Various hardware and/or software of the various elements of the fitness system 200 can be integrated and/or interoperable to provide for a comprehensive, unified experience for users of the fitness system 200. For example, a control system for the fitness system 200 can control the force production system 202, the pacing lighting system 204, and the display interface 206. As one feature enabled by this integration, the force production system 202 can be controlled in coordinate with motorized movement of the cradles 211 by one or more actuators (e.g., as described in U.S. patent application Ser. No. 17/584,245, filed 20 Jan. 2022, the entire disclosure of which is incorporated by reference herein), for example either allowing the cables 212 to be extended as the cradles 211 move upwards or by retracting slack in the cables 212 as the cradles 211 move downwards. Various other integrations are also possible in various embodiments.
[0048]Referring now to
[0049]The effector 312 is coupled with a free end of the cable 310. The effector 312 may have the form of a handle, a rope, a barbell, etc. For example, the effector 312 may have the form of the barbell 214. The effector 312 is fixedly coupled with the cable 310 such that when a user pulls on the effector 312 during a wind out state, the spool 308 is driven to rotate thereby winding out the cable 310 that is wrapped around the spool 308. The cable 310 includes a stopper 314 (e.g., a member anchored or coupled to the cable 310 proximate the effector 312). The cable 310 is configured to pass through an opening 316 of a frame 318 of the exercise equipment 300 with the stopper 314 positioned more proximate the effector 312. The stopper 314 has a larger size than the opening 316 so that, when the effector 312 is released, the cable 310 is limited from being fully wound around the spool 308.
[0050]It should be understood that the exercise equipment 300 may include multiple motors 302 that are arranged in series. For example, the exercise equipment 300 can include a first electric motor positioned on a first side of the spool 308 and a second electric motor positioned on a second side of the spool 308. The first and second electric motor can be operated in unison to drive the spool 308. Likewise, the exercise equipment 300 can include multiple cables 310 that are wound around separate spools 308. The motor 302 is configured to drive to provide a counter-torque to the spool 308 during the wind-out of the cable 310 due to the pulling motion by the user on the end effector 312.
[0051]The motor 302 is operated to provide torque to the spool 308 to simulate a flywheel or disk coupled with the spool 308. The motor 302 is specifically operated in order to provide counter-torques to resist the motion of the effector 312 and corresponding linear motion of the cable 310 in a manner as if a flywheel or disk were coupled to the spool 308. The motor 302 implements a simulated disk having rotational inertia coupled with the spool 308.
[0052]The motor 302 may be operated by a control system 400 of the exercise equipment 300. The control system 400 includes a controller 402, a motor controller 404, and a user interface 436. The control system 400 also includes a position sensor 408 at the spool 308 that is configured to measure a position of the spool 308. The control system 400 may also include an inertial measurement unit (“IMU”) 406 that is positioned within the effector 312 or another sensor, or a combination of one or more sensors. The IMU 406 may include multiple accelerometers configured to measure acceleration in multiple directions. The IMU 406 may be an optional sensor. The IMU 406 (e.g., the sensor in the effector 312) may be configured to obtain position, velocity, or acceleration of the effector 312.
[0053]The controller 402 is configured to receive position sensor data from the position sensor 408, and inertial sensor data from the IMU sensor 406. The controller 402 may also receive, from the user interface 436, a virtual wheel size as an input. The controller 402 is configured to use the position sensor data, the inertial sensor data, and the virtual wheel size in order to perform a simulation of a position, speed, and acceleration of a virtual wheel (e.g., a virtual disk). The controller 402 is configured to generate, as a result of the simulation, control signals for the motor controller 404 such that the motor controller 404 operates the motor 302 to provide torque to the spool 308 so that the user experiences corresponding forces on the effector 312 as if a disk having the virtual wheel size were coupled to the spool 308. It should be understood that the controller 402 and the motor controller 404 may be structurally similar (e.g., both including processing circuits) or may be implemented on a same processing circuit. For example, the controller 402 may be a remote computing system that is configured to wirelessly communicate with the components of the control system 400 and communicate wirelessly with the motor controller 404 or another intermediary controller. In another example, the functionality of both the controller 402 and the motor controller 404 are implemented on common processing circuitry. Advantageously, the control system 400 implements a simulation of a disk in order to provide the user of the exercise equipment 300 with the experience of flywheel training, without requiring a physical flywheel. The control system 400 can also perform the simulation using different virtual wheel sizes as selected or set by the user via the user interface 436. The user interface 436 may be or include the screen 140, the display console 108, or the display interface 206. The virtual wheel size may determine or result in an amount of resistance that is supplied to the effector 312 during the simulated flywheel training experience by changing a behavior of the virtual flywheel simulated by the controller 402.
[0054]Referring to
[0055]Memory 414 (e.g., memory, memory unit, storage device, etc.) can include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application. Memory 414 can be or include volatile memory or non-volatile memory. Memory 414 can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application. According to some embodiments, memory 414 is communicably connected to processor 412 via processing circuitry 410 and includes computer code for executing (e.g., by processing circuitry 410 and/or processor 412) one or more processes described herein.
[0056]The memory 414 includes a sensor manager 416, a calibration manager 418, a virtual wheel simulator 420, a state machine 422, a display manager 424, and a control manager 426. The controller 402 is configured to receive the position sensor data from the position sensor 408 in real-time (e.g., time-series data). The controller 402 is also configured to obtain the IMU sensor data provided by the IMU 406. The controller 402 is also configured to receive a selection of the virtual wheel size from the user interface 436.
[0057]The controller 402 is configured to generate controls for the motor controller 404 as a result of the simulation implemented using the virtual wheel size. The controller 402 may either provide control signals to the motor controller 404 or directly to the motor 302 (e.g., motor controls) such that the motor 302 is operated to provide a tension to the cable 310 that results in a force at the effector 312 that simulates a wheel having the virtual wheel size coupled with the spool 308.
[0058]The sensor manager 416 is configured to obtain the position sensor data from the position sensor 408 and determine both a speed of the effector 312 and an acceleration of the stopper 314. In some embodiments, the effector 312 is considered to be moved along a single dimension: either in a wind-out direction such as away from the spool 308 so that the cable 310 is unwound from the spool 308, or in a wind-in direction such as towards to the spool 308 so that the cable 310 is wound onto the spool 308.
[0059]The sensor manager 416 is configured to use the position sensor data from the position sensor 408 indicative of a position of the effector 312 to determine a speed and acceleration of the effector 312. The sensor manager 416 may implement either a numerical differentiators or a Kalman filter to determine both the speed (e.g., velocity) and acceleration of the effector 312. Referring to
[0060]Referring to
[0061]Referring again to
[0062]For the simulated or virtual flywheel (e.g., a disk having inertia) implemented by the controller 402, the calibration manager 418 is configured to determine the first position pminimum and the second position pmaximum of a specific exercise corresponding to different ends of range of motion of the specific exercise. The first position pminimum represents a point at which the virtual flywheel is beginning to unwrap the rope or cable from the virtual flywheel (e.g., at a beginning of the concentric phase of the exercise, or a first phase of the exercise). The second position pmaximum represents a point at which the virtual flywheel has completely wrapped the rope or cable onto the virtual flywheel for the specific exercise (e.g., at an end of the concentric phase and a beginning of an eccentric phase or second phase of the exercise). In physical flywheel devices, when the flywheel is first accelerated from rest at the first position, the physical flywheel exerts resistance on the rope due to inertia of the physical flywheel device. As the physical flywheel device is accelerated to rotate due to movement of the effector or handle, the cable or rope is unwound from the shaft during the concentric phase of the exercise, until the physical flywheel device reaches the second position at which point the cable or rope is completely unwound from the shaft. Due to rotational inertia of the flywheel, the shaft continues to rotate past the second position and begins to wind the cable or rope onto the shaft in an opposite direction across the eccentric phase of the exercise. The user must exert a force to counter the force exerted on the effector to decelerate the flywheel as the cable or rope is wound onto the shaft.
[0063]The calibration manager 418 is configured to determine the first position and the second position by implementing a calibration phase. During the calibration phase, the calibration manager 418 may operate the motor 302 to exert a resistance on the cable 310 while the user is instructed (e.g., via the user interface 436) to perform several repetitions of the exercise. The calibration manager 418 is configured to monitor the position sensor data obtained from the position sensor 408 and determine minimum and maximum positions as provided by the position sensor 408 while performing the repetitions of the exercise. The calibration manager 418 may average the minimum and maximum positions or otherwise aggregate the minimum position and the maximum position to determine the first position pminimum and the second position pmaximum of the virtual flywheel. In some embodiments, the calibration manager 418 is configured to select an absolute minimum value and an absolute maximum value from the multiple values of the minimum and maximum positions of the position sensor data obtained over the calibration process as the first position pminimum and the second position pmaximum of the virtual flywheel.
[0064]The first position first position pminimum and the second position pmaximum of the virtual flywheel may also be determined by the calibration manager 418 by using previously recorded values of the first position pminimum and the second position pmaximum of the virtual flywheel for specific exercises performed by the user. For example, the calibration manager 418 may keep a database of preferred values of the first position pminimum and the second position pmaximum of the virtual flywheel for specific exercises for the user and default to previously used values if available. In some embodiments, the calibration manager 418 is configured to estimate the first position pminimum and the second position pmaximum of the virtual flywheel for a specific exercise of the user based on values of the first position pminimum and the second position pmaximum of the virtual flywheel for other exercises. For example, the calibration manager 418 can perform a regression technique based on the values of the first position pminimum and the second position pmaximum of the virtual flywheel for other exercises to predict or infer different characteristics of the user such as height, forearm length, etc. In some embodiments, the calibration manager 418 uses the characteristics of the user and a predictive model to predict the values of the first position pminimum and the second position pmaximum of the virtual flywheel for the specific exercise selected by the user. In some embodiments, the characteristics of the user are provided as user inputs via the user interface 436. In some embodiments, the characteristics of the user are otherwise obtained such as based on image data obtained from image sensors or cameras of the exercise equipment 300 and image tracking techniques.
[0065]The calibration manager 418 is configured to calculate, using any of the techniques described in greater detail above, the values of the first position pminimum and the second position pmaximum of the virtual flywheel, and subsequently adjust the values during performance of the exercise. Specifically, the calibration manager 418 may adjust the calculated values of the first position pminimum and the second position pmaximum of the virtual flywheel based on position sensor data obtained from the position sensor 408, thereby combining the calibration process with the calculations of the values in order to determine values for the first position pminimum and the second position pmaximum of the virtual flywheel. In this way, the values of the first position pminimum and the second position pmaximum of the virtual flywheel can be adjusted in real-time based on actual motion of the exercise performed by the user.
[0066]The calibration manager 418 is configured to provide the values of the first position pminimum and the second position pmaximum of the virtual flywheel to the virtual wheel simulator 420 and the state machine 422. The state machine 422 is configured to transition the virtual wheel simulator 420 between a wind-in state in which the virtual flywheel is simulated to be pulling the cable 310 in (e.g., onto a shaft or spool) and a wind-out state in which the user is pulling on the cable 310 (or rope) to unwrap the cable 310 from the virtual flywheel. The state machine 422 and the simulator 420 operate using the wind-out state and the wind-in state instead of referring to eccentric and concentric motion because the state of the virtual flywheel may, in some scenarios, not be entirely dictated by the motion of the effector 312 implemented by the user.
[0067]During the wind-out state, while the user is performing a concentric motion of the exercise via the effector 312, force on the effector 312 is directly proportional to acceleration of the effector 312. For example, higher rates of acceleration on the effector 312 exerted by the user are directly proportional to an amount of force exerted on the effector 312. The resistance on the effector 312 during the wind-out state is therefore responsive to the motion of the effector 312 due to the user's action, which thereby allows the user to control the magnitude of reactive force on the effector 312 (e.g., a degree of tension). The harder the user pulls on the effector 312 (e.g., the higher the acceleration of the effector 312), the more the virtual wheel is accelerated, and due to inertia of the virtual wheel, the higher the force is applied on the effector 312. This allows the user to control the resistive force exerted on the effector 312 during concentric motions of the exercise.
[0068]The resistive force exerted on the effector 312 by the virtual wheel may be determined using a first model of the virtual wheel implemented by the virtual wheel simulator 420. The virtual wheel simulator 420 generally performs a physics-based simulation of a virtual flywheel. The first model of the virtual wheel is implemented by the virtual wheel simulator 420 when the state machine 422 commands the virtual wheel simulator 420 into the wind-out state (e.g., while the wind-out state is active). The first model may have the form:
where τdisk is an amount of torque on the virtual wheel and rvirtual is the radius of the virtual wheel (e.g., a characteristic of the virtual wheel). The radius of the virtual wheel may be set by user as a parameter or characteristic of the virtual wheel size provided by the user via the user interface 436.
[0069]The amount of torque on the virtual wheel is determined by the virtual wheel simulator
where Idisk is rotational inertia of the virtual wheel and @disk is acceleration of the virtual wheel. The rotational inertia of the virtual wheel may be set by the user as a parameter of the virtual wheel size provided via the user interface 436. In this way, the user may set the radius of the virtual wheel or the rotational inertia of the virtual wheel in order to achieve a different workout or different loads provided by the motor 302 via the simulation of the virtual wheel.
[0070]The acceleration of the virtual wheel is determined based on both an acceleration of the effector 312 and the virtual radius of the virtual wheel:
where aend,effector is the acceleration on the effector 312. The acceleration on the effector 312 may be determined based on sensor data provided by the IMU 406 or the position sensor 408 as described in greater detail above with reference to
[0071]The virtual wheel simulator 420 and the control manager 426 may also operate the motor 302 such that at least a threshold reactive force is always provided to the effector 312 during the wind-out state. If a threshold reactive force is not provided to the effector 312 during the wind-out state (e.g., as the user performs a concentric motion with the effector 312), the cable 310 may go slack. The virtual wheel simulator 420 can accomplish this by setting the force on the effector 312 Fend,effector to a minimum value such that the force Fend,effector is always at least a threshold value (e.g., setting the force Fend,effector equal to the threshold value if the force Fend,effector as determined by Equation 1 decreases below or equal to the threshold value), according to some embodiments. In some embodiments, the virtual wheel simulator 420 implements providing at least the threshold force to the effector 312 by adding a constant value to the force Fend,effector such that the force Fend,effector is maintained as a positive value.
[0072]The virtual wheel simulator 420 is also configured to track a velocity (e.g., angular velocity) of the virtual wheel during the wind-out state. The virtual wheel simulator 420 may determine the velocity of the virtual wheel using the function:
where adisk is the angular acceleration of the virtual wheel (e.g., in radians squared per second), aend,effector is the acceleration on the effector 312, and rvirtual is the radius of the virtual wheel (e.g., as determined or set by the user input indicating virtual wheel size).
[0073]When the virtual wheel simulator 420 is operating in the wind-out state (e.g., as determined by the state machine 422), the virtual wheel simulator 420 is configured to track velocity (e.g., angular velocity @disk) of the virtual wheel. The virtual wheel simulator 420 may determine the velocity of the virtual wheel by selecting a minimum of either the velocity of the virtual wheel or a determined value of the virtual wheel based on both the velocity of the effector 312 and the radius of the virtual wheel. The selection may have the form:
where vdisk,prev is the previous velocity of the virtual wheel (e.g., as a previous time step or control implementation), vend,effector is the velocity of the effector 312, rvirtual is the radius of the virtual wheel, and vdisk is the velocity of the virtual wheel for a current control implementation. Alternatively, the virtual wheel simulator 420 may integrate the acceleration of the virtual wheel, adisk (as determined in Equation 3 shown above) to determine the velocity of the virtual wheel. The virtual wheel simulator 420 may implement a numerical integration technique to determine the acceleration of the virtual wheel adisk.
[0074]When the virtual wheel simulator 420 is transitioned into the wind-in state (e.g., by the state machine 422) due to the virtual wheel reaching a position where the simulated cable or rope is being wound onto a shaft or taken up onto the shaft, the virtual wheel simulator 420 is configured to calculate force on the effector 312 by (e.g., a second model):
where k is a constant (e.g., a predetermined value), Idisk is the rotational inertia of the virtual wheel, and ƒ(e) is a monotonically increasing function of the variable e (e.g., an error value).
[0075]The virtual wheel simulator 420 is also configured to determine the value of the variable e using:
where vdisk is updated with every control cycle by:
where vdisk is the velocity of the virtual wheel for the current control cycle (e.g., a current wind-in state compared to a previous wind-in state, a current implementation of an exercise compared to a previous performance of the exercise, etc.), vdisk,prev is the velocity of the virtual wheel for the previous control cycle, and ƒ(Fend,effector) is a function based on the force on the effector 312 (e.g., Fend,effector). The variable e represents an error, difference, or comparison between the velocity of the virtual wheel and the speed of the effector 312.
[0076]Equation 7a may also have the form:
where vdisk(k+1) is the velocity of the virtual wheel for the current or next control cycle, vdisk(k) is the velocity of the virtual wheel for a previous control cycle relative to vdisk(k+1) (e.g., at a previous time step where a control implementation is performed every k interval (e.g., a refresh rate)), and ƒ(Fend,effector) is a function based on the force on the effector 312 (e.g., Fend,effector).
[0077]The variable vend,effector, disk in Equation 6 above is a measured linear velocity of the effector 312 converted to the coordinate or reference frame of the virtual wheel. For example, vend,effector,disk may be determined by the virtual wheel simulator 420 by:
where vend,effector is the velocity of the effector 312 and rvirtual is the radius of the virtual wheel.
[0078]The virtual wheel simulator 420 is also configured to replicate resistance force applied during the eccentric phase provided by the user. In a system that uses a physical flywheel, resistance force during the eccentric portion of the exercise is controlled by the user. For example, as the flywheel is winding in the rope or cable, the faster the user attempts to stop or slow the motion off the flywheel, the higher the force exerted by the user is. If the user attempts to “speed-match” the motion of the effector with the speed of the flywheel, the rope will go slack since the user is not providing a resistance force to the effector. However, if the user speed-matches the motion of the effector with the rotation of the flywheel, the rope or cable will be taken up until the flywheel is abruptly stops when a stopper on the rope contacts a portion of the frame of the exercise equipment.
[0079]In order to simulate this behavior, the virtual wheel simulator 420 is configured to use a virtual value of the velocity of the virtual wheel, vdisk, to adjust resistance during the wind-in phase. The starting value of the velocity of the virtual wheel vdisk is set during the wind-out phase as described in greater detail above with reference to Equations 4 and 7.
[0080]During the wind-in phase, the virtual wheel simulator 420 is configured to both determine resistance and update the velocity of the virtual wheel vdisk. For example, in a physical flywheel device, the resistance exerted during the wind-in phase is dependent on how the user moves the effector eccentrically and how the user resists the rotation of the physical flywheel. If the user matches the speed of the effector to the speed of the physical flywheel, then no resistance is applied to the cable or rope. Similarly, if the user tries to limit or decelerate the physical flywheel, the resistance on the rope increases.
[0081]The virtual wheel simulator 420 is configured to simulate this behavior (e.g., the resulting resistive forces due to differences between the velocity at the effector 312 and velocity of the virtual wheel) during the wind-in state using Equation 5 as described in greater detail above. The function ƒ(e) is a monotonically increasing function of the variable e which expresses an error between the velocity of the virtual wheel and the velocity of the effector 312 as described in Equation 6 above. It should also be understood that the term ƒ(e) in Equation 5 indicates that there is a relationship between the error e and the force to be applied to the effector 312 Fend,effector. The relationship between the error e and the force to be applied to the effector 312 Fend,effector may be linear or non-linear, provided the relationship is a monotonically increasing function. Further, in order to ensure that the user does not experience excessively high loads on the effector 312, the virtual wheel simulator 420 may set a threshold value of the force on the effector 312 which the force Fend,effector is not allowed to exceed. In some embodiments, the threshold value is set by the user provided as a user input via the user interface 436.
[0082]Referring still to
[0083]The state machine 422 may begin the virtual wheel simulator 420 in the wind-out state at the beginning of an exercise. The state machine 422 is configured to transition the virtual wheel simulator 420 out of the wind-out state and into the wind-in state responsive to either one of two conditions occurring.
[0084]First, if the position of the effector 312, as indicated by the position sensor 408, exceeds the second position (pmaximum). If the current position of the effector 312 is such that the user has extended the effector 312 beyond the second position, the state machine 422 is configured to command the virtual wheel simulator 420 to transition out of the wind-out state and into the wind-in state to simulate continued rotation of the virtual wheel and the corresponding forces exerted on the effector 312 during the wind-in state.
[0085]Second, if the user stops pulling on the effector 312 before reaching the second position (pmaximum), at pi, the virtual wheel simulator 420 will continue simulating rotation of the virtual flywheel and winding out the rope or cable. Once the virtual wheel reaches the end of the length of simulated rope and begins virtually taking up the rope or cable, the virtual wheel will eventually reach the position pi at which the user stopped pulling on the effector 312 (albeit rotating to virtually take up the rope or cable). When the virtual wheel reaches the position pi at which the user stopped pulling on the effector 312, the state machine 422 is configured to command the virtual wheel simulator 420 to transition out of the wind-out state and into the wind-in state.
[0086]Referring still to
[0087]Referring to
[0088]When the virtual wheel simulator 420 is in the wind-in state, the virtual wheel simulator 420 uses Equations 5-7 to determine the force to be exerted on the effector 312 and operate the motor 302 to provide a torque resulting in the force being applied to the effector 312. The motor 302 is therefore operated to simulate the wind-in force due to inertia of a physical flywheel during the eccentric motion of the exercise. The state machine 422 is configured to identify if one of either two conditions is true, and responsive to one of either of the conditions being true, command the virtual wheel simulator 420 to transition out of the wind-in state and into the wind-out state. The first condition is if the position of the effector 312, pend,effector, is less than or equal to the second position (pminimum). If the position of the effector 312 is less than or equal to the second position pminimum, then the state machine 422 commands the virtual wheel simulator 420 to transition out of the wind-in state 504 and into the wind-out state 502. Likewise, if the velocity of the virtual wheel vdisk is less than or equal to zero, the state machine 422 commands the virtual wheel simulator 420 to transition out of the wind-in state 504 and into the wind-out state 502. When the velocity of the virtual wheel is less than or equal to zero, this indicates that the virtual wheel has been simulated to completely wind up the rope or cable, and the wind-in state 504 has been completed.
[0089]Referring to
[0090]Once the virtual flywheel has reached the maximum position pmaximum where the effector 312 is fully extended, the eccentric phase of the first repetition begins. During the eccentric phase of the repetition, the effector 312 transitions from the fully extended position to the fully retracted position and the virtual flywheel continues rotating in the same direction as the concentric phase to take up the virtual cable across time period 708a. The user exerts a force on the effector 312 to resist the inertia of the virtual flywheel. Once the effector 312 has returned to the fully retracted position, the eccentric phase of the first repetition has been completed, and the virtual flywheel has been simulated to be at a second minimum position pminimum. The second minimum position pminimum may be the same as the first minimum position, but in a real-world flywheel device, the cable is wound onto the shaft in an opposite direction. The virtual wheel simulator 420 and the state machine 422 are configured to simulate rotation of the virtual flywheel across the time period 706a and the time period 708b as if the virtual flywheel were being accelerated during time period 706a, with the inertia of the virtual flywheel exerting a counter force on the effector 312, and continuing to rotate in the same direction across time period 708a with the inertia of the virtual flywheel exerting a counter force which the user must resist in order to decelerate the virtual flywheel until the virtual flywheel reaches the minimum position. In the example shown in
[0091]However,
[0092]Referring to
[0093]The process 600 includes providing exercise equipment including an effector, a cable, a shaft, and an electric motor (step 602), according to some embodiments. The exercise equipment may be the equipment 300. The effector is coupled with an end of the cable, and the cable is wound about a spool or take-up component mounted to the shaft. The electric motor is configured to operate to provide a torque to the shaft in a direction that opposes motion of the shaft as driven due to extension of the effector.
[0094]The process 600 includes obtaining a user input indicating a level of resistance (step 604), according to some embodiments. The user input may include a selection of a size of a virtual flywheel, a mass of the virtual flywheel, a radius of the virtual flywheel, etc. In some embodiments, the user input is provided by allowing the user (via the user interface 436) to select from different predetermined sizes of virtual flywheel. In some embodiments, the user interface 436 is operated to provide different fields relating to the shape, size, or weight of the virtual flywheel, and the user may set custom values for the virtual flywheel.
[0095]The process 600 includes implementing a calibration process in which a user performs one or more repetitions of an exercise with the effector and recording first and second positions of the effector corresponding to end points of a range of motion of the exercise (step 606), according to some embodiments. The end points may be positions of the effector 312 or angular positions of the spool 308 corresponding to full retraction and full extension of the effector 312 when the user performs a specific exercise. In some embodiments, step 604 includes prompting the user to perform repetitions of a desired exercise, by operating a display screen, and recording sensor feedback (e.g., from the sensor 408) indicating position of the effector 312, the spool 308, or the motor 302. In some embodiments, the calibration process is performed by determining, based on one or more known characteristics of the user (e.g., height, limb length, weight, etc.), the first and second position of the effector. The first and second positions of the effector 312 corresponding to the end points of the exercise may be calibrated or adjusted during subsequent use of the exercise equipment. In some embodiments, the calibration process includes determining, based on the first and second positions for different exercises, values of the first and second positions for an exercise to be implemented. In some embodiments, step 606 is performed by the calibration manager 418 as described in greater detail above with reference to
[0096]The process 600 includes, responsive to the user extending the effector, simulating a resistive force exerted on the cable due to inertia of a virtual flywheel using the first and second position, a position of the effector, a speed of the effector, and an acceleration of the effector (step 608), according to some embodiments. The process 600 also includes operating the electric motor to provide torque to the shaft such that the resistive force is provided via the cable to the effector to simulate flywheel training (step 610), according to some embodiments. Steps 606 and 608 may be performed based on real-time sensor feedback during a wind-out or concentric phase of an exercise. In some embodiments, step 608 is performed by the virtual wheel simulator 420 and the state machine 422, and step 610 (e.g., causing the motor to provide the torque) is performed by the control manager 426 and the motor controller 404.
[0097]Step 608 may use the first and second position of the effector or virtual flywheel determined during the calibration phase (e.g., step 606) to check that the virtual flywheel should be simulated in the wind-out phase. In some embodiments, step 606 is performed by the virtual wheel simulator using Equation (1) to determine the force that should be exerted on the effector 312. Step 606 also uses the user input provided in step 604 to determine the force that should be exerted on the effector 312 by the motor 302 responsive to movement of the effector 312. The position of the effector 312 may be determined from the position sensor 408. The speed and acceleration of the effector 312 and consequently the speed and acceleration of the virtual flywheel may be determined based on the sensor data from the position sensor 408 (e.g., using numerical integration) or based on the sensor data from the position sensor 408 and sensor data from the IMU 406 (e.g., using a Kalman filter). Step 608 includes implementing Equations (1)-(3) in real-time or otherwise modeling and simulating movement of the virtual flywheel to determine the force exerted on the effector 312 due to rotational inertia of the virtual flywheel. The force determined in step 608 is used to operate the motor 302 in step 610 to provide real-time counter-torque that is experienced by the user as a resistive force on the effector 312. Step 608 may also include tracking the speed and position of the virtual flywheel.
[0098]The process 600 includes, responsive to the user retracting the effector, simulating a resistive force exerted on the cable due to inertia of the virtual flywheel using the first and second positions, the position of the effector, the speed of the effector, the acceleration of the effector, and the speed of the virtual flywheel (step 612), according to some embodiments. The process 600 also includes operating the electric motor to provide torque to the shaft such that the resistive force is provided via the cable to the effector to simulate flywheel training (step 614), according to some embodiments. Steps 612 and 614 may be performed based on real-time sensor feedback during a wind-in or eccentric phase of the exercise. In particular, steps 608-610 are performed during a concentric phase of a repetition, and steps 612-614 are performed during an eccentric phase of a repetition.
[0099]In some embodiments, step 612 is performed by the state machine 422 and the virtual wheel simulator 420. Step 614 is performed by the control manager 426 and the motor controller 404, according to some embodiments. Step 612 includes using Equations (5)-(7) implemented by the virtual wheel simulator 420. The virtual wheel simulator 420, in particular, may use recorded speed (e.g., angular speed) of the virtual flywheel at the end of performing steps 608-610 to determine, at the beginning of performing steps 612-614, an amount of resistive force to apply to the effector 312 based on the simulated inertia of the virtual flywheel. In particular, in step 612, the virtual wheel simulator 420 is configured to simulate, based on both the speed of the virtual flywheel, characteristics of the virtual flywheel (e.g., the size, moment of inertia, etc.) and control that the user exerts on the effector 312, a force to apply to the effector 312 to resist the direction of force exerted by the user on the effector 312. For example, the user may exert a force on the effector 312 that opposes force due to the rotational inertia of the virtual flywheel, while allowing the effector 312 to be retracted in a controlled manner. In some embodiments, step 612 includes comparing the speed on the effector 312 to the speed of the virtual flywheel, and based on this difference, determining an amount of force that should be exerted on the effector 312 by operation of the motor 302. Once steps 612-614 are completed (e.g., the user has completed the eccentric phase or wind-in phase of the exercise), process 600 may return to steps 608-610 for the next repetition of the exercise.
[0100]The state machine 422 is configured to implement transitioning of the virtual wheel simulator 420 between the wind-out phase or state (steps 608-610) and the wind-in phase or state (steps 612-614). In particular, the state machine 422 checks for conditions before allowing the process 600 to proceed from steps 608-610 to steps 612-614, and before allowing the process 600 to return from steps 612-614 to steps 608-610. In some embodiments, the state machine 422 is configured to implement the conditions described in greater detail above with reference to
[0101]The foregoing description of embodiments has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from this disclosure. The embodiments were chosen and described in order to explain the principals of the disclosure and its practical application to enable one skilled in the art to utilize the various embodiments and with various modifications as are suited to the particular use contemplated. Other substitutions, modifications, changes and omissions may be made in the design, operating conditions and arrangement of the embodiments without departing from the scope of the present disclosure as expressed in the appended claims.
Claims
What is claimed is:
1. Fitness equipment, comprising:
an electric motor;
a tensile member coupled with an output shaft of the electric motor;
an end effector coupled to the electric motor through the tensile member and configured for interaction with a user during performance of a flywheel training exercise by the user, wherein the electric motor is operable to provide a force to the end effector through the tensile member;
a sensor configured to obtain at least one of a position, a velocity, or an acceleration of the end effector; and
a controller programmed to cause the electric motor to operate to exert the force on the end effector during the interaction with the user by generating motor controls by simulating rotation of a virtual flywheel using the at least one of the position, the velocity, or the acceleration of the end effector.
2. The fitness equipment of
during a wind-out phase of the flywheel training exercise:
determine a first force to be exerted on the end effector based on the acceleration of the end effector and a characteristic of a simulated flywheel using a first model of the simulated flywheel;
track a speed of the simulated flywheel; and
cause the electric motor to operate to exert the first force on the end effector, the first force exerted on the end effector in a direction opposing a first direction of motion of the end effector during the wind-out phase of the flywheel training exercise.
3. The fitness equipment of
during a wind-in phase of the flywheel training exercise:
determine a second force to be exerted on the end effector based on a comparison between a speed of the end effector and the speed of the simulated flywheel using a second model of the simulated flywheel; and
cause the electric motor to operate to exert the second force on the end effector, the second force exerted on the end effector in the direction that is the same as a second direction of motion of the end effector during the wind-out phase of the flywheel training exercise and opposing a force exerted by the user on the end effector in the first direction.
4. The fitness equipment of
5. The fitness equipment of
determine whether to transition a simulator of a virtual flywheel out of a wind-out state corresponding to the wind-out phase of the flywheel training exercise and into a wind-in state corresponding to the wind-in phase of the flywheel training exercise responsive to at least one of (i) a position of the end effector exceeding a maximum allowable position corresponding to an end of the wind-out phase, or (ii) a simulated payout of the virtual flywheel returning to an intermediate position of the end effector after passing the maximum allowable position; and
determine whether to transition the simulator of the virtual flywheel out of the wind-in state and into the wind-out state responsive to at least one of (i) the position of the end effector being less than or equal to a minimum allowable position corresponding to an end of the wind-in phase, or (ii) a speed of the virtual flywheel being less than or equal to zero.
6. The fitness equipment of
operating a display screen of the fitness equipment to prompt the user to perform one or more repetitions of the flywheel training exercise;
record a first position of the end effector at which the end effector is fully retracted;
record a second position of the end effector at which the end effector is fully extended; and
use the first position and the second position of the end effector to transition a simulator of a virtual flywheel between a wind-out state corresponding to the wind-out phase of the flywheel training exercise and a wind-in state corresponding to the wind-in phase of the flywheel training exercise.
7. The fitness equipment of
operate a user interface of the fitness equipment to prompt the user to enter a user input indicating a characteristic of a virtual flywheel for the flywheel training exercise; and
based on the characteristic of the virtual flywheel, cause the electric motor to operate to exert the force on the end effector during interaction with by the user to simulate the flywheel training exercise across both the wind-out phase and the wind-in phase of the flywheel training exercise.
8. The fitness equipment of
9. A method of simulating a flywheel training exercise, the method comprising:
providing exercise equipment comprising a motor and an end effector operably coupled with the motor;
obtaining a user input indicating a desired characteristic of a virtual flywheel, the desired characteristic determining an amount of resistance to be exerted on the end effector by the motor during the flywheel training exercise;
obtaining calibration data indicating a first position and a second position of the end effector corresponding to a range of motion of the flywheel training exercise;
during a wind-out phase in which the end effector is moved in a first direction, determining a first force to be exerted on the end effector using a simulation of a flywheel based on acceleration of the end effector, and operating the motor to exert the first force on the end effector; and
during a wind-in phase in which the end effector is moved in a second direction, determining a second force to be exerted on the end effector using the simulation of the flywheel based on speed of the end effector, and operating the motor to exert the second force on the end effector.
10. The method of
wherein determining the first force during the wind-out phase of the flywheel training exercise comprises determining the first force based on an acceleration of the end effector and the desired characteristic of the virtual flywheel; and
wherein determining the second force during the wind-in phase of the flywheel training exercise comprises determining the second force based on a monotonically increasing function of a difference between a speed of the end effector and a simulated speed of the virtual flywheel.
11. The method of
12. The method of
prompting a user to perform a repetition of the flywheel training exercise and recording the first position and the second position of the end effector;
predicting the first position and the second position of the end effector based on one or more characteristics of the user; or
predicting the first position and the second position of the end effector based on a first position and a second position of the end effector for a different exercise.
13. The method of
determining whether to transition the simulation of the virtual flywheel out of a wind-out state corresponding to the wind-out phase of the flywheel training exercise and into a wind-in state corresponding to the wind-in phase of the flywheel training exercise responsive to at least one of (i) a position of the end effector exceeding the first position, or (ii) a simulated payout of the virtual flywheel returning to an intermediate position of the end effector after passing the second position.
14. The method of
determining whether to transition the simulation of the virtual flywheel out of a wind-in state and into a wind-out state responsive to at least one of (i) the position of the end effector being less than or equal to a minimum allowable position corresponding to an end of the wind-out phase, or (ii) a speed of the virtual flywheel being less than or equal to zero.
15. The method of
16. The method of
17. A control system for simulating flywheel training, the control system comprising:
processing circuitry programmed to:
obtain sensor data indicating movement of an end effector of fitness equipment; and
operate an electric motor of the fitness equipment, based on the movement of the end effector, to exert a force on the end effector, the force on the end effector determined based on a result of a physics-based simulation of a virtual flywheel in order to provide a flywheel training experience for a user without requiring a flywheel physically coupled to the end effector.
18. The control system of
19. The control system of
prior to the operation of the electric motor to simulate the flywheel training experience, operate a display screen of the fitness equipment to prompt the user to perform a plurality of repetitions of the flywheel training exercise with the end effector;
record minimum and maximum positions of the end effector while performing the plurality of repetitions; and
implement the physics-based simulation of the virtual flywheel using the minimum and maximum positions to determine when to transition between a wind-in state and a wind-out state of the virtual flywheel.
20. The control system of
21. One or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
obtain data indicating movement of an end effector of fitness equipment;
determine a target force for a motor of the fitness equipment by:
during a first phase of an exercise, determining the target force based on an acceleration of the end effector; and
during a second phase of the exercise, determining the target force based on a simulated speed of a virtual mass; and
control the motor based on the target force.
22. The one or more non-transitory computer-readable media of