116 std::mutex cache_mutex_;
117 std::unordered_map<int, int8_t> servo_mode_cache_;
118 std::unordered_map<int, float> servo_value_cache_;
119 std::unordered_map<int, int32_t> bemf_cache_;
120 std::unordered_map<int, int32_t> motor_position_cache_;
121 std::unordered_map<int, int32_t> motor_done_cache_;
122 std::unordered_map<int, int32_t> analog_cache_;
123 std::unordered_map<int, int32_t> digital_cache_;
125 raccoon::vector3f_t gyro_cache_{};
126 raccoon::vector3f_t accel_cache_{};
127 raccoon::vector3f_t linear_accel_cache_{};
128 raccoon::vector3f_t accel_velocity_cache_{};
129 raccoon::vector3f_t accel_velocity_offset_{};
130 raccoon::vector3f_t mag_cache_{};
131 raccoon::scalar_f_t heading_cache_{};
132 raccoon::quaternion_t quaternion_cache_{};
133 raccoon::scalar_f_t temp_cache_{};
137 std::condition_variable odom_cv_;
140 float calib_pos_x_cm_{0.0f};
141 float calib_pos_y_cm_{0.0f};
142 float calib_heading_deg_{0.0f};
144 std::atomic<bool> calib_board_attached_{
false};
146 std::atomic<bool> calib_odom_received_{
false};
149 std::atomic<bool> imu_heading_received_{
false};
152 std::atomic<bool> bemf_received_{
false};