Changes for page Ball Physics
Last modified by Soeren Domroes on 2025/01/30 12:18
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,55 +1,137 @@ 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 + 1 1 \\ 2 2 3 - == Task ==5 +\\ 4 4 5 -The ball physics model is meant to do things ... 6 6 7 -\\ 8 8 9 - == Configuration ==9 +{{toc/}} 10 10 11 -== =Pointsof interest ===11 +== Ball trajectory == 12 12 13 - \\13 +---- 14 14 15 -[[image:attach:physics_points.png]] 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. 16 16 17 - === Flipperrange===18 +[[image:attach:Bildschirmfoto von 2020-03-07 12-21-22.png]] 18 18 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. 20 20 21 - \\23 +== Prediction == 22 22 23 - \\25 +---- 24 24 25 - \\27 +TODO 26 26 27 - [[image:attach:physics2.png]]29 +== Configuration == 28 28 29 - \\31 +---- 30 30 31 -=== InlaneArea ===33 +=== Prediction parameters === 32 32 33 -[[image:attach:physics_inlane.png]] 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 34 34 35 -\\ 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 +))) 36 36 37 -=== Prediction parameters === 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. 38 38 39 - \\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. 40 40 41 - \\73 +The REFINEMENT_FACTOR is also the worst case number of predictions calculated during the reverse search part of the prediction process. 42 42 43 43 \\ 44 44 45 - \\77 +=== Flipper range === 46 46 47 - \\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 48 48 49 - \\81 +and should not need further adjustment after the camera is correctly calibrated (see [[doc:World Coordinate System]]). 50 50 51 - \\83 +The values for the left flipper are set to be symmetrical. 52 52 85 +[[image:attach:physics_points.png]] 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 +))) 118 + 53 53 \\ 54 54 121 +From these points an area, where the ball is deemed to be hittable, is computed. 122 + 123 +[[image:attach:physics2.png]] 124 + 55 55 \\ 126 + 127 +=== Inlane Area === 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. 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. 136 + 137 +[[image:attach:physics_inlane.png]]
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -714016 011 +71401663 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/714016 01/Ball Physics1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/PP18/pages/71401663/Ball Physics