Object Hunt  v0.2
Hunts for a not specified object in an unknown environment
ObjectHuntDefinitions.h
1 //
2 // Created by robert on 04.12.19.
3 //
4 
5 #ifndef OBJECT_HUNT_BASE_OBJECTHUNTDEFINITIONS_H
6 #define OBJECT_HUNT_BASE_OBJECTHUNTDEFINITIONS_H
7 
8 #include <cstdint>
9 
14 namespace Socket
15 {
20  namespace Ports
21  {
22  const uint16_t BASE = 19001;
23  const uint16_t NAVIGATION = 19002;
24  }
25 
30  namespace Settings
31  {
32  const int QUEUE_LENGTH = 5;
33  const uint8_t MAX_CONNECTIONS = 32;
34  }
35 }
36 
41 namespace ReturnValue
42 {
43  const int8_t COMMON_ERROR = -3;
44  const int8_t NO_CONNECTION = -2;
45  const int8_t POWER_OFF = -1;
46  const int8_t LEAVE_SUCCESS = 0;
47 }
48 
53 namespace Button
54 {
55  const uint8_t START_STOP = 21;
56 }
57 
63 namespace Action
64 {
65  const uint8_t MOTOR = 0;
66  const uint8_t STEPPER = 1;
67  const uint8_t ULTRA_SONIC = 2;
68  const uint8_t REVOLUTION = 3;
69  const uint8_t SPEED = 4;
70  const uint8_t ROTATION = 5;
71  const uint8_t ORIENTATION = 6;
72  const uint8_t START = 7;
73  const uint8_t TERMINATE = 8;
74  const uint8_t IDENTIFIER_MAPPING = 9;
75  const uint8_t IDENTIFIER_CAMERA = 10;
76  const uint8_t OBJECT_DETECTED = 11;
77  const uint8_t ROTATION_COMPLETE = 12;
78  const uint8_t OBJECT_DETECTED_ACK = 13;
79 }
80 
86 namespace Motor
87 {
92  struct Command
93  {
94  uint8_t devices;
95  uint8_t direction;
96  uint8_t duty_cycle;
98  };
99 
104  namespace Device
105  {
106  const uint8_t FRONT_RIGHT = 0x01;
107  const uint8_t FRONT_LEFT = 0x02;
108  const uint8_t BACK_RIGHT = 0x04;
109  const uint8_t BACK_LEFT = 0x08;
110  }
111 
116  namespace Direction
117  {
118  const uint8_t FORWARD = 0x01;
119  const uint8_t BACKWARD = 0x02;
120  const uint8_t NOT_MOVING = 0x04;
121  }
122 
128  namespace Pin
129  {
130  // M1
131  const uint8_t FR_FORWARD = 7;
132  const uint8_t FR_BACKWARD = 11;
133  // M2
134  const uint8_t FL_FORWARD = 1;
135  const uint8_t FL_BACKWARD = 0;
136  // M3
137  const uint8_t RL_FORWARD = 6;
138  const uint8_t RL_BACKWARD = 13;
139  // M4
140  const uint8_t RR_FORWARD = 19;
141  const uint8_t RR_BACKWARD = 16;
142  }
143  const uint8_t ENABLE_ALL = 20;
145  const uint32_t PWM_FREQUENCY = 1000;
146 }
147 
154 namespace Stepper
155 {
160  struct Command
161  {
162  uint8_t direction;
163  uint8_t steps;
164  };
165 
170  namespace Direction
171  {
172  const uint8_t LEFT = 0;
173  const uint8_t RIGHT = 1;
174  }
175 
181  namespace Pin
182  {
183  // Blue
184  const uint8_t ONE = 8;
185  // Pink
186  const uint8_t TWO = 9;
187  // Yellow
188  const uint8_t THREE = 25;
189  // Orange
190  const uint8_t FOUR = 10;
191  }
192  const uint16_t COUNTS_PER_REV = 512;
193  const uint8_t MAX_STEPS = COUNTS_PER_REV/4;
194  const uint16_t IDLE_TIME = 1000;
195  const uint8_t LOOKUP[8] = {0b01000, 0b01100, 0b00100, 0b00110, 0b00010, 0b00011, 0b00001, 0b01001};
197 }
198 
203 namespace UltraSonic
204 {
205 
210  struct Request
211  {
212  uint32_t id;
213  uint8_t pad__;
214  uint8_t res0__;
215  uint8_t res1__;
216  uint8_t devices;
218  };
219 
224  struct Response
225  {
226  uint32_t id;
235  };
236 
241  namespace Device
242  {
243  const uint8_t FRONT = 0x01;
244  const uint8_t REAR = 0x02;
245  const uint8_t LEFT = 0x04;
246  const uint8_t RIGHT = 0x08;
247  }
248 
253  namespace Pin
254  {
255  const uint8_t FRONT_TRIGGER = 4;
256  const uint8_t FRONT_ECHO = 23;
257  const uint8_t REAR_TRIGGER = 18;
258  const uint8_t REAR_ECHO = 17;
259  const uint8_t LEFT_TRIGGER = 5;
260  const uint8_t LEFT_ECHO = 22;
261  const uint8_t RIGHT_TRIGGER = 12;
262  const uint8_t RIGHT_ECHO = 27;
263  }
264 }
265 
270 namespace Revolution
271 {
276  struct Request
277  {
278  uint32_t id;
279  uint8_t pad__;
280  uint8_t res0__;
281  uint8_t res1__;
282  uint8_t devices;
283  };
284 
289  struct Response
290  {
291  uint32_t id;
294  int32_t count_rear_left;
296  };
297 
302  namespace Device
303  {
304  const uint8_t FRONT_RIGHT = 0x1;
305  const uint8_t FRONT_LEFT = 0x2;
306  const uint8_t REAR_RIGHT = 0x4;
307  const uint8_t REAR_LEFT = 0x8;
308  }
309 
315  namespace Pin
316  {
317  const uint8_t FRONT_RIGHT = 14;
318  const uint8_t FRONT_LEFT = 15;
319  const uint8_t REAR_LEFT = 24;
320  const uint8_t REAR_RIGHT = 26;
321  }
322 }
323 
328 namespace Speed
329 {
330  const int MEASUREMENT_INTERVAL_MS = 250;
331  const float WHEEL_DIAMETER_CM = 6.61;
332  const float WHEEL_EXTENT_CM = float(3.141592654 * WHEEL_DIAMETER_CM);
333  const uint8_t COUNTS_PER_REVOLUTION = 20;
334  const float DISTANCE_PER_COUNT_CM = WHEEL_EXTENT_CM / COUNTS_PER_REVOLUTION;
340  struct Request
341  {
342  uint32_t id;
343  };
344 
349  struct Response
350  {
351  uint32_t id;
352  float value;
353  };
354 
360  {
361  uint32_t id;
362  float value;
363  float time_diff_ms;
364  };
365 }
366 
371 namespace Rotation
372 {
375  const uint8_t DUTY_CYCLE = 90;
381  struct Command
382  {
383  uint8_t direction;
384  uint8_t pad__;
385  uint8_t res0__;
386  uint8_t res1__;
387  float degree;
388  };
389 
394  namespace Direction
395  {
396  const uint8_t LEFT = 0;
397  const uint8_t RIGHT = 1;
398  }
399 }
400 
405 namespace Orientation
406 {
411  struct Request
412  {
413  uint32_t id;
414  };
415 
420  struct Response
421  {
422  uint32_t id;
423  float xyz[3];
425  };
426 
432  {
433  uint32_t id;
434  float xyz[3];
436  float time_diff_ms;
437  };
438 }
439 
445 {
446  const uint8_t SDA = 2;
447  const uint8_t SCL = 3;
448 }
449 
450 #endif //OBJECT_HUNT_BASE_OBJECTHUNTDEFINITIONS_H
const uint8_t REVOLUTION
Revolution action.
Definition: ObjectHuntDefinitions.h:68
const uint8_t ULTRA_SONIC
Ultra sonic action.
Definition: ObjectHuntDefinitions.h:67
const uint8_t RR_BACKWARD
Rear right backward.
Definition: ObjectHuntDefinitions.h:141
float degree
The degrees to rotate.
Definition: ObjectHuntDefinitions.h:387
Ultra sonic measurement request.
Definition: ObjectHuntDefinitions.h:210
const float WHEEL_EXTENT_CM
Extent of the wheels.
Definition: ObjectHuntDefinitions.h:332
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:351
const int8_t POWER_OFF
Shutdown the RaspberryPi.
Definition: ObjectHuntDefinitions.h:45
const uint8_t SDA
Data pin.
Definition: ObjectHuntDefinitions.h:446
Speed request.
Definition: ObjectHuntDefinitions.h:340
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:361
const uint8_t LEFT
Left direction.
Definition: ObjectHuntDefinitions.h:172
uint8_t direction
The direction of the stepper motor.
Definition: ObjectHuntDefinitions.h:162
const int8_t COMMON_ERROR
Generic error.
Definition: ObjectHuntDefinitions.h:43
const uint8_t SCL
Clock pin.
Definition: ObjectHuntDefinitions.h:447
const uint8_t RR_FORWARD
Rear right forward.
Definition: ObjectHuntDefinitions.h:140
const uint8_t ONE
Blue wire.
Definition: ObjectHuntDefinitions.h:184
const uint8_t MAX_CONNECTIONS
Maximal connections.
Definition: ObjectHuntDefinitions.h:33
const float DISTANCE_PER_COUNT_CM
Calculated distance per count.
Definition: ObjectHuntDefinitions.h:334
uint8_t res1__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:281
const uint32_t PWM_FREQUENCY
The motors PWM frequency.
Definition: ObjectHuntDefinitions.h:145
Rotation command.
Definition: ObjectHuntDefinitions.h:381
const uint8_t FRONT_RIGHT
The front right motor.
Definition: ObjectHuntDefinitions.h:106
const uint8_t START
Start action.
Definition: ObjectHuntDefinitions.h:72
const uint8_t TERMINATE
Terminate action.
Definition: ObjectHuntDefinitions.h:73
int32_t count_rear_left
Count of the rear left revolution sensor.
Definition: ObjectHuntDefinitions.h:294
const int MEASUREMENT_INTERVAL_MS
The measurement interval.
Definition: ObjectHuntDefinitions.h:330
const uint8_t FR_BACKWARD
Front right backward.
Definition: ObjectHuntDefinitions.h:132
const uint8_t TWO
Pink wire.
Definition: ObjectHuntDefinitions.h:186
const uint8_t RIGHT_TRIGGER
Trigger pin right.
Definition: ObjectHuntDefinitions.h:261
const uint8_t LOOKUP[8]
Lookup table.
Definition: ObjectHuntDefinitions.h:195
const uint8_t COUNTS_PER_REVOLUTION
Counts per revolution.
Definition: ObjectHuntDefinitions.h:333
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:226
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:433
const uint8_t FR_FORWARD
Front right forward.
Definition: ObjectHuntDefinitions.h:131
const uint8_t FRONT
The ultra sonic sensor in the front.
Definition: ObjectHuntDefinitions.h:243
Contains definitions for the stepper motor.
Definition: ObjectHuntDefinitions.h:154
float distance_left
Left sensor distance.
Definition: ObjectHuntDefinitions.h:231
Orientation request.
Definition: ObjectHuntDefinitions.h:411
const uint8_t IDENTIFIER_CAMERA
Camera identifier action.
Definition: ObjectHuntDefinitions.h:75
float time_diff_ms
The time difference to the last transmitted orientation measurement in milliseconds.
Definition: ObjectHuntDefinitions.h:436
uint8_t direction
The direction of the rotation movement.
Definition: ObjectHuntDefinitions.h:383
const uint16_t COUNTS_PER_REV
Counts pre revolution.
Definition: ObjectHuntDefinitions.h:192
const uint8_t DUTY_CYCLE
Duty cycle for the motors.
Definition: ObjectHuntDefinitions.h:375
Contains definitions for buttons.
Definition: ObjectHuntDefinitions.h:53
uint8_t duty_cycle
Specifies the duty cycle.
Definition: ObjectHuntDefinitions.h:96
The return value of the base process.
Definition: ObjectHuntDefinitions.h:41
float time_diff_ms
The time difference to the last transmitted speed measurement in milliseconds.
Definition: ObjectHuntDefinitions.h:363
uint8_t res1__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:215
const uint8_t THREE
Yellow wire.
Definition: ObjectHuntDefinitions.h:188
const uint8_t LEFT_ECHO
Echo pin left.
Definition: ObjectHuntDefinitions.h:260
const uint16_t IDLE_TIME
Idle time between steps.
Definition: ObjectHuntDefinitions.h:194
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:278
uint8_t pad__
Padding byte.
Definition: ObjectHuntDefinitions.h:279
const uint8_t FORWARD
Forward.
Definition: ObjectHuntDefinitions.h:118
uint8_t res1__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:386
float distance_rear
Rear sensor distance.
Definition: ObjectHuntDefinitions.h:229
uint8_t res0__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:214
const uint8_t REAR
The ultra sonic sensor in the rear.
Definition: ObjectHuntDefinitions.h:244
const uint8_t OBJECT_DETECTED
Object detected action.
Definition: ObjectHuntDefinitions.h:76
uint8_t devices
The devices which will be read out by the request.
Definition: ObjectHuntDefinitions.h:282
const uint8_t BACK_RIGHT
The back right motor.
Definition: ObjectHuntDefinitions.h:108
const uint8_t FRONT_LEFT
The front left motor.
Definition: ObjectHuntDefinitions.h:107
const uint8_t REAR_RIGHT
The rear right revolution sensor.
Definition: ObjectHuntDefinitions.h:306
Orientation response for the mapping process.
Definition: ObjectHuntDefinitions.h:431
const int8_t LEAVE_SUCCESS
No special events.
Definition: ObjectHuntDefinitions.h:46
const uint8_t START_STOP
BCM number.
Definition: ObjectHuntDefinitions.h:55
const uint8_t RL_BACKWARD
Rear right backward.
Definition: ObjectHuntDefinitions.h:138
float value
The speed value.
Definition: ObjectHuntDefinitions.h:362
Contains definitions regarding rotation.
Definition: ObjectHuntDefinitions.h:371
const uint8_t OBJECT_DETECTED_ACK
Acknowledges the object detection.
Definition: ObjectHuntDefinitions.h:78
Contains definitions for action identifiers.
Definition: ObjectHuntDefinitions.h:63
const int QUEUE_LENGTH
Maximal queue length.
Definition: ObjectHuntDefinitions.h:32
const uint8_t MOTOR
Motor action.
Definition: ObjectHuntDefinitions.h:65
const uint8_t REAR_TRIGGER
Trigger pin rear.
Definition: ObjectHuntDefinitions.h:257
Contains definitions for motors.
Definition: ObjectHuntDefinitions.h:86
const uint8_t FRONT_TRIGGER
Trigger pin front.
Definition: ObjectHuntDefinitions.h:255
int32_t count_front_left
Count of the front left revolution sensor.
Definition: ObjectHuntDefinitions.h:292
const float WHEEL_DIAMETER_CM
Diameter of the wheels.
Definition: ObjectHuntDefinitions.h:331
uint8_t res0__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:280
uint8_t steps
The steps to go.
Definition: ObjectHuntDefinitions.h:163
const uint8_t STEPPER
Stepper action.
Definition: ObjectHuntDefinitions.h:66
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:422
float value
The speed value.
Definition: ObjectHuntDefinitions.h:352
const uint8_t REAR_ECHO
Echo pin rear.
Definition: ObjectHuntDefinitions.h:258
const uint8_t FOUR
Orange wire.
Definition: ObjectHuntDefinitions.h:190
const uint8_t LEFT_TRIGGER
Trigger pin left.
Definition: ObjectHuntDefinitions.h:259
uint8_t res0__
Padding/ reserve byte.
Definition: ObjectHuntDefinitions.h:385
Contains definitions for the revolution sensors.
Definition: ObjectHuntDefinitions.h:270
float distance_right
Right sensor distance.
Definition: ObjectHuntDefinitions.h:233
int32_t count_rear_right
Count of the rear right revolution sensor.
Definition: ObjectHuntDefinitions.h:295
const uint8_t FRONT_ECHO
Echo pin front.
Definition: ObjectHuntDefinitions.h:256
const uint8_t FL_FORWARD
Front left forward.
Definition: ObjectHuntDefinitions.h:134
const uint8_t ENABLE_ALL
Enable all motors.
Definition: ObjectHuntDefinitions.h:143
float distance_front
Front sensor distance.
Definition: ObjectHuntDefinitions.h:227
const uint8_t RIGHT_ECHO
Echo pin right.
Definition: ObjectHuntDefinitions.h:262
Contains definitions regarding the inter integrated circuit.
Definition: ObjectHuntDefinitions.h:444
Contains definitions for sockets.
Definition: ObjectHuntDefinitions.h:14
const uint8_t RIGHT
Right direction.
Definition: ObjectHuntDefinitions.h:173
const int8_t NO_CONNECTION
No connection established.
Definition: ObjectHuntDefinitions.h:44
const uint8_t MAX_STEPS
Maximum steps per command.
Definition: ObjectHuntDefinitions.h:193
Revolution request.
Definition: ObjectHuntDefinitions.h:276
Ultra sonic measurement response.
Definition: ObjectHuntDefinitions.h:224
Revolution response.
Definition: ObjectHuntDefinitions.h:289
uint8_t pad__
Padding byte.
Definition: ObjectHuntDefinitions.h:213
uint8_t devices
The devices which will be triggered by the request.
Definition: ObjectHuntDefinitions.h:216
uint8_t devices
The devices for which the command applies.
Definition: ObjectHuntDefinitions.h:94
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:342
const uint8_t ORIENTATION
Orientation action.
Definition: ObjectHuntDefinitions.h:71
const uint8_t BACK_LEFT
The back left motor.
Definition: ObjectHuntDefinitions.h:109
const uint8_t ROTATION_COMPLETE
Rotation complete action.
Definition: ObjectHuntDefinitions.h:77
int32_t count_front_right
Count of the front right revolution sensor.
Definition: ObjectHuntDefinitions.h:293
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:413
const uint8_t IDENTIFIER_MAPPING
Mapping identifier action.
Definition: ObjectHuntDefinitions.h:74
const uint8_t BACKWARD
Backward.
Definition: ObjectHuntDefinitions.h:119
Contains definitions for the HC SR04 ultra sonic sensors.
Definition: ObjectHuntDefinitions.h:203
const int ROTATION_AGENT_TIMEOUT_MS
Measurement timeout in milliseconds.
Definition: ObjectHuntDefinitions.h:373
const uint8_t SPEED
Speed action.
Definition: ObjectHuntDefinitions.h:69
uint8_t pad__
Padding byte.
Definition: ObjectHuntDefinitions.h:384
Contains definitions regarding speed.
Definition: ObjectHuntDefinitions.h:328
Speed response.
Definition: ObjectHuntDefinitions.h:349
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:212
const uint8_t FL_BACKWARD
Front right backward.
Definition: ObjectHuntDefinitions.h:135
const uint8_t RL_FORWARD
Rear left forward.
Definition: ObjectHuntDefinitions.h:137
const uint8_t REAR_LEFT
The rear left revolution sensor.
Definition: ObjectHuntDefinitions.h:307
uint32_t id
Identifier.
Definition: ObjectHuntDefinitions.h:291
Orientation response.
Definition: ObjectHuntDefinitions.h:420
const uint16_t BASE
Base process port.
Definition: ObjectHuntDefinitions.h:22
const uint16_t NAVIGATION
Navigation process port.
Definition: ObjectHuntDefinitions.h:23
const uint8_t ROTATION
Rotation action.
Definition: ObjectHuntDefinitions.h:70
Speed response for the mapping process.
Definition: ObjectHuntDefinitions.h:359
Used to control the stepper motor.
Definition: ObjectHuntDefinitions.h:160
const uint8_t NOT_MOVING
No movement.
Definition: ObjectHuntDefinitions.h:120
uint8_t direction
Specifies the direction.
Definition: ObjectHuntDefinitions.h:95
Used to control the motors.
Definition: ObjectHuntDefinitions.h:92
Contains definitions regarding the orientation.
Definition: ObjectHuntDefinitions.h:405