|
NASA Astrobee Robot Software
0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
|
Go to the documentation of this file.
19 #ifndef IMU_INTEGRATION_BUTTERO5_H_
20 #define IMU_INTEGRATION_BUTTERO5_H_
29 template <
class Params>
35 if (!initialized_) Initialize(value, Params::kGain);
37 const int last_index = xv_.size() - 1;
39 for (
int i = 0; i < last_index; ++i) {
44 xv_[last_index] = value / Params::kGain;
46 yv_[last_index] = (xv_[0] + xv_[7]) + Params::kX16 * (xv_[1] + xv_[6]) + Params::kX25 * (xv_[2] + xv_[5]) +
47 Params::kX34 * (xv_[3] + xv_[4]) + (Params::kY2 * yv_[2]) + (Params::kY3 * yv_[3]) +
48 (Params::kY4 * yv_[4]) + (Params::kY5 * yv_[5]) + (Params::kY6 * yv_[6]);
51 return yv_[last_index];
55 void Initialize(
const double first_value,
const double gain) {
56 for (
auto& val : xv_) {
57 val = first_value / gain;
59 for (
auto& val : yv_) {
68 std::array<double, 8> xv_;
69 std::array<double, 8> yv_;
74 static constexpr
double kGain = 7.974174280e+04;
75 static constexpr
double kX16 = 6.9560160746;
76 static constexpr
double kX25 = 20.7800803730;
77 static constexpr
double kX34 = 34.5601607460;
78 static constexpr
double kY2 = 0.3750929134;
79 static constexpr
double kY3 = -2.2411521809;
80 static constexpr
double kY4 = 5.3982113474;
81 static constexpr
double kY5 = -6.5588143289;
82 static constexpr
double kY6 = 4.0250747177;
87 static constexpr
double kGain = 1.444638217e+07;
88 static constexpr
double kX16 = 6.9560160746;
89 static constexpr
double kX25 = 20.7800803730;
90 static constexpr
double kX34 = 34.5601607460;
91 static constexpr
double kY2 = 0.7221701429;
92 static constexpr
double kY3 = -3.8457619644;
93 static constexpr
double kY4 = 8.2000057707;
94 static constexpr
double kY5 = -8.7511375257;
95 static constexpr
double kY6 = 4.6747148135;
100 static constexpr
double kGain = 4.274918013e+08;
101 static constexpr
double kX16 = 6.9560160746;
102 static constexpr
double kX25 = 20.7800803730;
103 static constexpr
double kX34 = 34.5601607460;
104 static constexpr
double kY2 = 0.8498599655;
105 static constexpr
double kY3 = -4.3875359464;
106 static constexpr
double kY4 = 9.0628533836;
107 static constexpr
double kY5 = -9.3625201736;
108 static constexpr
double kY6 = 4.8373424748;
113 static constexpr
double kGain = 6.0459547194e+04;
114 static constexpr
double kX16 = 5.9994195281e+00;
115 static constexpr
double kX25 = 1.5997097640e+01;
116 static constexpr
double kX34 = 2.4994195281e+01;
117 static constexpr
double kY2 = 3.7509291343e-01;
118 static constexpr
double kY3 = -2.2411521809e+00;
119 static constexpr
double kY4 = 5.3982113474e+00;
120 static constexpr
double kY5 = -6.5588143289e+00;
121 static constexpr
double kY6 = 4.0250747177e+00;
126 static constexpr
double kGain = 4.1144934894e+04;
127 static constexpr
double kX16 = 5.0412147780e+00;
128 static constexpr
double kX25 = 1.1206073890e+01;
129 static constexpr
double kX34 = 1.5412147780e+01;
130 static constexpr
double kY2 = 3.7509291343e-01;
131 static constexpr
double kY3 = -2.2411521809e+00;
132 static constexpr
double kY4 = 5.3982113474e+00;
133 static constexpr
double kY5 = -6.5588143289e+00;
134 static constexpr
double kY6 = 4.0250747177e+00;
139 static constexpr
double kGain = 1.556798187e+06;
140 static constexpr
double kX16 = 5.9996372182;
141 static constexpr
double kX25 = 15.9981860910;
142 static constexpr
double kX34 = 24.9963721820;
143 static constexpr
double kY2 = 0.6135091304;
144 static constexpr
double kY3 = -3.3668482801;
145 static constexpr
double kY4 = 7.4066054096;
146 static constexpr
double kY5 = -8.1654743335;
147 static constexpr
double kY6 = 4.5121464160;
152 static constexpr
double kGain = 1.764219683e+06;
153 static constexpr
double kX16 = 6.3992967530;
154 static constexpr
double kX25 = 17.9964837650;
155 static constexpr
double kX34 = 28.9929675300;
156 static constexpr
double kY2 = 0.6135091304;
157 static constexpr
double kY3 = -3.3668482801;
158 static constexpr
double kY4 = 7.4066054096;
159 static constexpr
double kY5 = -8.1654743335;
160 static constexpr
double kY6 = 4.5121464160;
165 static constexpr
double kGain = 1.146058161e+06;
166 static constexpr
double kX16 = 5.2082237395;
167 static constexpr
double kX25 = 12.0411186980;
168 static constexpr
double kX34 = 17.0822373950;
169 static constexpr
double kY2 = 0.6135091304;
170 static constexpr
double kY3 = -3.3668482801;
171 static constexpr
double kY4 = 7.4066054096;
172 static constexpr
double kY5 = -8.1654743335;
173 static constexpr
double kY6 = 4.5121464160;
178 #endif // IMU_INTEGRATION_BUTTERO5_H_
static constexpr double kY2
Definition: butterO5.h:169
static constexpr double kY2
Definition: butterO5.h:117
static constexpr double kX16
Definition: butterO5.h:166
static constexpr double kX25
Definition: butterO5.h:89
static constexpr double kX34
Definition: butterO5.h:116
static constexpr double kX25
Definition: butterO5.h:154
static constexpr double kY4
Definition: butterO5.h:145
static constexpr double kGain
Definition: butterO5.h:126
static constexpr double kY5
Definition: butterO5.h:94
static constexpr double kX16
Definition: butterO5.h:153
static constexpr double kY5
Definition: butterO5.h:172
static constexpr double kY4
Definition: butterO5.h:132
Definition: butterO5.h:99
static constexpr double kX16
Definition: butterO5.h:140
static constexpr double kX34
Definition: butterO5.h:90
static constexpr double kY6
Definition: butterO5.h:160
Definition: butterO5.h:138
static constexpr double kY2
Definition: butterO5.h:143
static constexpr double kX34
Definition: butterO5.h:103
static constexpr double kY2
Definition: butterO5.h:91
static constexpr double kX16
Definition: butterO5.h:88
static constexpr double kY3
Definition: butterO5.h:92
static constexpr double kX25
Definition: butterO5.h:76
static constexpr double kY4
Definition: butterO5.h:80
static constexpr double kY6
Definition: butterO5.h:173
static constexpr double kY6
Definition: butterO5.h:147
static constexpr double kY2
Definition: butterO5.h:104
static constexpr double kX25
Definition: butterO5.h:128
static constexpr double kY5
Definition: butterO5.h:107
static constexpr double kX34
Definition: butterO5.h:168
static constexpr double kY2
Definition: butterO5.h:156
static constexpr double kX16
Definition: butterO5.h:114
static constexpr double kX16
Definition: butterO5.h:101
static constexpr double kGain
Definition: butterO5.h:165
static constexpr double kY2
Definition: butterO5.h:78
double AddValue(const double value) final
Definition: butterO5.h:34
static constexpr double kX25
Definition: butterO5.h:102
static constexpr double kY5
Definition: butterO5.h:146
static constexpr double kX34
Definition: butterO5.h:129
Definition: butterO1.h:26
static constexpr double kY3
Definition: butterO5.h:131
static constexpr double kY4
Definition: butterO5.h:106
Definition: butterO5.h:30
static constexpr double kY4
Definition: butterO5.h:158
static constexpr double kGain
Definition: butterO5.h:87
static constexpr double kGain
Definition: butterO5.h:139
Definition: butterO5.h:164
Definition: butterO5.h:86
static constexpr double kY6
Definition: butterO5.h:121
static constexpr double kY3
Definition: butterO5.h:105
static constexpr double kY4
Definition: butterO5.h:93
static constexpr double kY5
Definition: butterO5.h:120
static constexpr double kX34
Definition: butterO5.h:142
Definition: butterO5.h:125
static constexpr double kY4
Definition: butterO5.h:119
Definition: butterO5.h:73
static constexpr double kGain
Definition: butterO5.h:100
static constexpr double kX34
Definition: butterO5.h:77
static constexpr double kY6
Definition: butterO5.h:134
ButterO5()
Definition: butterO5.h:32
static constexpr double kY6
Definition: butterO5.h:95
static constexpr double kX25
Definition: butterO5.h:167
static constexpr double kX25
Definition: butterO5.h:115
static constexpr double kY3
Definition: butterO5.h:157
Definition: butterO5.h:151
static constexpr double kX16
Definition: butterO5.h:127
static constexpr double kX16
Definition: butterO5.h:75
static constexpr double kGain
Definition: butterO5.h:74
static constexpr double kY4
Definition: butterO5.h:171
static constexpr double kY5
Definition: butterO5.h:159
static constexpr double kX25
Definition: butterO5.h:141
static constexpr double kY3
Definition: butterO5.h:170
static constexpr double kY2
Definition: butterO5.h:130
static constexpr double kX34
Definition: butterO5.h:155
static constexpr double kY5
Definition: butterO5.h:81
static constexpr double kGain
Definition: butterO5.h:152
static constexpr double kY5
Definition: butterO5.h:133
static constexpr double kY6
Definition: butterO5.h:82
static constexpr double kY3
Definition: butterO5.h:118
static constexpr double kY3
Definition: butterO5.h:144
static constexpr double kY6
Definition: butterO5.h:108
static constexpr double kY3
Definition: butterO5.h:79
static constexpr double kGain
Definition: butterO5.h:113
Definition: butterO5.h:112