43 double target_timestamp)
override;
50 double measurement_timestamp,
51 double target_timestamp)
override;
53 std::string
Name()
const override {
return "KalmamnMotionFusion"; }
61 void GetStates(Eigen::Vector3d* anchor_point, Eigen::Vector3d* velocity);
66 void MotionFusionWithoutMeasurement(
const double time_diff);
71 void UpdateMotionState();
80 Eigen::VectorXd ComputeAccelerationMeasurement(
82 const double& timestamp);
85 const Eigen::Vector3d& velocity,
86 const double& timestamp);
90 void RewardRMatrix(
const base::SensorType& sensor_type,
const bool& converged,
91 Eigen::MatrixXd* r_matrix);
97 Eigen::Vector4d ComputePseudoMeasurement(
const Eigen::Vector4d& measurement,
103 Eigen::Vector4d ComputePseudoLidarMeasurement(
104 const Eigen::Vector4d& measurement);
108 Eigen::Vector4d ComputePseudoCameraMeasurement(
109 const Eigen::Vector4d& measurement);
113 Eigen::Vector4d ComputePseudoRadarMeasurement(
114 const Eigen::Vector4d& measurement);
118 const int& trace_length);
121 bool filter_init_ =
false;
123 std::deque<double> history_timestamp_;
124 std::deque<base::SensorType> history_sensor_type_;
126 Eigen::Vector3d fused_anchor_point_;
127 Eigen::Vector3d fused_velocity_;
128 Eigen::Vector3d fused_acceleration_;
129 Eigen::Matrix3f center_uncertainty_ = Eigen::Matrix3f::Zero();
130 Eigen::Matrix3f velo_uncertainty_ = Eigen::Matrix3f::Zero();
131 Eigen::Matrix3f acc_uncertainty_ = Eigen::Matrix3f::Zero();
133 static int s_eval_window_;
134 static size_t s_history_size_maximum_;
135 double velocity_length_change_thresh_ = 5.0f;