43 std::string
Name()
const override {
44 return "MlfDirectionFilter";
47 return degree * 180.0 / M_PI;
50 return angle * M_PI / 180.0;
68 double* direction_measurement_variance,
69 double* angular_measurement_variance,
78 double VecDiffAngle(
const Eigen::Vector3d& vec0,
const Eigen::Vector3d& vec1);
80 double Vec2Angle(
const Eigen::Vector3d& vec);
88 double init_direction_variance_ = 100.0;
89 double predict_noise_per_sqrsec_ = 100.0;
90 double variance_bound_ = 25.0;
91 double max_angular_thresh_ = 50.0;
92 double converged_confidence_minimum_ = 0.6;
93 double angular_scale_ = 0.8;
94 double angular_confidence_thresh_ = 0.7;
95 size_t angular_window_size_ = 5;
double Degree2Radian(double angle)
void ComputeMeasurementConfidence(const TrackedObjectPtr &new_object, double *confidence)
void ComputeConvergenceConfidence(const MlfTrackDataConstPtr &track_data, TrackedObjectPtr new_object)
void GetDirectionState(TrackedObjectPtr &new_object)
MlfDirectionFilter()=default
double LegalizeAngle(double angle)
std::string Name() const override
Get class name
double Degree2Angle(double degree)
void ComputeVarianceAndAngular(const MlfTrackDataConstPtr &track_data, TrackedObjectPtr new_object, double *direction_measurement_variance, double *angular_measurement_variance, double *angular)
void UpdateWithoutObject(const MlfFilterOptions &options, double timestamp, MlfTrackDataPtr track_data) override
Interface for updating filter without object
void UpdateWithObject(const MlfFilterOptions &options, const MlfTrackDataConstPtr &track_data, TrackedObjectPtr new_object) override
Interface for updating filter with object
double Vec2Angle(const Eigen::Vector3d &vec)
bool Init(const MlfFilterInitOptions &options=MlfFilterInitOptions()) override
Init mlf fitler
void KalmanFilterUpdateDirection(const MlfTrackDataConstPtr &track_data, const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object)
void InitializeTrackState(TrackedObjectPtr new_object)
virtual ~MlfDirectionFilter()=default
double VecDiffAngle(const Eigen::Vector3d &vec0, const Eigen::Vector3d &vec1)
std::shared_ptr< const MlfTrackData > MlfTrackDataConstPtr
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
std::shared_ptr< MlfTrackData > MlfTrackDataPtr
std::shared_ptr< TrackedObject > TrackedObjectPtr