EKF Updater Class for MSCKF Camera Measurements.
More...
#include <msckf_updater.hpp>
|
| | MsckfUpdater (unsigned int cam_id, bool is_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 (const double local_time, EKF &ekf, const FeatureTrack &feature_track, Eigen::Vector3d &pos_f_in_l) |
| | Triangulate feature seen from multiple camera frames. More...
|
| |
| void | UpdateEKF (EKF &ekf, const double time, const FeatureTracks &feature_tracks, double px_error) |
| | EKF updater function. More...
|
| |
| | Updater (unsigned int sensor_id, std::shared_ptr< DebugLogger > logger) |
| | EKF Updater constructor. More...
|
| |
|
| static void | DistortionJacobian (const Eigen::Vector2d &xy_norm, const Intrinsics &intrinsics, Eigen::MatrixXd &H_d) |
| | Computes the derivative of raw distorted to normalized coordinate. More...
|
| |
| static void | ProjectionJacobian (const Eigen::Vector3d &position, Eigen::MatrixXd &jacobian) |
| | Function to calculate jacobian for camera projection function. More...
|
| |
| static Eigen::Vector2d | Project (const Eigen::Vector3d pos_f_in_c) |
| | Project a 3D position in the camera frame to a 2D bearing. More...
|
| |
| static Eigen::Vector2d | Distort (const Eigen::Vector2d &xy_norm, const Intrinsics &intrinsics) |
| | Distort a normalized camera coordinate using intrinsics. More...
|
| |
| static void | KalmanUpdate (EKF &ekf, const Eigen::MatrixXd &jacobian, const Eigen::VectorXd &residual, const Eigen::MatrixXd &measurement_noise_input) |
| |
EKF Updater Class for MSCKF Camera Measurements.
◆ MsckfUpdater()
| MsckfUpdater::MsckfUpdater |
( |
unsigned int |
cam_id, |
|
|
bool |
is_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_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 |
◆ Distort()
| Eigen::Vector2d MsckfUpdater::Distort |
( |
const Eigen::Vector2d & |
xy_norm, |
|
|
const Intrinsics & |
intrinsics |
|
) |
| |
|
static |
Distort a normalized camera coordinate using intrinsics.
- Parameters
-
| xy_norm | Normalized camera coordinate |
| intrinsics | camera intrinsics |
- Returns
- Distorted XY coordinate
◆ DistortionJacobian()
| void MsckfUpdater::DistortionJacobian |
( |
const Eigen::Vector2d & |
xy_norm, |
|
|
const Intrinsics & |
intrinsics, |
|
|
Eigen::MatrixXd & |
H_d |
|
) |
| |
|
static |
Computes the derivative of raw distorted to normalized coordinate.
- Parameters
-
| xy_norm | Normalized coordinates we wish to distort |
| intrinsics | Camera intrinsics |
| H_d | Derivative of measurement z in respect to normalized |
◆ Project()
| Eigen::Vector2d MsckfUpdater::Project |
( |
const Eigen::Vector3d |
pos_f_in_c | ) |
|
|
static |
Project a 3D position in the camera frame to a 2D bearing.
- Parameters
-
| pos_f_in_c | Feature position in the camera frame |
- Returns
- Projected 2D position
◆ ProjectionJacobian()
| void MsckfUpdater::ProjectionJacobian |
( |
const Eigen::Vector3d & |
position, |
|
|
Eigen::MatrixXd & |
jacobian |
|
) |
| |
|
static |
Function to calculate jacobian for camera projection function.
- Parameters
-
| position | Position in camera coordinates |
| jacobian | Resulting camera projection jacobian |
◆ TriangulateFeature()
| bool MsckfUpdater::TriangulateFeature |
( |
const double |
local_time, |
|
|
EKF & |
ekf, |
|
|
const FeatureTrack & |
feature_track, |
|
|
Eigen::Vector3d & |
pos_f_in_l |
|
) |
| |
Triangulate feature seen from multiple camera frames.
- Parameters
-
| ekf | EKF address |
| 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, |
|
|
const double |
time, |
|
|
const FeatureTracks & |
feature_tracks, |
|
|
double |
px_error |
|
) |
| |
EKF updater function.
- Parameters
-
| ekf | EKF address |
| 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: