Method and apparatus for tracking athlete performance
The described communication system addresses the challenge of real-time athlete data collection by using a gateway unit and Bluetooth protocol, enabling efficient and accurate data transmission for improved training optimization.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- PLAYERDATA HLDG LTD
- Filing Date
- 2025-12-08
- Publication Date
- 2026-06-18
AI Technical Summary
Existing athlete tracking systems face challenges in providing energy-efficient, low-cost, and convenient solutions for real-time data collection during training sessions or games, with existing wearable sensors and data collection methods being subjective and lacking accuracy.
A communication system utilizing a gateway unit and athlete tracking units that employ a periodic advertising and response protocol, such as Bluetooth Core Specification 5.4, to efficiently transmit athlete data through a short-range wireless network, allowing for near real-time data acquisition and management without complex setup procedures.
The system provides accurate, real-time athlete performance data to coaches, optimizing training regimes by reducing energy consumption and setup complexity while ensuring reliable data transmission.
Smart Images

Figure GB2025052667_18062026_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS FOR TRACKING ATHLETE PERFORMANCETECHNICAL FIELD
[0001] The present disclosure relates to methods and apparatus for tracking athlete performance.BACKGROUND
[0002] Obtaining information on levels of performance of an athlete in training is becoming increasing important and valued by sports coaches and athletes.
[0003] Online platforms are available that allow sports coaches to collect data on their athletes from the athletes manually inputting data on training sessions or games. This data may include their perceived levels of performance or tiredness, or how well they understood a session. This eliminates a data collection step which would otherwise have to be carried out by the coaches. However, this data is only of limited scope, is inherently subjective and may not provide an accurate representation of the situation.
[0004] Wearable sensors automatically collect data on athletes. The data collected can be assessed by the coaches so they can analyse the performance of the athletes and tailor their training regimes accordingly to obtain the best results.
[0005] Ideally, an athlete tracking system would provide live (i.e. real time) data to coaches, to allow them to monitor athlete performance during training sessions or games. However, challenges remain in providing such systems that are energy-efficient and low-cost, and that are simple and convenient to set up and use.
[0006] One solution is to use relatively simple athlete tracking units that are worn by athletes and that send athlete data to a nearby gateway unit. The gateway unit then provides the athlete data to terminals (for example via a server) where the athlete data can be accessed, for example by a coach.
[0007] Such a solution could be implemented using a periodic advertising and response protocol, such as the Periodic Advertising with Response (PAwR) protocol of Bluetooth Core Specification 5.4, for communication between the gateway unit (acting as the periodic advertiser) and the athlete tracking units.
[0008] However, challenges remain in implementing a solution for athlete tracking systems in a convenient and efficient manner.SUMMARY OF INVENTION
[0009] Embodiments of the invention are set out in the appended claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Certain examples of the present disclosure will now be described, with reference to the accompanying drawings, in which:
[0011] FIG. 1 illustrates an example communication system for tracking athlete performance in accordance with one embodiment.
[0012] FIG. 2 illustrates an example method in accordance with one embodiment.
[0013] FIG. 3 illustrates an example method in accordance with one embodiment.
[0014] FIG. 4 illustrates an example method in accordance with one embodiment.
[0015] FIG. 5 illustrates an example method in accordance with one embodiment.
[0016] FIG. 6 illustrates an example gateway unit in accordance with one embodiment.
[0017] FIG. 7 illustrates an example athlete tracking unit in accordance with one embodiment.
[0018] FIG. 8 illustrates an example server in accordance with one embodiment.
[0019] FIG. 9 illustrates an example apparatus.
[0020] FIG. 10 illustrates example machine readable instructions.
[0021] FIG. 11 illustrates an example machine readable medium having machine readable instructions stored thereon.DETAILED DESCRIPTION
[0022] Hereinafter, examples of the disclosure are described with reference to the accompanying drawings. However, it should be appreciated that the disclosure is not limited to the described examples, and all changes and / or equivalents or replacements thereto also belong to the scope of the disclosure. The same or similar reference denotations may be used to refer to the same or similar elements throughout the specification and the drawings.
[0023] As used herein, the terms “have,” “may have,” “include,” or “may include” a feature (e.g., a number, function, operation, or a component such as a part) indicate the existence of the feature and do not exclude the existence of other features. Throughout the description and claims of this specification, the words “comprise” and “contain” and variations of them mean “including but not limited to”, and they are not intended to (and do not) exclude other components, integersor steps. Throughout the description and claims of this specification, the singular encompasses the plural unless the context otherwise requires. In particular, where the indefinite article is used, the specification is to be understood as contemplating plurality as well as singularity, unless the context requires otherwise.
[0024] As used herein, the terms “A or B,” “at least one of A and / or B,” or “one or more of A and / or B” may include all possible combinations of A and B. For example, “A or B,” “at least one of A and B,” “at least one of A or B” may indicate all of (1) including at least one A, (2) including at least one B, or (3) including at least one A and at least one B.
[0025] As used herein, the terms “first” and “second” may modify various components regardless of importance and do not limit the components. These terms are only used to distinguish one component from another. For example, reference to a first component and a second component may indicate different components from each other regardless of the order or importance of the components.
[0026] It will be understood that when an element (e.g., a first element) is referred to as being (physically, operatively or communicatively) “coupled with / to,” or “connected with / to” another element (e.g., a second element), it can be coupled or connected with / to the other element directly or via a third element. In contrast, it will be understood that when an element (e.g., a first element) is referred to as being “directly coupled with / to” or “directly connected with / to” another element (e.g., a second element), no other element (e.g., a third element) intervenes between the element and the other element.
[0027] The terms as used herein are provided merely to describe some embodiments thereof, but not to limit the scope of other embodiments of the disclosure. It is to be understood that the singular forms “a,” “'an,” and “the” include plural references unless the context clearly dictates otherwise. All terms including technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiments of the disclosure belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0028] FIG. 1 illustrates an example communication system for tracking athlete performance. The communication system comprises a gateway unit 100 and at least one athlete tracking unit 200. Although three athlete tracking units are illustrated in FIG. 1, it will be appreciated that thepresent disclosure is not limited to any particular number of athlete tracking units. For example, in a training session or game, each athlete involved in the training session or game (or each athlete on a particular team in the game) may be equipped with an athlete tracking unit. For example, the communication system may comprise up to twenty athlete tracking units. Furthermore, although one gateway unit is illustrated in FIG. 1, it will be appreciated that the present disclosure is not limited to any particular number of gateway units. For example, the communication system may comprise a plurality of gateway units. This may allow for coverage of a wider area.
[0029] The gateway unit 100 may communicate with the at least one athlete tracking unit 200. For example, the gateway unit 100 and at least one athlete tracking unit 200 may communicate via a short-range and / or peer-to-peer wireless communication technology or local area network (LAN), for example using Bluetooth, Zigbee, or Wi-Fi Direct. According to some examples, the the gateway unit 100 and at least one athlete tracking unit 200 may communicate via a periodic advertising and response protocol , such as the Periodic Advertising with Response (PAwR) protocol of Bluetooth Core Specification 5.4.
[0030] Gateway unit 100 and at least one athlete tracking unit 200 may communicate so that gateway unit 100 can obtain athlete data from the at least one athlete tracking unit 200.
[0031] According to some examples, the system may further comprise a server 300. Gateway unit 100 may communicate with server 300. For example, gateway unit 100 may communicate with server 300 via one or more communication connections and / or wide area networks (WANs), such as cellular networks and / or the Internet.
[0032] Gateway unit 100 and server 300 may communicate so that server 300 can obtain athlete data from the at least one athlete tracking unit 200 via gateway unit 100.
[0033] According to some examples, the system may further comprise a terminal 400. Terminal 400 may communicate with server 300. For example, terminal 400 may communicate with server 300 via one or more communication connections and / or wide area networks (WANs), such as cellular networks and / or the Internet.
[0034] Terminal 400 and server 300 may communicate so that terminal 400 can obtain athlete data from the at least one athlete tracking unit 200 via gateway unit 100 and server 300. The athlete data may be obtained at regular intervals, such that a user of the terminal 400 (for example a coach) is provided with near real-time athlete data from each athlete tracking unit 200 in the communication system.
[0035] It will be appreciated that the communication technologies and networks mentioned above are merely examples, and that any suitable technologies for enabling communication between components of the communication system may be used.
[0036] It will be appreciated that the communication system may include other intermediate devices and network devices to enable communication between the components, such as one or more routers or switches, for example, which are known in the art and thus will not be described herein.
[0037] FIG. 2 illustrates an example method. The method may be performed by a (or each) gateway unit 100.
[0038] The method includes sending a request for athlete data, wherein the request includes a plurality of identifiers (IDs) identifying a plurality of athlete tracking units 200 from which athlete data is requested at block 101. That is, each identifier identifies an athlete tracking unit 200. In some examples, the identifiers may be referred to as device identifiers. In some examples, the method may include broadcasting the request for athlete data. However, it will be understood that the present disclosure is not limited to broadcasting the request, and that the request for athlete data may alternatively, or additionally, be multicast to a set of athlete tracking units 200, or directly transmitted to each of the set of athlete tracking units 200.
[0039] In some examples, the request may be sent (e.g. broadcast) according to a periodic interval. The interval may be, for example, between 20 ms and 10.24 seconds. Preferably, the interval may be between 20 ms and 100 ms. More preferably, the interval may be between 40 ms and 60 ms. For example, the interval may be 50 ms.
[0040] The periodic interval may comprise a plurality of separate response slots in which the athlete tracking units 200 may transmit athlete data to the gateway unit. For example, the plurality of response slots may divide the periodic interval into a plurality of equal time intervals, each time interval comprising a response slot (and, in some examples, a slot spacing to provide time between response slots). In some examples, each athlete tracking unit 200 sends athlete data in its own response slot, and each response slot contains athlete data from at most one athlete tracking unit 200. The response slots may be numbered in sequential order. For example the first response slot may have response slot number 0, the second response slot may have response slot number 1, and the nth response slot may have response slot number n-1. In some examples, the response slot numbers may be 8-bit unsigned integers.
[0041] In some examples, the periodic interval may comprise one or more subevents, and each subevent may comprise the plurality of response slots. The sequence of response slot numbers may be counted from the start of each subevent (i.e. for n response slots, each subevent may contain response slot numbers 0 to n-1).
[0042] For example, gateway unit 100 may periodically broadcast a request for athlete data. For example, the request may be broadcast every 50 ms.
[0043] For each athlete tracking unit 200 that the gateway unit 100 requests athlete data from, the request includes an identifier identifying the athlete tracking unit 200. The identifier may be an unsigned integer, for example a 32-bit unsigned integer.
[0044] In some examples, the identifier may be a unique ID assigned by a manufacturer of the athlete tracking unit 200. For example, the identifier may be a serial number.
[0045] In some examples, gateway unit 100 and athlete tracking units 200 may be configured with the identifiers. For example, each athlete tracking unit 200 in the communication system may be configured with an identifier and the gateway unit 100 may be configured with the identifiers of the athlete tracking units 200 in the communication system. For example, the identifier of each athlete tracking unit 200 may be configured by a manufacturer of the athlete tracking unit 200 (e.g. the identifier may be a serial number). For example, the gateway unit 100 may receive the identifiers of the athlete tracking units 200 in the communication system from server 300 so that the gateway unit 100 can include the identifiers in the request for athlete data. In some examples, a user of the communication system may directly configure the identifiers using terminal 400. In some examples, a user of the communication system may indirectly configure the identifiers using terminal 400, for example by selecting athlete tracking units 200 to communicate with gateway unit 100, and terminal 400 or server 300 (or an application thereof) may configure the athlete tracking units 200 and gateway unit 100 with the identifiers accordingly.
[0046] For example, an athlete tracking unit 200 receiving the broadcast request may determine whether the gateway unit 100 is requesting athlete data from the athlete tracking unit 200 based on the identifiers in the request. For example, the athlete tracking unit 200 may determine whether the identifier assigned to the athlete tracking unit 200 is included in the request. If it is determined by the athlete tracking unit 200 that the identifier assigned to the athlete tracking unit 200 is included in the request, the athlete tracking unit 200 may transmit athlete data to the gateway unit 100 in response to the request.
[0047] According to some examples, the method includes receiving, from the plurality of athlete tracking units, the athlete data in respective response slots at block 102. That is, each athlete tracking unit 200 sends athlete data in its own response slot, and each response slot contains athlete data from at most one athlete tracking unit 200. The response slot in which the athlete data for an athlete tracking unit 200 is received depends on the identifier of the athlete tracking unit 200.
[0048] In some examples, the response slots depend on the identifier by being based on the position of the identifiers in the request for athlete data broadcast by the gateway unit 100. For example, the broadcast request may list the identifiers of the athlete tracking units 200 from which athlete data is requested. Each athlete tracking unit 200 may respond in a response slot with a response slot number corresponding to (or depending on) the position of its identifier in the list of identifiers. For example, the position of the response slot in which the athlete data for an athlete tracking unit 200 is received among the response slots may be the same as the position of the identifier of the athlete tracking unit 200 among the plurality of identifiers in the request for athlete data. That is, the athlete tracking unit 200 with an identifier that is first in the list may respond in the first response slot, the athlete tracking unit 200 with an identifier that is second in the list may respond in the second response slot, and the athlete tracking unit 200 with an identifier that is nth in the list may respond in the nth response slot. Each athlete tracking unit 200 may determine the position of its identifier in the list and transmit the athlete data in the response slot in the same position in the sequence of response slots. However, it will be appreciated that the relationship between the identifier position and response slot position is not limited to this. For example, there may be an offset of one or more response slots such that, for example, the athlete tracking unit 200 with an identifier that is first in the list may respond in the second response slot, the athlete tracking unit 200 with an identifier that is second in the list may respond in the third response slot, and the athlete tracking unit 200 with an identifier that is nth in the list may respond in the (n+l)th response slot. For example, there may be an alternating sequence of free and used response slots, such that the athlete tracking unit 200 with an identifier that is first in the list may respond in the first response slot, the athlete tracking unit 200 with an identifier that is second in the list may respond in the third response slot, and the athlete tracking unit 200 with an identifier that is nth in the list may respond in the (2n-l)th response slot. Each athlete tracking unit 200 may determine the position of its identifier in the list, determine thecorresponding response slot according to a known rule or relationship, and transmit the athlete data in the corresponding response slot in the sequence of response slots.
[0049] An advantage of the above approach in which the the response slots depend on the position of the identifiers in the request for athlete data broadcast by the gateway unit 100 is that no communication is required between the gateway unit 100 and athlete tracking units 200 to assign response slots to the athlete tracking units 200 prior to the broadcast request for athlete data. The athlete tracking units 200 can determine the appropriate response slot to use based on their (already known) identifier by simply identifying the position of their identifier within the request for athlete data. For example, without using the above approach, each athlete tracking units 200 might have to establish a communication connection (for example a Bluetooth connection) with the gateway unit 100 and request a response slot number, and gateway unit 100 might have to assign an available response slot number and send a response to the request for the response slot number to the athlete tracking unit 200. In contrast, the above approach removes the need for a two-way connection for response slot negotiation between each athlete tracking unit 200 and gateway unit 100, thereby providing time and power savings.
[0050] Furthermore, when the identifier for each athlete tracking unit 200 is a unique ID (for example, a serial number assigned by a manufacturer), the above approach ensures that only one athlete tracking unit 200 attempts to send athlete data to the gateway unit 100 in each response slot without requiring setup communication between the gateway unit 100 and the athlete tracking units 200. This might be important, for example, if two teams, each using their own gateway unit 100, were playing or training in the same area.
[0051] In some examples, the athlete tracking units 200 may be configured to send the athlete data (if requested) in a sequence corresponding to values of the identifiers of the athlete tracking units 200. For example, the athlete tracking unit 200 having the identifier with the lowest numerical (or alphabetical) value may transmit its athlete data (if requested) first, and the athlete tracking unit 200 having the identifier with the highest numerical (or alphabetical) value may transmit its athlete data last. In the present disclosure alphabetical value refers to the position of the identifier if the identifiers were to be arranged in alphabetical order. That is, the identifier with the lowest alphabetical value may be the identifier that comes first alphabetically, and the identifier with the highest alphabetical value may be the identifier that comes last alphabetically (or vice versa).
[0052] For example, since the request for athlete data is broadcast periodically by the gateway unit 100, a sequence of numbered response slots can be defined in the time between broadcasts. The identifiers may be configured to correspond to the response slot numbers, such that the athlete tracking unit 200 can determine which response slot to use based on its identifier. In some examples, the identifiers may depend on or be derived from the response slot numbers. For example, if the identifiers contain numerical values, the numerical values of the identifiers may be related to the response slot numbers by a mathematical relationship or equation, such as N = kR or N = R + k, where N is the identifier, R is the response slot number, and k is an integer. In this case, the athlete tracking unit 200 can determine or derive which response slot to use based on its identifier. In some examples, an identifier may be considered to correspond to a response slot number if it has a numerical value that is numerically equal to the response slot number, even if the identifier and response slot number have different numbers of digits. For example, the response slot numbers might be 3 digit numbers, and the identifiers might be (or contain) 6 digit numbers, such that in response slot number 001, the athlete tracking unit with identifier 000001 may transmit athlete data (if requested); in response slot number 002, the athlete tracking unit 200 with identifier 000002 may transmit athlete data (if requested), and so on. In some examples, the identifier may be considered to correspond to a response slot number if it is identical to the response slot number. For example, in response slot number 001, the athlete tracking unit with identifier 001 may transmit athlete data (if requested); in response slot number 002, the athlete tracking unit 200 with identifier 002 may transmit athlete data (if requested); and, in general, in response slot number n, the athlete tracking unit 200 with identifier n may transmit athlete data (if requested).
[0053] An advantage of the above approach in which values of identifiers correspond to numbered response slots is that there is no need for the athlete tracking units 200 to contact the gateway unit 100 to negotiate a response slot. The athlete tracking units 200 can determine the appropriate response slot to use based on their (already known) identifier. For example, without using the above approach, each athlete tracking units 200 might have to establish a communication connection (for example a Bluetooth connection) with the gateway unit 100 and request a response slot number, and gateway unit 100 might have to assign an available response slot number and send a response to the request for the response slot number to the athlete tracking unit 200. In contrast, the above approach removes the need for a two-way connection for responseslot negotiation between each athlete tracking unit 200 and gateway unit 100, thereby providing time and power savings.
[0054] In some examples, the athlete data may be stored in the athlete tracking units 200 in athlete data pages. Each athlete data page may comprise a plurality of athlete data page parts. For example, each athlete data page may comprise 4096 bytes, divided into 20 athlete data page parts. For example, the maximum size for each athlete data page part may be 211 bytes. However, it will be appreciated that these are merely examples, and that any size of athlete data page and division into athlete data page parts may be used.
[0055] In some examples, the athlete tracking unit 200 may subdivide the athlete data page into athlete data page parts once the athlete data page is complete (i.e. once the athlete data page is completely filled with athlete data).
[0056] In some examples, the request for athlete data may include, for each identifier, information indicating at least one athlete data page. For example, each athlete data page may be assigned an athlete data page ID number and the request for athlete data may include, for each identifier, an athlete data page ID number corresponding to the athlete data page from which the gateway unit 100 is requesting athlete data. For example, the athlete data page ID number may comprise a 24-bit unsigned integer.
[0057] In some examples, the request for athlete data may include, for each athlete data page ID number, information indicating requested athlete data page parts. For example, the information may indicate any previously received athlete data page parts. That is, the information may indicate which athlete data page parts of the athlete data page have already been received by the gateway unit 100. For example, the information indicating previously received athlete data page parts of the athlete data page may be a bitmap. For example, each athlete data page may have a corresponding bitmap, and each athlete data page part of the athlete data page may be assigned a bit in the bitmap. Each bit of the bitmap may have the value 0 if the corresponding athlete data page part has not been received, and the value 1 if the corresponding athlete data page part has been received.
[0058] In some examples, in addition to athlete data, the gateway unit 100 may receive from each athlete tracking unit 200 telemetry data relating to the athlete tracking unit 200, such as a current battery level of the athlete tracking unit 200.
[0059] FIG. 3 illustrates an example method. The method may be performed by an (or each) athlete tracking unit 200.
[0060] According to some examples, the method includes acquiring, using at least one sensor, athlete data at block 201. The athlete data may include, for example, at least one of position (or position-based) data, physiological data, or any other data indicative of athlete performance, or useful for tracking athlete performance.
[0061] In some examples, the athlete data may include position-based data acquired using at least one positional sensor, as explained in more detail below. For example, the position-based data may be data indicating the position of the athlete tracking unit 200 (and thereby the athlete using athlete tracking unit 200) over time. For example, the athlete data may include location data acquired using a Global Position System (GPS) sensor or other Global Navigation Satellite System (GNSS) sensor.
[0062] In some examples, the athlete data may include physiological or biomedical data (i.e. of the athlete using athlete tracking unit 200) acquired using at least one physiological or biomedical sensor, as explained in more detail below.
[0063] In some examples, the athlete data may be stored in athlete data pages. Each athlete data page may comprise a plurality of athlete data page parts. For example, each athlete data page may comprise 4096 bytes, divided into 20 athlete data page parts.
[0064] In some examples, the athlete data may be stored in binary format.
[0065] In some examples, the athlete data may be stored in flash storage.
[0066] According to some examples, the method includes receiving, from a gateway unit 100 a request for athlete data at block 202. For example, the request may be received, from the gateway unit 100, at a periodic interval. It will be appreciated that block 202 corresponds to block 101 of FIG. 1 described above, and so the accompanying description is not repeated.
[0067] According to some examples, the method includes determining if the request for athlete data includes an identifier identifying the athlete tracking unit 200 at block 203.
[0068] According to some examples, if the request for data includes an identifier identifying the athlete tracking unit, the method includes transmitting the athlete data to the gateway unit 100 in a response slot that depends on the identifier identifying the athlete tracking unit 200 at block 204. It will be appreciated that block 204 corresponds to block 102 of FIG. 1 described above, and so the accompanying description is not repeated.
[0069] For example, as described above in relation to block 102, transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete trackingunit may comprise identifying the position of the identifier identifying the athlete tracking unit among a plurality of identifiers included in the request for athlete data; and transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier. In some examples, as described above in relation to block 102, transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier may comprise transmitting the athlete data to the gateway unit in a response slot that has the same position among the response slots as the position of the identifier among the identifiers.
[0070] For example, as described above in relation to block 102, transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit may comprise identifying a value of the identifier identifying the athlete tracking unit; and transmitting the athlete data to the gateway unit in a response slot that depends on the value of the identifier.
[0071] In some examples, the request for athlete data may include, for each identifier, information indicating at least one athlete data page. For example, each athlete data page may be assigned an athlete data page ID number and the request for athlete data may include, for each identifier, an athlete data page ID number corresponding to the athlete data page from which the gateway unit 100 is requesting athlete data. For example, the athlete data page ID number may comprise a 24-bit unsigned integer.
[0072] In some examples, the request for athlete data may include, for each athlete data page ID number, information indicating requested athlete data page parts. For example, the information may indicate any previously received athlete data page parts. That is, the information may indicate which athlete data page parts of the athlete data page have already been received by the gateway unit 100. For example, the information indicating previously received athlete data page parts of the athlete data page may be a bitmap. For example, each athlete data page may have a corresponding bitmap, and each athlete data page part of the athlete data page may be assigned a bit in the bitmap. Each bit of the bitmap may have the value 0 if the corresponding athlete data page part has not been received, and the value 1 if the corresponding athlete data page part has been received.
[0073] Based on the information indicating at least one athlete data page and / or athlete data page parts, the athlete tracking unit 200 may transmit the athlete data to the gateway unit 100. For example, if the information indicates an athlete data page, the athlete tracking unit 200 may transmit the athlete data page. In some examples, the athlete tracking unit 200 may only transmitan indicated athlete data page if the athlete data page is complete (i.e. wholly filled with athlete data). In some examples, if the information indicates athlete data page parts of an athlete data page, the athlete tracking unit 200 may transmit only the indicated athlete data page parts. In some examples, the athlete tracking unit 200 may only transmit an indicated athlete data page part if the athlete data page part is complete (i.e. filled with athlete data). For example, the athlete tracking unit 200 may transmit any completed athlete data page parts that the gateway unit 100 has not yet received, based on the information indicating previously received athlete data page parts. In the present disclosure, reference may be made to transmitting an athlete data page or athlete data page part for convenience, but it will be understood that transmitting an athlete data page or athlete data page part means transmitting the athlete data in the respective athlete data page or athlete data page part.
[0074] In some examples, if the communication system comprises more than one gateway unit, the athlete tracking unit 200 may receive a request for athlete data from more than one gateway unit. That is, the athlete tracking unit 200 may receive a plurality of requests for athlete data from different gateway units, each request including the identifier of the athlete tracking unit 200 In this case, the athlete tracking unit 200 may determine which gateway unit to transmit the athlete data to. For example, the athlete tracking unit 200 may determine which request for athlete data has the highest received signal strength, and may transmit the athlete data to the corresponding gateway unit (i.e. the gateway unit that broadcast the request with the highest received signal strength).
[0075] An advantage of the above approach, in which the gateway unit can request specific athlete data (e.g. an athlete data pages or athlete data page parts), is that any missed data (for example data lost in transmission, or acquired when an athlete tracking unit is not in range of a gateway unit) can be requested by the gateway unit. A further advantage of the example in which the gateway unit indicates which athlete data it has already received, is that reliability is provided without the gateway unit needing to determine if there is any missing data and without the athlete tracking unit having to repeatedly transmit all of its stored athlete data.
[0076] In some examples, in addition to athlete data, the athlete tracking unit 200 may transmit to the gateway unit 100 telemetry data relating to the athlete tracking unit 200, such as a current battery level of the athlete tracking unit 200.
[0077] FIG. 4 illustrates an example method for a system comprising gateway unit 100, athlete tracking unit 200, and server 300. Although one athlete tracking unit 200 is illustrated, it will beappreciated that the system may comprise a plurality of athlete tracking units. Although one gateway unit 100 is illustrated, it will be appreciated that the system may comprise a plurality of gateway units.
[0078] According to some examples, the method includes acquiring athlete data at block 301. For example, the athlete tracking unit 200 may acquire athlete data. It will be appreciated that block 301 may be the same as block 201 described above, and so the accompanying description is not repeated.
[0079] According to some examples, the method includes broadcasting a request for athlete data at block 302. For example, the gateway unit 100 may broadcast a request for athlete data, and the request for athlete data may be received by the athlete tracking unit 200. It will be appreciated that block 302 may be the same as block 101 and block 202 described above, and so the accompanying description is not repeated.
[0080] According to some examples, the method includes determining that the request for athlete data includes an identifier of athlete tracking unit 200 at block 303. For example, athlete tracking unit 200 may determine that request for athlete data includes an identifier of athlete tracking unit 200. It will be appreciated that block 303 may be the same as block 203 described above, and so the accompanying description is not repeated.
[0081] According to some examples, the method includes receiving athlete data at block 304. For example, the athlete tracking unit 200 may transmit the athlete data to the gateway unit in a response slot that depends on the identifier, and gateway unit 100 may receive the athlete data from athlete tracking unit 200 in the response slot that depends on the identifier. It will be appreciated that block 304 may be the same as block 102 and block 204 described above, and so the accompanying description is not repeated.
[0082] According to some examples, the method includes transmitting received athlete data at block 305. For example, the gateway unit 100 may transmit the received athlete data to server 300. For example, gateway unit 100 may transmit the received athlete data to server 300 in response to receiving athlete data from the athlete tracking unit 200 in block 304. For example, gateway unit 100 may transmit the received athlete data from the at least one athlete tracking units 200 to server 300 once the final response slot following a periodic broadcast has passed, or once the highest numbered response slot for which the gateway unit 100 requested athlete data from the corresponding athlete tracking unit 200 has passed. Alternatively, or additionally, in some examples gateway unit 100 may periodically transmit received athlete data to server 300.Alternatively, or additionally, in some examples, the gateway unit 100 may transmit each athlete data page or athlete data page part when the athlete data page or athlete data page part, respectively, is complete.
[0083] FIG. 5 illustrates an example method for a system comprising gateway unit 100, athlete tracking unit 200, and server 300. Although one athlete tracking unit 200 is illustrated, it will be appreciated that the system may comprise a plurality of athlete tracking units. Although one gateway unit 100 is illustrated, it will be appreciated that the system may comprise a plurality of gateway units
[0084] According to some examples, the method includes receiving information identifying completed athlete data pages for at least one athlete tracking unit 200 at block 401. For example, the gateway unit 100 illustrated in FIG. 5 may receive information identifying completed athlete data pages for at least one athlete tracking unit 200 from server 300.
[0085] In some examples, server 300 may transmit information identifying completed athlete data pages for at least one athlete tracking unit 200 to gateway unit 100 in response to receiving athlete data from gateway unit 100 (for example, in response to receiving athlete data from gateway unit 100 in block 305 of FIG. 4). The information identifying completed athlete data pages may be transmitted for all athlete tracking units 200, or for each athlete tracking unit 200 for which athlete data was received in the most recent transmission of athlete data from gateway unit 100. Alternatively, or additionally, server 300 may periodically transmit information identifying completed athlete data pages to gateway unit 100.
[0086] In some examples, the information identifying completed athlete data pages for at least one athlete tracking unit 200 may comprise a bitmap. For example, each athlete tracking unit 200 may have a corresponding bitmap, and each athlete data page of the athlete tracking unit 200 may be assigned a bit in the bitmap. Each bit of the bitmap may have the value 0 if the corresponding athlete data page is not complete at the server 300, and the value 1 if the corresponding athlete data page is complete at the server 300.
[0087] According to some examples, the method includes identifying athlete data pages not complete at server 300 at block 402 based on the information identifying completed athlete data pages. For example, the gateway unit 100 illustrated in FIG. 5 may identify at least one athlete data page not complete at server 300 based on the information identifying completed athlete data pages.
[0088] According to some examples, the method includes requesting the identified athlete data pages at block 403. For example, the gateway unit 100 illustrated in FIG. 5 may request the identified at least one athlete data page (i.e. the incomplete athlete data pages) from athlete tracking unit 200.
[0089] In some examples, the identified at least one athlete data page may be requested in the next periodic broadcast request for athlete data (e.g. block 101 of FIG. 2, block 202 of FIG. 3, or block 302 of FIG. 4). For example, requesting the identified at least one athlete data page from the athlete tracking unit 200 may comprise including, in the next periodic broadcast request, information indicating the identified at least one athlete data page, or indicating all of the athlete data page parts of the identified at least one athlete data page. For example, requesting the identified at least one athlete data page from the athlete tracking unit 200 may comprise including, in the next periodic broadcast request, information indicating all the athlete data page parts of the identified at least one athlete data page have not been received at gateway unit 100.
[0090] Alternatively, or additionally, the identified at least one athlete data page may be requested in a direct request transmitted from the gateway unit 100 to the athlete tracking unit 200. For example, the gateway unit 100 may establish a direct connection (e.g. Bluetooth Low Energy connection) with the athlete tracking unit 200 and may request the identified at least one athlete data page from the athlete tracking unit 200. Once the identified at least one athlete data page has been received by the gateway unit 100 from the athlete tracking unit 200, the direct connection may be terminated (for example, by the gateway unit 100).
[0091] According to some examples, the method includes receiving identified athlete data pages at block 404. For example, the gateway unit 100 illustrated in FIG. 5 may receive, from athlete tracking unit 200, the at least one identified athlete data page.
[0092] In some examples, the at least one identified athlete data page may be received in a response slot corresponding to the identifier of the athlete tracking unit 200 (e.g. block 102 of FIG. 2, block 204 of FIG. 3, or block 304 of FIG. 4).
[0093] According to some examples, the method includes transmitting received athlete data pages at block 405. For example, the gateway unit 100 illustrated in FIG. 5 may transmit the at least one received athlete data page to server 300.
[0094] In some examples, the received athlete data pages may be transmitted with the other athlete data received in block 305 of FIG. 4. For example, gateway unit 100 may transmit the received athlete data (including the received athlete data pages) from the at least one athletetracking units 200 to server 300 once the final response slot following a periodic broadcast has passed, or once the highest numbered response slot for which the gateway unit 100 requested athlete data from the corresponding athlete tracking unit 200 has passed. Alternatively, or additionally, in some examples gateway unit 100 may periodically transmit received athlete data (including the received athlete data pages) to server 300.
[0095] An advantage of the above approach, in which the server can request specific athlete data (e.g. an athlete data pages), is that any missed data (for example data lost in transmission, or acquired when an athlete tracking unit is not in range of a gateway unit) can be requested by the gateway unit. A further advantage of the example in which the server indicates which athlete data pages are complete, is that reliability is provided without the server needing to determine if there is any missing data.
[0096] In the above examples, the gateway unit 100 and athlete tracking units 200 may communicate using Bluetooth technology. For example, the gateway unit 100 and athlete tracking units 200 may communicate using the Periodic Advertising with Response (PAwR) protocol of Bluetooth Core Specification 5.4 (or later versions).
[0097] In this case, the gateway unit 100 acts as the advertising device, using the periodic advertising subevents of PAwR for the periodic broadcasting of requests for athlete data to the athlete tracking units 200. The periodic advertising subevent response slots are used as the response slots for the athlete tracking units 200 to transmit the athlete data to the gateway unit 100.
[0098] FIG. 6 illustrates an example gateway unit 100 according to some examples. Gateway unit 100 may be configured to perform any of the methods or method blocks described above as being performed by gateway unit 100.
[0099] Gateway unit 100 may comprise a processor 601 and a communication module 602. In some examples, gateway unit 100 may further comprise a memory 603.
[0100] Processor 601 may be configured to control gateway unit 100 (including communication module 602) to perform any of the methods or method blocks described above as being performed by gateway unit 100.
[0101] Communication module 602 may be configured to communicate with other devices by transmitting and receiving various signals. For example, communication module 602 may be configured to communicate with at least one athlete tracking unit 200 and server 300, under thecontrol of processor 601, to perform any of the methods or method blocks described above as being performed by gateway unit 100.
[0102] Communication module 602 may comprise a plurality of communication units configured to transmit and receive signals using different communication technologies or protocols. For example, communication module 602 may comprise a communication unit configured to communicate with at least one athlete tracking unit 200 via a short-range and / or peer-to-peer wireless communication technology or local area network (LAN), for example using Bluetooth, Zigbee, or Wi-Fi Direct. In some examples, the communication unit configured to communicate with at least one athlete tracking unit 200 may not be highly directional, such that all nearby athlete tracking units 200 are able to communicate with gateway unit 100 regardless of direction. For example, communication module 602 may comprise a communication unit configured to communicate with server 300 via one or more communication connections and / or wide area networks (WANs), such as cellular networks and / or the Internet.
[0103] Memory 603 may store instructions that, when executed by processor 601, cause gateway unit 100 to perform any of the methods or method blocks described above as being performed by gateway unit 100. Memory 603 may also be configured to store, under control of processor 601, data to allow gateway unit 100 to perform any of the methods or method blocks described above as being performed by gateway unit 100. For example, memory 603 may be configured to store athlete data. Memory 603 may be configured to store athlete data in at least one athlete data page, and each athlete data page may comprise at least one athlete data page part, as described above.
[0104] FIG. 7 illustrates an example athlete tracking unit 200 according to some examples.
[0105] In some examples, athlete tracking unit 200 may be a portable or wearable device configured to be carried or worn by an athlete during athletic activities.
[0106] Athlete tracking unit 200 may comprise a processor 701, a communication module 702, a memory 703, and a sensor module 704.
[0107] Processor 701 may be configured to control athlete tracking unit 200 (including communication module 702, memory 703 and sensor module 704) to perform any of the methods or method blocks described above as being performed by athlete tracking unit 200.
[0108] Communication module 702 may be configured to communicate with other devices by transmitting and receiving various signals. For example, communication module 702 may be configured to communicate with gateway unit 100, under the control of processor 701 , to performany of the methods or method blocks described above as being performed by athlete tracking unit200.
[0109] Communication module 702 may comprise a plurality of communication units configured to transmit and receive signals using different communication technologies or protocols. For example, communication module 702 may comprise a communication unit configured to communicate with gateway unit 100 via a short-range and / or peer-to-peer wireless communication technology or local area network (LAN), for example using Bluetooth, Zigbee, or Wi-Fi Direct.
[0110] Memory 703 may store instructions that, when executed by processor 701, cause athlete tracking unit 200 to perform any of the methods or method blocks described above as being performed by athlete tracking unit 200. Memory 703 may also be configured to store, under control of processor 701, data to allow athlete tracking unit 200 to perform any of the methods or method blocks described above as being performed by athlete tracking unit 200. For example, athlete memory 703 may be configured to store athlete data. Memory 703 may be configured to store athlete data in at least one athlete data page, and each athlete data page may comprise at least one athlete data page part, as described above.
[0111] Sensor module 704 may be configured to acquire athlete data. For example, sensor module 704 may be configured to acquire athlete data, under control of processor 701, to perform any of the methods or method blocks described above as being performed by athlete tracking unit 200. Athlete data acquired by sensor module 704 may include, for example, at least one of position (or position-based) data, biomedical and / or physiological data, or any other data indicative of athlete performance, or useful for tracking athlete performance.
[0112] Sensor module 704 may comprise at least one positional sensor. The at least one positional sensor may be configured to acquire position-based data indicating the position of the athlete tracking unit 200 (and thereby the athlete using athlete tracking unit 200) over time. At least one positional sensor may be a location sensor which may be configured to determine a location of the athlete tracking unit 200 (and thereby a location of a user of the athlete tracking unit 200). The location sensor may be configured to determine a speed or acceleration of the athlete tracking unit 200 (and thereby a location of a user of the athlete tracking unit 200).
[0113] The at least one positional sensor may be configured to receive signals from, and determine location relative to, one or more (e.g. three, four or more) external beacons or transmitters. The external beacons or transmitters may be, comprise or be comprised in satellitenavigation system transmitters, such as constellation satellite transmitters such as GPS, GLONASS, Gallileo, Beidou-1 / 2, COMPASS, or similar constellation satellite transmitters.
[0114] The external beacons or transmitters may be, comprise or be comprised in one or more (e.g. two, three, four or more), local position beacons, which may be positioned spaced apart in or around an area of use, e.g. around a periphery or outer perimeter of an area of use. The beacons or transmitters may be located at known positions, e.g. at the corners of a sports field or pitch. At least some of the beacons or transmitters may be terrestrial and / or may not be located on satellites.
[0115] The at least one positional sensor may be configured to receive packets from the external beacons or transmitters. In some examples, the positional sensor may determine the location of the athlete tracking unit 200 from the time stamped packets. The packets may be time stamped. The time stamp may represent a transmission time of the packet from the respective beacon or transmitter. The location of the athlete tracking unit 200 may then be stored as part of the athlete data. In some examples, the location of the athlete tracking unit 200 may not be determined at the athlete tracking unit 200. For example, the packets may be stored as part of the athlete data. For example, the beacon / transmitter packets may be transmitted to the gateway unit 100 as part of the athlete data and the gateway unit 100 may determined the location of the athlete tracking unit 200 based on the packets. For example, the beacon / transmitter packets may be transmitted to the server 300 (via gateway unit 100) as part of the athlete data and the server 300 may determine the location of the athlete tracking unit 200 based on the packets.
[0116] The packets may comprise an identifier and / or location of the beacon or transmitter that sent the packet. The processor 701 or sensor module 704 may be pre-provided with locations of the beacons or transmitters and may be configured to determine the location of the beacon or transmitter that sent a packet from the identifier received in the packet and the pre-provided position of the respective beacon or transmitter.
[0117] The position determination sensors may be configured to determine a location of the sensors, e.g. by triangulation or other means. The processor 701 or sensor module 704 may be configured to calculate distances between the external beacons or transmitters and the athlete tracking unit 200. The processor 701 or sensor module 704 may be configured to determine a difference in time, e.g. a difference in time between the transmission time of the packet from the respective beacon or transmitter and a receiving time of the respective packet by the respective positional sensor. The processor 701 or sensor module 704 may be configured to determine alocation of the control unit at least partly based on the determined difference in time for one or more or each of the beacons or transmitters and / or the location of the respective beacon(s) or transmitter(s).
[0118] The control unit may be configured to determine a location of the control unit at least partly based on the time of flight, phase, phase shift and / or Doppler shift of the signals received from the external beacons or transmitters, or any combination thereof.
[0119] The beacons or transmitters may be configured to transmit the packets on "ultra wideband" a set of frequencies > 2.6GHZ.
[0120] The processor 701 or sensor module 704 may be configured to determine the location of the at least one positional sensor using a combination of satellite navigation and signals received from the external beacons or transmitters.
[0121] The at least one positional sensor may comprise a satellite navigation system sensor, such as a GPS, GLONASS, Gallileo, Beidou-1 / 2, COMPASS, or other GNSS sensor. The positional sensor may comprise or be connected or coupled to a high gain directional antenna.
[0122] The athlete tracking unit 200 may be configured such that the satellite navigation system antenna may be located at the top of the athlete tracking unit 200, in use. The garment may be configured such that the high gain directional antenna points to the zenith when the athlete tracking unit 200 is carried or worn by the user.
[0123] The processor 701 or sensor module 704 may be configured to communicate with and / or receive positional data, e.g. data indicative of or useable to determine a position of the control module and / or garment relative to the at least one external reference satellite navigation system sensor, from the at least one external satellite navigation system sensor. The processor 701 or sensor module 704 may be configured to use Real Time Kinematics (RTK) in the determination of the position of the garment or control module, e.g. based on the data from one or more or each of the external beacons or transmitters and / or the at least one external satellite navigation system sensor and / or the satellite navigational system sensor. This can increase the positional accuracy over use of a satellite navigation system sensor alone, e.g. it can improve accuracy to the centimetre level.
[0124] In some examples, the at least one positional sensor may comprise a motion capture sensor.
[0125] The motion capture sensor(s) may comprise a 3 -axis accelerometer, a gyroscope and / or a magnetometer.
[0126] The motion capture sensor may be configured to use the inter integrated circuit (I2C) communication system to communicate with the processor 701 or sensor module 704. The data from the motion capture sensor to the processor 701 or sensor module 704 may be transferred in a quaternion format.
[0127] A software system (for example at athlete tracking unit 200, gateway unit 100, server 300, or terminal 400) is configured to use the data (e.g. quaternion output) from the motion capture sensor to produce a 3D model of the body position of the user of athlete tracking unit 200.
[0128] In some examples, the at least one positional sensor may comprise an altitude sensor. The altitude sensor may output elevation or elevation gained or lost over time. For example, the altitude sensor may be a barometer.
[0129] In some examples, sensor module 704 may comprise at least one biomedical sensor or physiological sensor. The at least one biomedical sensor or physiological sensor may be configured to acquire physiological or biomedical data of the athlete over time using athlete tracking unit 200. The at least one biomedical sensor or physiological sensor may comprise an electrocardiogram (ECG) sensor, a photoplethysmogram (PPG) sensor, a hydration sensor, a body temperature sensor, a heart rate sensor, a blood oxygen sensor, a muscle contraction sensor, a metabolite sensor, or any other sensor suitable for obtaining biomedical and / or physiological data of the athlete using the athlete tracking unit 200.
[0130] FIG. 8 illustrates an example server 300 according to some examples. Server 300 may be configured to perform any of the methods or method blocks described above as being performed by server 300. Although FIG. 8 illustrates a single server, it will be appreciated that server 300 may comprise a plurality of servers or devices that cooperate to enable the described operations of server 300.
[0131] Server 300 may comprise a processor 801 and a communication module 802. In some examples, server 300 may further comprise a memory 803.
[0132] Processor 801 may be configured to control server 300 (including communication module 802) to perform any of the methods or method blocks described above as being performed by server 300. 1
[0133] Communication module 802 may be configured to communicate with other devices by transmitting and receiving various signals. For example, communication module 802 may be configured to communicate with at least one gateway unit 100 and at least one terminal 400, under the control of processor 801, to perform any of the methods or method blocks described above as being performed by server 300.
[0134] Communication module 802 may comprise a plurality of communication units configured to transmit and receive signals using different communication technologies or protocols. For example, communication module 802 may comprise a communication unit configured to communicate with at least one gateway unit 100 and / or at least one terminal 400 via one or more communication connections and / or wide area networks (WANs), such as cellular networks and / or the Internet.
[0135] Memory 803 may store instructions that, when executed by processor 801, cause server 300 to perform any of the methods or method blocks described above as being performed by server 300. Memory 803 may also be configured to store, under control of processor 801, data to allow server 300 to perform any of the methods or method blocks described above as being performed by server 300. For example, memory 803 may be configured to store athlete data. Memory 803 may be configured to store athlete data in at least one athlete data page, and each athlete data page may comprise at least one athlete data page part, as described above.
[0136] In some examples, server 300 may comprise an analytics system, which may comprise a web server coupled to a backend database.
[0137] The analytics system may obtain the athlete data from athlete tracking units 200 via gateway units 100, may generate athlete analytics data based on the athlete data, and / or may provide user interfaces to at least one terminal 400 (or user device) for communicating the athlete analytics data over a communication network(s), optionally leveraging via application programming interfaces (APIs), for example. Athlete analytics data may comprise, for example, positional maps such as heatmaps, path maps and average positions when the athlete data includes positional data.
[0138] The analytics system may comprise applications that can include computer or machine executable instructions that, when executed by the processor(s), cause the game analytics system to perform actions, such as to transmit, receive, or otherwise process network messages and requests, for example, and to perform other actions described and illustratedbelow. The application(s) can be implemented as components of other applications, operating system extensions, and / or plugins, for example.
[0139] Further, the application(s) may be operative in a cloud-based computing environment with access provided via a software-as-a-service (SaaS) model using the communication network(s). The application(s) can be executed within or as virtual machine(s) or virtual server(s) that may be managed in a cloud-based computing environment. Also, the application(s), and even the game analytics system itself, may be in virtual server(s) running in a cloud-based computing environment rather than being tied to specific physical network computing devices. Also, the application(s) may be running in virtual machines (VMs) executing on the game analytics system and managed by a hypervisor.
[0140] In some examples, the analytics system may include a web application, a data ingestion module, and an analytics module. The data ingestion module may be configured to obtain athlete data, respectively. The data ingestion module can store the obtained data in a database of the analytics system, which can be a relational database (e.g., a structured query language (SQL) database), although other types of databases can also be used in other examples.
[0141] With the ingested data, the analytics module may be configured to correlate and otherwise process the data to generate athlete analytics data.
[0142] The web application in this example includes graphical user interface (GUIs) for reporting or providing athlete analytics data (for example to terminal 400). The web application also can provide an interface for configuring (i.e. setting up and managing) gateway units 100 and athlete tracking units 200.
[0143] The communication interface of the analytics analytics system operatively couples and communicates between the game analytics system, athlete tracking units 200 (via gateway units 100), and terminals 400 which are coupled together at least in part by a communication network(s) in this example, although systems with other types or number of connections or configurations to other devices or elements can also be used.
[0144] The communication network(s) can include wide area network(s) (WAN(s)) and / or local area network(s) (LAN(s)), for example, and can use TCP / IP over Ethernet, although other types or numbers of protocols or communication networks can be used for short and / or long range communication. The communication network(s) can employ anysuitable interface mechanisms and network communication technologies including, for example, Ethernet-based Packet Data Networks (PDNs).
[0145] Each of the terminals 400 (or user devices) may include any type of computing device that can exchange network data, such as mobile, desktop, laptop, or tablet computing devices, virtual machines (including cloud-based computers), or the like. Each of the terminals 400 may include a processor, memory, and a communication interface (or module).
[0146] Each of the terminals 400 may run services and / or interface applications, such as standard web browsers or the standalone applications, which may provide an interface to communicate with the analytics system. Each of the user devices may further include a display device, such as a display screen or touchscreen, and / or an input device, such as a touchscreen or keyboard and mouse, for example.
[0147] An apparatus (for example gateway unit 100, athlete tracking unit 200, server 300, or terminal 400) comprising processing circuitry 901 configured to perform any of, or any combination of, the methods disclosed herein is illustrated in FIG. 9.
[0148] The apparatus 900 comprises processing circuitry 901 (for example, processor 601, processor 701, or processor 801.
[0149] The processing circuitry 901 may include a main processor (e.g., a central processing unit (CPU) or an application processor (AP)), and optionally an auxiliary processor (e.g., a graphics processing unit (GPU), a neural processing unit (NPU) that is operable independently from, or in conjunction with, the main processor. For example, when the processing circuity includes the main processor and the auxiliary processor, the auxiliary processor may be adapted to consume less power than the main processor, or to be specific to a specified function. The auxiliary processor may be implemented as separate from, or as part of the main processor. For example, the processing circuitry 901 (for example, the auxiliary processor) (or e.g., a neural processing unit thereof) may include a hardware structure configured to perform machine learning. Such learning may be performed by the processing circuitry 901, or performed via a separate server with which the processing circuitry 901 is configured to communicate.
[0150] It may be that a trained machine learning algorithm is stored in memory coupled to the processing circuitry 901 of the apparatus 900 . It may be that the apparatus 900 further comprises the memory. Alternatively, the memory may be remote from but communicatively coupled to the apparatus 900, or the processing circuity thereof. It may be that the processing circuitry 901 isconfigured to execute the trained machine learning algorithm. Alternatively, it may be that the processing circuitry 901 is configured to communicate with a server (such a centralized server) having the trained machine learning model stored and / or executable thereon, such that inputs to the trained algorithm are sent from the processing circuitry 901 to the server, and outputs from the trained algorithm executed on the inputs are sent from the server to the processing circuitry 901.
[0151] The various methods and operations performed by the apparatus (e.g. apparatus 900) disclosed herein can be implemented in various forms, or combinations of hardware, software, firmware, and / or special purpose processors. For example, it may be that the methods disclosed herein may be implemented by processing circuitry (e.g. processing circuitry 901). It may be that the processing circuitry described herein may be general purpose processing circuitry (e.g., at least one processor or microprocessor) configured to implement software, gate level logic such as a field-programmable gate array (FPGA), a purpose-built semiconductor such as an application-specific integrated circuit (ASIC), integrated circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), logic gates, registers, semiconductor devices and the like.
[0152] Configuration of the processing circuitry to perform a specified function may be entirely in hardware, entirely in software or using a combination of hardware modification and software execution.
[0153] Instructions (such as program instructions) may be used to configure logic gates of general purpose or special-purpose processing circuitry to perform a processing function. For example, the methods disclosed herein may be implemented as machine (or computer) readable instructions 1001 as illustrated in FIG. 10.
[0154] The aforementioned instructions may be provided on at least one machine (or computer, or processor) readable medium. For example, as illustrated in FIG. 11, machine readable instructions 1101 (e.g. machine readable instructions 1001) may be provided, or stored, on machine (or computer, or processor) readable medium 1100.
[0155] For example, at least one machine (or computer) readable medium may comprise instructions which, when executed, implement the methods disclosed herein. For example, the at least one machine (or computer or processor) readable medium may comprise instructions which, when executed by processing circuitry (e.g. processing circuitry 901), cause the processing circuitry to implement the methods disclosed herein.
[0156] It may be that the medium is a transitory, e.g., transmission medium, or non-transitory, e.g., storage medium.
[0157] The aforementioned machine readable medium may be any suitable medium for storing digital information, such as a hard drive, a server, a flash memory, and / or random-access memory (RAM), a compact disc read only memory (CD-ROM), or a combination of memories.
[0158] It may be that an apparatus (e.g. apparatus 900) disclosed herein comprises processing circuitry (e.g. processing circuitry 901) and memory coupled to the processing circuitry. It may be that the memory stores the machine readable instructions (e.g. machine readable instructions 1101) disclosed herein.
[0159] Features, integers, characteristics or groups described in conjunction with a particular aspect, embodiment or example of the invention are to be understood to be applicable to any other aspect, embodiment or example described herein unless incompatible therewith. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and / or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and / or steps are mutually exclusive. The invention is not restricted to the details of any foregoing embodiments. The invention extends to any novel one, or any novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combination, of the steps of any method or process so disclosed. In particular, any dependent claims may be combined with any of the independent claims and any of the other dependent claims.
[0160] Each feature disclosed in this specification (including any accompanying claims, abstract and drawings), may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features. The invention is not restricted to the details of any foregoing embodiments. The invention extends to any novel one, or any novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combination, of the steps of any method or process so disclosed. The claims should not be construed to cover merely the foregoing embodiments, but also any embodiments which fall within the scope of the claims.
[0161] The disclosure also extends to the following examples.
[0162] In a first example, there is provided a method performed by a gateway unit in a communication system for tracking athlete performance, the method comprising: broadcasting a request for athlete data, wherein the request includes a plurality of identifiers identifying a plurality of athlete tracking units from which athlete data is requested; and receiving, from the plurality of athlete tracking units, the athlete data in respective response slots; wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the identifier of the athlete tracking unit.
[0163] In a second example, there is provided the method of the first example, wherein the request for athlete data is broadcast according to a periodic interval.
[0164] In a third example, there is provided the method of the first or second example, wherein the response slot for the athlete tracking unit is not agreed between the gateway unit and athlete tracking unit prior to the gateway unit broadcasting the request for athlete data.
[0165] In a fourth example, there is provided the method of any one of the first to third examples, wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the position of the identifier of the athlete tracking unit among the plurality of identifiers in the request for athlete data.
[0166] In a fifth example, there is provided the method of the fourth example, wherein the position of the response slot in which the athlete data for an athlete tracking unit is received among the response slots is the same as the position of the identifier of the athlete tracking unit among the plurality of identifiers in the request for athlete data.
[0167] In a sixth example, there is provided the method of any one of the first to third examples, wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the value of the identifier of the athlete tracking unit.
[0168] In a seventh example, there is provided the method of any one of the first to sixth examples, wherein the request for athlete data comprises, for each athlete tracking unit, information indicating at least one athlete data page.
[0169] In an eighth example, there is provided the method of the seventh example, wherein the request for athlete data further comprises information indicating at least one athlete data page part of the indicated at least one athlete data page.
[0170] In a ninth example, there is provided the method of the eighth example, wherein the information indicating at least one athlete data page part of the at least one athlete data pagecomprises information identifying previously received athlete data page parts of the indicated at least one athlete data page.
[0171] In a tenth example, there is provided the method of the ninth example, wherein the information identifying previously received athlete data page parts comprises a bitmap.
[0172] In an eleventh example, there is provided the method of any one of the first to tenth examples, further comprising transmitting, to a server, the received athlete data.
[0173] In a twelfth example, there is provided the method of the eleventh example, further comprising: receiving, from the server, information identifying completed athlete data pages previously received by the server; wherein transmitting the received athlete data to the server comprises transmitting at least one athlete data page based on the information identifying completed athlete data pages previously received by the server.
[0174] In a thirteenth example, there is provided the method of the twelfth example, wherein transmitting at least one athlete data page based on the information comprises: identifying, based on the information, at least one athlete data page that was not previously received by the server; requesting the identified at least one athlete data page from the corresponding athlete tracking unit; receiving the identified at least one athlete data page from the corresponding athlete tracking unit; and transmitting the identified at least one athlete data page to the server.
[0175] In a fourteenth example, there is provided the method of the twelfth or thirteenth example, wherein the information identifying completed athlete data pages comprises a bitmap.
[0176] In a fifteenth example, there is provided a gateway unit configured to perform the method of any one of the first to fourteenth examples.
[0177] In a sixteenth example, there is provided a method performed by an athlete tracking unit in a communication system for tracking athlete performance, the method comprising: acquiring, using at least one sensor, athlete data; receiving, from a gateway unit, a request for athlete data; determining if the request for athlete data includes an identifier identifying the athlete tracking unit; and if the request for data includes an identifier identifying the athlete tracking unit, transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit.
[0178] In a seventeenth example, there is provided the method of the sixteenth example, wherein the request for athlete data is received according to a periodic interval.
[0179] In an eighteenth example, there is provided the method of the sixteenth or seventeenth examples, wherein the response slot for the athlete tracking unit is not agreed between the gateway unit and athlete tracking unit prior to the athlete tracking unit receiving the request for athlete data.
[0180] In a nineteenth example, there is provided the method of any one of the sixteenth to eighteenth examples, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit comprises: identifying the position of the identifier identifying the athlete tracking unit among a plurality of identifiers included in the request for athlete data; and transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier.
[0181] In a twentieth example, there is provided the method of the nineteenth example, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier comprises transmitting the athlete data to the gateway unit in a response slot that has the same position among the response slots as the position of the identifier among the identifiers.
[0182] In a twenty-first example, there is provided the method of any one of the sixteenth to eighteenth examples, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit comprises: identifying a value of the identifier identifying the athlete tracking unit; and transmitting the athlete data to the gateway unit in a response slot that depends on the value of the identifier.
[0183] In a twenty-second example, there is provided the method of any one of the sixteenth to twenty-first examples, further comprising storing the acquired athlete data in at least one athlete data page, wherein the request for athlete data further comprises information indicating at least one athlete data page; and wherein transmitting the athlete data to the gateway unit comprises: transmitting the athlete data stored in the indicated at least one athlete data page to the gateway unit.
[0184] In a twenty-third example, there is provided the method of the twenty-second example, wherein each of the at least one athlete data pages comprises at least one athlete data page part, wherein the request for athlete data further comprises information indicating at least one athlete data page part of the indicated at least one athlete data page; and wherein transmitting the athlete data to the gateway unit comprises: transmitting the athlete data stored in the indicated at least one athlete data page part to the gateway unit.
[0185] In a twenty-fourth example, there is provided the method of the twenty-third example, wherein the information indicating at least one athlete data page part of the indicated at least one athlete data page comprises information identifying which athlete data page parts of the indicated at least one athlete data page have previously been received by the gateway unit; and wherein transmitting the athlete data to the gateway unit comprises: identifying, based on the information, at least one athlete data page part stored in the athlete tracking unit that was not previously received by the gateway unit; and transmitting the athlete data stored in the identified at least one athlete data page part to the gateway unit.
[0186] In a twenty-fifth example, there is provided an athlete tracking unit configured to perform the method of any one of the sixteenth to twenty-fourth examples.
[0187] In a twenty-sixth example, there is provided a communication system comprising the gateway unit of the fifteenth example and the athlete tracking unit of the twenty-fifth example.
[0188] In a twenty-seventh example, there is provided a computer program comprising instructions which, when the program is executed by a computer or processor, cause the computer or processor to carry out a method according to any one of the first to fourteenth examples or sixteenth to twenty-fourth examples.
[0189] In a twenty-eighth example, there is provided a machine or computer-readable data medium having stored thereon a computer program according to the twenty-seventh example.
Claims
CLAIMSWhat is claimed is:
1. A method performed by a gateway unit in a communication system for tracking athlete performance, the method comprising: broadcasting a request for athlete data, wherein the request includes a plurality of identifiers identifying a plurality of athlete tracking units from which athlete data is requested; and receiving, from the plurality of athlete tracking units, the athlete data in respective response slots; wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the identifier of the athlete tracking unit.
2. The method of claim 1, wherein the request for athlete data is broadcast according to a periodic interval.
3. The method of claim 1 or 2, wherein the response slot for the athlete tracking unit is not agreed between the gateway unit and athlete tracking unit prior to the gateway unit broadcasting the request for athlete data.
4. The method of any one of claims 1 to 3, wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the position of the identifier of the athlete tracking unit among the plurality of identifiers in the request for athlete data.
5. The method of claim 4, wherein the position of the response slot in which the athlete data for an athlete tracking unit is received among the response slots is the same as the position of the identifier of the athlete tracking unit among the plurality of identifiers in the request for athlete data.
6. The method of any one of claims 1 to 3, wherein the response slot in which the athlete data for an athlete tracking unit is received depends on the value of the identifier of the athlete tracking unit.
7. The method of any one of claims 1 to 6, wherein the request for athlete data comprises, for each athlete tracking unit, information indicating at least one athlete data page.
8. The method of claim 7, wherein the request for athlete data further comprises information indicating at least one athlete data page part of the indicated at least one athlete data page.
9. The method of claim 8, wherein the information indicating at least one athlete data page part of the at least one athlete data page comprises information identifying previously received athlete data page parts of the indicated at least one athlete data page.
10. The method of claim 9, wherein the information identifying previously received athlete data page parts comprises a bitmap.
11. The method of any one of claims 1 to 10, further comprising transmitting, to a server, the received athlete data.
12. The method of claim 11, further comprising: receiving, from the server, information identifying completed athlete data pages previously received by the server; wherein transmitting the received athlete data to the server comprises transmitting at least one athlete data page based on the information identifying completed athlete data pages previously received by the server.
13. The method of claim 12, wherein transmitting at least one athlete data page based on the information comprises: identifying, based on the information, at least one athlete data page that was not previously received by the server; requesting the identified at least one athlete data page from the corresponding athlete tracking unit; receiving the identified at least one athlete data page from the corresponding athlete tracking unit; and transmitting the identified at least one athlete data page to the server.
14. The method of claim 12 or 13, wherein the information identifying completed athlete data pages comprises a bitmap.
15. A gateway unit configured to perform the method of any one of claims 1 to 14.
16. A method performed by an athlete tracking unit in a communication system for tracking athlete performance, the method comprising: acquiring, using at least one sensor, athlete data; receiving, from a gateway unit, a request for athlete data; determining if the request for athlete data includes an identifier identifying the athlete tracking unit; and if the request for data includes an identifier identifying the athlete tracking unit, transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit.
17. The method of claim 16, wherein the request for athlete data is received according to a periodic interval.
18. The method of claim 16 or 17, wherein the response slot for the athlete tracking unit is not agreed between the gateway unit and athlete tracking unit prior to the athlete tracking unit receiving the request for athlete data.
19. The method of any one of claims 16 to 18, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit comprises: identifying the position of the identifier identifying the athlete tracking unit among a plurality of identifiers included in the request for athlete data; and transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier.
20. The method of claim 19, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the position of the identifier comprises transmitting the athlete data to the gateway unit in a response slot that has the same position among the response slots as the position of the identifier among the identifiers.
21. The method of any one of claims 16 to 18, wherein transmitting the athlete data to the gateway unit in a response slot that depends on the identifier identifying the athlete tracking unit comprises: identifying a value of the identifier identifying the athlete tracking unit; andtransmitting the athlete data to the gateway unit in a response slot that depends on the value of the identifier.
22. The method of any one of claims 16 to 21, further comprising storing the acquired athlete data in at least one athlete data page, wherein the request for athlete data further comprises information indicating at least one athlete data page; and wherein transmitting the athlete data to the gateway unit comprises: transmitting the athlete data stored in the indicated at least one athlete data page to the gateway unit.
23. The method of claim 22, wherein each of the at least one athlete data pages comprises at least one athlete data page part, wherein the request for athlete data further comprises information indicating at least one athlete data page part of the indicated at least one athlete data page; and wherein transmitting the athlete data to the gateway unit comprises: transmitting the athlete data stored in the indicated at least one athlete data page part to the gateway unit.
24. The method of claim 23, wherein the information indicating at least one athlete data page part of the indicated at least one athlete data page comprises information identifying which athlete data page parts of the indicated at least one athlete data page have previously been received by the gateway unit; and wherein transmitting the athlete data to the gateway unit comprises: identifying, based on the information, at least one athlete data page part stored in the athlete tracking unit that was not previously received by the gateway unit; and transmitting the athlete data stored in the identified at least one athlete data page part to the gateway unit.
25. An athlete tracking unit configured to perform the method of any one of claims 16 to 24.
26. A communication system comprising the gateway unit of claim 15 and the athlete tracking unit of claim 25.
27. A computer program comprising instructions which, when the program is executed by a computer or processor, cause the computer or processor to carry out a method according to any one of claims 1 to 14 or 16 to 24.
28. A machine or computer-readable data medium having stored thereon a computer program according to claim 27.