Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

内部処理のukfにfitness scoreを反映した場合の挙動検証 #12

Open
1 task
nyxrobotics opened this issue Dec 5, 2022 · 2 comments
Open
1 task

Comments

@nyxrobotics
Copy link

概要
下記の部分でfitness scoreを考慮してukfをすれば安定するのではないかという提案です

ukf->correct(observation);

void correct(const VectorXt& measurement) {

測定値のcovarianceがどの変数か調査中

目的
提案内容
タスク

  • 細かいタスクに分解できているなら書き出す
@nyxrobotics
Copy link
Author

おそらく下記が測定値のcovarianceに相当する場所

ext_cov_pred.bottomRightCorner(K, K) = measurement_noise;

下記のように書き換えたら多少挙動は変化したが良くなったとは言えない。もう少し調査が必要そうです。

  /**
   * @brief correct
   * @param measurement  measurement vector
   * @param fitness_score  scam matching fitness score (The better the accuracy of the matching, the smaller the value.)
   */
  void correct(const VectorXt& measurement, double fitness_score) {
    // create extended state space which includes error variances
    VectorXt ext_mean_pred = VectorXt::Zero(N + K, 1);
    MatrixXt ext_cov_pred = MatrixXt::Zero(N + K, N + K);
    ext_mean_pred.topLeftCorner(N, 1) = VectorXt(mean);
    ext_cov_pred.topLeftCorner(N, N) = MatrixXt(cov);
    MatrixXt measurement_covariance_matrix = fitness_score * MatrixXt::Identity(measurement_noise.cols(), measurement_noise.rows());
    ext_cov_pred.bottomRightCorner(K, K) = measurement_covariance_matrix;

@nyxrobotics
Copy link
Author

UKFの計算手順などは下記を参照しています
https://arx.appi.keio.ac.jp/wp-content/uploads/2011/05/10102.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant