26 namespace perception {
44 double target_timestamp)
override;
51 double measurement_timestamp,
52 double target_timestamp)
override;
54 std::string
Name()
const override {
return "KalmamnMotionFusion"; }
56 void GetStates(Eigen::Vector3d* anchor_point, Eigen::Vector3d* velocity);
61 void MotionFusionWithoutMeasurement(
const double time_diff);
66 void UpdateMotionState();
75 Eigen::VectorXd ComputeAccelerationMeasurement(
77 const double& timestamp);
80 const Eigen::Vector3d& velocity,
81 const double& timestamp);
85 void RewardRMatrix(
const base::SensorType& sensor_type,
const bool& converged,
86 Eigen::MatrixXd* r_matrix);
92 Eigen::Vector4d ComputePseudoMeasurement(
const Eigen::Vector4d& measurement,
98 Eigen::Vector4d ComputePseudoLidarMeasurement(
99 const Eigen::Vector4d& measurement);
103 Eigen::Vector4d ComputePseudoCameraMeasurement(
104 const Eigen::Vector4d& measurement);
108 Eigen::Vector4d ComputePseudoRadarMeasurement(
109 const Eigen::Vector4d& measurement);
113 const int& trace_length);
116 bool filter_init_ =
false;
117 std::deque<Eigen::Vector3d> history_velocity_;
118 std::deque<double> history_timestamp_;
119 std::deque<base::SensorType> history_sensor_type_;
121 Eigen::Vector3d fused_anchor_point_;
122 Eigen::Vector3d fused_velocity_;
123 Eigen::Vector3d fused_acceleration_;
124 Eigen::Matrix3f center_uncertainty_ = Eigen::Matrix3f::Zero();
125 Eigen::Matrix3f velo_uncertainty_ = Eigen::Matrix3f::Zero();
126 Eigen::Matrix3f acc_uncertainty_ = Eigen::Matrix3f::Zero();
128 static int s_eval_window_;
129 static size_t s_history_size_maximum_;
130 double velocity_length_change_thresh_ = 5.0f;
void GetStates(Eigen::Vector3d *anchor_point, Eigen::Vector3d *velocity)
Definition: kalman_motion_fusion.h:29
KalmanMotionFusion & operator=(const KalmanMotionFusion &)=delete
~KalmanMotionFusion()=default
Definition: base_motion_fusion.h:29
void UpdateWithMeasurement(const SensorObjectConstPtr &measurement, double target_timestamp) override
Definition: kalman_filter.h:26
std::string Name() const override
Definition: kalman_motion_fusion.h:54
std::shared_ptr< Track > TrackPtr
Definition: track.h:160
SensorType
Sensor types are set in the order of lidar, radar, camera, ultrasonic Please make sure SensorType has...
Definition: sensor_meta.h:29
std::shared_ptr< const SensorObject > SensorObjectConstPtr
Definition: sensor_object.h:69
void UpdateWithoutMeasurement(const std::string &sensor_id, double measurement_timestamp, double target_timestamp) override
KalmanMotionFusion(TrackPtr track)
Definition: kalman_motion_fusion.h:31