Sports equipment leaderboard system and related methods

JP7631303B2Active Publication Date: 2025-02-18PELOTON INTERACTIVE INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022506117
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-12-27
Filing Date
2020-07-15
Publication Date
2025-02-18
Estimated Expiration
2040-07-15

AI Technical Summary

Benefits of technology

【0008】 本開示の範囲は、参照によりこのセクションに組み込まれる特許請求の範囲によって定義される。1以上の実施形態の以下の詳細な説明を検討することにより、当業者は本開示をより完全に理解し、その追加の利点が実現されるであろう。最初に簡単に説明する添付の図面を参照する。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007631303000001
    Figure 0007631303000001
  • Figure 0007631303000002
    Figure 0007631303000002
  • Figure 0007631303000003
    Figure 0007631303000003
Patent Text Reader

Abstract

On-demand data for a real-time exercise experience is provided, including identifying available classes, receiving a selection of an exercise class, retrieving associated leaderboard data, decompressing the leaderboard data, and delivering exercise class content, including the leaderboard data, to exercise equipment. The system and method further include receiving a class end condition, collecting data from the selected exercise class, compressing the collected data, and adding the compressed data to the stored leaderboard data. The compression includes sampling points from each user's workout through a recursive process that includes identifying a first point, an last point, and at least one intermediate point for the workout; for each successive pair of sampled points, identifying the intermediate point farthest from a line segment between the pair of sampled points; and adding the intermediate point to the plurality of points if the distance between the intermediate point and the line segment is greater than a predetermined threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of and priority to U.S. Provisional Application No. 62 / 954,353, filed December 27, 2019, and entitled "LEADERBOARD SYSTEM FOR ATHLETIC EQUIPMENT AND RELATED METHODS," and U.S. Provisional Application No. 62 / 881,337, filed July 31, 2019, and entitled "LEADERBOARD SYSTEM FOR ATHLETIC EQUIPMENT AND RELATED METHODS," the entire contents of which are incorporated herein by reference.

[0002] (Technical field) This application relates generally to the field of exercise equipment and related methods, and more particularly to systems and methods for providing live streaming and / or on-demand exercise content, including, for example, leaderboards. [Background technology]

[0003] Humans are inherently competitive, striving to improve their performance by comparing it to their own past efforts and to others. Humans are also attracted to games and other entertainment, so even tasks that may seem difficult or daunting can become preferable when various game elements are introduced. Existing home and gym-based exercise systems and related methods often lack important features that allow participants to effectively compete with one another and / or gamify exercise activities.

[0004] To enhance the exercise experience and provide a more engaging environment, gyms offer classes such as cycling classes where the instructor and participants work out on stationary bikes while music plays. The combination of the instructor, music, and other class participants motivates participants to work harder and maintain a better pedal cadence or tempo. Recently, boutique cycling studios have taken the concept of cycling classes into dedicated spaces, creating an even more impactful class experience. These gym and boutique classes are usually only accessible at specific times and locations, which can be inaccessible and uneconomical for many potential users.

[0005] One solution is to provide a cycling machine or other exercise equipment that incorporates multimedia inputs and outputs for live streaming or archived educational content, social network audio and video chat, networked performance metrics, and competitive abilities along with various gamification features. For example, U.S. Patent No. 10,322,315, filed July 16, 2018, entitled "Exercise System and Related Methods," the entire contents of which are incorporated herein by reference, discloses a local system on a cycling machine configured to display a leaderboard to allow a user to see how they are performing compared to other users taking the same live online or archived class.

[0006] As the user base of such exercise systems expands, there is a need to scale large amounts of data about users, classes, and performance, including leaderboard data, while maintaining a realistic user experience, including on-demand, online, and / or real-time interaction during the exercise class. The need for a system that provides on-demand, real-time access to large amounts of archived data while providing a simulated live experience to users poses many challenges. In view of the above, there is a continuing need in the art for improved systems and methods for providing leaderboards and other exercise content to users of exercise equipment. Summary of the Invention [Means for solving the problem]

[0007] The present disclosure includes improved systems and associated methods for compiling, storing, and distributing leaderboard content for athletic equipment. The present disclosure addresses the need for a scalable system and associated methods for providing large amounts of on-demand leaderboard data while maintaining a user experience for a large and / or growing user base. In various embodiments, the system compresses live and / or archived class workout data and reconstructs global leaderboards as content is provided. The systems and methods disclosed herein provide many advantages over conventional systems and methods, including reduced storage space, reduced network overhead, and the ability to scale horizontally.

[0008] The scope of the present disclosure is defined by the claims, which are incorporated by reference into this section. The present disclosure will be more fully understood and additional advantages realized by those skilled in the art upon consideration of the following detailed description of one or more embodiments. Reference is first made to the accompanying drawings, which will be briefly described. [Brief description of the drawings]

[0009] Aspects of the present disclosure and their advantages can be better understood by referring to the following drawings and the following detailed description. It should be understood that like reference numerals are used to identify like elements shown in one or more drawings, and that the representations in the drawings are used for the purpose of illustrating, and not for the purpose of limiting, embodiments of the present disclosure. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.

[0010] [Figure 1] FIG. 1 illustrates an exemplary method for operating a leaderboard system in accordance with one or more embodiments of the present disclosure. [Diagram 2] FIG. 1 illustrates an exemplary file organization for storing leaderboard data in accordance with one or more embodiments of the present disclosure. [Diagram 3] FIG. 1 illustrates an exemplary system for generating an initial ride file in accordance with one or more embodiments of the present disclosure. [Figure 4] FIG. 1 illustrates a first exemplary leaderboard system for generating, compressing, and storing leaderboard data in accordance with one or more embodiments of the present disclosure. [Diagram 5] FIG. 1 illustrates a second exemplary leaderboard system for generating, compressing, and storing leaderboard data in accordance with one or more embodiments of the present disclosure. [Figure 6] FIG. 1 illustrates an exemplary leaderboard server system in accordance with one or more embodiments of the present disclosure. [Figure 7A] FIG. 1 is a rear perspective view of an exemplary exercise device in accordance with one or more embodiments of the present disclosure. [Figure 7B] FIG. 1 is a rear perspective view of an exemplary exercise device in accordance with one or more embodiments of the present disclosure. [Figure 8A] 1A-1C illustrate example user interface screens of exercise equipment in accordance with one or more embodiments of the present disclosure. [Figure 8B] 1A-1C illustrate example user interface screens of exercise equipment in accordance with one or more embodiments of the present disclosure. [Figure 8C] 1A-1C illustrate example user interface screens of exercise equipment in accordance with one or more embodiments of the present disclosure. [Figure 9] FIG. 2 is a chart illustrating an example method for synchronizing data between users participating in the same live or on-demand cycling class, according to one embodiment of the present disclosure. [Figure 10] FIG. 1 illustrates an exemplary computing environment for delivering computer-generated media content, according to one embodiment of the disclosure. [Figure 11A] FIG. 1 is a flow diagram illustrating an example compression approach for storage and retrieval of computer-generated media content in accordance with one or more embodiments of the present disclosure. [Figure 11B] FIG. 1 is a flow diagram illustrating an example compression approach for storage and retrieval of computer-generated media content in accordance with one or more embodiments of the present disclosure. [Figure 11C] FIG. 1 is a flow diagram illustrating an example compression approach for storage and retrieval of computer-generated media content in accordance with one or more embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Various embodiments of the present disclosure provide improved systems and associated methods for compiling, storing, and distributing leaderboard content for athletic equipment. The present disclosure addresses the need for a scalable system and associated methods for providing large amounts of on-demand leaderboard data while maintaining a user experience for a large and / or growing user base. In various embodiments, the system compresses live and / or archived class workout data and reconstructs global leaderboards as content is provided. The systems and methods disclosed herein provide many advantages over conventional systems and methods, including reduced storage space, reduced network overhead, and the ability to scale horizontally.

[0012] The growing popularity of live and archived exercise classes places increasing demands on content server systems, data storage and retrieval systems to meet the real-time demands of class participants. For example, a widely adopted exercise class content storage and delivery system may, on average, receive leaderboard content generation requests from 5,000 to 50,000 or more users at one time. The system may receive and process multiple data points associated with each class and each class participant. An average ride on such a system may consume a large amount of storage space (e.g., more than 10 megabytes of data), with larger rides consuming more than 70 megabytes of storage in various systems. In some systems, the leaderboard delivery system may be designed to meet one or more performance goals, such as delivering 50 or more new workouts per second, and at peak demand times delivering 150 or more workouts per second, and being able to quickly load 1 GB or more of leaderboard information for workouts. As the system continues to grow to accommodate more users and facilitate more features, it is expected that the number of participants and the amount of data stored, as well as the amount of content processed and delivered, may increase beyond these demands.

[0013] Various embodiments of an exemplary leaderboard system will now be described with reference to the figures. As shown in FIG. 1, a method 10 for operating a leaderboard system may be performed by one or more processing systems, such as one or more network or cloud applications and storage servers. In some embodiments, one or more content servers are configured to facilitate live and / or on-demand exercise classes for users using exercise equipment. Exercise data may be processed for all workouts (or a subset thereof), which may include uploading exercise data during or after each workout. In the illustrated embodiment, upon completion of a workout, such as the end of an exercise class, all or selected packets of data for the workout are uploaded to the leaderboard system (step 12). The leaderboard system then runs a compression algorithm to sample the data points to reduce the data required to later regenerate the workout (step 14). The compressed workout data is then saved to leaderboard storage (e.g., cloud storage, networked database storage, etc.) accessible to the leaderboard system (step 16). This may include generating a new leaderboard file for the exercise class, adding the compressed workout data to the existing data for the exercise class, or other saving operations.

[0014] When a user of the exercise equipment initiates a new on-demand exercise class, data previously stored in the leaderboard storage system is identified and retrieved from the leaderboard storage (step 18). The sampled data points are used to decompress the leaderboard to recreate a complete leaderboard representation (step 20). The decompressed leaderboard content is then provided to a content server that provides media related to the on-demand exercise class to the exercise equipment and / or other systems or devices related to the exercise class. For example, in some embodiments, a user of the exercise equipment may access the exercise content through a network-connected device, such as a mobile phone, tablet, television, computer, or other system that receives, displays, and / or plays media related to the on-demand exercise class.

[0015] In some embodiments, the compression uses a lossy compression algorithm, such as the Ramer-Douglas-Peucker algorithm ("Douglas-Peucker algorithm"), to sample key points from each user's workout. In some embodiments, the compression algorithm starts with the start and end points of the workout and finds the point that is furthest from the line segment between the start and end points. If that point is closer to the line segment than a predefined threshold, then any points not currently marked for keeping can be discarded so as not to make the simplified curve worse than the threshold. If the point furthest from the line segment is more than the threshold away from the line segment, then the point is kept. The algorithm is then called recursively for each line segment between the points until no new points are added. Once the recursion is complete, a new data set defining the workout is generated and saved to the leaderboard storage, including the points marked for keeping.

[0016] When a request for an on-demand workout is received, the leaderboard system takes the compressed data and a compression algorithm can regenerate the selected workout by interpolating those points. Depending on the threshold used during compression, the maximum error can be controlled according to the specifications and constraints of the system. In a test environment, a compression rate of 95% was achieved when the maximum error at any point was set at a threshold of 1 (defined as 1 Joule).

[0017] In some embodiments, the leaderboard system is configured to generate two compressed data sets for a workout. The first data set contains the times of each class participant. The second data set contains the outputs corresponding to those times. Both lists may be stored in a file (e.g., plain text, database, etc.) that contains compressed data including workout identifiers and associated times and outputs.

[0018] In some embodiments, the server and storage system are configured to store one file per ride. An advantage of this approach is that it allows for up to 5,000 or more concurrent requests per ride to be accommodated at the speed of the network interface. A disadvantage of this approach is that in a system where server objects are immutable, additional logic and programming may be required to update these files. In some embodiments, the server and storage system includes a cloud storage system and / or a cloud application server.

[0019] An exemplary file system 200 for use with a cloud storage system is shown in FIG. 2. The file system 200 may include a folder 210 for compressed leaderboard data for an exercise class, as well as a prefix or "folder" for each ride (e.g., first ride 220A and second ride 220B) with one file in each folder (e.g., ride_data 222A and ride_data 222B, respectively) that may have compressed data from the corresponding ride. In some embodiments, a ride prefix may not be required, while in other embodiments, a ride prefix may be used for certain cloud storage systems (e.g., S3) that guarantee a certain requests per second (RPS) performance at the prefix level. The folder 210 may include an exercise class identifier that allows the folder for the class to be easily identified.

[0020] Next, the generation of the initial ride file will be described with reference to FIG. 3. The exercise content storage and delivery system 300 provides media content for live or on-demand rides and captures and stores workout data. Upon ending a ride (e.g., a live ride ends and an "end workout" segment control button is pressed), a component 320 of the exercise content storage and delivery system 300 generates a ride identifier that is added to a queue of workouts 322 for processing. The generation of the ride identifier may be followed by a function initiated by the leaderboard system 310 to request leaderboard workout data from the workout devices of all users in the class. In some embodiments, multiple riders may participate in a class from various remote locations, and the leaderboard system 310 requests workout data associated with the exercise equipment corresponding to each user / location. In some embodiments, the workout data is automatically uploaded by the local workout device at the end of the workout session.

[0021] In various embodiments, the leaderboard system 310 may be implemented through a network server, a cloud application server, an event-driven serverless computing platform providing web services (e.g., AWS Lambda), or other computing environment. The system reads available workout data (e.g., packets received from exercise equipment or a cloud storage system) and any missing packets from other online storage systems associated with the ride (e.g., cloud storage 330) and generates a compressed leaderboard 340. The compressed leaderboard may be stored in the cloud storage system in the above-mentioned compressed format for subsequent retrieval of the on-demand exercise class. In some embodiments, the cloud storage 330 includes a relational or non-relational database (e.g., DynamoDB).

[0022] In some embodiments, the leaderboard system includes special logic that allows adding leaderboard data using the file structure described above. Future on-demand workouts may be made visible on the leaderboard by adding all rides to a master ride file in cloud storage. Using append operations saves network bandwidth usage, processing, and costs by only uploading additional data. Other system structures can be used, but while they often have limitations such as databases (which are difficult to meet the required QPS) or EFS (which are too costly given the expected volume of information and large variations in latency), they may negatively impact the user experience.

[0023] An embodiment of a system 400 for implementing a leaderboard server is shown in FIG. 4. The system 400 includes multiple servers, processing devices, routing devices, and storage devices disposed on a network. The server is a component that reads compressed data from storage (e.g., cloud storage) and regenerates the leaderboard. The compressed leaderboard server 410 is configured to execute leaderboard compression and server logic. The compressed leaderboard server 410 receives requests from one or more statistics servers 420, which may include adding users to a leaderboard, returning the complete leaderboard, and other related commands.

[0024] When the system 400 receives a request to start a workout (e.g., an exercise class with a ride identifier), the associated request for leaderboard information passes to the compressed leaderboard server 410, which is configured to find the correct file for the ride identifier from the workout database of compressed data 450. The compressed leaderboard server 410 then reads the complete leaderboard from the stored compressed data 450. At this point, the leaderboard may be embodied as a compressed list of lists. The compressed leaderboard server 410 then processes these lists to generate a list of functions (e.g., polynomial functions) that can be called with a timestamp to return an output for that timestamp (e.g., using a linear interpolation library). In the case of an "add" request, the compressed leaderboard server 510 compresses and stores the user's most recent output received from the exercise equipment 430. Subsequent "get" requests cause the leaderboard server to loop through the list and regenerate the complete leaderboard for the user, including the user's output.

[0025] For efficient processing, in some embodiments, the system 400 is configured to efficiently route a given workout to the same server (e.g., via the elastic load balancing router 440). This can be accomplished, for example, by sharding the workout ID in the statistics server 420. In the event of a server crash, the leaderboard can be served from any server by adjusting the routing. There may be delays during the switchover as the new server re-reads the leaderboard from the cloud storage system.

[0026] Another embodiment of a system 500 for implementing a leaderboard server is shown in FIG. 3. One goal of this embodiment is to route on-demand leaderboard requests from athletic equipment 530 directly (e.g., via an Elastic Load Balancing (ELB) router 540) to a compressed leaderboard server 510 that interfaces with a compressed data storage system 550. To accomplish this, the compressed leaderboard server 510 includes logic to facilitate sorting, filtering, and windowing of data. In the absence of a statistics server to perform the routing, the ELB layer 540 is configured to handle the routing process by using sticky sessions.

[0027] The logic for implementing the compressed leaderboard server may be written in Kotlin, Python, or other suitable programming language for execution by a processor. In some embodiments, Kotlin reduces the complexity of the service when compared to Python. The system may be programmed to have multiple independent processes, one per core. This addresses several considerations, two of which are lack of shared memory and routing complexity. In some embodiments, there is a remote procedure call layer between the client process and the leaderboard process, and every client will connect to every single running process, multiplied by the number of cores, for balanced load balancing. This system may require each request for the same workout to go to the same process, since there is a cost to loading the compressed leaderboard and sharing memory with third party software (e.g., a distributed memory caching system). This is not as efficient as storing all requests in random access memory or other fast access memory in a lock-free data structure. The system may lose the ability to share the decompressed workouts via an in-process memory structure. Moreover, network complexity grows with the number of cores.

[0028] In other embodiments, Python processes may be used, but this may impact efficiency. Problems arise if the workout leaderboard data is consistently stored in one process, because standard Python libraries may terminate a process after a task finishes executing and launch a new process for a new task. To achieve the goal of generating a new leaderboard every 2 seconds or more, the system may need to allocate a new array each time, or store the leaderboard from a second ago, which is copied into the new process's memory space as it occurs. Either way, the process ends up doing a lot of copying or a lot of allocation.

[0029] Some embodiments may use a programming language such as Kotlin, which is written on the Java Virtual Machine and has built-in native multithreading. Kotlin uses a copy-on-write memory model, which allows it to avoid certain work-arounds for the Global Interpreter Lock or spawning processes. Using Kotlin, the system can have a shared object for unpacking leaderboards for rides. This allows the system to generate per-second leaderboards in different threads for each workout, without having to retrieve multiple copies of the core leaderboard from the cloud. The system can also save sorted leaderboards from previous requests and generate new leaderboards based on the order from a second ago. Because users don't move around much, the system will generate a nearly sorted leaderboard on the fly, completely avoiding subsequent sorting copies and optimizations. This is because the data is close to sorted because users don't move around much each second.

[0030] Example of a leaderboard implementation for exercise equipment

[0031] The systems and methods disclosed herein may be embodied in a server environment operating over the Internet or other networks, such as a wireless network. An exemplary leaderboard server 600 according to one or more embodiments of the present disclosure is shown in FIG. 6. The leaderboard server 600 may include one or more processors 602, memory 604, a network interface 608, and data storage 620 (e.g., cloud storage, network storage, etc.). The processor 602 may include any suitable processing components or logic devices, such as a central processing unit, a general purpose processor, a microprocessor, a special purpose processor, etc. The memory 604 may include one or more volatile, non-volatile, and / or replaceable storage components, such as magnetic, flash, optical, or other storage components. The memory 604 may store computer readable instructions and logic storage 604 for execution by the processor 602, including various logical components and processes as disclosed herein. In some embodiments, the leaderboard server 600 includes software modules configured to facilitate workout data acquisition 610, workout data compression 612, workout data storage 614, workout data retrieval 616, workout data decompression 618, and leaderboard generation and distribution 620. The network interface 608 is configured to facilitate communication between the leaderboard server 600 and other systems or devices via a communication network, including wired (e.g., Ethernet), wireless (e.g., cellular, WI-FI), and / or other networking types configured for efficient data transfer communication.

[0032] Various embodiments of exercise equipment will now be described with reference to Figures 7A and 7B. Although the embodiments are illustrated using fitness bikes, exercise classes, and other exercise related content, it should be understood that the present disclosure is not limited to cycling and may be implemented using other exercise equipment and / or other content generation or distribution applications.

[0033] In various embodiments, the local system 700 comprises a fitness bike 702 with integrated or communicatively connected digital hardware, including at least one display screen 704. The fitness bike 702 may comprise a frame 706, a handlebar post 708 for supporting a handlebar 710, a seat post 712 for supporting a seat 714, a rear support 716, and a front support 718. Pedals 720 are used to drive a wheel 722 via a belt, chain, or other drive mechanism. The wheel 722 may be a heavy metal disk or other suitable mechanism. In various exemplary embodiments, the force applied to the pedals required to rotate the wheel 722 may be adjusted using a resistance adjustment knob 724. The resistance adjustment knob or other resistance adjustment component may directly or indirectly control a device that increases or decreases the resistance to rotation of the wheel. For example, rotating the resistance adjustment knob clockwise may move a set of magnets 726 relative to the wheel, thereby increasing the resistance to rotation, thereby increasing the force the user must apply to the pedals to rotate the wheel.

[0034] The exercise bike 702 may also include various features that allow for adjustment of the position of the seat 714, handlebars 710, etc. In various exemplary embodiments, the display screen 704 may be mounted in front of the handlebars in front of the user. Such a display screen may include a hinge or other mechanism to allow adjustment of the position or orientation of the display screen relative to the rider. In some embodiments, the display screen may be implemented on a tablet, cell phone, portable computer, television, or other device that is communicatively connected to one or more components of the exercise bike 702.

[0035] Digital hardware associated with the exercise bike 702 may be connected or integrated with the exercise bike 702, or may be located remotely from the exercise bike or connected wirelessly. A display screen 704 may be attached to the exercise bike or separately mounted, but may be positioned within view of a person using the exercise bike. The digital hardware may include digital storage, processing, and communication hardware, software, and / or one or more media input / output devices, such as a display screen, camera, microphone, keyboard, touch screen, headset, and / or audio speakers. In various exemplary embodiments, these components may be integrated into the exercise bike. All communication between and among such components may be multi-channel, multi-directional, and wireless or wired (e.g., using wires 728), using any suitable protocol or technology. In various exemplary embodiments, the system may include associated mobile and web-based application programs that provide the user with access to account, performance, and other related information from a local or remote personal computer, laptop, mobile device, or any other digital device.

[0036] In various exemplary embodiments, the exercise bike 702 may be equipped with various sensors capable of measuring a range of performance metrics, both from the exercise bike and the rider, instantaneously and / or over time. For example, the exercise bike may include power measurement sensors, such as magnetoresistive power measurement sensors, or eddy current power monitoring systems that provide continuous power measurements during use. The exercise bike may include various sensors to measure speed, pedal cadence, wheel rotational speed, etc. The exercise bike may include sensors to measure the rider's heart rate, respiration, hydration, or other physical characteristics. Such sensors may communicate with the exercise bike's storage and processing system, nearby or remote, using wired or wireless connections.

[0037] Hardware and software within the sensor or in a separate package may be provided to calculate and store a wide range of performance information. Relevant performance metrics that can be measured or calculated include distance, speed, resistance, power, total work, pedal cadence, heart rate, respiration, hydration, calorie expenditure, and / or custom performance scores that may be developed. Such performance metrics may be calculated using current / instantaneous values, maximum, minimum, average, or totals over time, or other statistical analysis, as appropriate. Trends may also be measured and stored and displayed to the user, instructors, and / or other users. A user interface may allow the user to control the language and other characteristics of various information displayed.

[0038] In various exemplary embodiments, the exercise bike 702 may include one or more large display screens (e.g., display screen 704), a camera, a microphone, and a speaker or other audio output. The display screen 704 may be directly attached to the exercise bike 702 or may otherwise be located within the user's viewing area. In various exemplary embodiments, at least one display screen is integrated into or attached to the exercise bike and positioned in front of the rider approximately centered on the exercise bike's handlebars 710, as shown. Various mechanisms may be used to allow the user to customize the location of the display screen.

[0039] In an exemplary embodiment, the display screen 704 may be attached to the exercise bike 702 via a curved structure that extends upward and forward from the front stem of the frame 706. The curved structure may include a slot or opening that passes through the curved structure and extends along a portion of the length of the curved structure. A mounting post or similar structure on the display screen may be attached to the curved structure by a pin that passes through the mounting post or structure and the curved structure. In an exemplary embodiment, the pin may have a mechanism such as a thread that can be tightened to hold and lock the mounting post or structure in place.

[0040] The display screen 704 may be driven by a user input device, such as a touch screen, mouse, or other device. In various exemplary embodiments, the touch screen display is mounted on the exercise bike approximately centered between and just below the handlebars. The display screen may be of any size, and optimally is large enough and oriented to display a variety of information, including one or more video streams, various performance metrics for the user, etc., and various controls.

[0041] In various exemplary embodiments, a user can use a touch screen or other interface to selectively display an array of different information on the screen, including live and / or archived video, performance data, and other user and system information. The user interface can provide a wide range of controls and information windows that can be accessed and removed individually and / or in groups by click, touch, or gesture. In various exemplary embodiments, such windows can provide information about the user's own performance and / or the performance of other participants taking the same class, both past and present.

[0042] The user interface allows access to member information, logging in and out of the system, and accessing live content such as live exercise classes and archived content (referred to as "Ride on Demand" in the diagram). User information may be displayed in a variety of formats and may include past and current performance, account information, social networking links, information, achievements, and the like. The user interface also allows access to the system, updating profile or member information, managing account settings such as sharing information, and controlling device settings.

[0043] 8A-8C, a user interface 800 may be displayed on the display screen 704 to allow a user to manage their workout, including selecting the information to be displayed and adjusting how such information is displayed on the system. The user interface may display multiple types of information overlaid on one another to allow the user to easily select or deselect different types of information. For example, performance information may be displayed on top of video content using translucent or partially transparent elements, allowing the video behind the information element to be seen along with the information itself.

[0044] The user interface 800 may display various screens to the user, and the user may quickly navigate between the screens by using the provided user input devices, including by touch if a touch screen is used. In various exemplary embodiments, the user interface may provide a home screen that displays basic information about the system and available options. As shown in FIG. 8A, such a home screen may provide direct links to information such as scheduled classes 802, archived classes 804, leaderboards 806, instructors 808, and / or profiles, as well as account information 810. The screens may provide direct links to content, such as a link to join a class 812. The user may navigate between the various screens of the user interface by selecting such links using an appropriate input device, such as touching a touch screen in a designated location or swiping to display a new screen. The user interface may also provide other information relevant to the user, such as social network information, as well as navigation buttons to quickly navigate between different screens within the user interface.

[0045] In various exemplary embodiments, a user may select from both live and archived content. For example, if a user selects Scheduled Classes 802, a screen may be displayed showing a schedule of upcoming scheduled classes. The user interface may allow a user to select classes by time, instructor, ride type, or start a class that is in progress or about to begin. The schedule of classes may be displayed in any suitable format, including a calendar, a list, or any other suitable layout.

[0046] In various exemplary embodiments, a user may select archive class 804 to display a screen showing available archive classes sorted by any suitable category. FIG. 8B shows an example display of archive classes. Thumbnails or icons 818 representing archive classes may be displayed in any suitable format and may include information regarding the number of rides the user has previously taken in that class or other performance or class related information. A class may be accessed by selecting a particular thumbnail or icon.

[0047] As shown in FIG. 8C, when a class is being played on the display screen via the user interface 800, in various exemplary embodiments, the primary video feed may be displayed as background video, full screen or in a sub-window on the screen. Information elements may be provided on various portions of the display screen to indicate any performance metrics, including run time, elapsed time, time remaining, distance, speed, resistance, power, total work, pedal cadence, heart rate, respiration, hydration, calorie expenditure, and / or any custom performance score that may be developed. The displayed information may include trends or relationships between various performance metrics. For example, certain metrics may be displayed by color indicating current performance compared to average performance over a class or time, such as red indicating current performance is below average and green indicating performance is above average. Trends or relative performance may also be displayed through the use of color and graphics, such as a red down arrow indicating current performance is below average.

[0048] Primary window 820 displays the live or archived class selected by the user. In various exemplary embodiments, performance metric windows 822, 824, 826, 828, and 830 may show specific performance metrics for the user's current ride, past rides, or other performance information. Such performance metric windows may be displayed anywhere on the display screen and may be user selectable to be displayed or removed by touch or gesture on the screen. As shown in FIG. 8C, window 822 displays distance and speed. Window 824 displays the current pedal cadence along with the user's average and maximum cadence and class average, and arrow 832 indicates whether the user's cadence is increasing or decreasing. Window 826 displays power output in watts along with average power, maximum power, class average, and total power along with similar arrows. Window 828 displays resistance both numerically and graphically, and window 830 displays calories burned and heart rate.

[0049] The user interface may allow the user to toggle between displaying maximum, average, and total results for various performance metrics. The user interface may also allow the user to hide or display information elements, including performance metrics, video streams, and user information, all at once or individually. Performance information may also be displayed in various display bars, which can be hidden or displayed in groups or individually. The user interface may provide full control of audio volume, inputs and outputs, as well as a display of output characteristics.

[0050] Leaderboards 834 may also be displayed to allow users to see how they are performing relative to others taking the same class. In various exemplary embodiments, the leaderboards may be configured to display the relative performance of all riders, or one or more subgroups of riders. A user may be able to select leaderboards that show the performance of riders in a particular age group, male riders, female riders, male riders in a particular age group, and riders from a particular region, for example. A user may also be provided with the ability to remove a leaderboard from the display by deselecting it entirely. In various exemplary embodiments, the system may incorporate various social networking features that allow, for example, a user to follow other riders or create groups or circles of riders. User lists and information may be accessed, sorted, filtered, and used in various ways. For example, other users may be sorted, grouped, and / or categorized based on any characteristic, including personal information such as age, gender, weight, or based on performance such as current power, speed, or custom scores.

[0051] The leaderboard 834 may be fully interactive. For example, a user may scroll up and down through the rider rankings to select a rider and then access detailed performance data. The user may then select to follow that rider, making a connection or establishing direct communication, such as via an audio and / or video connection. The leaderboard may display the user's personal best performance in the same or comparable class, allowing the user to compare their current performance to their previous personal best performance. The leaderboard may highlight certain riders, such as riders the user is following, indicate the connection through other visual cues, or provide other information about a particular entry on the leaderboard. In various exemplary embodiments, the leaderboard also allows the user to keep their location and performance information visible while scrolling through the leaderboard.

[0052] In various exemplary embodiments, the system displays one or more aspects of a user's performance by calculating and displaying one or more custom scores. One example of such a custom score is a decimal number calculated for a particular class or user session. Such a score may also be calculated using performance data for some or all classes or sessions for a particular time period. In exemplary embodiments, the custom score takes into account the amount of riding time, the total amount of work during that time period, and the number of classes in a given time period.

[0053] In various exemplary embodiments, performance information regarding other users may be displayed on a leaderboard 834 or in any other format, including a format that may be sorted by relevant performance parameters. Users may choose whether to make their performance available to all users, selected users, and / or instructors, or to keep it as private information so that no one can see it.

[0054] In various exemplary embodiments, the user interface may also display one or more video streams from a range of different sources. For example, one video stream may be live or archived class content displayed in a primary window, while one or more additional video streams may be displayed in other windows on the display screen 704. The various video streams may include live or recorded streaming video of an instructor, or other video content, including one or more live video chat streams.

[0055] The user interface may provide additional windows that can be used to display a variety of content, including additional performance data, information about the class, instructors, other riders, etc., or a secondary video stream. Adding such windows allows the user to see a variety of information about other current or past participants to compare performances, and to open and close communication channels, such as voice or video chat. In various exemplary embodiments, the user may simultaneously access other content, including movies, television channels, online channels, and the like. Secondary window 840 may display a range of information and content. In the illustrated embodiment, secondary window 840 displays the user's name, the current class name, and basic class information, but may display other information, such as the information displayed in windows 822, 824, 826, 828, and 830.

[0056] In various exemplary embodiments, the system can provide for simultaneous participation by multiple users in recorded classes, synchronized by the system and allowing access to all of the same communication and data sharing capabilities that are available for live classes. This capability allows riders to compete not only against each other riders participating in the same archived class at the same time, but also against past performances in the same class and against riders who are affiliated with the class but not participating (ghost riders).

[0057] FIG. 9 shows the various events against time, increasing from left to right on the scale shown at the bottom. The timeline of the class itself, whether live or archived, is shown at the top, and below that are the timelines of the four different riders. The video streamed for a live or archived class can start before the actual lesson begins at video start point 920. GO signal point 922 indicates the start of the class or the comparison period of the class, STOP signal point 924 indicates the end of the class or the end of the comparison period of the class, and end video point 926 indicates the end of the video stream. Riders (R) 1, 2, and 4 all start riding before the GO signal point, but the GO signal marks the start of the class performance metric. For rider 3, the actual start time marks the start of the class performance metric. For riders 1, 2, and 3 who continued beyond the STOP signal point, the end of the class performance metric is the STOP signal point, and for rider 4 the end time is the time they actually stopped riding.

[0058] Using such a system, live and past performance (ghost bike) data (e.g., leaderboard content) of the user or other participants can be provided in various numerical and graphical formats during class for comparison and competition. A user's live and past performance data, or target performance data, can be displayed simultaneously, allowing the user to compare their performance against benchmarks in real time during or after the class. In various exemplary embodiments, the system may also allow for widespread competition by allowing the user to set up a handicap system to level the playing field between different users or groups of users.

[0059] As shown in FIG. 10 , the local system 1010 includes a user operating exercise equipment including one or more sensors, a processing system that generates one or more performance metrics, and a display for displaying leaderboard information. During the exercise class, the local system 1010 transmits session data 1012 to the delivery platform 1020. In various embodiments, the session data 1012 may include sensor data (e.g., resistance, cadence, and user heart rate), performance metrics (e.g., speed, distance, and position on a leaderboard), and / or user preference information (e.g., favorite music and favorite workouts). The delivery platform 1020 provides media 1062 related to the exercise class (e.g., video, audio, and other workout content from the workout / media content database 1024 and leaderboard information from the leaderboard system 1040) to the local system 1010.

[0060] The distribution platform 1020 and / or the local system 1010 provide the workout data 1032 to a leaderboard system 1040 that is configured to compile, compress, and store the workout data 1032 in a leaderboard database 1044 (e.g., cloud storage, network storage, etc.). The leaderboard system 1040 is also configured to retrieve and decompress the stored leaderboard data and generate leaderboards 1060 for display to users of the local system 1010.

[0061] Hardware and software within the sensor or separate processing system may be provided to calculate and store various status and performance information. Relevant performance metrics that may be measured or calculated may include resistance, distance, speed, power, total work, pedal cadence, heart rate, respiration, hydration, calorie expenditure, and / or custom performance scores that may be developed. If desired, such performance metrics may be calculated as current / instantaneous values, maximums, minimums, averages, or totals over time, or using other statistical analysis. Trends may be determined, stored, and displayed to the user, instructors, and / or other users. A user interface may also be provided to allow the user to control the language, units, etc. of the information displayed.

[0062] In various embodiments, compression of sensor data, user data, ride data, and / or other related data stored and acquired during operation of the system may be implemented using the approaches described above and / or one or more alternative approaches to achieve desired data loss and / or storage efficiency goals.

[0063] In the embodiment shown in FIG. 11A, the compression and acquisition process 1100 may be used for ride data that includes a set of fixed points or intervals. In step 1110, for each ride, the average user output may be determined between the fixed points and / or in other windows / segments associated with each fixed point (e.g., windows surrounding the fixed points). The number of fixed point values ​​may be further reduced, for example, using a line simplification algorithm. The resulting output may then be normalized, for example, from 0 to 1, in step 1112. The compressed data may be further compressed in step 1114 to calculate the user's output at one or more times t by taking the normalized output at time t and multiplying it by the user's final output. With this approach, all compressed workouts will have the same point index, leading to more efficient data storage. The tradeoff with this approach is that the derived values ​​may have a higher error.

[0064] In one embodiment, the fixed points are determined by a machine learning algorithm, which may include a regression analysis of the data to determine the most important points during the ride. In some embodiments, a machine learning approach may be used to determine a formula or curve for the ride data.

[0065] In another approach, as shown in FIG. 11B, the signal compression and acquisition process 1150 can be implemented by using a Fast Fourier Transform (FFT). In this approach, the original signal is convolved using a Fast Fourier Transform in step 1160, and the start and end of the convolved data set are saved in step 1162. The start and end points of the signal are also saved in step 1164. In step 1166, a sawtooth signal is generated starting from the two points and then convolved to recover it. In step 1168, the left and right sides of the convolved signal are replaced with the saved compressed data. The original signal is then restored to a good approximation by deconvolving the signal in step 1170 (e.g., inverse FFT).

[0066] Advantages of the present embodiment will be apparent to those skilled in the art, including the effective achievement of reduced user actions and reduced sensing time.

[0067] In the embodiment shown in FIG. 11C, an example compression process 1180 recursively samples workout data to generate a compressed data set. In step 1182, the leaderboard system receives workout data for one or more users, including samples of performance-related data taken during the workout. For example, the data samples may include workout timestamps and sensed and / or calculated performance parameters, such as distance traveled, speed, cadence, resistance, and / or other related data. In some embodiments, the compression of the leaderboard is performed using a lossy compression algorithm, such as the Lamar-Douglas-Peucker algorithm ("Douglas-Peucker algorithm"), to sample key points from each user's workout.

[0068] In some embodiments, the compression algorithm begins by identifying the first and last data points of the workout in step 1184, and then recursively adds intermediate points between consecutive data points until a termination condition is met. In the illustrated embodiment, in step 1186, the leaderboard system identifies, for each line segment between consecutive points, the intermediate point that is furthest from the line segment. In step 1188, if the distance from the intermediate point to the corresponding line segment is greater than a predetermined threshold distance, the intermediate point is added to the compressed data set. Otherwise, the intermediate point is discarded without causing the simplified curve to deteriorate beyond the threshold. It then recursively calls for each line segment between the points until no new points are added (step 1190). Once the recursion is complete, a new data set defining the workout is generated, including the points that have been marked for retention and storage in the leaderboard storage.

[0069] In some embodiments, the leaderboard system is configured to generate two or more condensed workout data sets to track different performance parameters. For example, one data set may include the times of each class participant and a second data set may include one or more data outputs (e.g., sensed or calculated performance parameters) corresponding to those times. Both lists may be stored in a file (e.g., plain text, database, etc.) containing condensed data including workout identifiers and associated times and outputs.

[0070] In one example, a method for delivering leaderboard information for live and archived exercise classes includes providing information about available live classes and available archived classes accessible to a user of exercise equipment at a first location, receiving a selection of either a live exercise class or an archived exercise class, retrieving leaderboard data, if any, for the selected exercise class, decompressing the retrieved leaderboard data, and providing digital video and audio content including the selected exercise class to a first exercise equipment at a first location. The method may further include receiving an indication of a class end condition, collecting data from one or more class participants of the selected exercise class, compressing the collected data, and adding the compressed collected data to stored leaderboard data for the class. The leaderboard data may be compressed using a Lamar-Douglas-Pauker algorithm to sample each user's data points in the collected data, and the compressed data may be stored in folders for the exercise classes, each folder including at least one folder identifying compressed data for a session of the exercise class.

[0071] In various embodiments, determining one or more performance parameters of the first user at the first location further includes sensing at least one performance parameter from a first exercise equipment operable by the first user at the first location. The display screen at the first location may further include a graphical user interface having user selectable content for display during the selected exercise class, and dynamically displaying one or more performance parameters of a second user at the second location on the display screen at the first location may further include displaying the performance parameters of the first user and the performance parameters of the second user in a second window.

[0072] The digital video and audio content, and the performance parameters of the first user and the second user may be output in substantially real time. The method may further include requesting digital video content, audio content, and class participant content associated with the selected exercise class from a server over a digital communications network, the class participant content including content associated with the second user. The method may further include generating a leaderboard from the class participant content and the plurality of first user performance parameters, the leaderboard displaying performance parameters at the same point in the selected exercise class, and displaying the leaderboard at a first location. The class participant content may be comprised of live and archived class participant content, and the leaderboard may be synchronized to the performance parameters of the first user to enable presentation of comparative class participant content to the first user.

[0073] The above disclosure is not intended to limit the invention to the exact form or particular field of use disclosed. Thus, various alternative embodiments and / or modifications, whether expressly described or implied herein, are contemplated in light of this disclosure. Having thus described embodiments of the present disclosure, those skilled in the art will recognize that changes can be made in form and detail without departing from the scope of the present disclosure, and with advantages over conventional approaches. Accordingly, the present disclosure is limited only by the scope of the claims.

Claims

1. a data distribution step of distributing data identifying available live and / or archived exercise classes accessible to users of the first exercise equipment at the first location; receiving a selection of the available exercise classes; obtaining condensed leaderboard data for the selected exercise class including performance data for previous class participants; a decompressing step of decompressing a subset of the compressed leaderboard data for a selected number of the preceding class participants that corresponds to a timestamp of video content of the exercise class; and delivering the video content of the exercise class and the decompressed leaderboard data to the first exercise equipment at the first location for display during a selected available exercise class.

2. receiving an indication of a class exit condition; collecting data from the exercise class selected by one or more class participants, the data including data related to the first exercise equipment; a compression step of compressing the collected data; 10. The method of claim 1, further comprising the additional step of adding the compressed collected data to the stored leaderboard data for the selected exercise class.

3. 3. The method of claim 2, wherein the compressing step includes implementing a Lamar-Douglas Poker algorithm to sample data points for each user in the collected data.

4. said compressing step including a sampling step of sampling a plurality of points from each user's workout; the sampling step includes a point identifying step of identifying a first point and a last point of the workout, and at least one intermediate point of the workout; 3. The method of claim 2, wherein the point identifying step includes an intermediate point identifying step of identifying, for each successive pair of sampled points, an intermediate point that is farthest from a line segment between the pair of sampled points, and an adding step of adding the intermediate point to the plurality of points if the distance between the intermediate point and the line segment is greater than a predetermined threshold.

5. 5. The method of claim 4, wherein the sampling step further comprises a recursive process that recursively calls itself with each line segment between each pair of successive points until the new intermediate point is no more than a threshold distance from the corresponding line segment.

6. The method of claim 2 , wherein the compressed data is stored in a folder structure associated with the exercise class that includes a plurality of folders, at least one of the folders identifying compressed data for a session of the exercise class.

7. The method of claim 1 , further comprising sensing a performance parameter associated with a first user of the first athletic equipment at the first location.

8. 2. The method of claim 1, further comprising displaying content in a user interface at the first location that is user selectable for display during the selected exercise class, the displaying step including dynamically displaying on a display screen at the first location one or more performance parameters for a second user at a second location.

9. 9. The method of claim 8, further comprising the step of displaying the performance parameters for the first user and the second user in a second window.

10. 10. The method of claim 9, wherein the exercise class content includes digital video and / or audio content and the performance parameters for the first user and the second user.

11. The method of claim 10 , wherein the exercise class content is displayed in real time.

12. 10. The method of claim 1, further comprising receiving, at a server via a communications network, a request for exercise content including audio content and class participant content associated with the selected exercise class.

13. The method of claim 12 , wherein the class participant content includes content related to a second user.

14. 2. The method of claim 1, further comprising: generating a leaderboard from exercise class content and a first user's sensed performance parameters, the leaderboard representing performance parameters of other participants at the same point during the selected exercise class; and displaying the leaderboard at the first location.

15. 15. The method of claim 14, wherein the exercise class content includes live and / or archived exercise class content, and the leaderboard is synchronized to the first user's performance parameters and provides the first user with comparative class participant content.

16. Delivering data identifying live and / or archived classes available for a first piece of exercise equipment at a remote first location; Receive a selection of available exercise classes; and a distribution system configured to distribute class content, including video content and leaderboard data associated with a selected available class, to the first exercise equipment at the first location for display during the exercise class; and receiving a request from the distribution system for the leaderboard data, the leaderboard data including performance data of previous class participants for the selected exercise class, the leaderboard data being stored in a compressed format; identifying a subset of the condensed leaderboard data for a selected plurality of the preceding class participants that corresponds to a timestamp of the video content; decompressing the identified subset of the compressed leaderboard data; and a leaderboard system configured to distribute the decompressed leaderboard data to the distribution system for transmission to the first athletic equipment along with the corresponding video content.

17. 17. The system of claim 16, wherein the distribution system is further configured to receive an indication of a class completion condition, collect data from the selected exercise class from one or more class participants, including data related to the first exercise equipment, and transmit the data to the leaderboard system.

18. 20. The system of claim 17, wherein the leaderboard system is further configured to compress the collected data and add the compressed collected data to the stored leaderboard data for the selected exercise class.

19. 20. The system of claim 18, wherein the leaderboard system is further configured to compress the collected data by implementing a Lamar Douglas Poker algorithm to sample data points for each user in the collected data.

20. 20. The system of claim 19, wherein the leaderboard system includes a storage system configured to store the compressed leaderboard data.

21. 21. The system of claim 20, wherein the compressed leaderboard data is stored in a folder structure associated with the exercise class.

22. 22. The system of claim 21, wherein the folder structure includes a plurality of folders, and at least one of the folders identifies compressed data for sessions of the exercise class.

23. 22. The system of claim 21, wherein the first exercise equipment is configured to sense performance parameters associated with a first user of the first exercise equipment at the first location, display user selectable content in a user interface at the first location for display during a selected exercise class, dynamically display one or more performance parameters for a second user at a second location on a display screen at the first location, and display the performance parameters for the first user and the performance parameters for the second user in a second window.

24. the class content includes digital video and / or audio content, and the performance data includes performance parameters for a first user and a second user; 22. The system of claim 21, wherein the distribution system is further configured to receive, via a communications network, a request for digital video content, audio content, and class participant content associated with the selected exercise class.

25. 22. The system of claim 21, wherein the first exercise equipment is further configured to generate a leaderboard from class participant content and performance parameters of a first user and a second user associated with the selected exercise class, the leaderboard representing performance parameters at the same point during the selected exercise class, displaying the leaderboard at a first location, the leaderboard synchronized to the performance parameters of the first user, and presenting comparative class participant content to the first user.

Citation Information

Patent Citations

  • Exercise system and method

    US20140038781A1

  • Systems and methods for providing game gestures

    US20140213372A1

  • Generating simulation data using a linear curve simplification and reverse simplification method

    US20170249402A1

  • Exercise system and method

    US20180318647A1