|  | 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