EKF Updater Class for MSCKF Camera Measurements.
More...
#include <msckf_updater.hpp>
|
| MsckfUpdater (int cam_id, bool is_cam_extrinsic, const std::string &log_file_directory, double data_log_rate, double min_feat_dist, std::shared_ptr< DebugLogger > logger) |
| MSCKF EKF Updater constructor. More...
|
|
bool | TriangulateFeature (double local_time, EKF &ekf, FeatureTrack &feature_track, Eigen::Vector3d &pos_f_in_l) |
| Triangulate feature seen from multiple camera frames. More...
|
|
void | UpdateEKF (EKF &ekf, double time, FeatureTracks feature_tracks, double px_error) |
| EKF updater function. More...
|
|
void | distortion_jacobian (const Eigen::Vector2d &uv_norm, const Intrinsics &intrinsics, Eigen::MatrixXd &H_d) |
| Computes the derivative of raw distorted to normalized coordinate. More...
|
|
void | projection_jacobian (const Eigen::Vector3d &position, Eigen::MatrixXd &jacobian) |
| Function to calculate jacobian for camera projection function. More...
|
|
| Updater (unsigned int sensor_id, std::shared_ptr< DebugLogger > logger) |
| EKF Updater constructor. More...
|
|
void | KalmanUpdate (EKF &ekf, const Eigen::MatrixXd &jacobian, const Eigen::VectorXd &residual, const Eigen::MatrixXd &measurement_noise) |
|
EKF Updater Class for MSCKF Camera Measurements.
◆ MsckfUpdater()
MsckfUpdater::MsckfUpdater |
( |
int |
cam_id, |
|
|
bool |
is_cam_extrinsic, |
|
|
const std::string & |
log_file_directory, |
|
|
double |
data_log_rate, |
|
|
double |
min_feat_dist, |
|
|
std::shared_ptr< DebugLogger > |
logger |
|
) |
| |
|
explicit |
MSCKF EKF Updater constructor.
- Parameters
-
cam_id | Camera sensor ID |
is_cam_extrinsic | Camera extrinsic calibration flag |
log_file_directory | Directory to save log files |
data_log_rate | Maximum average rate to log data |
min_feat_dist | Closest feature distance to consider |
logger | Debug logger pointer |
◆ distortion_jacobian()
void MsckfUpdater::distortion_jacobian |
( |
const Eigen::Vector2d & |
uv_norm, |
|
|
const Intrinsics & |
intrinsics, |
|
|
Eigen::MatrixXd & |
H_d |
|
) |
| |
Computes the derivative of raw distorted to normalized coordinate.
- Parameters
-
uv_norm | Normalized coordinates we wish to distort |
intrinsics | Camera intrinsics |
H_d | Derivative of measurement z in respect to normalized |
◆ projection_jacobian()
void MsckfUpdater::projection_jacobian |
( |
const Eigen::Vector3d & |
position, |
|
|
Eigen::MatrixXd & |
jacobian |
|
) |
| |
Function to calculate jacobian for camera projection function.
- Parameters
-
position | Position in camera coordinates |
jacobian | Resulting camera projection jacobian |
◆ TriangulateFeature()
bool MsckfUpdater::TriangulateFeature |
( |
double |
local_time, |
|
|
EKF & |
ekf, |
|
|
FeatureTrack & |
feature_track, |
|
|
Eigen::Vector3d & |
pos_f_in_l |
|
) |
| |
Triangulate feature seen from multiple camera frames.
- Parameters
-
ekf | EKF pointer |
local_time | Measurement in EKF time |
feature_track | Single feature track |
pos_f_in_l | Output estimate of feature position in camera frame given observations |
- Returns
- If triangulation was successful
- Todo:
- : Need to continue debugging the triangulated features
- Todo:
- : Add input flag
◆ UpdateEKF()
void MsckfUpdater::UpdateEKF |
( |
EKF & |
ekf, |
|
|
double |
time, |
|
|
FeatureTracks |
feature_tracks, |
|
|
double |
px_error |
|
) |
| |
EKF updater function.
- Parameters
-
ekf | EKF pointer |
time | Time of update |
feature_tracks | Feature tracks to be used for state update |
px_error | Standard deviation of pixel error |
- Todo:
- : Add threshold for total distance/angle before triangulating
- Todo:
- Chi^2 distance check
The documentation for this class was generated from the following files: