Wiki source code of Ball Physics

Version 8.1 by stu104225 on 2020/03/07 11:40

Hide last authors
stu104225 7.1 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.
stu104225 5.1 2
stu104225 1.1 3 \\
4
stu104225 7.1 5 \\
stu104225 1.1 6
7
stu104225 7.1 8
stu104225 5.1 9 {{toc/}}
10
stu104225 4.1 11 == Ball trajectory ==
stu104225 1.1 12
stu104225 5.1 13 ----
14
stu104225 8.1 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
17 \\
stu104225 4.1 18
stu104225 7.1 19 \\
20
stu104225 8.1 21 [[image:attach:Bildschirmfoto von 2020-03-07 12-21-22.png]]
stu104225 7.1 22 \\\\like so: .... [TODO]
23
stu104225 1.1 24 == Configuration ==
25
stu104225 5.1 26 ----
stu104225 1.1 27
stu104225 5.1 28 === Prediction parameters ===
29
stu104225 6.1 30 (% class="wrapped" %)
stu104225 5.1 31 |=(((
32 Parameter
33 )))|=(((
34 Description
35 )))|=(((
36 Default value
37 )))
38 |(((
39 PREDICTION_FRAME
40 )))|(((
41 window size for prediction - How far
42
43 into the future are predctions calculated at most.
44 )))|(((
45 70ms
46 )))
47 |(((
48 PREDICTION_STEP_SIZE
49 )))|(((
50 size of the steps for the forward search
51 )))|(((
52 10ms
53 )))
54 |(((
55 REFINEMENT_FACTOR
56 )))|(((
57 The prediction step size for the reverse search is
58 PREDICTION_STEP_SIZE divided by REFINEMENT_FACTOR.
59 )))|(((
60 10
61 )))
62
stu104225 6.1 63 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.
64 Nevertheless it is reasonable to calculate predictions beyond the next frame in case a ball is not recognized on the next frame.
stu104225 5.1 65
stu104225 6.1 66 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.
stu104225 5.1 67
stu104225 6.1 68 The REFINEMENT_FACTOR is also the worst case number of predictions calculated during the reverse search part of the prediction process.
stu104225 5.1 69
70 \\
71
72 === Flipper range ===
73
stu104225 4.1 74 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
stu104225 1.1 75
stu104225 4.1 76 and should not need further adjustment after the camera is correctly calibrated (see [[doc:World Coordinate System]]).
77
stu104225 5.1 78 The values for the left flipper are set to be symmetrical.
79
stu104225 1.1 80 [[image:attach:physics_points.png]]
81
stu104225 5.1 82 (% class="wrapped" %)
stu104225 4.1 83 |=(((
84 Point#
85 )))|=(((
86 Description
87 )))
88 |(((
89 1
90 )))|(((
91 center point of the circle that the flippers tip moves o
92 )))
93 |(((
94 2
95 )))|(((
96 highest point a ball can be at when it hits the resting flipper
97 )))
98 |(((
99 3
100 )))|(((
101 lowest point a ball can be at when it hits the resting flipper
102 )))
103 |(((
104 4
105 )))|(((
106 lowest point a ball can be at when it hits the fully triggered flipper
107 )))
108 |(((
109 5
110 )))|(((
111 highest point a ball can be at when it hits the fully triggered flipper
112 )))
stu104225 1.1 113
114 \\
115
stu104225 5.1 116 From these points an area, where the ball is deemed to be hittable, is computed.
stu104225 4.1 117
stu104225 1.1 118 [[image:attach:physics2.png]]
119
120 \\
121
122 === Inlane Area ===
123
stu104225 5.1 124 Since the trajectory prediction does not consider collisions in general, we need a different kind of predictions for the inlanes,
125 i.e. the path feeding a falling ball from the playfield to the flippers, behind the slingshot.
126 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
127 and the other by a point at highest, outermost position of the angled part of the inlane.
stu104225 4.1 128
stu104225 6.1 129 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.
130 Though in reality the still is some accelleration, a simple linear prediction has shown to be practical in this less critical area.
131
stu104225 1.1 132 [[image:attach:physics_inlane.png]]