|  | 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_BUTTERO10_H_ 
   20 #define IMU_INTEGRATION_BUTTERO10_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_[12]) + Params::kX111 * (xv_[1] + xv_[11]) + Params::kX210 * (xv_[2] + xv_[10]) +
 
   47                       Params::kX39 * (xv_[3] + xv_[9]) + Params::kX48 * (xv_[4] + xv_[8]) +
 
   48                       Params::kX57 * (xv_[5] + xv_[7]) + Params::kX6 * xv_[6] + (Params::kY2 * yv_[2]) +
 
   49                       (Params::kY3 * yv_[3]) + (Params::kY4 * yv_[4]) + (Params::kY5 * yv_[5]) +
 
   50                       (Params::kY6 * yv_[6]) + (Params::kY7 * yv_[7]) + (Params::kY8 * yv_[8]) +
 
   51                       (Params::kY9 * yv_[9]) + (Params::kY10 * yv_[10]) + (Params::kY11 * yv_[11]);
 
   54     return yv_[last_index];
 
   58   void Initialize(
const double first_value, 
const double gain) {
 
   59     for (
auto& val : xv_) {
 
   60       val = first_value / gain;
 
   62     for (
auto& val : yv_) {
 
   71   std::array<double, 13> xv_;
 
   72   std::array<double, 13> yv_;
 
   77   static constexpr 
double kGain = 1.204389877e+09;
 
   78   static constexpr 
double kX111 = 10.9994195280;
 
   79   static constexpr 
double kX210 = 55.9941952810;
 
   80   static constexpr 
double kX39 = 174.9738787600;
 
   81   static constexpr 
double kX48 = 374.930343370;
 
   82   static constexpr 
double kX57 = 581.8781008900;
 
   83   static constexpr 
double kX6 = 671.8537210700;
 
   84   static constexpr 
double kY2 = -0.1440551095;
 
   85   static constexpr 
double kY3 = 1.7182080129;
 
   86   static constexpr 
double kY4 = -9.2532994947;
 
   87   static constexpr 
double kY5 = 29.6350557040;
 
   88   static constexpr 
double kY6 = -62.5163645520;
 
   89   static constexpr 
double kY7 = 90.7861740400;
 
   90   static constexpr 
double kY8 = -91.9332301310;
 
   91   static constexpr 
double kY9 = 64.1155101770;
 
   92   static constexpr 
double kY10 = -29.4805657920;
 
   93   static constexpr 
double kY11 = 8.0725645969;
 
   98 #endif  // IMU_INTEGRATION_BUTTERO10_H_ 
  
 
ButterO10()
Definition: butterO10.h:32
Definition: butterO10.h:76
static constexpr double kX48
Definition: butterO10.h:81
static constexpr double kX111
Definition: butterO10.h:78
static constexpr double kY2
Definition: butterO10.h:84
static constexpr double kX210
Definition: butterO10.h:79
static constexpr double kX57
Definition: butterO10.h:82
Definition: butterO1.h:26
static constexpr double kY5
Definition: butterO10.h:87
static constexpr double kX6
Definition: butterO10.h:83
static constexpr double kY4
Definition: butterO10.h:86
static constexpr double kY11
Definition: butterO10.h:93
double AddValue(const double value) final
Definition: butterO10.h:34
static constexpr double kY6
Definition: butterO10.h:88
static constexpr double kY7
Definition: butterO10.h:89
static constexpr double kY8
Definition: butterO10.h:90
static constexpr double kX39
Definition: butterO10.h:80
static constexpr double kY10
Definition: butterO10.h:92
static constexpr double kGain
Definition: butterO10.h:77
static constexpr double kY3
Definition: butterO10.h:85
static constexpr double kY9
Definition: butterO10.h:91
Definition: butterO10.h:30