mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-18 01:10:35 +08:00
ekf2: Add tuneable parameters for sensor positions
This commit is contained in:
committed by
Lorenz Meier
parent
7acd5fda22
commit
43e56f9fdc
@@ -226,6 +226,20 @@ private:
|
||||
control::BlockParamFloat *_flow_innov_gate; // optical flow fusion innovation consistency gate size (STD)
|
||||
control::BlockParamFloat *_flow_rate_max; // maximum valid optical flow rate (rad/sec)
|
||||
|
||||
// sensor positions in body frame
|
||||
control::BlockParamFloat *_imu_pos_x; // X position of IMU in body frame (m)
|
||||
control::BlockParamFloat *_imu_pos_y; // Y position of IMU in body frame (m)
|
||||
control::BlockParamFloat *_imu_pos_z; // Z position of IMU in body frame (m)
|
||||
control::BlockParamFloat *_gps_pos_x; // X position of GPS antenna in body frame (m)
|
||||
control::BlockParamFloat *_gps_pos_y; // Y position of GPS antenna in body frame (m)
|
||||
control::BlockParamFloat *_gps_pos_z; // Z position of GPS antenna in body frame (m)
|
||||
control::BlockParamFloat *_rng_pos_x; // X position of range finder in body frame (m)
|
||||
control::BlockParamFloat *_rng_pos_y; // Y position of range finder in body frame (m)
|
||||
control::BlockParamFloat *_rng_pos_z; // Z position of range finder in body frame (m)
|
||||
control::BlockParamFloat *_flow_pos_x; // X position of optical flow sensor focal point in body frame (m)
|
||||
control::BlockParamFloat *_flow_pos_y; // Y position of optical flow sensor focal point in body frame (m)
|
||||
control::BlockParamFloat *_flow_pos_z; // Z position of optical flow sensor focal point in body frame (m)
|
||||
|
||||
int update_subscriptions();
|
||||
|
||||
};
|
||||
@@ -294,7 +308,19 @@ Ekf2::Ekf2():
|
||||
_flow_noise_qual_min(new control::BlockParamFloat(this, "EKF2_OF_N_MAX", false, &_params->flow_noise_qual_min)),
|
||||
_flow_qual_min(new control::BlockParamInt(this, "EKF2_OF_QMIN", false, &_params->flow_qual_min)),
|
||||
_flow_innov_gate(new control::BlockParamFloat(this, "EKF2_OF_GATE", false, &_params->flow_innov_gate)),
|
||||
_flow_rate_max(new control::BlockParamFloat(this, "EKF2_OF_RMAX", false, &_params->flow_rate_max))
|
||||
_flow_rate_max(new control::BlockParamFloat(this, "EKF2_OF_RMAX", false, &_params->flow_rate_max)),
|
||||
_imu_pos_x(new control::BlockParamFloat(this, "EKF2_IMU_POS_X", false, &_params->imu_pos_body(0))),
|
||||
_imu_pos_y(new control::BlockParamFloat(this, "EKF2_IMU_POS_Y", false, &_params->imu_pos_body(1))),
|
||||
_imu_pos_z(new control::BlockParamFloat(this, "EKF2_IMU_POS_Z", false, &_params->imu_pos_body(2))),
|
||||
_gps_pos_x(new control::BlockParamFloat(this, "EKF2_GPS_POS_X", false, &_params->gps_pos_body(0))),
|
||||
_gps_pos_y(new control::BlockParamFloat(this, "EKF2_GPS_POS_Y", false, &_params->gps_pos_body(1))),
|
||||
_gps_pos_z(new control::BlockParamFloat(this, "EKF2_GPS_POS_Z", false, &_params->gps_pos_body(2))),
|
||||
_rng_pos_x(new control::BlockParamFloat(this, "EKF2_RNG_POS_X", false, &_params->rng_pos_body(0))),
|
||||
_rng_pos_y(new control::BlockParamFloat(this, "EKF2_RNG_POS_Y", false, &_params->rng_pos_body(1))),
|
||||
_rng_pos_z(new control::BlockParamFloat(this, "EKF2_RNG_POS_Z", false, &_params->rng_pos_body(2))),
|
||||
_flow_pos_x(new control::BlockParamFloat(this, "EKF2_OF_POS_X", false, &_params->flow_pos_body(0))),
|
||||
_flow_pos_y(new control::BlockParamFloat(this, "EKF2_OF_POS_Y", false, &_params->flow_pos_body(1))),
|
||||
_flow_pos_z(new control::BlockParamFloat(this, "EKF2_OF_POS_Z", false, &_params->flow_pos_body(2)))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user