sae/
constants.rs

1pub(crate) const CONST_BOUNDS: [[f64; 2]; 19] = [
2    [0.025, 0.7],
3    [0.05, 0.25],
4    [0.0, std::f64::consts::FRAC_PI_4],
5    [0.025, 0.2],
6    [0.05, 0.5],
7    [0.3, 3.0],
8    [0.0, std::f64::consts::FRAC_PI_4],
9    [0.025, 0.2],
10    [0.05, 0.55],
11    [0.05, 0.4],
12    [0.0, std::f64::consts::FRAC_PI_4],
13    [0.758, 1.03],
14    [0.758, 1.03],
15    [0.5, 1.17],
16    [1.525, 3.0],
17    [0.5, 2.0],
18    [0.0001, 0.01],
19    [0.1, 0.5],
20    [0.2, 0.5],
21];
22
23pub(crate) fn get_tires() -> std::collections::HashMap<usize, std::collections::HashMap<String, f64>>
24{
25    let mut tires: std::collections::HashMap<usize, std::collections::HashMap<String, f64>> =
26        std::collections::HashMap::new();
27    tires.insert(0, build_tire(0.2286, 3.636));
28    tires.insert(1, build_tire(0.22987, 4.091));
29    tires.insert(2, build_tire(0.23241, 4.545));
30    tires.insert(3, build_tire(0.24638, 4.545));
31    tires.insert(4, build_tire(0.24765, 5.0));
32    tires.insert(5, build_tire(0.26162, 5.455));
33    tires.insert(6, build_tire(0.2667, 5.0));
34    tires
35}
36
37fn build_tire(radius: f64, mass: f64) -> std::collections::HashMap<String, f64> {
38    [("radius".to_owned(), radius), ("mass".to_owned(), mass)]
39        .iter()
40        .cloned()
41        .collect()
42}
43
44pub(crate) fn get_brakes(
45) -> std::collections::HashMap<usize, std::collections::HashMap<String, f64>> {
46    let mut brakes: std::collections::HashMap<usize, std::collections::HashMap<String, f64>> =
47        std::collections::HashMap::new();
48
49    brakes.insert(0, build_brake(0.5, 0.104, 0.0325, 0.016, 0.32, 0.03));
50    brakes.insert(1, build_brake(0.4, 0.1, 0.0425, 0.02, 0.35, 0.025));
51    brakes.insert(2, build_brake(0.5, 0.1135, 0.04, 0.016, 0.35, 0.025));
52    brakes.insert(3, build_brake(0.5, 0.1, 0.038, 0.016, 0.35, 0.03));
53    brakes.insert(4, build_brake(0.5, 0.104, 0.0375, 0.016, 0.355, 0.03));
54    brakes.insert(5, build_brake(0.4, 0.14, 0.049, 0.0175, 0.35, 0.025));
55    brakes.insert(6, build_brake(0.52, 0.1, 0.0425, 0.02, 0.35, 0.028));
56    brakes.insert(7, build_brake(0.5, 0.11, 0.052, 0.014, 0.35, 0.032));
57    brakes.insert(8, build_brake(0.5, 0.1, 0.0425, 0.02, 0.355, 0.032));
58    brakes.insert(9, build_brake(0.5, 0.132, 0.042, 0.018, 0.355, 0.028));
59    brakes.insert(10, build_brake(0.52, 0.14, 0.042, 0.0175, 0.35, 0.028));
60    brakes.insert(11, build_brake(0.63, 0.1, 0.0425, 0.02, 0.32, 0.028));
61    brakes.insert(12, build_brake(0.52, 0.14, 0.049, 0.0175, 0.33, 0.025));
62    brakes.insert(13, build_brake(0.63, 0.14, 0.042, 0.0175, 0.35, 0.025));
63    brakes.insert(14, build_brake(0.5, 0.132, 0.052, 0.017, 0.355, 0.028));
64    brakes.insert(15, build_brake(0.5, 0.132, 0.049, 0.016, 0.32, 0.032));
65    brakes.insert(16, build_brake(0.4, 0.14, 0.0615, 0.0175, 0.35, 0.028));
66    brakes.insert(17, build_brake(0.5, 0.14, 0.049, 0.0175, 0.35, 0.03));
67    brakes.insert(18, build_brake(0.5, 0.14, 0.0615, 0.0175, 0.32, 0.028));
68    brakes.insert(19, build_brake(0.5, 0.164, 0.049, 0.018, 0.355, 0.03));
69    brakes.insert(20, build_brake(0.52, 0.132, 0.049, 0.022, 0.35, 0.03));
70    brakes.insert(21, build_brake(0.63, 0.14, 0.049, 0.0175, 0.355, 0.03));
71    brakes.insert(22, build_brake(0.63, 0.14, 0.0615, 0.0175, 0.35, 0.025));
72    brakes.insert(23, build_brake(0.52, 0.14, 0.0615, 0.0175, 0.355, 0.032));
73    brakes.insert(24, build_brake(0.63, 0.132, 0.049, 0.025, 0.35, 0.025));
74    brakes.insert(25, build_brake(0.5, 0.152, 0.054, 0.025, 0.35, 0.028));
75    brakes.insert(26, build_brake(0.5, 0.164, 0.051, 0.025, 0.355, 0.028));
76    brakes.insert(27, build_brake(0.52, 0.164, 0.0645, 0.025, 0.35, 0.025));
77    brakes.insert(28, build_brake(0.63, 0.164, 0.051, 0.022, 0.33, 0.03));
78    brakes.insert(29, build_brake(0.52, 0.164, 0.051, 0.025, 0.35, 0.032));
79    brakes.insert(30, build_brake(0.52, 0.152, 0.054, 0.028, 0.355, 0.032));
80    brakes.insert(31, build_brake(0.63, 0.152, 0.054, 0.025, 0.32, 0.03));
81    brakes.insert(32, build_brake(0.52, 0.164, 0.0645, 0.029, 0.355, 0.028));
82    brakes.insert(33, build_brake(0.63, 0.164, 0.0645, 0.025, 0.355, 0.032));
83    brakes
84}
85
86fn build_brake(
87    density: f64,
88    length: f64,
89    height: f64,
90    width: f64,
91    thickness: f64,
92    radius: f64,
93) -> std::collections::HashMap<String, f64> {
94    [
95        ("density".to_owned(), density),
96        ("length".to_owned(), length),
97        ("height".to_owned(), height),
98        ("width".to_owned(), width),
99        ("thickness".to_owned(), thickness),
100        ("radius".to_owned(), radius),
101    ]
102    .iter()
103    .cloned()
104    .collect()
105}
106
107pub(crate) fn get_materials(
108) -> std::collections::HashMap<usize, std::collections::HashMap<String, f64>> {
109    let mut materials: std::collections::HashMap<usize, std::collections::HashMap<String, f64>> =
110        std::collections::HashMap::new();
111    materials
112}
113
114pub(crate) fn get_motors(
115) -> std::collections::HashMap<usize, std::collections::HashMap<String, f64>> {
116    let mut motors: std::collections::HashMap<usize, std::collections::HashMap<String, f64>> =
117        std::collections::HashMap::new();
118    motors
119}
120
121pub(crate) fn get_suspensions(
122) -> std::collections::HashMap<usize, std::collections::HashMap<String, f64>> {
123    let mut suspensions: std::collections::HashMap<usize, std::collections::HashMap<String, f64>> =
124        std::collections::HashMap::new();
125    suspensions
126}