SYSTEM AND METHOD FOR DEFINING CONTROL OF A MOTORIZED EXERCISE DEVICE
Aspects involve an exercise system in which various methods may be practiced. The exercise system facilitates a method of controlling an exercise on a motorized exercise device where the method involves, at a remote computing device, accessing an exercise template including fields associated with an exercise, obtaining a first exercise definition from matching the first exercise template with a first of a plurality of predefined exercises, and providing an exercise definition to a local device for controlling a motorized exercise device, the exercise definition based on matching the exercise template with a first of a plurality of predefined exercises, the exercise definition including a parameter associated with a resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed at the exercise device.
This application is related to and claims priority under 35 U.S.C. § 119(e) from U.S. Patent Application No. 63/279,628, filed Nov. 15, 2021, entitled “Daily Lift,” the entire contents of which is incorporated herein by reference for all purposes.
TECHNICAL FIELDAspects of the present invention are directed to exercise devices and particularly, in one example, to a method of generating a set of exercise definitions, which may be provided on a schedule, the exercise definitions including information for controlling a motor of a motorized resistance device.
BACKGROUND AND INTRODUCTIONThe benefit of regular exercise is undisputed. Nonetheless, beginning and maintaining a successful exercise regimen is a challenge for many individuals for a variety of reasons. With busy schedules, simply finding the time to begin an exercise program is a challenge. Then, finding an exercise, or more preferably exercises, is a challenge when people have insufficient knowledge as to different types of exercises, the benefits of different exercise, and how to perform those exercises. Moreover, with time constraints and a lack of knowledge, it may be challenging to properly track and analyze performance and progress. As a result of any of these issues among others, there is an ongoing need to develop efficient exercise devices, and it is important to provide ways to easily perform exercises correctly and with an optimal resistance to maximize results during the limited time available.
It is with these observations in mind, among others, that aspects of the present disclosure were conceived.
SUMMARYIn one aspect of the present disclosure an exercise system in which various methods may be practiced. The exercise system facilitates a method of controlling an exercise on a motorized exercise device where the method involves, at a remote computing device and in response to receiving a request from a local device associated with a motorized exercise device, accessing a template with a first exercise template and a second exercise template, the first exercise template including a first plurality of fields associated with a first exercise, the second exercise template including a second plurality of fields associated with a second exercise. The method further involves generating a first exercise definition from matching the first exercise template with a plurality of predefined exercises stored in a remote storage and generating a second exercise definition from matching the second exercise template with the plurality of predefined exercises stored in the remote storage. The method then involves, the remote device, transmitting the first exercise definition and the second exercise definition to the local device, the first exercise definition including at least one parameter associated with a resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed on the motorized exercise device, the second exercise definition including at least one parameter associated with a resistance force that will be used to control the motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
In another aspect of the present disclosure, an exercise device comprises a motor controller in communication with an electric motor operably coupled with a cable to control a force required to retract the cable. The motor controller uses control instructions from a computing device, where the control instructions are of an exercise definition for an exercise. The exercise definition includes an instruction regarding a force required to extract the cable when performing the exercise. The control instructions are generated from an exercise template including a plurality of fields associated with the exercise and used to select the exercise definition. In various aspects, the plurality of fields of the exercise template includes an exercise type. The control instructions may include a starting position of the cable of the motorized device where the force is applied based on the starting position.
The computing device, which may be considered a local computing device, may be a mobile phone, computing pad, laptop, desktop, or a smart watch. The computing device may receive the control instructions of the exercise definition from a server by way of a network.
In another aspect of the present disclosure, a method may be performed at a local device (e.g., smart phone, etc.) associated with a motorized exercise device including an electric motor operably coupled with a cable to control a force required to retract the cable. The method may involve receiving a first exercise definition based on matching a first exercise template with one of a plurality of predefined exercises, where the first exercise definition includes at least one parameter associated with a first resistance force defined in the predefined exercise and that will be used to control the electric motor of the motorized exercise device when the first exercise is performed using the motorized exercise device.
The method may further involve receiving a second exercise definition from matching a second exercise template with a second of the plurality of predefined exercises. The second exercise template may include a second plurality of fields associated with a second exercise, where the second exercise definition includes at least one second parameter associated with a second resistance force that will be used to control the electric motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
In various embodiments, the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, and the remote computing device selects a combination of templates including the first template and the second template to generate a set of exercises based on the first exercise type field and the second exercise type field. Such selections and related operations may be performed on some schedule—e.g., daily or otherwise—so that a user may receive a different set of exercise routines on whatever schedule.
In various aspects, the method may further involve providing the first exercise definition and the second exercise definition to the motorized exercise device, which may be done over whatever communication channel exists between the motorized exercise device and the computing device.
In some examples, the computing device may display performance data when the first exercise is performed on the motorized exercise device according to the first exercise definition. In some examples, the method may involve displaying a user interface whereby a user may enter a starting position used by the motorized device to control when the first resistance force is applied by the motor during the first exercise.
In various examples, the at least one first parameter may include a first starting position of the cable where the first resistance force of the electric motor is applied based on the first starting position. Similarly, in various examples, the at least one first parameter may include a first ending position of the cable, where the first resistance force is applied by the electric motor between the starting position and the ending position and wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.
These and other aspects of the present disclosure are described in greater detail below with reference to the accompanying figures.
Example embodiments are illustrated in referenced figures of the drawings. It is intended that the embodiments and figures disclosed herein are to be considered illustrative rather than limiting.
Aspects of the present disclosure involve a system for generating and delivering exercise control instructions to a network connected exercise device. The system may generate a set of instructions daily although the frequency of instruction generation may vary and be sent in response to a request, generated and sent at other frequencies, and/or generated and sent on a schedule set by a user or instructor, etc. The system may also be used to generate tailored exercise plans for a user so, for example, a coach or other professional can create a tailored plan and the system automatically accesses exercises that will meet the plan and generates controls for the exercise device consistent with the exercises.
In one example, the exercise device includes a housing having a top through which a motor-driven cable extends. In certain implementations, the housing may have a form factor similar to that of a fitness step/step platform, a plyometric box, or other similar fitness equipment; however, and more generally, the housing may have any suitable shape, such as a prismatic shape, that facilitates the various use cases discussed in this disclosure. A user can equip the end of the cable with a grip, collar, belt, or similar component to facilitate performance of different exercises. During operation, the motor supplies resistance by counteracting extension of the cable by the user and/or controllably retracting the cable against the effort of the user. The system discussed herein generates instructions or information from which instructions may be generated, where the instructions define various control attributes of the motor for a variety of different exercises that may be facilitated by the exercise device. As such, the exercise device may include or be in communication with computing elements configured to provide information or instructions to control the motor, measure user performance, monitor system behaviors, and perform other similar functions.
The motor replaces or supplements weights, bands, and other resistance elements found in conventional exercise equipment. The motor may provide a controllable resistance force, which may be a constant resistance force and retraction rate. However, the motor can also be actively controlled to provide greater variety and flexibility as compared to conventional resistance weights. For example and among other things, the exercise device may control the motor to supply resistance that varies over a given range of motion (e.g., applying a different resistance during the concentric versus eccentric phase of an exercise or varying in response to some user feedback parameter such as extraction rate) or provides a constant resistance that eliminates inertial effects common with conventional resistance elements.
The exercise device may include or be communicably coupled to various devices for controlling the exercise device and providing feedback to a user. For example, the exercise device may connect to and communicate with a computing device, such as a smartphone, tablet, laptop, smart television, etc. to enable the user to select a workout and/or exercise, adjust exercise parameters (e.g., a range of motion of the exercise, a speed of the exercise, a load, or any other similar parameter), view historical performance data, and the like. In certain implementations, such computing devices may also facilitate streaming of video or other multimedia content (e.g., classes) to guide a user's exercise or to facilitate participation in streaming or real-time interactive classes and competitions. In still other implementations, the exercise platform may be used in conjunction with a gaming platform or other computing device capable of running games or similar interactive software. The exercise device may also receive control information or control instructions from such computing devices.
The exercise device or a device locally connected with the exercise device may also communicate, over a network, with a server or servers that may send and receive information for controlling the device, information about a particular user, and the like. Exercise devices of this disclosure may also connect to and communicate with each other or to other computing devices (e.g., the server) over a network, which may include the Internet as well as local networks and combinations of the same. In one implementation, a cloud-based platform may interact with exercise devices of this disclosure and associated user computing devices (e.g., a user's smartphone) to distribute resistance profiles, which may include control instructions, for exercises, store and update user information including information representative of user performing an exercise, and present tracking information to users and personnel such as gym facility managers, personal trainers, physiotherapists, and others who may be working with a user. The cloud-based computing platform further enables the generation, updating, and storage of content for use with the exercise device including, but not limited to, resistance profiles, workout plans, multimedia content, and the like.
Exercise platform 100 may include a control system (including, e.g., a motor controller, a motor drive, a microprocessor, and/or other related components) for controlling motor 110 and the resistance provided by motor 110. Exercise platform 100 may further include various sensors for providing feedback to the control system to facilitate control of motor 110. For example, in certain implementations, exercise platform 100 may include one or more of a current sensor, a position sensor (e.g., an encoder), an accelerometer, or other sensors for measuring parameters related to motor performance, which can be used in the control and operation of motor 110. In certain implementations, force sensors (e.g., load cells, strain gauges, etc.) incorporated into exercise platform 100 may also supply additional feedback for controlling motor 110, assessing user performance, energizing the device, and providing information to the exercise device or other systems, among other things.
Motor 110 and the associated motor control components may provide a variety of different resistance profiles depending on the exercise being performed, settings provided by the user, a workout plan of the user, and the like. For example, motor 110 may provide constant resistance over a complete range of motion for an exercise. As another example, motor 110 may provide a first resistance during a first phase of an exercise (e.g., a concentric phase of the exercise) and a second, different, resistance during a second phase of the exercise (e.g., an eccentric phase of the exercise). As yet another example, motor 110 may vary resistance over any or all phases of an exercise. The system may provide, e.g., through a user interface provided on a smart phone or tablet, an interface through which a user may set a starting point for an exercise, which may correspond to an amount of retraction (unspooling) of the cable above which the resistance force is applied and below which a nominal retraction force is applied.
By way of example, a user of exercise platform 100 may perform a squat motion while holding handle 108 in front of his or her body and standing on top 104. In one example, motor 110 may supply constant resistance (e.g., 100 lbs. of resistance) during both the eccentric (descending) and concentric (ascending) phases of the squat. In another example, motor 110 may supply a first resistance (e.g., 50 lbs. of resistance) during the eccentric phase of the squat but subsequently increase resistance (e.g., to 100 lbs.) during the concentric phase of the squat, thereby emphasizing the concentric phase. In yet another example, motor 110 may supply relatively low resistance when the user is at depth but supply increased resistance as the user reaches an upright position. Among other things, such varying of resistance may encourage a full and safe range of motion by reducing load in typically problematic points of the exercise. As a final and additional non-limiting example, motor 110 may supply a random or otherwise dynamically varying resistance (e.g., a “noisy” load that ranges from 40 lbs. to 60 lbs.) over some or all of the squat motion, thereby forcing the user to recruit a broader range of stabilizing muscles than if a constant resistance were to be applied by motor 110.
As illustrated in
Referring to
Computing device 302 may execute an application for interfacing with and controlling exercise platform 100. For example, the application executed on computing device 302 may permit a user of computing device 302 to change a resistance of exercise platform 100 or a resistance profile executed by exercise platform 100. In other implementations, the application may allow the user to select an exercise or workout routine the automatically reconfigures exercise platform 100 as the user progresses through the exercise or workout routine. During operation, exercise platform 100 may transmit data, such as position data for cable 106, such that the application may track successful completion of exercises and workout routines by the user.
One or both of exercise platform 100 and computing device 302 may further communicate with a fitness platform 304 over a network 306, such as the Internet. Among other things, fitness platform 304 may provide a portal, website, application data, cloud computing environment, etc. through which a user of computing device 302 may access information and content related to use of the exercise device 100. For example, fitness platform 304 may include a repository or similar source of video, text, or other content directed to use of exercise platform 100 and/or fitness and exercise more generally. As another example, fitness platform 304 may support user accounts such that a user of computing device 302 and exercise platform 100 may track their historic performance and improvement, create and track workouts and fitness plans, participate in leaderboards and other community-related features, and the like. In at least certain implementations, fitness platform 304 may facilitate real-time classes, competitions, and similar group activities that simultaneously support multiple users of exercise devices. For example, in the context of a class, a live streamed video of an instructor may be provided by fitness platform 304 to multiple users and each exercise device (or a related/connected computing device) may in turn provide exercise data (e.g., resistance level, speed, rep completion, etc.) for maintaining and populating a class leaderboard or similar display of participant performance.
The system also includes some form of locally connected computing device 402. The locally connected computing device may be connected wirelessly or wired through various possible ways such as Bluetooth, Wi-Fi, various universal serial bus (USB) protocols, and the like. The locally connected computing device, as noted above, may be a smartphone, tablet, laptop, gaming platform, etc. While discussed in the context of a locally connected device, it is also possible to integrate the functions of the local computing device within the exercise device or integrate a computing device with a display in the exercise device.
The local computing device connects with both the exercise device and a remote computing platform 404. The remote computing platform may be various possible types of computing device and in communication via a local network, which may include a peer to peer or Bluetooth connection or may be over other form of networks or communication. The remote computing platform may include a server 416, in one example, and may be accessed over a network 414, where communications to and from the remote device may traverse various networks and may include aspects of the Internet. The server may include multiple servers, may be a dedicated hardware device or involve virtual components. The system may also include multiple servers, some of or all of which may be in cloud environments. For ease of discussion, this application references a server but it should be appreciated and the term encompass one or more servers or other computing devices providing the functionality discussed herein, and which may be accessed by way of a network.
The server connects with a remote storage 418, which may be a database or other remote storage platform. The remote storage includes user profile information 420 and an exercise library 422. Remote storage may be separate or integrated with the remote computing platform. A user profile includes information pertaining to the user and information pertaining to the user's historical performance of various exercises. The exercise library includes various exercise definitions for the exercise device. An exercise definition may include a force field, a rate field, a repetitions field, and starting and ending fields, among other fields. Each of these fields may be settable. The force field refers generally to the amount of resistance the motor will apply for the exercise. While the term “force” is used herein, it is meant to refer generally to any metric by which the amount of resistance the motor applies and the user experiences in any given exercise. The system may be configured to control, measure or compute power, rate, velocity, acceleration, and weight, alone or in combination, and/or other metrics. In some instances, the force may be dynamically applied, and the definition will provide for the dynamic application of the force. The rate field refers to situations where the rate of retraction of the cable is controlled, which may also be settable. The applied resistance may also be a function of cable rate, velocity and/or acceleration and hence the rate may be implicit in the force. The number of repetitions field refers to the number of repetitions that the user performs the exercise, which may be preset and/or based on user profile information, and/or settable at the local device through a graphical user interface. Finally, some exercises may be performed between a starting and ending location pertaining to a given exercise. These locations may be obtained from a user profile and/or settable by a user before performing the exercise. So, for example, prior to performing an arm curl exercise in a standing position, the resistance may be set to 25 pounds, and the starting position being based on a user standing with their arm (one arm curl exercise) or arms (two arm curl exercise) at their sides, and the ending position set with their arms bent at the elbow and hands adjacent their chest. As can be understood, the starting and ending position will vary for different users and different exercises. The exercise definitions include these settable fields, and actually setting the values for the fields to make those values available for control of the exercise device may occur at various stages. In one example, the user profile and/or exercise definition may include default settings for each exercise. These default settings may be based on a user going through a set-up routine to set values, be based on values being set as a user actually uses the device and sets the values or be based on initial preset values that can be adjusted. As will be discussed further below, the values may be set at other stages of operation, as well.
Exercise definitions may also be associated with training content. For example, video content may be stored in the library and uploaded to the local computing platform for viewing. Video content may also be in the form of a link to a content location on a third-party platform or a separate library of the remote computing platform where a video may be played through an application running on the local computing platform or directly from a location at the link. Other training content such as still images or text content may also be associated with the exercise definitions.
The exercise definitions may also include other information such as the exercise type (e.g., cardiovascular, high intensity threshold training (HITT), strength, etc.), the muscle targeted by the exercise (e.g., biceps, triceps, abdominals, etc.), which may be captured in a primary muscle and secondary muscle field, and which may include more than one muscle if a given exercise targets more than one primary or secondary muscle, the more general muscle group or body part or area targeted by the exercise (arms, chest, core, etc.), an attachment needed for the exercise (e.g., handle, bench, rope, etc.), among other information. The exercise definition may also include information including images, audio and/or video depicting proper performance of the exercise. The images, audio and/or video may be in the form of a link to such information provided in a distinct storage and accessible by the local device at the linked location.
Responsive to the request or at any time prior to the request, the generator generates exercise instructions that are conveyed to the requesting the device. The instructions are generated beginning with a template 500. The template includes fields to access exercise definitions 502 matching those fields. So, rather than directly accessing particular exercise definitions, the template provides a set of criteria to select from preexisting exercise definitions and generate exercise instructions for a set of exercises transmitted to the local device and to control the exercise device. The relation between the template and the exercise definitions may be based on any number of different factors. In one possible arrangement, a different set of related exercises are defined on a daily basis through a unique template for each day. For any given day, a generator 504 accesses the corresponding template and uses the various fields therein to access matching exercises and generate instructions for those exercises. The fields of the template used to select a matching exercise may be based on being the same exercise type, targeting a particular muscle or body part, and the like. So, for example, a set of HITT exercises may be defined for Monday, a set of targeted core exercises defined on Tuesday and a set combining HITT and strength defined on Wednesday, and so on. The template for any given day will be defined based on the arrangement of exercises conforming to whatever exercise set is defined for that day. In the simple example of a set of HITT exercises, the template may include some number of exercise templates for that day. While examples are set out referencing the generation of exercise instructions on a daily basis, such instructions may be generated on other schedules, in response to some direct request, and otherwise as discussed herein.
Using fields in the template, the system (e.g., the generator) will then select matching exercise definitions (operation 620).
Selection of the matching exercises may be done in a variety of ways. For example, selection may be random. Selection may be done in order, and information as to what exercises have been selected historically saved in the user profile. Selections may be based on user preferences, or recorded likes or dislikes that a user may enter through the GUI when an exercise is complete. Regardless, the generator selects exercises based on the template, and transmits information to the local device.
The generator transmits exercises, matching those defined in the template, to the local device (operation 630). It is possible to provide all of the exercise definitions corresponding to a template or provide particular exercise definitions as the user performs the exercises and use feedback from the exercises to alter parameters of a given definition or even cause the generator to select alternative definitions. Nonetheless, exercise definition information is provided to the requesting device.
A given exercise definition provided to local device provides information for controlling the motor of the exercise device. The information may include actual motor control instructions or converted to motor control instructions at the exercise device itself or the locally connected computing device. So, for example, if a resistance field of a given exercise definition is 25 pounds, then the 25 pound definition is used to generate an instruction for controlling the motor to provide 25 pounds of resistance force. If there is a starting position included with the instructions, then 25 pounds of force is applied at the starting position. Below the starting position, the motor may apply some nominal retraction force and the cable retracted at a nominal rate when it is not fully retracted, e.g., to return the cable to a fully retracted position when an exercise is complete.
Various other information of an exercise definition may be used in different ways. For example, if an exercise definition includes a link to a video, the remote computing device may link to the video stored at some network location and play the video on a display of the remote device. The video may also be downloaded should the exercise device be positioned in a place where the local device does not have a network connection or otherwise. The local device may also include some form of graphical user input (GUI), mentioned previously, whereby a user might adjust various attributes of any given exercise definition prior to or after completing the exercise on the exercise device. For example, if the exercise definition is predefined with a resistance force, the GUI may display a field whereby the user may change the resistance force, and the changed resistance force then used to generate the motor control instructions. If a starting or ending position is required, the GUI may include fields by which a user is able to set those locations. For example, in a set-up phase of operation, the user may extract the cable to starting position, which is tracked by the exercise device through the encoder, discussed above, and select the starting position through the GUI. The local device may then communication with the exercise device to obtain the current position of the cable and use that current position to define the starting position of the exercise. The starting position, for the particular exercise definition, may also be shared with the user profile and stored therein so that any subsequent execution of the exercise, the exercise definition will include the previously defined starting position. In such a situation, the generator will pull the exercise definition from the library, and any previously defined attributes of the definition form the user profile will be used by the generator to transmit instructions to the local device. The same procedure may be used to define an ending position should there be an ending position of the template.
When a user performs an exercise, the exercise device may share additional information with the local device and/or the remote device. For example, the exercise device may measure the rate at which the user extracts the cable against the motor resistance force, and the rate information stored at the exercise device and shared with the local computing device. The information may be shared when an exercise is complete or in real-time. The information may also be accessed from exercise device storage during subsequent exercise sessions or otherwise. Continuing with the example of rate information, it may be shared when an exercise is complete or during the exercise, and the rate information used to adjust the exercise. For example, if the user is extracting the cable at a very high rate, it may indicate that the resistance is set too low. Exceeding a threshold may be used to prompt the user to change the resistance or used by the remote device to automatically increase the resistance during the current exercise, e.g., in real time, or for a subsequent repetition of the same exercise should there be a subsequent repletion. Conversely, if the rate is excessively low or the user does not reach the set number of repetitions for the exercise, a prompt to reduce the resistance or automatic reduction of the resistance may be performed by the exercise device or the remote device.
Performance information may also be used to compute various information such as calories burned or other information. Performance information may also be shared with the remoted device and used to update the user profile. The specific exercises performed may also be tracked and then used by a subsequent time to select exercises to populate the template.
Referring to
The computer system 900 may be a computing system that is capable of executing a computer program product to execute a computer process, which may be involved in creating the template, the generator's use of the template to select exercise definitions, the communication of exercise definitions to the local computing device, the practicing of various methods discussed herein, the communication of control information to the exercise device, and the measurement and communication of various user information, among other thigns. Data and program files may be input to the computer system 900, which reads the files and executes the programs therein. Some of the elements of the computer system 900 are shown in
The processor 902 may include, for example, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), and/or one or more internal levels of cache. There may be one or more processors 902, such that the processor 902 comprises a single central-processing unit, or a plurality of processing units capable of executing instructions and performing operations in parallel with each other, commonly referred to as a parallel processing environment.
The presently described technology in various possible combinations may be implemented, at least in part, in software stored on the data stored device(s) 904, stored on the memory device(s) 906, and/or communicated via one or more of the ports 908-912, thereby transforming the computer system 900 in
The one or more data storage devices 904 may include any non-volatile data storage device capable of storing data generated or employed within the computing system 900, such as computer executable instructions for performing a computer process, which may include instructions of both application programs and an operating system (OS) that manages the various components of the computing system 900. The data storage devices 904 may include, without limitation, magnetic disk drives, optical disk drives, solid state drives (SSDs), flash drives, and the like. The data storage devices 904 may include removable data storage media, non-removable data storage media, and/or external storage devices made available via a wired or wireless network architecture with such computer program products, including one or more database management products, web server products, application server products, and/or other additional software components. Examples of removable data storage media include Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc Read-Only Memory (DVD-ROM), magneto-optical disks, flash drives, and the like. Examples of non-removable data storage media include internal magnetic hard disks, SSDs, and the like. The one or more memory devices 906 may include volatile memory (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.) and/or non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.).
Computer program products containing mechanisms to effectuate the systems and methods in accordance with the presently described technology may reside in the data storage devices 904 and/or the memory devices 906, which may be referred to as machine-readable media. It will be appreciated that machine-readable media may include any tangible non-transitory medium that is capable of storing or encoding instructions to perform any one or more of the operations of the present disclosure for execution by a machine or that is capable of storing or encoding data structures and/or modules utilized by or associated with such instructions. Machine-readable media may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more executable instructions or data structures.
In some implementations, the computer system 900 includes one or more ports, such as an input/output (I/O) port 908, a communication port 910, and a sub-systems port 912, for communicating with other computing, network, or vehicle devices. It will be appreciated that the ports 908-912 may be combined or separate and that more or fewer ports may be included in the computer system 900. The I/O port 908 may be connected to an I/O device, or other device, by which information is input to or output from the computing system 900. Such I/O devices may include, without limitation, one or more input devices, output devices, and/or environment transducer devices.
In one implementation, the input devices convert a human-generated signal, such as, human voice, physical movement, physical touch or pressure, and/or the like, into electrical signals as input data into the computing system 900 via the I/O port 908. In some examples, such inputs may be distinct from the various system and method discussed with regard to the preceding figures. Similarly, the output devices may convert electrical signals received from computing system 900 via the I/O port 908 into signals that may be sensed or used by the various methods and system discussed herein. The input device may be an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processor 902 via the I/O port 908. The input device may be another type of user input device including, but not limited to: direction and selection control devices, such as a mouse, a trackball, cursor direction keys, a joystick, and/or a wheel; one or more sensors, such as a camera, a microphone, a positional sensor, an orientation sensor, a gravitational sensor, an inertial sensor, and/or an accelerometer; and/or a touch-sensitive display screen (“touchscreen”). The output devices may include, without limitation, a display, a touchscreen, a speaker, a tactile and/or haptic output device, and/or the like. In some implementations, the input device and the output device may be the same device, for example, in the case of a touchscreen.
The environment transducer devices convert one form of energy or signal into another for input into or output from the computing system 900 via the I/O port 908. For example, an electrical signal generated within the computing system 900 may be converted to another type of signal, and/or vice-versa. In one implementation, the environment transducer devices sense characteristics or aspects of an environment local to or remote from the computing device 900, such as user force, repetitions, heart rate, light, sound, temperature, pressure, magnetic field, electric field, chemical properties, physical movement, orientation, acceleration, gravity, and/or the like. Further, the environment transducer devices may generate signals to impose some effect on the environment either local to or remote from the example computing device 900, such as, physical movement of some object (e.g., a mechanical actuator), heating or cooling of a substance, adding a chemical substance, and/or the like.
In one implementation, a communication port 910 may be connected to a network by way of which the computer system 900 may receive network data useful in executing the methods and systems set out herein as well as transmitting information and network configuration changes determined thereby. For example, charging protocols may be updated, battery measurement or calculation data shared with external system, and the like. The communication port 910 connects the computer system 900 to one or more communication interface devices configured to transmit and/or receive information between the computing system 900 and other devices by way of one or more wired or wireless communication networks or connections. Examples of such networks or connections include, without limitation, Universal Serial Bus (USB), Ethernet, Wi-Fi, Bluetooth®, Near Field Communication (NFC), Long-Term Evolution (LTE), and so on. One or more such communication interface devices may be utilized via the communication port 910 to communicate with one or more other machines, either directly over a point-to-point communication path, over a wide area network (WAN) (e.g., the Internet), over a local area network (LAN), over a cellular (e.g., third generation (3G), fourth generation (4G) or fifth generation (5G)) network, or over another communication means. Further, the communication port 910 may communicate with an antenna for electromagnetic signal transmission and/or reception. In some examples, an antenna may be employed to receive Global Positioning System (GPS) data to facilitate determination of a location of a machine or another device.
The computer system 900 may include a sub-systems port 912 for communicating with one or more systems related to a device being charged according to the methods and system described herein to control an operation of the same and/or exchange information between the computer system 900 and one or more sub-systems of the device. Examples of such sub-systems of a vehicle, include, without limitation, motor controllers and systems, battery control systems, and others.
The system set forth in
In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.
Embodiments of the present disclosure include various steps, which are described in this specification. The steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware, software and/or firmware.
Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the present invention. For example, while the embodiments described above refer to particular features, the scope of this invention also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present invention is intended to embrace all such alternatives, modifications, and variations together with all equivalents thereof.
While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure can be references to the same embodiment or any embodiment; and, such references mean at least one of the embodiments.
Reference to “one embodiment” (or one example) or “an embodiment” (or example or examples) means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others.
The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether or not a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any example term. Likewise, the disclosure is not limited to various embodiments given in this specification.
Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, technical and scientific terms used herein have the meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims or can be learned by the practice of the principles set forth herein.
Claims
1. A method of controlling an exercise on a motorized exercise device comprising:
- at a remote computing device and in response to receiving a request from a local device associated with a motorized exercise device, accessing a first exercise template and a second exercise template, the first exercise template including a first plurality of fields associated with a first exercise, the second exercise template including a second plurality of fields associated with a second exercise;
- obtaining a first exercise definition from matching the first exercise template with a first of a plurality of predefined exercises;
- obtaining a second exercise definition from matching the second exercise template with a second of the plurality of predefined exercises; and
- providing the first exercise definition and the second exercise definition to the local device, the first exercise definition including at least one first parameter associated with a first resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed on the motorized exercise device, the second exercise definition including at least one second parameter associated with a second resistance force that will be used to control the motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
2. The method of claim 1 wherein the at least one first parameter further comprises a first starting position of a cable of the motorized device where the first resistance force of the motor is applied based on the first starting position.
3. The method of claim 2 wherein the at least one first parameter further comprises a first ending position of the cable, where the first resistance force is applied by the motor between the first starting position and the first ending position.
4. The method of claim 2 wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.
5. The method of claim 1 further comprising providing access to content for the local device for the first exercise, the content related to performing the first exercise properly using the motorized exercise device.
6. The method of claim 1 wherein the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, the method further comprising selecting a combination of templates including the first template and the second template to generate a set of exercise definitions based on the first exercise type field and the second exercise type field.
7. The method of claim 6 wherein the selection occurs according to a plan established by a user.
8. The method of claim 7 wherein the plan includes a daily selection.
9. An exercise device comprising:
- a motor controller in communication with an electric motor operably coupled with a cable to control a force required to retract the cable, the motor controller using control instructions from a computing device, the control instructions of an exercise definition for an exercise, the exercise definition including an instruction regarding a force required to extract the cable when performing the exercise, the control instructions generated from an exercise template including a plurality of fields associated with the exercise and used to select the exercise definition.
10. The exercise device of claim 9 wherein the plurality of fields of the exercise template includes an exercise type.
11. The exercise device of claim 9 wherein the computing device is a mobile phone, computing pad, laptop, desktop, or a smart watch.
12. The exercise device of claim 9 wherein the computing device receives the control instructions of the exercise definition from a server by way of a network.
13. The exercise device of claim 9 wherein the control instructions include a starting position of the cable of the motorized device where the force is applied based on the starting position.
14. A method comprising:
- at a local device associated with a motorized exercise device including an electric motor operably coupled with a cable to control a force required to retract the cable, receiving a first exercise definition based on matching a first exercise template with one of a plurality of predefined exercises, the first exercise definition including at least one parameter associated with a first resistance force defined in the predefined exercise that will be used to control the electric motor of the motorized exercise device when the first exercise is performed using the motorized exercise device.
15. The method of claim 14 further comprising receiving a second exercise definition from matching a second exercise template with a second of the plurality of predefined exercises, the second exercise template including a second plurality of fields associated with a second exercise, the second exercise definition including at least one second parameter associated with a second resistance force that will be used to control the electric motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
16. The method of claim 15 further comprising providing the first exercise definition and the second exercise definition to the motorized exercise device.
17. The method of claim 16 further comprising displaying performance data when the first exercise is performed on the motorized exercise device according to the first exercise definition.
18. The method of claim 16 further comprising displaying a user interface whereby a user may enter a starting position used by the motorized device to control when the first resistance force is applied by the motor during the first exercise.
19. The method of claim 14 wherein the at least one first parameter further comprises a first starting position of the cable where the first resistance force of the electric motor is applied based on the first starting position.
20. The method of claim 19 wherein the at least one first parameter further comprises a first ending position of the cable, where the first resistance force is applied by the electric motor between the starting position and the ending position and wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.
21. The method of claim 15 wherein the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, the remote computing device selecting a combination of templates including the first template and the second template to generate a set of exercises based on the first exercise type field and the second exercise type field.
Type: Application
Filed: Nov 14, 2022
Publication Date: May 18, 2023
Inventors: Ian Bruce (San Jose, CA), Elizabeth M. Fireman (Cambridge, MA), Krisna Bhargava (San Francisco, CA)
Application Number: 17/986,732