Changes for page Ball Physics

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

From version 14.1
edited by stu120505
on 2023/07/06 14:48
Change comment: Renamed back-links.
To version 5.1
edited by stu104225
on 2020/03/04 17:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,0 @@
1 -PP18.Pinball Project - Winter Term 201920.Project Documentation.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.stu120505
1 +XWiki.stu104225
Content
... ... @@ -1,8 +1,9 @@
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 -The code for what is described in this section can be found in the files "physics.cpp" and "physics.h".
1 +The **ball physics model** is meant to do things ... [TODO]
3 3  
3 +\\
4 4  
5 5  
6 +
6 6  {{toc/}}
7 7  
8 8  == Ball trajectory ==
... ... @@ -9,26 +9,9 @@
9 9  
10 10  ----
11 11  
12 -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.
13 -For a future point in time //t//, with //t=0 //being the timestamp of// p//, we can then approximately predict the corresponding ball position using the following formulas.
13 +The trajectory of a ball can be modeled to be parabolic.
14 +\\\\\\like so: .... [TODO]
14 14  
15 -[[image:attach:Bildschirmfoto von 2020-03-07 12-21-22.png]]
16 -
17 -The incline of the playfield causes a vertical acceleration, which is modeled via a gravitational pull with the factor //g = sin(6°) * 9.81 m/s²//.
18 -The value of 6° is the incline of the playfield  measured on the physical device.
19 -
20 -== Prediction ==
21 -
22 -----
23 -
24 -The controller calls the function //full_prediction// passing it two subsequent ball positions with timestamps. From these a ball trajectory is inferred as described above.
25 -Along the trajectory future times are stepwise tested for whether the corresponding predicted position is in the flipper range.
26 -Once a position inside the flipper range is found the search is continued both forwards and backwards in smaller steps in order to find a good enough estimate of the first and last possible time to hit the ball.
27 -If the trajectory does not intersect the flipper range within a certain prediction frame (see below "**Prediction parameters**") a value far enough into the future is returned, that will be overwritten by subsequent predictions.
28 -
29 -With the current configuration the controller uses the middle point in time between the first and last possible time in order to be most positive to hit the ball.
30 -The computed velocity is also passed to the controller and used is some more advanced  tactical decisions like catching balls.
31 -
32 32  == Configuration ==
33 33  
34 34  ----
... ... @@ -35,7 +35,6 @@
35 35  
36 36  === Prediction parameters ===
37 37  
38 -(% class="wrapped" %)
39 39  |=(((
40 40  Parameter
41 41  )))|=(((
... ... @@ -48,7 +48,7 @@
48 48  )))|(((
49 49  window size for prediction - How far
50 50  
51 -into the future are predictions calculated at most.
34 +into the future are predctions calculated at most.
52 52  )))|(((
53 53  70ms
54 54  )))
... ... @@ -68,20 +68,19 @@
68 68  10
69 69  )))
70 70  
71 -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.
72 -Nevertheless it is reasonable to calculate predictions beyond the next frame in case a ball is not recognized on the next frame.
54 +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.
73 73  
74 -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.
56 +\\
75 75  
76 -The REFINEMENT_FACTOR is also the worst case number of predictions calculated during the reverse search part of the prediction process.
58 +So this number is also the worst case number of predictions calculated during the reverse search part of the prediction process.
77 77  
78 78  \\
79 79  
80 80  === Flipper range ===
81 81  
82 -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 meters
64 +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
83 83  
84 -and should not need further adjustment after the camera is correctly calibrated (see [[doc:PP18.Pinball Project - Winter Term 201920.Project Documentation.World Coordinate System.WebHome]]).
66 +and should not need further adjustment after the camera is correctly calibrated (see [[doc:World Coordinate System]]).
85 85  
86 86  The values for the left flipper are set to be symmetrical.
87 87  
... ... @@ -131,10 +131,7 @@
131 131  
132 132  Since the trajectory prediction does not consider collisions in general, we need a different kind of predictions for the inlanes,
133 133  i.e. the path feeding a falling ball from the playfield to the flippers, behind the slingshot.
134 -A ball is considered to be in an inlane, when it is in a rectangular area, with one edge given by the beginning of the flipper
116 +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
135 135  and the other by a point at highest, outermost position of the angled part of the inlane.
136 136  
137 -In this area the vertical acceleration is deactivated in the prediction, since it would cause the prediction to assume the ball would slide into the wall.
138 -Though in reality there is still some acceleration, a simple linear prediction has shown to be practical in this less critical area.
139 -
140 140  [[image:attach:physics_inlane.png]]
Bildschirmfoto von 2020-03-07 12-21-22.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -35.9 KB
Content
physics2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -50.7 KB
Content
physics_inlane.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -145.2 KB
Content
physics_points.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
Size
... ... @@ -1,1 +1,0 @@
1 -96.5 KB
Content
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -71401594
1 +71401643
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/71401594/Ball Physics
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/71401643/Ball Physics