127 future_vec(i *
_num_modes + j, 0) = dat(j, 0);
136 future_vec(i *
_num_modes + j, 0) = dat(j, 0);
162 for(
int i=0; i<num_steps; i++){
176 for(
int i=0; i<num_steps; i++){
193 prediction_vector.resize(past_measurement.rows() + past_cmd.rows() + future_cmd.rows(), 1);
194 prediction_vector << future_cmd, past_cmd, past_measurement;
196 rls->
update(&prediction_vector, &future_measurement);
214 Matrix full_controller = -1 * (H11 + H11.maxCoeff() * (*regularization_matrix)).inverse() * H21;
227 past_vec << past_command, past_measurement;
Matrix regularization_matrix_01
Matrix regularization_matrix_02
PredictiveController(int num_actuators, int num_history, int num_future, realT gain, realT gamma, realT initial_regularization, realT initial_covariance)
Matrix get_measurement_past()
void set_regularization(realT new_regularization)
Matrix get_command_future(int skip_cmds)
Matrix get_command_past()
Matrix measurement_buffer
bool use_regularization_matrix_01
Matrix * regularization_matrix
Matrix get_measurement_future()
Matrix calculate_command(Matrix new_measurement, Matrix exploration_noise)
RecursiveLeastSquares * rls
Matrix get_current_measurement_past(int num_steps)
bool do_switch_regularization_matrix
Matrix get_current_command_past(int num_steps)
void update(eigenImage< realT > *x, eigenImage< realT > *y)
Eigen::Matrix< realT, Eigen::Dynamic, Eigen::Dynamic > Matrix
static uint64_t find_next_power_of_2(int sample)