Apollo 10.0
自动驾驶开放平台
apollo::perception::camera::ExtendedKalmanFilter类 参考

#include <kalman_filter.h>

apollo::perception::camera::ExtendedKalmanFilter 的协作图:

Public 成员函数

 ExtendedKalmanFilter ()
 
void Init ()
 
void Init (const Eigen::VectorXd &x)
 
void Predict (float delta_t)
 
void Correct (const Eigen::VectorXd &z)
 
Eigen::Vector4d get_state () const
 

Public 属性

Eigen::Matrix4d variance_
 
Eigen::Matrix3d measure_noise_
 
Eigen::Matrix4d process_noise_
 

Protected 属性

Eigen::Matrix4d state_transition_matrix_
 
Eigen::Matrix< double, 4, 1 > state_
 
Eigen::Matrix< double, 3, 4 > measure_matrix_
 
Eigen::Matrix< double, 4, 3 > kalman_gain_
 
bool inited_
 

详细描述

在文件 kalman_filter.h102 行定义.

构造及析构函数说明

◆ ExtendedKalmanFilter()

apollo::perception::camera::ExtendedKalmanFilter::ExtendedKalmanFilter ( )
inline

在文件 kalman_filter.h107 行定义.

成员函数说明

◆ Correct()

void apollo::perception::camera::ExtendedKalmanFilter::Correct ( const Eigen::VectorXd &  z)

在文件 kalman_filter.cc123 行定义.

123 {
124 if (inited_) {
125 Eigen::Vector3d measure;
126 measure << z[0], z[1], z[2];
127 Eigen::Matrix3d cov =
130
131 kalman_gain_ = variance_ * measure_matrix_.transpose() * cov.inverse();
133 state_ = state_ + kalman_gain_ * (measure - measure_matrix_ * state_);
134 } else {
135 inited_ = true;
136 state_ << z[0], z[1], 0, z[2];
137 }
138}
Eigen::Matrix< double, 3, 4 > measure_matrix_

◆ get_state()

Eigen::Vector4d apollo::perception::camera::ExtendedKalmanFilter::get_state ( ) const

在文件 kalman_filter.cc140 行定义.

140{ return state_; }

◆ Init() [1/2]

void apollo::perception::camera::ExtendedKalmanFilter::Init ( )

在文件 kalman_filter.cc88 行定义.

88 {
89 // other value should be changed in predict
90 state_transition_matrix_.setIdentity();
91 measure_matrix_ << 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1;
92 variance_.setIdentity();
93 measure_noise_.setIdentity();
94 process_noise_.setIdentity();
95 inited_ = false;
96}

◆ Init() [2/2]

void apollo::perception::camera::ExtendedKalmanFilter::Init ( const Eigen::VectorXd &  x)

在文件 kalman_filter.cc98 行定义.

98 {
99 Init();
100 state_ << x(0), x(1), 0, x(2);
101 inited_ = true;
102}

◆ Predict()

void apollo::perception::camera::ExtendedKalmanFilter::Predict ( float  delta_t)

在文件 kalman_filter.cc104 行定义.

104 {
105 if (inited_) {
106 float sin_theta = static_cast<float>(std::sin(state_(3)));
107 float cos_theta = static_cast<float>(std::cos(state_(3)));
108 state_transition_matrix_(0, 2) = delta_t * cos_theta;
109 state_transition_matrix_(0, 3) = -delta_t * state_(2) * sin_theta;
110 state_transition_matrix_(1, 2) = delta_t * sin_theta;
111 state_transition_matrix_(1, 3) = delta_t * state_(2) * cos_theta;
112 state_(0) += state_(2) * cos_theta * delta_t;
113 state_(1) += state_(2) * sin_theta * delta_t;
114 // No change
115 // state_(2) = state_(2);
116 // state_(3) = state_(3);
118 state_transition_matrix_.transpose() +
120 }
121}

类成员变量说明

◆ inited_

bool apollo::perception::camera::ExtendedKalmanFilter::inited_
protected

在文件 kalman_filter.h134 行定义.

◆ kalman_gain_

Eigen::Matrix<double, 4, 3> apollo::perception::camera::ExtendedKalmanFilter::kalman_gain_
protected

在文件 kalman_filter.h133 行定义.

◆ measure_matrix_

Eigen::Matrix<double, 3, 4> apollo::perception::camera::ExtendedKalmanFilter::measure_matrix_
protected

在文件 kalman_filter.h132 行定义.

◆ measure_noise_

Eigen::Matrix3d apollo::perception::camera::ExtendedKalmanFilter::measure_noise_

在文件 kalman_filter.h119 行定义.

◆ process_noise_

Eigen::Matrix4d apollo::perception::camera::ExtendedKalmanFilter::process_noise_

在文件 kalman_filter.h120 行定义.

◆ state_

Eigen::Matrix<double, 4, 1> apollo::perception::camera::ExtendedKalmanFilter::state_
protected

在文件 kalman_filter.h131 行定义.

◆ state_transition_matrix_

Eigen::Matrix4d apollo::perception::camera::ExtendedKalmanFilter::state_transition_matrix_
protected

在文件 kalman_filter.h129 行定义.

◆ variance_

Eigen::Matrix4d apollo::perception::camera::ExtendedKalmanFilter::variance_

在文件 kalman_filter.h118 行定义.


该类的文档由以下文件生成: