Virtual golf support device and method, and computer program

By designing virtual golf support devices, using deep learning models to identify and calculate golf trajectories, the problem of simulating golf trajectories in small home environments is solved, and a convenient virtual golf training and gaming experience is achieved.

JP2025068629APending Publication Date: 2025-04-28チンデジェ

Patent Information

Application Number
JP2025014053
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-16
Filing Date
2025-01-30
Publication Date
2025-04-28

AI Technical Summary

Technical Problem

The prior art is difficult to effectively simulate and display the golf trajectory after playing in small home environments using portable devices such as mobile phones, limiting the possibility of individuals performing virtual golf training and games at home.

Method used

A virtual golf support device and method is designed, which includes a golf environment simulator, a video acquisition module and a processor. The processor uses a deep learning model to identify the trajectory of the golf ball, calculates the initial velocity and direction, and displays the trajectory of the ball in a virtual environment.

Benefits of technology

It realizes that using portable devices to simulate golf trajectories in small home environments, allowing multiple users to enjoy virtual golf games at home, improving the convenience and efficiency of training and gaming.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025068629000001_ABST
    Figure 2025068629000001_ABST
Patent Text Reader

Abstract

To provide a virtual golf support device allowing multiple users to practice golfing and enjoy a virtual golf game.SOLUTION: A virtual golf support device includes: a golf environment simulation device formed to allow hitting of a golf ball and movement of a golf ball by the hitting to become possible physically; an image acquisition module for acquiring an image of a golf ball; and a processor for recognizing a golf ball via a deep learning model on the basis of a golf ball image acquired by the image acquisition module at a point of time when the golf ball is hit on the golf environment simulation device and determining an initial speed and direction of the golf ball, and determining a hitting position at which the golf ball is hit in a virtual play environment for a user's virtual golf and a moving path of the golf ball on the basis of the determined initial speed and direction, and displaying the determined moving path.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a virtual golf assist device and method, and a computer program. [Background technology]

[0002] Golf is a sport in which golfers hit a golf ball from a tee box on a course and ultimately land it in a hole on the green. In order to get the golf ball into a given hole in the fewest number of strokes, golf players study the topography of the course and take a shot while imagining in their mind the trajectory of the golf ball flying and rolling according to the speed and direction of the golf ball. Since the general public imagines the trajectory based on their own personal experience, there are often cases where the actual trajectory of the golf ball and its final landing position are significantly different from the trajectory and position predicted by the golfer.

[0003] Conventionally, as a device for simulating and providing a trajectory of a golf ball, a simulation device for indoor screen golf has been widely used, and this device operates in a manner that when a golfer hits a golf ball toward a screen, the speed and direction are detected and the trajectory of the golf ball is displayed on the screen. However, the golf simulation device is an expensive device that is widely used commercially, requires a large-scale facility, and has a limitation that individuals cannot use it on an actual field.

[0004] Therefore, there is a need for an economical and efficient method and system that allows an individual to easily grasp the trajectory of a golf ball in a small space such as an individual's home using a portable device such as a mobile phone that the individual owns. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2012-165810 A Summary of the Invention [Problem to be solved by the invention]

[0006] An object of one aspect of the present invention is to provide a virtual golf support device, method, and computer program that allows multiple users to enjoy a virtual golf game while practicing golf by easily understanding the trajectory formed by hitting a golf ball in a small space such as an individual's home using a portable device such as a mobile phone that the individual owns. [Means for solving the problem]

[0007] According to one aspect of the present invention, a virtual golf support device includes a golf environment simulator implemented to physically enable hitting a golf ball and moving the golf ball due to the hit; an image acquisition module that acquires an image of the golf ball; and a processor that recognizes the golf ball based on a golf ball image acquired by the image acquisition module when the golf ball is hit on the golf environment simulator, determines an initial speed and direction of the golf ball, determines a movement trajectory of the golf ball based on a hitting position where the golf ball is hit in a virtual playing environment for a user's virtual golf and the determined initial speed and direction, and displays the determined movement trajectory.

[0008] In the present invention, the processor performs an environment setting operation to set the virtual play environment, a position setting operation to set a hit position where the golf ball is hit and a target position to which the golf ball is to reach in the set virtual play environment, a speed and direction determination operation to recognize the golf ball through a pre-trained deep learning model based on a golf ball image acquired by the image acquisition module at the time the golf ball is hit on the golf environment simulator and determine an initial speed and direction of the golf ball, a trajectory determination operation to apply the hit position, the initial speed and direction to a pre-defined movement trajectory model to determine the movement trajectory of the golf ball, and a display operation to superimpose the determined movement trajectory on the virtual play environment and display it.

[0009] In the present invention, the processor further performs a position resetting operation to reset the final point of the movement trajectory determined by the trajectory determination operation to a new hitting position in the virtual play environment if there is no separate operation by the user, and the processor is characterized in that after performing the position resetting operation, it performs the speed direction determination operation, the trajectory determination operation and the display operation again.

[0010] In the present invention, when the position resetting operation and the speed / direction determining operation, the trajectory determining operation and the display operation performed after the position resetting operation are defined as one operation cycle, the processor is characterized in that, unless there is a separate operation by the user, it repeats the operation cycle until the golf ball reaches the target position.

[0011] In the present invention, the processor calculates an initial velocity and direction of the golf ball required for the golf ball to reach the target position from the impact position based on the target position set by the position setting operation and the movement trajectory model, and then provides the calculated initial velocity and direction to a user.

[0012] In the present invention, the processor provides a user with a distance difference and a direction between the final point of the movement trajectory determined by the trajectory determination operation and the target position.

[0013] In the present invention, the processor supports a training mode for allowing one user to practice golf and a game mode for allowing multiple users to play a virtual golf game.

[0014] In the present invention, the game mode corresponds to a mode in which a number of users located at remote locations play a virtual golf game based on the golf environment simulation device and the image acquisition module installed at the location of each user, and the processor records the scores calculated by playing the virtual golf game of the number of users for each of the number of users.

[0015] In the present invention, the image acquisition module includes a stereo camera, and the processor is mounted on a smartphone and acquires three-dimensional position coordinates of the golf ball acquired through the stereo camera via wired or wireless communication, and determines the initial speed and direction.

[0016] The present invention is characterized in that operation instructions to a user and shot results during golf practice and games are supported by voice.

[0017] The present invention provides a method for supporting a user in playing virtual golf based on a golf environment simulator that is implemented in a computing device and physically embodies a hit on a golf ball and a movement of the golf ball due to the hit, and the method includes the steps of: setting a virtual playing environment for virtual golf; setting a hit position where the golf ball is hit in the set virtual playing environment and a target position where the golf ball is to reach; recognizing the golf ball through a pre-trained deep learning model based on a golf ball image acquired at the time the golf ball is hit on the golf environment simulator; analyzing an afterimage of the golf ball image to determine an initial speed and direction of the golf ball; applying the hit position, the initial speed and the direction to a pre-defined movement trajectory model to determine a movement trajectory of the golf ball; and displaying the determined movement trajectory.

[0018] A computer program according to one aspect of the present invention is characterized in that the computer program is coupled to hardware and stored on a computer-readable recording medium to execute the steps of: setting a virtual playing environment for virtual golf; setting an impact position where a golf ball is to be hit and a target position where the golf ball is to reach in the set virtual playing environment; recognizing the golf ball through a pre-trained deep learning model based on a golf ball image acquired at the time the golf ball is hit on a golf environment simulator and determining an initial speed and direction of the golf ball, the golf environment simulator being a device embodied so that hitting a golf ball and moving the golf ball due to the hit are physically possible; applying the impact position, the initial speed and the direction to a pre-defined movement trajectory model to determine a movement trajectory of the golf ball; and displaying the determined movement trajectory. Effect of the Invention

[0019] According to the present invention, a large number of users can enjoy a virtual golf game while practicing golf by easily grasping the trajectory formed by hitting a golf ball in a small space such as a personal home using a portable device such as a personal mobile phone. [Brief description of the drawings]

[0020] [Figure 1] FIG. 1 is an exemplary diagram showing a virtual golf support device according to the present embodiment. [Diagram 2] FIG. 2 is an exemplary diagram showing the virtual golf support device of the present embodiment. [Diagram 3] FIG. 3 is an exemplary diagram showing a UI displayed through a user terminal in the virtual golf support device according to the present embodiment. [Figure 4] FIG. 4 is an exemplary diagram showing a UI displayed through a user terminal in the virtual golf support device according to the present embodiment. [Diagram 5] FIG. 5 is a flow chart showing the virtual golf assist method of the present embodiment. [Figure 6] FIG. 6 is a flow chart and an example diagram for explaining a process of determining a moving trajectory of a golf ball in the virtual golf support device of this embodiment. [Figure 7] FIG. 7 is a flow chart and an example diagram for explaining a process of determining a moving trajectory of a golf ball in the virtual golf support device of this embodiment. [Figure 8] FIG. 8 is a flow chart and an example diagram for explaining a process of determining a moving trajectory of a golf ball in the virtual golf support device of this embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021] Hereinafter, an embodiment of a virtual golf support device and method, and a computer program according to the present invention will be described with reference to the accompanying drawings. In this process, the thickness of lines and the size of components shown in the drawings may be exaggerated for clarity and convenience of the description. In addition, the terms described below are defined in consideration of the functions of the present invention, and may vary depending on the intention or practice of a user or operator. Therefore, such terms should be defined based on the contents of the entire specification.

[0022] 1 and 2 are exemplary diagrams showing a virtual golf support device of the present embodiment, and FIGS. 3 and 4 are exemplary diagrams showing a UI displayed via a user terminal in the virtual golf support device of the present embodiment.

[0023] First, referring to FIG. 1, the virtual golf support device according to the present embodiment may include a processor 100, a memory 200, a positioning unit 300, a communication unit 400, and a display unit 500. The above components 100 to 500 may be embodied in a computing device owned by a user, and the above computing device may be embodied in a user terminal UT owned by a user (a portable device such as a smartphone or a tablet PC, or a dedicated terminal separately provided for providing the virtual golf support service of the present embodiment). A dedicated application (hereinafter, referred to as an application) for providing the virtual golf support service of the present embodiment may be installed in the computing device, and thus, an embodiment may be provided in which the positioning unit 300, the communication unit 400, and the display unit 500 are installed in the user terminal UT owned by the user, and the processor 100 and the memory 200 are embodied in the form of a service server for supporting the function of the dedicated application.

[0024] The processor 100 is a subject that provides the virtual golf support service in this embodiment, and may be embodied as a central processing unit (CPU) or a system on chip (SoC), and may drive an operating system or an application, control a plurality of hardware or software components connected to the processor 100, and perform various data processing and calculations. The processor 100 may be configured to execute at least one instruction stored in the memory 200, and store the execution result data in the memory 200.

[0025] The positioning unit 300 may correspond to a Global Positioning System (GPS) positioning module mounted on the user terminal UT, and the communication unit 400 functions as a wireless communication module (e.g., an LTE or WiFi communication module) mounted on the user terminal UT and may support wireless communication between the user terminal UT and an external system (e.g., an image acquisition module 20 described below). The display unit 500 may be embodied as a display panel, for example, a touch screen panel, of the user terminal UT, and the movement trajectory of the golf ball determined by the processor 100 may be displayed on the display unit 500 and provided to the user.

[0026] The memory 200 may store at least one instruction to be executed via the processor 100 to provide a virtual golf support service based on a user's interfacing with the computing device of the present embodiment. The memory 200 may be embodied in a volatile storage medium and / or a non-volatile storage medium, for example, in a read only memory (ROM) and / or a random access memory (RAM).

[0027] The at least one instruction stored in the memory 200 and executed by the processor 100 may include the following instructions:

[0028] i) Instructions for setting up a virtual golf virtual playing environment. ii) instructions to establish a strike location at which the golf ball will be struck in the virtual playing environment and a target location at which the golf ball will attempt to reach; iii) A command to determine an initial velocity and direction of a golf ball based on an image of the golf ball acquired at the time the golf ball is hit on the golf environment simulator 10. iv) Instructions for applying the impact location, initial velocity and direction to a predefined trajectory model to determine the trajectory of the golf ball. v) A command to display the determined movement trajectory.

[0029] Based on the above, the operation of the virtual golf support device of this embodiment will be specifically described below with reference to FIG.

[0030] 1. Virtual Golf Support Device Referring to FIG. 2, the virtual golf support device of this embodiment may include a golf environment simulator 10, an image acquisition module 20 and the processor 100 described above.

[0031] The golf environment simulator 10 may be embodied so that a hit on a golf ball and a movement of the golf ball due to the hit are physically possible. Specifically, this embodiment focuses on a short game and a putting game of golf, and the golf environment simulator 10 may be physically installed in a space where a user is located with a size that can support the short game and the putting game of the user. As shown in FIG. 2, the golf environment simulator 10 may be configured to include a mat M on which the golf ball moves and a net N that limits the movement of the hit golf ball (i.e., prevents the golf ball from flying too far). Side walls (not shown) may be provided at the left and right ends of the mat M to prevent the golf ball from coming off the mat. In addition, the mat M may be displayed with a tee box point T, a center line ML, and a target point MP located at a predetermined point within the center line for left and right braking, and the net N may also be displayed with an auxiliary line NL indicating the flight altitude of the golf ball. As described above, the golf environment simulator 10 may have a size that can support the short game and the putting game of the user. For example, the mat M may have a length of 2m and a width of 70cm, the net N may have a width of 1m and a height of 1m and the side walls may have a height of 2mm.

[0032] The image acquisition module 20 may be installed in a space where a user is located within a range where the image of the golf ball can be acquired and transmitted to the processor 100 described later via wired or wireless communication. The image acquisition module 20 may be configured to include a stereo camera to acquire three-dimensional position coordinates (world coordinates) of the golf ball. The three-dimensional position coordinates of the golf ball acquired by the image acquisition module 20 can be used by the processor 100 described later to calculate the initial speed of the golf ball. In addition, the two cameras included in the stereo camera may be pre-calibrated with a tee box point or a target point on the mat as a feature point.

[0033] In order to capture an image of the golf ball at a predetermined height, the image acquisition module 20 may be installed in a state held by a stand S, or a structure in which the user terminal UT is held by the stand S may be adopted. The movement trajectory of the golf ball determined by the processor 100 described below and the result of the user's shot may basically be displayed and provided to the user through a display unit 500 of the user terminal UT held by the stand S, and the result of the shot may be provided to the user by voice through a speaker provided in the user terminal UT. The screen displayed on the user terminal UT may be displayed through a television or a personal computer provided in the space where the user is located through a mirroring function.

[0034] As described above, the processor 100 corresponds to an entity that provides the virtual golf support service, and may be implemented in a manner in which it is installed in the user terminal UT or in a service server. When the processor 100 is included in the service server, in this embodiment, the processor 100 of the service server may be implemented in a communication manner that supports the functions of an application installed in the user terminal UT.

[0035] The processor 100 of the present embodiment determines an initial speed of a golf ball based on a golf ball image acquired by the image acquisition module 20 when the golf ball is hit in the golf environment simulator 10, determines a moving trajectory of the golf ball based on a hitting position where the golf ball is hit in a virtual playing environment for a user's virtual golf and the determined initial speed, and can display the determined moving trajectory through the above-mentioned display unit 500. The operation of the processor 100 will be described in more detail as follows.

[0036] First, the processor 100 generates a user account (account generation operation) according to a user operation (e.g., touch) on an application installed in the user terminal UT. The golf ball movement trajectory and hitting result (e.g., hole-in, concede, remaining distance) described below are classified and stored for each user account.

[0037] Next, the processor 100 sets a virtual playing environment (e.g., a specific field (golf course) to play virtual golf) for the user's virtual golf according to the user's operation on the application (environment setting operation). The virtual playing environment includes information about the field and actual terrain data of the field. The terrain data may correspond to three-dimensional terrain data (3D Terrain Map) having a three-axis coordinate system in which the altitude acquired by a LiDAR positioning method is reflected on a two-dimensional orthogonal image. The terrain data may be stored in advance in the memory 200 after the terrain (position and altitude) of the field is positioned using a LiDAR sensor mounted on an aircraft such as a drone, and thus the terrain data may correspond to three-dimensional positioning data having a three-axis coordinate system.

[0038] Next, the processor 100 sets the club to be used for hitting the golf ball according to the user's operation on the application (club setting operation). If a putter is selected as the club, the processor 100 regards the hit as putting (in this case, only the rolling trajectory is determined in the process of determining the movement trajectory of the golf ball, which will be described later.) If another club (e.g., a wedge) is selected, the processor 100 regards the hit as an approach. If there is no separate operation by the user (default), the hit is regarded as putting.

[0039] Next, the processor 100 sets the hitting position where the golf ball is hit in the virtual play environment and the target position where the golf ball is to reach in accordance with the user's operation on the application (position setting operation). That is, the hitting position and the target position can be set by the user touching a specific point while the virtual play environment (terrain data) is displayed through the user terminal UT. Since the virtual play environment, i.e., the terrain data, corresponds to three-dimensional positioning data having a three-axis coordinate system, the hitting position and the target position are also configured in three-dimensional position coordinates.

[0040] Next, the processor 100 recognizes the golf ball based on the golf ball image acquired by the image acquisition module 20 at the time when the golf ball is hit by the user on the golf environment simulator 10 (golf ball recognition operation), and determines the initial speed and direction of the golf ball (speed determination operation). As described above, the processor 100 can grasp the three-dimensional position coordinates of the golf ball acquired by the image acquisition module 20 (i.e., the stereo camera), and can determine the initial speed of the golf ball by differentiating the change in the acquired three-dimensional position coordinates with respect to time. Hereinafter, the initial speed of the golf ball will be described as including three-axis direction information as a vector concept.

[0041] At this time, the processor 100 may recognize the golf ball by applying a known image processing algorithm to the stereo camera images, or may recognize the golf ball by applying pixel information of the stereo camera images to a deep learning model as a pre-trained artificial intelligence model. When recognizing the golf ball through a deep learning model, the processor 100 may recognize the golf ball at a more accurate level. In particular, when a convolution neural network is used, the golf ball may be recognized accurately in real time without many calculations. In this case, the initial speed and direction of the golf ball may be determined by analyzing the afterimage of the stereo camera images and comparing the pixel position of the golf ball in a stationary state with the pixel position of the golf ball that has moved for a predetermined time.

[0042] Next, the processor 100 applies the impact position and initial velocity determined through the above process to a predefined trajectory model to determine the trajectory of the golf ball (trajectory determination operation). The trajectory of the golf ball may include a flight trajectory, a rebound trajectory, and a rolling trajectory, and therefore the process of determining the trajectory of the golf ball may be roughly divided into a process of determining a flight trajectory, a process of determining a rebound trajectory, and a process of determining a rolling trajectory. The process of determining the trajectory of the golf ball will be described in detail later.

[0043] Next, the processor 100 superimposes the movement trajectory determined as above on the virtual playing environment and displays it through the display unit 500 of the user terminal UT (display operation) (FIGS. 3 and 4 show an example of a UI including the movement trajectory of the golf ball displayed through the user terminal UT) (FIG. 4 shows a plurality of golf ball movement trajectories to facilitate understanding of the embodiment). Along with the movement trajectory of the golf ball, user setting information (hitting position and target position, the horizontal distance and height between the hitting position and the target position, etc.), hitting environment information (club used, initial speed and direction of the golf ball, backspin, etc.), and hitting result information (hole in, concede, remaining distance, etc.) can also be displayed.

[0044] If the user's shot result is not a hole-in or concede (i.e., the golf ball does not reach the target position) and the user does not perform a separate operation on the application, such as clicking a "Stop" button to end the virtual golf on the UI provided through the application or clicking a "New Shot" button for a new shot, the processor 100 performs an additional operation to continue the user's virtual golf. Specifically, the processor 100 resets the final point of the golf ball's movement trajectory to a new shot position in the virtual play environment (position resetting operation), and then performs the above-mentioned speed determination operation, trajectory determination operation, and display operation again.

[0045] When the above-mentioned position resetting operation and the golf ball recognition operation, speed determination operation, trajectory determination operation, and display operation performed after the position resetting operation are defined as one operation cycle, the processor 100 repeats the above-mentioned operation cycle until the golf ball reaches the target position unless the user performs a separate operation on the application, such as clicking the "Stop" button on the UI to end virtual golf or the "New Shot" button for a new shot. Thus, unless the user performs a separate stop operation, the user can continue playing virtual golf until a hole-in or concede occurs, and the distance difference (i.e., the remaining distance) between the final point of the movement trajectory and the target position is provided to the user through the application every time one operation cycle is completed (i.e., every time the user hits) until the golf ball reaches the target position. In addition, the user's score is continuously updated and stored during the virtual golf process, and the current score can be provided when the "Score" button on the UI is clicked.

[0046] When a user clicks a "Hint" button on a UI provided through the application, the processor 100 may calculate an initial velocity of the golf ball required to reach a target position from a currently set hitting position, and then provide the calculated initial velocity to the user through the application. In this process, the initial velocity of the golf ball provided to the user functions as "correct data" for reaching the target position, and the user may hit the golf ball by referring to the initial velocity as correct data provided through the application. As described above, since the initial velocity is a vector, "speed" and "direction" are provided to the user together. The initial velocity may be calculated based on the above-mentioned movement trajectory model. That is, as described below, the movement trajectory model operates to calculate the movement trajectory of the golf ball by inputting the hitting position and initial velocity of the golf ball, and therefore, the processor 100 may calculate the initial velocity of the golf ball required to reach the target position by setting the final point of the movement trajectory of the golf ball as a target position, inputting it back into the movement trajectory model together with the hitting position of the golf ball, and back-calculating the initial velocity of the golf ball.

[0047] In addition, the processor 100 can support a training mode for one user to practice golf and a game mode for multiple users to play a virtual golf game through the application, and the operations of the processor 100 described above are commonly applied to the training mode and the game mode.

[0048] The game mode corresponds to a mode in which multiple users located at remote locations play a virtual golf game using the golf environment simulator 10 and the image acquisition module 20 installed at the location where each user is located. That is, multiple users can create user accounts through an application on their own user terminal UT, connect to the service server, and play a virtual golf game online. The processor 100 (e.g., the processor of the service server) can record the scores calculated by playing the virtual golf games of multiple users for each user, and provide them through the application.

[0049] 2. Virtual golf support method Fig. 5 is a flow chart showing the virtual golf support method of this embodiment. The virtual golf support method of this embodiment will be described with reference to Fig. 5. A detailed description of the parts that overlap with the above content will be omitted, and the time series structure will be mainly described.

[0050] First, the processor 100 creates a user account in response to a user operation on an application installed in the user terminal UT (S100).

[0051] Next, the processor 100 sets a virtual playing environment for the user's virtual golf according to the user's operation on the application (S200), sets a club to be used for hitting the golf ball (S300), and sets a hitting position where the golf ball is hit in the virtual playing environment and a target position where the golf ball is to reach (S400). The order of execution of steps S200 to S400 does not matter.

[0052] Next, the processor 100 determines an initial velocity of the golf ball based on the golf ball image acquired by the image acquisition module 20 at the time when the golf ball is hit by the user on the golf environment simulator 10 (S500).

[0053] Next, the processor 100 applies the impact position and initial velocity determined in steps S400 and S500, respectively, to a predefined movement trajectory model to determine the movement trajectory of the golf ball (S600). A detailed description of the process of determining the movement trajectory of the golf ball will be given later.

[0054] Next, the processor 100 superimposes the movement trajectory determined in step S600 on the virtual play environment and displays it through the display unit 500 of the user terminal UT (S700).

[0055] If the user's shot result is not a hole-in or a concede (i.e., the golf ball does not reach the target position), and the user does not perform any other operation on the application, such as clicking a "Stop" button to end the virtual golf game on the UI provided through the application or clicking a "New Shot" button for a new shot (S800), the processor 100 resets the final point of the golf ball's movement trajectory to a new shot position in the virtual playing environment (S900), and then performs the above-mentioned steps S500, S600, and S700 again.

[0056] When step S900 and steps S500, S600, and S700 which are performed after step S900 are defined as one operation cycle, the above operation cycle is repeated until a termination condition is satisfied at step S800.

[0057] When the user clicks a 'Hint' button on a UI provided through the application during the process of steps S400 to S900, the processor 100 may calculate an initial velocity of the golf ball required to reach a target position from a currently set hitting position, and then provide the calculated initial velocity to the user through the application. Also, the operations of steps S100 to S900 are commonly applied to a training mode and a game mode supported through the application.

[0058] 3. Method for determining the trajectory of a golf ball Prior to a specific description of the process of determining the movement trajectory of the golf ball, a mesh model that serves as the basis of this embodiment will first be described.

[0059] As shown in FIG. 7, the mesh model is defined as a model in which the terrain data of the field (i.e., the golf course (golf course terrain)) which is the space in which the golf ball moves is emulated using first to Nth planar meshes (N is a natural number greater than or equal to 2, and FIG. 7 shows an example in which N is assumed to be 4, and the mesh model is composed of first to fourth planar meshes MS1 to MS4).

[0060] Each plane mesh is composed of a triangular plane structure, and metadata for each plane mesh (physical attribute data such as the slope and restitution coefficient of the plane mesh, and vertex coordinate data P m , …, P k The mesh model may include mathematical attribute data such as a normal vector n and a stream vector p, and regulation data such as a fairway, a green, a hazard, and OB (Out of Bound) according to the golf course rules. As a result, a plurality of planar meshes (i.e., the first to Nth planar meshes) are continuously arranged with an inclination defined by the above metadata, and the mesh model is configured such that the field is emulated in a three-dimensional space defined by a three-axis coordinate system (x-axis, y-axis, z-axis). FIG. 7 shows a golf ball hitting position B. i B of the first plane mesh MS1 is struck by k Land at point B k Point and B k+1 At point B, the ball bounces back due to the repulsive force. k+2 Start rolling from point P m+1 -Pm+4" on the waypoint B k+3 and the border "P m+2 -P m+4 " Passing point B on the k+4 After entering the fourth plane mesh MS4 through Bs An example of stopping at a point is shown.

[0061] The mesh model constructed as described above is a basis for mathematically defining a flight trajectory model, a rebound trajectory model, and a rolling trajectory model used to calculate the flight trajectory, rebound trajectory, and rolling trajectory of a golf ball, as described below. The process described below is based on the assumption that the processor 100 has received the mesh model defined as above from an external system via the communication unit 400 and stored it in the memory 200.

[0062] Based on the above description, the process of determining the trajectory of the golf ball will be specifically explained below with reference to Figures 6 to 8, and in order to specify the time series configuration, the explanation will be based on each stage of "2. Virtual golf support method" mentioned above.

[0063] 6, first, the processor 100 grasps the hitting position of the golf ball set in step S400 and the initial velocity of the golf ball determined in step S500 (S610). The hitting position and the initial velocity of the golf ball have three-axis components based on a three-axis coordinate system.

[0064] When the impact position and initial velocity of the golf ball are specified through step S610, the processor 100 determines the flight trajectory of the golf ball from when it starts flying due to the impact force until it lands in the Mth plane mesh included in the mesh model by applying the impact position and initial velocity of the golf ball as flight trajectory calculation factors to a predefined flight trajectory model (S620). The plane mesh where the golf ball first lands (i.e., the plane mesh corresponding to the target position set in step S400) is represented as the Mth plane mesh (M is a natural number equal to or less than N), and Figures 7 and 8 show an example of the Mth plane mesh being the first plane mesh MS1.

[0065] In the present embodiment, in order to reduce the computation load, only gravity is considered as a force acting on the golf ball in flight. Therefore, the acceleration acting on the golf ball in flight is expressed by the following Equation 1.

[0066]

number

[0067] In formula 1, a x , a y , a z are the accelerations in the x-, y-, and z-axes, respectively, and g is the acceleration due to gravity.

[0068] The flight trajectory model applied in step S620 is defined by the following Equation 2 according to the equation of constant acceleration motion.

[0069]

number

[0070] In Equation 2, v(t) is the speed of the golf ball t hours after the start of flight, Vi is the initial speed of the golf ball, a is the acceleration acting on the golf ball, B(t) is the position of the golf ball t hours after flight, B i is the impact position of the golf ball. i ,a,B(t),B i has three axis components in a three-axis coordinate system.

[0071] Note that the normal vector of the Mth plane mesh where the golf ball first lands is n(n x , n y , n z )=n(cosα, cosβ, cosθ) (where α, β, and θ are the angles that the normal vector makes with the x-axis, y-axis, and z-axis, respectively, and n is vector notation), and the coordinates of one vertex of the Mth plane mesh are (X m , Ym , Z m ), the equation of the plane as a mathematical model defining the Mth plane mesh is expressed by the following Equation 3.

[0072]

number

[0073] In Equation 3, the variables x, y, and z are the coordinates of a point on the Mth planar mesh.

[0074] This enables the processor 100 to determine the flight time and landing position of the golf ball from when it starts flying until it lands within the Mth planar mesh, based on the mathematical model (Equation 3) that defines the Mth planar mesh and the flight trajectory model (Equation 2) (S621).

[0075] Specifically, the golf ball is struck at position B. i =(x i , y i , z i ), flight time T L , golf ball landing position B L =(x L , y L , z L ), then the landing position of the golf ball can be expressed by the following equation 4 using equations 1 and 2.

[0076]

number

[0077] In Equation 4, V ix , V iy , V iz are the x-, y-, and z-components of the initial velocity of the golf ball.

[0078] Since the landing position of the golf ball is on the Mth plane mesh according to formula 3, the following formula 5 is derived.

[0079]

number

[0080] By combining Equation 4 and Equation 5, the flight time of the golf ball T L is derived as shown in the following Equation 6.

[0081]

number

[0082] Flight time T L By determining the landing speed and landing position of the golf ball according to Equation 4, the landing speed V L and landing position B L is derived as shown in the following Equation 7.

[0083]

number

[0084] Through the above process, the processor 100 can determine a flight trajectory that connects the impact position of the golf ball, the flight section determined by the flight trajectory model during flight time, and the landing position of the golf ball (S622).

[0085] Then, the processor 100 determines a bounce trajectory formed by the rebound after the golf ball lands on the Mth planar mesh by applying the landing position and rebound velocity of the golf ball on the Mth planar mesh as rebound trajectory factors to a bounce trajectory model.

[0086] Specifically, after step S620, the processor 100 calculates the rebound velocity of the golf ball from the landing velocity of the golf ball on the Mth planar mesh and the rebound coefficient predefined for the Mth planar mesh (S630). When the rebound coefficient of the Mth planar mesh is defined as e (e.g., 0.6), the following Equation 8 is derived from the velocity relationship before and after the collision.

[0087]

number

[0088] In Equation 8, R(T L ) is the rebound velocity.

[0089] Next, the processor 100 calculates the rebound velocity of the golf ball calculated by Equation 8 by a preset critical value R c The critical value is a reference value for determining whether the golf ball will fly again or roll due to its rebound after landing, and may be stored in advance in the memory 200 as a specific value based on the designer's intention and experimental results (e.g., 1.0 mm / s).

[0090] If it is determined in step S640 that the rebound velocity of the golf ball is equal to or greater than the critical value, the processor 100 applies the landing position and rebound velocity of the golf ball to the flight trajectory calculation factors, and then determines the rebound trajectory by repeatedly performing the above-mentioned step S620. That is, in the first step S620, the hitting position and initial velocity of the golf ball are used as flight trajectory calculation factors, and since the rebound velocity of the golf ball is equal to or greater than the critical value after the golf ball lands, when the golf ball starts flying again, the processor 100 updates the flight trajectory calculation factors for determining the flight trajectory to the landing position and rebound velocity of the golf ball derived from Equation 7, and then determines the rebound trajectory by repeatedly performing step S620 for determining the flight trajectory. The above process is repeated until the rebound velocity of the golf ball becomes less than the critical value.

[0091] If it is determined in step S640 that the rebound speed of the golf ball is less than the critical value (including the case where it is determined that the rebound speed of the golf ball is less than the critical value after step S620 is repeated), the processor 100 determines the rolling trajectory of the golf ball rolling on the K-th plane mesh by applying the rolling start position of the golf ball on the K-th plane mesh, the rolling start speed, and the external force acting on the golf ball as rolling trajectory calculation factors to a predefined rolling trajectory model (S650). K is a natural number between M and N, that is, when the golf ball lands on the M-th plane mesh and starts rolling, the K-th plane mesh is the same as the M-th plane mesh, and when the golf ball moves to an adjacent plane mesh by repeating a number of flights, the K-th plane mesh may correspond to any one of the K+1 to N-th plane meshes. Hereinafter, step S650 will be described assuming that the K-th plane mesh and the M-th plane mesh are the same.

[0092] In step S650, the processor 100 determines the rolling trajectory using a flow line vector defined by the normal vector and the inclination of the K-th plane mesh as a mediating factor. As is well known, a flow line is a line along which an object on a plane moves due to gravity in the vertical direction and the inclination of the plane, and the flow line vector of the K-th plane is determined by the normal vector and the inclination of the K-th plane mesh as p(p x , p y , p z )=p(n x ·n z / sinθ, n y ·n z / sinθ, -sinθ).

[0093] The external forces acting on the golf ball as rolling trajectory calculation factors may include gravity and friction acting on the golf ball on the K-th plane mesh. Since the golf ball rolls on the K-th plane mesh having a certain inclination, the gravitational acceleration acting on the golf ball must be corrected by the above-mentioned streamline vector. Therefore, taking into account the corrected gravitational acceleration and the friction deceleration acting on the golf ball according to the friction coefficient of the K-th plane mesh, the acceleration acting on the golf ball during the rolling movement is expressed by the following Equation 9.

[0094]

number

[0095] In formula 9, g p is the corrected gravitational acceleration (g sinθ), μ is the friction deceleration of the K-th plane mesh (m / s 2 ), and u is the unit vector of the starting velocity.

[0096] The rolling trajectory model applied in the S650 step is defined by the following Equation 10 according to the equation of constant acceleration motion.

[0097]

number

[0098] In Equation 10, v(t) is the velocity of the golf ball t hours after it starts rolling, V i is the rolling start speed, a is the acceleration acting on the golf ball, B(t) is the position of the golf ball after t time, B i is the starting position of the roll. v(t), V i ,a,B(t),B i has three-axis components in a three-axis coordinate system (for convenience, it is expressed in the same notation as Equations 1 to 7 for calculating the flight trajectory of a golf ball, but it will be made clear that each factor of Equations 1 to 7 in the S620 stage and each factor of Equations 9 to 17 in the S650 stage and the S660 stage are clearly distinguished).

[0099] In step S650, the processor 100 counts the rolling time that has elapsed since the golf ball started to roll (S651), and determines the rolling trajectory in a manner that reflects the rolling section (i.e., B(t) in Equation 10) determined by the rolling trajectory model during the counted rolling time (S652, S653).

[0100] In addition, there may be a case where the golf ball moves from the K-th plane mesh to the K+1-th plane mesh through rolling movement, in which case the processor 100 can perform a continuous rolling trajectory determination operation. The continuous rolling trajectory determination operation is defined as the following process.

[0101] i) A process of determining the time (expressed as transit time) required for a golf ball to travel from the starting position of its rolling on the Kth plane mesh to reach the boundary line from a mathematical model and a rolling trajectory model that define the boundary lines of the Kth plane mesh and the K+1th plane mesh.

[0102] ii) A process of determining the rolling start position and rolling start speed of the golf ball on the K+1-th planar mesh using the passing time and the normal vector of the K+1-th planar mesh.

[0103] iii) A process of determining the rolling trajectory of the golf ball on the K+1-th planar mesh using the determined rolling start position and rolling start speed of the golf ball on the K+1-th planar mesh and the gravity and friction forces acting on the golf ball on the K+1-th planar mesh as rolling trajectory calculation factors.

[0104] To explain each process in detail, when the coordinates of both ends of the boundary line of the Kth plane mesh and the K+1th plane mesh are defined as P2 (X2, Y2, Z2) and P3 (X3, Y3, Z3), respectively, the boundary line is defined by the following Equation 11 (see Figure 8).

[0105]

number

[0106] In formula 11, x c , y c are the x and y coordinates of the point where the golf ball passes through the boundary line (hereinafter referred to as the passing point).

[0107] The time it takes for the golf ball to travel from the starting point of its roll to the point where it reaches the target is T c Then, according to Equation 10, the passing point is expressed by Equation 12 below.

[0108]

number

[0109] By combining Equation 11 and Equation 12, the time it takes for the golf ball to travel from the starting point of its roll to the passing point T c is derived as shown in the following Equation 13.

[0110]

number

[0111] The transit time T c When T is determined, the processor 100 uses the determined passing time and the normal vector of the K+1-th plane mesh to determine the rolling start position and rolling start speed of the golf ball on the K+1-th plane mesh. Since the rolling start position corresponds to the passing point, the processor 100 determines the rolling start speed. However, in this case, when moving from the K-th plane mesh to the K+1-th plane mesh, the inclination is changed, and therefore the normal vector of each plane mesh is also changed, so the processor 100 determines the rolling start speed of the golf ball using the normal vector of the K+1-th plane mesh (i.e., T calculated based on the K-th plane mesh). cThe rolling start speed of the golf ball on the K+1-th plane mesh is determined by correcting the speed of the golf ball on the K+1-th plane mesh using the normal vector of the K+1-th plane mesh.

[0112] T calculated based on the K-th plane mesh c The speed of the golf ball at V i (V cx , V cy , V cz ) when (T c to v(t) in Equation 10), the rolling start speed in the K+1-th planar mesh can be expressed as Equation 14 below.

[0113]

number

[0114] In formula 14, n x ′, n y ′, n z ′ is the normal vector component of the K+1-th plane mesh.

[0115] The processor 100 determines the rolling trajectory of the golf ball on the K+1-th planar mesh using the rolling start position and rolling start speed of the golf ball on the K+1-th planar mesh determined as above, and the gravity and frictional force acting on the golf ball on the K+1-th planar mesh as rolling trajectory calculation factors. The continuous rolling trajectory determination operation according to the formulas 11 to 14 is repeated until the golf ball stops.

[0116] Next, the process of calculating the stopping position of the golf ball will be explained (assuming that the golf ball stops on the K-th plane mesh). The time it takes for the golf ball to stop after it starts rolling (represented as the stopping time) is T s Then, the following formula 15 is derived from formulas 9 and 10.

[0117]

number

[0118] When Equation 15 is divided into components of each axis and rearranged, it is expressed as Equation 16 below.

[0119]

number

[0120] The processor 100 determines T sx , T sy , T sz The maximum value of the final stop time T s It was decided that T s Applying this to B(t) in Equation 10, the final stopping position B s Determine.

[0121] In addition, when the golf ball stops, it is normal for it not to move any further, but if the force applied to the golf ball due to wind or ground movement becomes greater than the frictional force at the time of stopping, the golf ball may start to move. Thus, after step S650, when an external environmental force (wind force or ground movement) emulated by the environmental factors of the field is applied to the golf ball while the golf ball is stopped, the processor 100 can calculate the displacement of the golf ball from the frictional force of the plane mesh where the stopped golf ball is located and the external environmental force, and reflect the calculated displacement of the golf ball in the rolling trajectory (S660).

[0122] The stopping friction force defined by the stopping friction coefficient F L When the external force defined by the acceleration according to Equation 9 is called F, the velocity and position of the golf ball formed by the external environmental forces can be expressed by the following Equation 17 (the mass of the golf ball is assumed to be a constant and therefore has a value of 1).

[0123]

number

[0124] The process of reflecting the displacement due to the external environmental force in the rolling trajectory may be repeated until the golf ball finally comes to a halt (for example, when the stopped state of the golf ball is maintained within a certain period of time).

[0125] In this way, according to the present invention, a large number of users can enjoy a virtual golf game while practicing golf by easily grasping the trajectory formed by hitting a golf ball in a small space such as a personal home using a portable device such as a personal mobile phone. [Industrial Applicability]

[0126] The implementations described herein may be embodied, for example, in a method or process, an apparatus, a software program, a data stream, or a signal. Although only discussed in the context of a single implementation (e.g., only discussed in the context of a method), the implementations of the features discussed may also be embodied in other forms (e.g., apparatus or program). An apparatus may be embodied in appropriate hardware, software, firmware, and the like. A method may be embodied in an apparatus, such as, for example, a processor, which generally refers to a processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as computers, cell phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0127] The present invention has been described with reference to the embodiments shown in the drawings, but these are merely illustrative, and those skilled in the art will appreciate that various modifications and equivalent embodiments are possible. Therefore, the true technical scope of the present invention should be determined by the following claims. [Explanation of symbols]

[0128] 100 processors 200 Memory 300 Positioning unit 400 Communications Department 500 Display unit 10. Golf environment simulator 20 Image Acquisition Module

Claims

[Claim 1] A golf environment simulator that is embodied so as to physically enable impacting a golf ball and moving the golf ball due to said impact; an image capture module for capturing an image of a golf ball; a processor for recognizing the golf ball based on the golf ball image acquired by the image acquisition module when the golf ball is hit on the golf environment simulator, determining an initial speed and direction of the golf ball, determining a movement trajectory of the golf ball based on a hitting position where the golf ball is hit in a virtual playing environment for a user's virtual golf and the determined initial speed and direction, and displaying the determined movement trajectory.

Citation Information

Patent Citations

  • Golf support system, and golf support device and program

    JP2012165810A

Cited By

  • Motion simulation device

    TWI928774B