Changes for page Ball Physics

Last modified by Soeren Domroes on 2025/01/30 12:18

From version 10.1
edited by stu104225
on 2020/03/07 13:20
Change comment: There is no comment for this version
To version 3.1
edited by stu104225
on 2020/03/03 18:55
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,137 +3,55 @@
1 -The **ball physics model**'s main objective is to provide a point in time to the controller, when the ball is predicted to be hittable, in order to not let the ball fall into the drain.
2 -
3 3  \\
4 4  
5 -\\
3 +== Task ==
6 6  
5 +The ball physics model is meant to do things ...
7 7  
7 +\\
8 8  
9 -{{toc/}}
10 -
11 -== Ball trajectory ==
12 -
13 -----
14 -
15 -The trajectory of a ball can be modeled to be parabolic. From two point //p// and //p_old// with corresponding timestamps, the velocity //v// is computed.
16 -For a future point in time //t//, with //t=0 //being the timestamp of// p//, we can then approximately approximately predict the corresponding ball position using the following formulas.
17 -
18 -[[image:attach:Bildschirmfoto von 2020-03-07 12-21-22.png]]
19 -
20 -The incline of the playfield causes a vertical acceleration, which is modeled via a graviatational pull with the factor //g = sin(6°) * 9.81 m/s²//.
21 -The value of 6° is the incline of the playfield  measured on the physical device.
22 -
23 -== Prediction ==
24 -
25 -----
26 -
27 -TODO
28 -
29 29  == Configuration ==
30 30  
31 -----
11 +=== Points of interest ===
32 32  
33 -=== Prediction parameters ===
13 +\\
34 34  
35 -(% class="wrapped" %)
36 -|=(((
37 -Parameter
38 -)))|=(((
39 -Description
40 -)))|=(((
41 -Default value
42 -)))
43 -|(((
44 -PREDICTION_FRAME
45 -)))|(((
46 -window size for prediction - How far
15 +[[image:attach:physics_points.png]]
47 47  
48 -into the future are predctions calculated at most.
49 -)))|(((
50 -70ms
51 -)))
52 -|(((
53 -PREDICTION_STEP_SIZE
54 -)))|(((
55 -size of the steps for the forward search
56 -)))|(((
57 -10ms
58 -)))
59 -|(((
60 -REFINEMENT_FACTOR
61 -)))|(((
62 -The prediction step size for the reverse search is
63 -PREDICTION_STEP_SIZE divided by REFINEMENT_FACTOR.
64 -)))|(((
65 -10
66 -)))
17 +=== Flipper range ===
67 67  
68 -When setting the PREDICTION_FRAME keep in mind, that predictions, that reach multiple frames into the future, are likely to be overwritten, when new frames arrive and new predictions are calculated.
69 -Nevertheless it is reasonable to calculate predictions beyond the next frame in case a ball is not recognized on the next frame.
19 +\\
70 70  
71 -With the default values up to 7 predictions are calculated if the ball is not predicted to be in flipper range roughly within the next two frames.
21 +\\
72 72  
73 -The REFINEMENT_FACTOR is also the worst case number of predictions calculated during the reverse search part of the prediction process.
23 +\\
74 74  
75 75  \\
76 76  
77 -=== Flipper range ===
27 +[[image:attach:physics2.png]]
78 78  
79 -The model of the area, where the the flippers can hit a ball is computed from a set of five points. These points are set to real world coordinates in meter
29 +\\
80 80  
81 -and should not need further adjustment after the camera is correctly calibrated (see [[doc:World Coordinate System]]).
31 +=== Inlane Area ===
82 82  
83 -The values for the left flipper are set to be symmetrical.
33 +[[image:attach:physics_inlane.png]]
84 84  
85 -[[image:attach:physics_points.png]]
35 +\\
86 86  
87 -(% class="wrapped" %)
88 -|=(((
89 -Point#
90 -)))|=(((
91 -Description
92 -)))
93 -|(((
94 -1
95 -)))|(((
96 -center point of the circle that the flippers tip moves o
97 -)))
98 -|(((
99 -2
100 -)))|(((
101 -highest point a ball can be at when it hits the resting flipper
102 -)))
103 -|(((
104 -3
105 -)))|(((
106 -lowest point a ball can be at when it hits the resting flipper
107 -)))
108 -|(((
109 -4
110 -)))|(((
111 -lowest point a ball can be at when it hits the fully triggered flipper
112 -)))
113 -|(((
114 -5
115 -)))|(((
116 -highest point a ball can be at when it hits the fully triggered flipper
117 -)))
37 +=== Prediction parameters ===
118 118  
119 119  \\
120 120  
121 -From these points an area, where the ball is deemed to be hittable, is computed.
41 +\\
122 122  
123 -[[image:attach:physics2.png]]
43 +\\
124 124  
125 125  \\
126 126  
127 -=== Inlane Area ===
47 +\\
128 128  
129 -Since the trajectory prediction does not consider collisions in general, we need a different kind of predictions for the inlanes,
130 -i.e. the path feeding a falling ball from the playfield to the flippers, behind the slingshot.
131 -A ball is considered to be in an inlane, when it is in a rectangualar area, with one edge given by the begin of the flipper
132 -and the other by a point at highest, outermost position of the angled part of the inlane.
49 +\\
133 133  
134 -In this area the vertical accelleration is deactivated in the prediction, since it would cause the prediction to assume the would slide into the wall.
135 -Though in reality the still is some accelleration, a simple linear prediction has shown to be practical in this less critical area.
51 +\\
136 136  
137 -[[image:attach:physics_inlane.png]]
53 +\\
54 +
55 +\\
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -71401663
1 +71401639
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/71401663/Ball Physics
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/71401639/Ball Physics