]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robodim/robodim.h
robodim: corrected beacon coords, deleted sharp coords
[eurobot/public.git] / src / robodim / robodim.h
1 /*
2  * robodim_eb2008.h                     08/04/18
3  *
4  * Dimensions for the robot, playground and other stuffs.
5  * Eurobot 2008
6  *
7  * Copyright: (c) 2008 CTU Dragons
8  *            CTU FEE - Department of Control Engineering
9  * License: GNU GPL v.2
10  */
11
12 #ifndef ROBODIM_EB2008_H
13 #define ROBODIM_EB2008_H
14
15 /**
16  * FIXME: update robot's dimensions !!!
17  *
18  * ROBOT DIMENSIONS 
19  *                                   S0
20  *       S4 +--------------------------+ S2
21  *        ^ |   |     |                |--,
22  *     ^  | |   -------    ABE         |   |
23  *   RR|  | |      :<--------------------->|
24  *     v  | |      :             __    |--' 
25  *       W| |      + Center  (L)|__|   |    
26  *        | |  AB  :       AF    HOK   |--,
27  *        | |<---->:<----------------->|   |
28  *        | |   -------                |   |
29  *        v |   |     |                |--' 
30  *       S5 +--------------------------+ S3
31  *                 <-->              S1
32  *                  WR
33  * 
34  * Sx - Sharp sensor
35  */
36
37 /* FIXME needs update (?) // comment added by Filip */
38 #define ROBOT_WIDTH_MM 290      /* W*/
39 #define ROBOT_WIDTH_M (ROBOT_WIDTH_MM/1000.0)
40 #define ROBOT_ROTATION_RADIUS_MM (254/2) /* RR */
41 #define ROBOT_ROTATION_RADIUS_M (ROBOT_ROTATION_RADIUS_MM/1000.0)
42 #define LASER_CENTER_OFFSET_MM 50 /*FIXME*/ /* Distance of the laser from rotation axis (Center to L) */
43 #define LASER_CENTER_OFFSET_M (LASER_CENTER_OFFSET_MM/1000.0)
44 #define ROBOT_WHEEL_RADIUS_MM 40 /* WR */
45 #define ROBOT_WHEEL_RADIUS_M (ROBOT_WHEEL_RADIUS_MM/1000.0)
46 #define ROBOT_AXIS_TO_BACK_MM 75 /* AB */
47 #define ROBOT_AXIS_TO_BACK_M (ROBOT_AXIS_TO_BACK_MM/1000.0)
48 #define ROBOT_AXIS_TO_FRONT_MM 183 /* AF */
49 #define ROBOT_AXIS_TO_FRONT_M (ROBOT_AXIS_TO_FRONT_MM/1000.0)
50 #define ROBOT_AXIS_TO_BRUSH_MM 280 /* ABE */
51 #define ROBOT_AXIS_TO_BRUSH_M (ROBOT_AXIS_TO_BRUSH_MM/1000.0)
52 #define HOKUYO_CENTER_OFFSET_MM 0 /*FIXME*/
53 #define HOKUYO_CENTER_OFFSET_M (HOKUYO_CENTER_OFFSET_MM/1000.0)
54
55 /**
56  * PLAYGROUND DIMENSIONS
57  * 
58  *            S2                          R3
59  *            +-------------+-------------+
60  *        ^   |                      [W,H]|
61  *        |   |                           |
62  *        |   |                           |
63  *        |   |                           |
64  *        |   |                           |
65  *      H | R1+                           + S1
66  *        |   |                           |
67  *        | S4+                           + R4
68  *        |   |                           |
69  *        |   |                           |
70  *        v   |[0,0]                      |
71  *            +-------------+-------------+
72  *            S3                          R2
73  *             <------------------------->
74  *                          W
75  */
76 #define PLAYGROUND_WIDTH_MM     3000
77 #define PLAYGROUND_WIDTH_M      (PLAYGROUND_WIDTH_MM/1000.0)
78 #define PLAYGROUND_HEIGHT_MM    2100
79 #define PLAYGROUND_HEIGHT_M     (PLAYGROUND_HEIGHT_MM/1000.0)
80
81 /**
82  * PUCK DISPENSERS (= COLUMN ELEMENT DISPENSERS)
83  */
84 #define STATIC_DISPENSER_WIDTH_OFFSET   0.289
85 #define DISPENSER_TO_CUSHION_DISTANCE   0.04
86 #define STATIC_DISPENSER_X              (PLAYGROUND_WIDTH_M - STATIC_DISPENSER_WIDTH_OFFSET)
87 #define STATIC_DISPENSER_Y              DISPENSER_TO_CUSHION_DISTANCE
88 #define TRAVELLING_DISPENSER_X          (PLAYGROUND_WIDTH - DISPENSER_TO_CUSHION_DISTANCE)
89 // y coordinate of the travelling dispenser is not known in advance
90 #define OPPONENTS_STATIC_DISPENSER_X    STATIC_DISPENSER_WIDTH_OFFSET
91 #define OPPONENTS_STATIC_DISPENSER_Y    DISPENSER_TO_CUSHION_DISTANCE
92
93 /**
94  * FREE PUCKS POSITIONS
95  */
96 #define PUCK_GRID_X_OFFSET      0.6
97 #define PUCK_GRID_Y_OFFSET      0.925
98 #define PUCK_GRID_DELTA_X       0.25
99 #define PUCK_GRID_DELTA_Y       0.2
100 #define PUCK_GRID_ROWS_NUM      4
101 #define PUCK_GRID_COLS_NUM      3
102
103 /**
104  * BASKET
105  */
106 #define BASKET_WIDTH            0.5
107 #define BASKET_HEIGHT           0.34
108 #define BASKET_VERT_OFFSET      0.35
109
110 #define BLUE_BASKET_TARGET_X    PLAYGROUND_WIDTH_M
111 #define BLUE_BASKET_TARGET_Y    (BASKET_WIDTH/2.0)
112
113 #define RED_BASKET_TARGET_X     0
114 #define RED_BASKET_TARGET_Y     (BASKET_WIDTH/2.0)
115
116      /*
117       * 3 ultrasonic beacons
118       */
119 #define BEACON_WIDTH            0.08
120 #define BEACON_HEIGHT           BEACON_WIDTH
121
122 #define BEACON_GREEN            0
123 #define BEACON_RED              1
124 #define BEACON_CNT              3
125
126 struct beacon_pos {
127         float x, y;
128 };
129
130 extern const struct beacon_pos beacon_green[BEACON_CNT];
131 extern const struct beacon_pos beacon_red[BEACON_CNT];
132
133 /*
134  * Position of Shapr sensors on the robot with respect to the robot center
135  * (not used in EB2009)
136  */
137 struct sharp_pos {
138         float x, y, ang;
139 };
140
141 #define SHARP_COUNT 0  /* no sharp sensors in EB2009, I hope */
142
143 #endif /* ROBODIM_EB2008_H */