Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
Conversions.cpp
Go to the documentation of this file.
1 #include "Conversions.hpp"
2 #include <math.h>
3 
5  const uint8_t headlight,
6  const uint8_t brakes,
7  const uint8_t blinkerLeft,
8  const uint8_t blinkerRight,
9  const uint8_t scenario1,
10  const uint8_t scenario2,
11  const uint8_t scenario3) {
12  uint16_t output = (uint16_t)(scenario3 & 0x3) << 12;
13  output |= (uint16_t)(scenario2 & 0x3) << 10;
14  output |= (uint16_t)(scenario1 & 0x3) << 8;
15  output |= (uint16_t)(brakes & 0x3) << 6;
16  output |= (uint16_t)(blinkerRight & 0x3) << 4;
17  output |= (uint16_t)(blinkerLeft & 0x3) << 2;
18  output |= (uint16_t)(headlight & 0x3);
19 
20  return output;
21 }
22 
24  const int64_t motor_erpm,
25  const float r_dyn,
26  const float i_g,
27  const float i_a) {
28  if(i_g == 0.0f || i_a == 0.0f) {
29  return 0;
30  }
31 
32  const float velocity =
33  (2.0 * r_dyn * motor_erpm * M_PI) / (60.0 * i_g * i_a);
34 
35  return velocity;
36 }
37 
39  const float velocity,
40  const float r_dyn,
41  const float i_g,
42  const float i_a) {
43  if(r_dyn == 0.0f) {
44  return 0;
45  }
46 
47  const float rpm =
48  (60.0 * i_g * i_a * velocity) / (2.0 * r_dyn * M_PI);
49 
50  return rpm;
51 }
convertLightStatesIntoFinalState
uint16_t convertLightStatesIntoFinalState(const uint8_t headlight, const uint8_t brakes, const uint8_t blinkerLeft, const uint8_t blinkerRight, const uint8_t scenario1, const uint8_t scenario2, const uint8_t scenario3)
Definition: Conversions.cpp:4
Conversions.hpp
calculateVelocityByRpm
float calculateVelocityByRpm(const int64_t motor_erpm, const float r_dyn, const float i_g, const float i_a)
Definition: Conversions.cpp:23
calculateRpmByVelocity
int64_t calculateRpmByVelocity(const float velocity, const float r_dyn, const float i_g, const float i_a)
Definition: Conversions.cpp:38