Combined virtual and physical racket sport system
The system addresses the need for a compact and immersive racket sport experience by using a controller to simulate ball characteristics across courts, providing realistic haptic feedback and enabling distant player interactions, thus improving the realism and accessibility of racket sport simulations.
Patent Information
- Application Number
- PCT/EP2023/065976
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-14
- Publication Date
- 2024-12-19
AI Technical Summary
Traditional racket sport systems require a full-size court, while virtual simulator systems lack realism due to the absence of haptic feedback, resulting in a non-immersive experience for players.
A system that combines physical and virtual elements by using a controller to collect and analyze ball characteristics from one racket court, instructing a ball machine at another court to eject a ball with similar characteristics, providing realistic haptic feedback and compactness, allowing two players to share a simulation experience regardless of location.
This system offers a more immersive and compact experience, bridging the distance between players and enabling realistic simulations with both human and virtual trainers, enhancing practice scenarios.
Smart Images

Figure EP2023065976_19122024_PF_FP_ABST
Abstract
Description
[0001] COMBINED VIRTUAL AND PHYSICAL RACKET SPORT SYSTEM
[0002] TECHNICAL FIELD
[0003] Embodiments presented herein relate to a computer-implemented method, a controller, a system, a computer program, and a computer program product for a racket sport game played between a first player at a first racket court and a second player at a second racket court.
[0004] BACKGROUND
[0005] In Fig. i is schematically illustrated a traditional system 100 for racket ball practice. The system 100 comprises a physical racket court no (in terms of a tennis court) and a ball machine 120. The ball machine 120 is placed at one side of the racket court no (the upper half of the racket court as illustrated in Fig. 1) and is arranged to eject a ball 130 according to some ball trajectory 140 towards the other side of the racket court (the lower half of the racket court as illustrated in Fig. 1) where a player can use a racket to hit the ball towards the side of the racket court where the ball machine 120 is placed. The same principles as illustrated in Fig. 1 apply equally to other types of racket sports, such as, but are not limited to: badminton, table tennis, squash, padel, paddle tennis, pickleball, racquetball, beach tennis, etc. One drawback of the system 100 is that it requires a full-size racket court.
[0006] Recently, simulator systems have been provided that offer virtual racket ball practice, but also racket ball playing, where one physical player can practice his / her skills and / or play a racket sport match against another virtual player. In general terms, the simulator systems are based on that the player is wearing some type of XR / VR / AR device, such as a head-mounted display, and uses a specialized hand-controller to simulate the hitting of a ball (where the ball thus is virtual). One such example is “Tennis Esports Products” as provided by Virtual reality Motion Learning, https: / / www.vr-motion-learning.com / , as available per 2 June 2023. Another example is the “First Person Tennis” as provided by Mikori Games, https : / / store, steampowered. com / app / 454i4o / First_Person_T ennis The_Real_T e nnis_Simulator / , as available per 2 June 2023. In general terms, these simulator systems do not involve the use of physical balls. Therefore, these simulator systems lack the realism of haptic feedback, leading to a non-immersive experience for the player. This could make it difficult for the player to receive instant feedback about how he / she is hitting the ball.
[0007] In summary, whereas the traditional system 100 requires a full-size racket court, existing simulators do not provide a realistic experience.
[0008] SUMMARY
[0009] An object of embodiments herein is to address the above issues.
[0010] A particular object is to provide a more realistic user experience than offered by the simulator system.
[0011] A particular object is to enable a system that is more physically compact than the traditional system.
[0012] A particular object is to provide a system which combines the benefits of the traditional system with the benefits of the simulator system.
[0013] A particular object is to provide a system which combines the realistic haptic feedback offered by the traditional system with the physical compactness offered by the simulator system.
[0014] A particular object is to enable two players to take part in one and the same realistic simulation experience, thus bridging the distance between two physical players (in addition to the case where one of the players is a virtual player).
[0015] According to a first aspect the object is addressed by providing a controller for a racket sport game played between a first player at a first racket court and a second player at a second racket court. The controller comprises processing circuitry. The processing circuitry is configured to cause the controller to collect first ball characteristics of a first ball as impacted by is hit at the first racket court by a racket held by the first player. The processing circuitry is configured to cause the controller to determine second ball characteristics for the second racket court by analyzing the first ball characteristics. The processing circuitry is configured to cause the controller to, in response to the determined second ball characteristics, instruct a ball machine to eject a second ball at the second racket court with the second ball characteristics. According to a second aspect the object is addressed by providing a system for a racket sport game played between a first player at a first racket court and a second player at a second racket court. The system comprises a controller according to the first aspect and a ball machine.
[0016] According to a third aspect the object is addressed by providing a computer program for a racket sport game played between a first player at a first racket court and a second player at a second racket court. The computer program comprises computer code which, when run on processing circuitry of a controller, causes the controller to perform actions. One action comprises the controller to collect first ball characteristics of a first ball as impacted by is hit at the first racket court by a racket held by the first player. One action comprises the controller to determine second ball characteristics for the second racket court by analyzing the first ball characteristics. One action comprises the controller to, in response to the determined second ball characteristics, instruct a ball machine to eject a second ball at the second racket court with the second ball characteristics.
[0017] According to a fourth aspect there is presented a computer program product comprises a computer program according to the third aspect and a computer readable storage medium on which the computer program is stored. The computer readable storage medium could be a non-transitory computer readable storage medium.
[0018] Advantageously, these aspects provide a more realistic user experience than offered by the simulator system.
[0019] Advantageously, these aspects enable a system that is more physically compact than the traditional system.
[0020] Advantageously, these aspects provide a system which combines the benefits of the traditional system with the benefits of the simulator system.
[0021] Advantageously, these aspects provide a system which combines the realistic haptic feedback offered by the traditional system with the physical compactness offered by the simulator system. Advantageously, these aspects enable two players to take part in one and the same realistic simulation experience, thus bridging the distance between two physical players (in addition to the case where one of the players is a virtual player). This will enable new ways of practice both with virtual computer trainer and human trainer. The human trainer can perform the practice from anywhere with numerous pupils.
[0022] In some embodiments, the controller is configured to instruct the ball machine to eject the second ball based on information on at least velocity and direction of the second ball.
[0023] In some embodiments, the controller further is configured to instruct the ball machine to eject the second ball based on information on position and spin of the second ball.
[0024] In some embodiments, the first ball characteristics comprise at least velocity and direction of the first ball, and the second ball characteristics comprise at least velocity and direction of the second ball.
[0025] In some embodiments, the controller is configured to determine the first ball characteristics based on sensor data.
[0026] In some embodiments, the controller is configured to receive the sensor data from any, or any combination, of: a radar device arranged to monitor the first racket court, a camera arranged to monitor the first racket court, a sensor mounted on the racket held by the first player, a sensor worn by the first player.
[0027] In some embodiments, the processing circuitry further is configured to cause the controller to estimate movement of the first player from the sensor data, and predict movement of the first ball from the estimated movement of the first player. The second ball characteristics are then further determined from the predicted movement of the first ball.
[0028] In some embodiments, the processing circuitry further is configured to cause the controller to estimate movement of the first player from the sensor data, and provide information of the estimated movement of the first player and the second ball characteristics to a display device to be worn by the second player for rendering a representation of the first player and a representation of the second ball at the display device.
[0029] In some embodiments, the display device is any of: a head-mounted display, a piece of VR / AR / XR glasses, a display screen.
[0030] In some embodiments, the first player is a virtual player controlled by a game engine, the first racket court is a virtual court side, the racket held by the first player is a virtual racket, and the first ball is a virtual ball.
[0031] In some embodiments, the first ball characteristics are collected from the game engine.
[0032] In some embodiments, the ball machine is arranged to be movable in a plane of the racket court and / or in a plane orthogonal to the plane of the racket court, and the ball machine is moved in response to receiving instructions from the controller.
[0033] In some embodiments, the ball machine is instructed to eject the second ball at a vertical and / or horizontal position that coincides with a predicted trajectory of the second ball.
[0034] In some embodiments, the system further comprises a sensor, and the first ball characteristics are determined from an analysis of data collected by the sensor.
[0035] In some embodiments, the controller is configured to estimate the impact on the first ball when it is hit by the racket held by the first player, to estimate movement of the first player, and to determine the first ball characteristics from the estimated impact and the estimated movement.
[0036] Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent claims as well as from the drawings.
[0037] Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to "a / an / the element, apparatus, component, means, module, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, module, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.
[0038] BRIEF DESCRIPTION OF THE DRAWINGS
[0039] The inventive concept is now described, by way of example, with reference to the accompanying drawings, in which:
[0040] Fig. i schematically illustrates a traditional racket court with a ball machine according to an example;
[0041] Fig. 2 schematically illustrates a racket court, a controller, and a sensor according to an embodiment;
[0042] Fig. 3 schematically illustrates a sensor that monitors a ball and a player holding a racket according to an embodiment;
[0043] Fig. 4 is a block diagram of a system according to an embodiment;
[0044] Fig. 5 schematically illustrates a racket provided with a sensor according to an embodiment;
[0045] Fig. 6 schematically illustrates a view rendered on a display device according to an embodiment;
[0046] Fig. 7 and Fig. 8 are flowcharts of computer-implemented methods according to embodiments;
[0047] Fig. 9 is a schematic diagram showing functional units of a controller according to an embodiment;
[0048] Fig. io is a schematic diagram showing functional modules of a controller according to an embodiment; and
[0049] Fig. n shows one example of a computer program product comprising a computer readable storage medium according to an embodiment.
[0050] DETAILED DESCRIPTION
[0051] The inventive concept will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. Like numbers refer to like elements throughout the description. Any step or feature illustrated by dashed lines should be regarded as optional.
[0052] In Fig. 2 is schematically illustrated a system 200 according to herein disclosed embodiments. The system 200 comprises a racket court 210, a controller 230, a ball machine 220, and a sensor 240. Although only one sensor 240 is illustrated, the system 200 might comprise more than one sensor 240, or even a plurality of sensors 240, possibly of different types. Different types of sensors 240 are disclosed below with reference to Fig. 4. Further in this respect, the term racket court includes any ball court for a sport where a player uses a racket in order to a hit a ball and where the racket court has line limitations delimiting the area in which the ball is allowed to be landing. The lines of the racket court may be physical or virtual. The racket court might comprise a physical or virtual net dividing the racket court into two parts. This racket court may comprise an entire racket court where the player is on one side of the net and the ball machine 220 is located on the other. Alternatively, to save space, and as illustrated in Fig. 2, the racket court might be a reduced version of a complete racket court, only including the part, or side, of the racket court belonging to one of the players. The sensor 240 is configured to scan the racket court 210 within a scanning area 250. The ball machine 220 is placed to face the racket court 210 and is arranged to eject a ball 260 according to some ball trajectory 270 towards the racket court 210 where a player can use a racket to hit the ball 260. As will be further disclosed below, how the ball 260 will be ejected is determined by the controller 230. As will also be further disclosed below, the sensor 240 can be configured, within the scanning area 250, to scan movement, such as spin, rotation, etc. of the ball 260 (for example in terms of position and a velocity vector) as hit by a racket held by the player at the racket court 210. The sensor 240 may further be configured to scan movement of the player and / or the racket held by the player. This is illustrated in Fig. 3. In more detail, in Fig. 3 is provided a schematical illustration 300 of a sensor 310 that is configured to monitor a ball 330 and player 340 holding a racket 350 within a scanning area as marked by a boundary 320.
[0053] Reference is next made to Fig. 4 which, in terms of a block diagram, illustrates a system 400 according to embodiments. The system 400 comprises a controller 410 configured as in Fig. 2, a ball machine 450 configured as in Fig. 2, and one or more sensors 420, 430 configured as in Fig. 2. In some examples, one sensor 420 maybe radar device and one other sensor 430 may be a camera. In some examples at least one of the sensors 420, 430 may comprise a microphone and maybe configured to record sensor data in terms of sound. In this way, sounds as made by one player, sounds caused by the racket hitting the ball in one racket court, and / or sounds caused by the ball bounding on the turf of one racket court can be recorded and played out to the opponent player. Further, in this way, sound captured by multiple microphones can be used to triangulate the position of the bounces of the ball to the racket as well as to the turf. Timing of sounds can also be used to estimate time of impact (i.e., the points in time when the ball is hit by the racket and / or bounces on the turf). The controller 410 is configured to collect data from the different sensors 420, 430 and process the data to provide player movement and ball characteristics. The controller 410 is also configured to provide information and instructions to the ball machine 450 and a display device 440. The ball machine 450 thus receives information from the controller 410 about the movement of the ball to be ejected One way of providing information from the controller 410 to the ball machine 450 maybe in the form of providing a movement vector, or the like. In this way, the ball machine 220, 450 is enabled to eject a ball towards the player on one racket court according to how another ball (physical or virtual) was hit by a racket (physical or virtual) held by another player (physical or virtual) at another racket court (physical or virtual). As will be further disclosed below, depending on the complexity of the setup, the ball machine 450 may be statically mounted, or be movable in a plane of the racket court and / or in a plane orthogonal to the plane of the racket court
[0054] With intermediate reference to Fig. 5, it is shown at 500 that a sensor 520 maybe mounted on a racket 510. In yet further examples, a sensor may be worn by the player 340 and be implemented in a display device. Such a sensor may comprise an inertial measurement unit (IMU). With reference back to Fig. 4, the system 400 further comprises a display device 440 to be worn by a player. In general terms, the display devices 440 is configured to provided visual and audial feedback to the player. The display devices 440 can also provide movement data back to the controller 410 (requiring the display devices 440 to be provided with a sensor, for example comprising an IMU). The display devices 440 provide the player with a view of a virtual world or an augment physical world, in this use case a racket court. The visual appearance of the racket court may be changeable with respect to what type of racket sport is played. There may exist different types of such display devices 440. In some non-limiting examples, the display device 440 maybe any of: a head-mounted display, a piece of VR / AR / XR glasses, a display screen. The display screen can be part of a head-mounted display, or be provided as a separate device, for example as a monitor screen. In some examples, the display device 440 may comprise headphones for playing different sounds, such as sounds as made by one player, sounds as caused by the racket hitting the ball in one racket court, and / or sounds as caused by the ball bounding on the turf of one racket court.
[0055] In this respect, Fig. 6 schematically illustrates a view 600 rendered on a display device. The view 600 comprises visual information 610 in terms of a racket court 620 where the player that wears the display device 440 is located. The visual information 610 further comprises an illustration of a virtual ball 650 that is travelling according to a trajectory 660 after having been hit by a player 630 holding a racket 640. In this way, the embodiments disclosed herein can combine showing the remote / virtual racket court to the player using a display device 440, whilst keeping the racket court where the player is located real and fully physical. The player hits real balls 260, 330, with a real racket 350.
[0056] Fig. 7 is a flowchart illustrating embodiments of computer-implemented method 700 for a racket sport game played between a first player 340, 630 at a first racket court 210, 620 and a second player at a second racket court 210, 620. The first racket court 210, 620 and the second racket court 210, 620 could be respective halves of two different physical racket courts. Alternatively, one of the first racket court 210, 620 and the second racket court 210, 620 could be a physical racket court and the other of the first racket court 210, 620 and the second racket court 210, 620 could be a virtual racket court. In any case, the first racket court 210, 620 and the second racket court 210, 620 are understood to in combination yield a common racket court at which the racket sport game is played in accordance with embodiments that will be presented hereinafter. The computer-implemented methods are performed by the controller 230, 410, 900, 1000. The computer-implemented methods are advantageously provided as computer programs 320.
[0057] A first player 340, 630 hits a first ball 330 with a racket 350, 510, 640. The controller 230, 410, 900, 1000 analyses ball characteristics, and uses this information for determining ball characteristics for the opponent side (which could be either simulated or physically located elsewhere).
[0058] S102: The controller 230, 410, 900, 1000 collects first ball characteristics of a first ball 330 as impacted by being hit at the first racket court 210, 620 by a racket 350, 510, 640 held by the first player 340, 630.
[0059] S108: The controller 230, 410, 900, 1000 determines second ball characteristics for the second racket court 210, 620 by analyzing the first ball characteristics.
[0060] S120: The controller 230, 410, 900, 1000, in response to the determined second ball characteristics, instructs a ball machine 220, 450 to eject a second ball 260, 650 at the second racket court 210, 620 with the second ball characteristics.
[0061] Many types of scenarios involving the two players can be imagined. According to one scenario, hereinafter referred to as scenario (a), both players are physical persons. These two physical persons are located at different physical locations. According to another scenario, hereinafter referred to as to scenario (b), one player is a physical person and the other player is a virtual player. For scenario (b) it is the second player that is the physical person whereas the first player is the virtual player.
[0062] Embodiments relating to further details of a racket sport game played between a first player 340, 630 at a first racket court 210, 620 and a second player at a second racket court 210, 620 as performed by the controller 230, 410, 900, 1000 will now be disclosed with continued reference to Fig. 7.
[0063] With respect to both scenarios (a) and (b), the ball machine 220, 450 could get information from the controller 230, 410, 900, 1000 about a movement vector of the second ball 260, 650. The movement vector at least includes velocity and direction. Hence, in some embodiments, the controller 230, 410, 900, 1000 further is configured to instruct the ball machine 220, 450 to eject the second ball based on information on at least velocity and direction of the second ball 260, 650. In some examples, the movement vector may also include spin which relates to the position of the second ball 260, 650. Hence, in some embodiments, the controller 230, 410, 900, 1000 further is configured to instruct the ball machine 220, 450 to eject the second ball based on information on position and spin of the second ball 260, 650.
[0064] Likewise, with respect to both scenarios (a) and (b), in some embodiments, the first ball characteristics comprise at least velocity and direction of the first ball 330, and the second ball characteristics comprise at least velocity and direction of the second ball 260, 650.
[0065] With respect to scenario (a), the first racket court 210, 620 is a physical racket court and the first player 340, 630 is a physical player holding a physical racket 350, 510, 640. A sensor 240, 310, 420, 430, 520 can then be used to collect sensor data based on which the first ball characteristics can be obtained. That is, in some embodiments, the controller 230, 410, 900, 1000 is configured to determine the first ball characteristics based on sensor data. There could be different types of sensors 240, 310, 420, 430, 520 withs corresponding different types of sensor data. In some nonlimiting examples,, the controller 230, 410, 900, 1000 is configured to receive the sensor data from any, or any combination, of: a radar device 240, 310, 420 arranged to monitor the first racket court 210, 620, a camera 240, 310, 430 arranged to monitor the first racket court 210, 620, a sensor 520 mounted on the racket 350, 510, 640 held by the first player 340, 630, a sensor worn by the first player 340, 630.
[0066] With further respect to scenario (a), the movement of the first player 340, 630 can be analyzed to predict the position from which the first ball 330 is hit and the manner in which the first ball 330 is hit. Therefore, in some embodiments, the processing circuitry 910 further is configured to cause the controller 230, 410, 900, 1000 to perform (optional) actions S104 and S106.
[0067] S104: The controller 230, 410, 900, 1000 estimates movement of the first player 340, 630 from the sensor data. Sio6: The controller 230, 410, 900, 1000 predicts movement of the first ball 330 from the estimated movement of the first player 340, 630. The second ball characteristics are then further determined from the predicted movement of the first ball 330.
[0068] Even if both the first player 340, 630 and the second player are physical players, as disclosed above, these physical players are located at different locations (particularly, at different racket courts). To provide a realistic experience for the second player, a rendition of the first player 340, 630 can therefore be provided on a display device 440 to be worn by the second player. Therefore, in some embodiments, the processing circuitry 910 is further configured to cause the controller 230, 410, 900, 1000 to perform (optional) action S110.
[0069] S110: The controller 230, 410, 900, 1000 provides information of the estimated movement of the first player 340, 630 and the second ball characteristics to a display device 440 to be worn by the second player. The information is provided for display device 440 to render a representation of the first player 340, 630 and a representation of the second ball 260, 650 at the display device 440. Different examples of display devices 400 have been disclosed above.
[0070] As disclosed above, for scenario (b), the first player 340, 630 is a virtual player. Such a virtual player can be controlled by a game engine. That is, in some embodiments, the first player 340, 630 is a virtual player controlled by a game engine, the first racket court 210, 620 is a virtual court side, the racket 350, 510, 640 held by the first player 340, 630 is a virtual racket 350, 510, 640, and the first ball 330 is a virtual ball.
[0071] In this case, and in contrast to scenario (a), the first ball characteristics can then not be obtained from sensor data. Instead, the resulting movement vector of the first ball (velocity, direction, spin, etc.) in the virtual world can be determined by the game engine. Hence, in some embodiments, the first ball characteristics are collected from the game engine.
[0072] With respect to both scenarios (a) and (b), a system 400 maybe provided that at least comprises the controller 230, 410, 900, 1000 and the ball machine 220, 450. Hence, according to an embodiment, there is disclosed a system 400 for a racket sport game played between a first player 340, 630 at a first racket court 210, 620 and a second player at a second racket court 210, 620. The system 400 comprises a controller 230, 410, 900, 1000 configured to perform any of the preceding actions. The system 400 further comprises the ball machine 220, 450.
[0073] Further aspects of the ball machine 220, 450 will be disclosed next.
[0074] In some embodiments, the ball machine 220, 450 is arranged to be movable in a plane of the racket court and / or in a plane orthogonal to the plane of the racket court, and the ball machine 220, 450 is moved in response to receiving instructions from the controller 230, 410, 900, 1000. This allows for a realistic experience for the second player. Further, the ball machine 220, 450 might be instructed to eject the second ball 260, 650 at a vertical and / or horizontal position that coincides with a predicted trajectory of the second ball 260, 650. In other examples, the ball machine 220, 450 is a traditional fixedly mounted ball machine 220, 450. This allows for a simpler implementation of the ball machine 220, 450 at the cost of a less realistic experiences for the second player.
[0075] In some embodiments, the system 400 further comprises a sensor 240, 310, 420, 430, 520, and the first ball characteristics are determined from an analysis of data collected by the sensor 240, 310, 420, 430, 520. This is in line with the above disclosed scenario (a).
[0076] With further respect to scenario (a), the controller 230, 410, 900, 1000 might determine the ball characteristics by estimating the impact on the first ball and the movement of the first player. That is, in some embodiments, the controller 230, 410, 900, 1000 is configured to estimate impact on the first ball 330 when being hit by the racket 350, 510, 640 held by the first player 340, 630, to estimate movement of the first player 340, 630, and to determine the first ball characteristics from the estimated impact and the estimated movement.
[0077] Reference is next made to Fig. 8 in which is provided a flowchart of a computer- implemented method 800 for a racket sport game played between a first player 340, 630 at a first racket court 210, 620 and a second player at a second racket court 210, 620. This example is based on scenario (b), i.e., where the first player is a virtual player playing at a virtual court (and the second player is a physical player playing at a physical court). S201: It is registered that the second (physical) player, in the second (physical) racket court, hits the second (physical) ball using a racket.
[0078] S202: The second ball characteristics are estimated from sensor data provided by a sensor (such as a radar device), possibly in combination with other supporting sensors (such as one or more cameras).
[0079] S203: The second ball characteristics are translated to the virtual world, so as to determine a trajectory of a first (virtual) ball in the first (virtual) racket court.
[0080] S204: It is registered that the first (virtual) player hits the first (virtual) ball and the first ball characteristics are provided for the returning stroke and sent to the ball machine 220, 450.
[0081] S205: New second ball characteristics are determined by analyzing the first ball characteristics.
[0082] S206: The ball machine 220, 450 ejects a new second (physical) ball based on the new second ball characteristics.
[0083] The actions can be adapted to scenario (a) e.g., by replacing the first virtual player with a first physical player, by replacing the first virtual racket court with a first physical racket court, by adding a further ball machine 220, 450 to eject the ball in the first virtual racket court, by adding one or more sensors for collecting sensor data based on which the first ball characteristics can be determined, etc.
[0084] Fig. 9 schematically illustrates, in terms of a number of functional units, the components of a controller 900 according to an embodiment. Processing circuitry 910 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), etc., capable of executing software instructions stored in a computer program product 1110 (as in Fig. 11), e.g. in the form of a storage medium 930. The processing circuitry 910 may further be provided as at least one application specific integrated circuit (ASIC), or field programmable gate array (FPGA).
[0085] Particularly, the processing circuitry 910 is configured to cause the controller 900 to perform a set of operations, or steps, as disclosed above. For example, the storage medium 930 may store the set of operations, and the processing circuitry 910 maybe configured to retrieve the set of operations from the storage medium 930 to cause the controller 900 to perform the set of operations. The set of operations maybe provided as a set of executable instructions.
[0086] Thus the processing circuitry 910 is thereby arranged to execute computer- implemented methods as herein disclosed. The storage medium 930 may also comprise persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory. The controller 900 may further comprise a communications (comm.) interface 920 at least configured for communications with other entities, functions, nodes, and devices. As such the communications interface 920 may comprise one or more transmitters and receivers, comprising analogue and digital components. The processing circuitry 910 controls the general operation of the controller 900 e.g. by sending data and control signals to the communications interface 920 and the storage medium 930, by receiving data and reports from the communications interface 920, and by retrieving data and instructions from the storage medium 930. Other components, as well as the related functionality, of the controller 900 are omitted in order not to obscure the concepts presented herein.
[0087] Fig. 10 schematically illustrates, in terms of a number of functional modules, the components of a controller 1000 according to an embodiment. The controller 1000 of Fig. 10 comprises a number of functional modules; a collect module 1010 configured to perform step S102, a determine module 1040 configured to perform step S108, and an instruct module 1060 configured to perform step S112. The controller 1000 of Fig. 10 may further comprise a number of optional functional modules, such as any of an estimate module 1020 configured to perform step S104, a predict module 1030 configured to perform step S106, and a provide module 1050 configured to perform step S110. In general terms, each functional module 1010:1060 may in one embodiment be implemented only in hardware and in another embodiment with the help of software, i.e., the latter embodiment having computer program instructions stored on the storage medium 930 which when run on the processing circuitry makes the controller 900 perform the corresponding steps mentioned above in conjunction with Fig 10. It should also be mentioned that even though the modules correspond to parts of a computer program, they do not need to be separate modules therein, but the way in which they are implemented in software is dependent on the programming language used. Preferably, one or more or all functional modules 1010:1060 maybe implemented by the processing circuitry 910, possibly in cooperation with the communications interface 920 and / or the storage medium 930. The processing circuitry 910 may thus be configured to from the storage medium 930 fetch instructions as provided by a functional module 1010:1060 and to execute these instructions, thereby performing any steps as disclosed herein.
[0088] The controller 930, 410, 900, 1000 maybe provided as a standalone device or as a part of at least one further device. For example, the controller 930, 410, 900, 1000 may be provided in one of the VR communication devices 110a, nob, 110c. Thus, a first portion of the instructions performed by the controller 930, 410, 900, 1000 may be executed in a first device, and a second portion of the of the instructions performed by the controller 930, 410, 900, 1000 may be executed in a second device; the herein disclosed embodiments are not limited to any particular number of devices on which the instructions performed by the controller 930, 410, 900, 1000 may be executed. Hence, the computer-implemented methods according to the herein disclosed embodiments are suitable to be performed by a controller 930, 410, 900, 1000 residing in a cloud computational environment. Therefore, although a single processing circuitry 910 is illustrated in Fig. 9 the processing circuitry 910 maybe distributed among a plurality of devices, or nodes. The same applies to the functional modules 1010:1060 of Fig. 10 and the computer program 1120 of Fig. 11.
[0089] Fig. 11 shows one example of a computer program product 1110 comprising computer readable storage medium 1130. On this computer readable storage medium 1130, a computer program 1120 can be stored, which computer program 1120 can cause the processing circuitry 910 and thereto operatively coupled entities and devices, such as the communications interface 920 and the storage medium 930, to execute computer-implemented methods according to embodiments described herein. The computer program 1120 and / or computer program product 1110 may thus provide means for performing any steps as herein disclosed.
[0090] In the example of Fig. 11, the computer program product 1110 is illustrated as an optical disc, such as a CD (compact disc) or a DVD (digital versatile disc) or a Blu-Ray disc. The computer program product 1110 could also be embodied as a memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EEPROM) and more particularly as a non-volatile storage medium of a device in an external memory such as a USB (Universal Serial Bus) memory or a Flash memory, such as a compact Flash memory. Thus, while the computer program 1120 is here schematically shown as a track on the depicted optical disk, the computer program 1120 can be stored in any way which is suitable for the computer program product 1110.
[0091] The inventive concept has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended patent claims.
Claims
CLAIMS1. A controller (230, 410, 900, 1000) for a racket sport game played between a first player (340, 630) at a first racket court (210, 620) and a second player at a second racket court (210, 620), the controller (230, 410, 900, 1000) comprising processing circuitry (910), the processing circuitry (910) being configured to cause the controller (230, 410, 900, 1000) to: collect first ball characteristics of a first ball (330) as impacted by being hit at the first racket court (210, 620) by a racket (350, 510, 640) held by the first player (340, 630); determine second ball characteristics for the second racket court (210, 620) by analyzing the first ball characteristics; and in response to the determined second ball characteristics, instruct a ball machine (220, 450) to eject a second ball (260, 650) at the second racket court (210, 620) with the second ball characteristics.
2. The controller (230, 410, 900, 1000) according to claim 1, wherein the controller (230, 410, 900, 1000) further is configured to instruct the ball machine (220, 450) to eject the second ball based on information on at least velocity and direction of the second ball (260, 650).
3. The controller (230, 410, 900, 1000) according to claim 2, wherein the controller (230, 410, 900, 1000) further is configured to instruct the ball machine (220, 450) to eject the second ball based on information on position and spin of the second ball (260, 650).
4. The controller (230, 410, 900, 1000) according to any of claims 1 to 3, wherein the first ball characteristics comprise at least velocity and direction of the first ball (330), and wherein the second ball characteristics comprise at least velocity and direction of the second ball (260, 650).
5. The controller (230, 410, 900, 1000) according to any of claims 1 to 4, configured to determine the first ball characteristics based on sensor data.
6. The controller (230, 410, 900, 1000) according to claim 5, wherein the controller (230, 410, 900, 1000) is configured to receive the sensor data from any, or any combination, of: a radar device (240, 310, 420) arranged to monitor the first racket court (210, 620), a camera (240, 310, 430) arranged to monitor the first racket court (210, 620), a sensor (520) mounted on the racket (350, 510, 640) held by the first player (340, 630), a sensor worn by the first player (340, 630).
7. The controller (230, 410, 900, 1000) according to claim 5 or 6, wherein the processing circuitry (910) further is configured to cause the controller (230, 410, 900, 1000) to: estimate movement of the first player (340, 630) from the sensor data; predict movement of the first ball (330) from the estimated movement of the first player (340, 630), and wherein the second ball characteristics further are determined from the predicted movement of the first ball (330).
8. The controller (230, 410, 900, 1000) according to any of claims 4 to 7, wherein the processing circuitry (910) further is configured to cause the controller (230, 410, 900, 1000) to: estimate movement of the first player (340, 630) from the sensor data; provide information of the estimated movement of the first player (340, 630) and the second ball characteristics to a display device (440) to be worn by the second player for rendering a representation of the first player (340, 630) and a representation of the second ball (260, 650) at the display device (440).
9. The controller (230, 410, 900, 1000) according to claim 8, wherein the display device (440) is any of: a head-mounted display, a piece of VR / AR / XR glasses, a display screen.
10. The controller (230, 410, 900, 1000) according to any of claims 1 to 3, wherein the first player (340, 630) is a virtual player controlled by a game engine, wherein the first racket court (210, 620) is a virtual court side, wherein the racket (350, 510, 640) held by the first player (340, 630) is a virtual racket (350, 510, 640), and wherein the first ball (330) is a virtual ball.
11. The controller (230, 410, 900, 1000) according to claim 10, wherein the first ball characteristics are collected from the game engine.
12. A system (400) for a racket sport game played between a first player (340, 630) at a first racket court (210, 620) and a second player at a second racket court (210, 620), the system comprising a controller (230, 410, 900, 1000) according to any preceding claims and a ball machine (220, 450).
13. The system (400) according to claim 11, wherein the ball machine (220, 450) is arranged to be movable in a plane of the racket court and / or in a plane orthogonal to the plane of the racket court, and wherein the ball machine (220, 450) is moved in response to receiving instructions from the controller (230, 410, 900, 1000).
14. The system (400) according to claim 13, wherein the ball machine (220, 450) is instructed to eject the second ball (260, 650) at a vertical and / or horizontal position that coincides with a predicted trajectory of the second ball (260, 650).
15. The system (400) according to claim 11 or 12, wherein the system (400) further comprises a sensor (240, 310, 420, 430, 520), and wherein the first ball characteristics are determined from an analysis of data collected by the sensor (240, 310, 420, 430, 520).
16. The system according to claim 15, wherein the controller (230, 410, 900, 1000) 430, 520 is configured to estimate impact on the first ball (330) when being hit by the racket (350, 510, 640) held by the first player (340, 630), to estimate movement of the first player (340, 630), and to determine the first ball characteristics from the estimated impact and the estimated movement.
17. A computer program (1120) for a racket sport game played between a first player (340, 630) at a first racket court (210, 620) and a second player at a second racket court (210, 620), the computer program comprising computer code which, when run on processing circuitry (910) of a controller (230, 410, 900, 1000), causes the controller (230, 410, 900, 1000) to: collect (S102) first ball characteristics of a first ball (330) as impacted by being hit at the first racket court (210, 620) by a racket (350, 510, 640) held by the first player (340, 630);determine (S108) second ball characteristics for the second racket court (210, 620) by analyzing the first ball characteristics; and in response to the determined second ball characteristics, instruct (S112) a ball machine (220, 450) to eject a second ball (260, 650) at the second racket court (210, 620) with the second ball characteristics.
18. A computer program product (1110) comprising a computer program (1120) according to claim 17, and a computer readable storage medium (1130) on which the computer program is stored.
Citation Information
Patent Citations
Tennis training device using virtual targets
US20160166912A1
Ball game training
WO2016116780A1
