3 #if HAL_CPU_CLASS >= HAL_CPU_CLASS_150 55 void NavEKF3_core::getFlowDebug(
float &varFlow,
float &gndOffset,
float &flowInnovX,
float &flowInnovY,
float &auxInnov,
float &HAGL,
float &rngInnov,
float &
range,
float &gndOffsetErr)
const 65 gndOffsetErr = sqrtf(
Popt);
82 float &offsetHigh,
float &offsetLow,
Vector3f &posNED)
256 posNE.
x = tempPosNE.
x;
257 posNE.
y = tempPosNE.
y;
374 ekfGndSpdLimit = 400.0f;
375 ekfNavVelGainScaler = 1.0f;
414 const float maxMagVar = 5E-6
f;
415 bool variancesConverged = (
P[19][19] < maxMagVar) && (
P[20][20] < maxMagVar) && (
P[21][21] < maxMagVar);
420 variancesConverged) {
445 magInnov.
y = 1e3f*innovMag[1];
446 magInnov.
z = 1e3f*innovMag[2];
470 for (uint8_t i=0; i<24; i++) {
471 stateVar[i] =
P[i][i];
551 flags |= EKF_ATTITUDE;
554 flags |= EKF_VELOCITY_HORIZ;
557 flags |= EKF_VELOCITY_VERT;
560 flags |= EKF_POS_HORIZ_REL;
563 flags |= EKF_POS_HORIZ_ABS;
566 flags |= EKF_POS_VERT_ABS;
569 flags |= EKF_POS_VERT_AGL;
572 flags |= EKF_CONST_POS_MODE;
575 flags |= EKF_PRED_POS_HORIZ_REL;
578 flags |= EKF_PRED_POS_HORIZ_ABS;
585 float velVar, posVar, hgtVar, tasVar;
588 getVariances(velVar, posVar, hgtVar, magVar, tasVar, offset);
601 mavlink_msg_ekf_status_report_send(chan, flags, velVar, posVar, hgtVar, magVar.
length(), temp, tasVar);
629 #endif // HAL_CPU_CLASS
void to_euler(float &roll, float &pitch, float &yaw) const
struct nav_gps_status::@139 flags
void getRotationBodyToNED(Matrix3f &mat) const
char prearm_fail_string[40]
const Vector3f & get_trim() const
float getPosDownDerivative(void) const
void getFilterFaults(uint16_t &faults) const
bool getPosD(float &posD) const
bool getPosNE(Vector2f &posNE) const
uint32_t getBodyFrameOdomDebug(Vector3f &velInnov, Vector3f &velInnovVar)
uint8_t getActiveMag() const
void getVelNED(Vector3f &vel) const
uint32_t getLastVelNorthEastReset(Vector2f &vel) const
void getAccelBias(Vector3f &accelBias) const
vel_odm_elements bodyOdmDataDelayed
void getMagNED(Vector3f &magNED) const
bool rngBcnAlignmentStarted
void getQuaternion(Quaternion &quat) const
void getTiltError(float &ang) const
uint32_t lastPosResetD_ms
void getGyroBias(Vector3f &gyroBias) const
void location_offset(struct Location &loc, float ofs_north, float ofs_east)
const Location & location(uint8_t instance) const
void getFilterStatus(nav_filter_status &status) const
struct NavEKF3_core::@153 faultStatus
uint32_t flowValidMeaTime_ms
uint32_t framesSincePredict
wheel_odm_elements wheelOdmDataDelayed
int32_t lat
param 3 - Latitude * 10**7
static auto MAX(const A &one, const B &two) -> decltype(one > two ? one :two)
range_elements rangeDataDelayed
struct NavEKF3_core::state_elements & stateStruct
const Compass * get_compass() const
float errorScore(void) const
uint32_t getLastYawResetAngle(float &yawAng) const
void getWind(Vector3f &wind) const
bool getRangeBeaconDebug(uint8_t &ID, float &rng, float &innov, float &innovVar, float &testRatio, Vector3f &beaconPosNED, float &offsetHigh, float &offsetLow, Vector3f &posNED)
output_elements outputDataNew
bool getHAGL(float &HAGL) const
float bcnPosDownOffsetMax
uint32_t getLastPosNorthEastReset(Vector2f &pos) const
Vector2f location_diff(const struct Location &loc1, const struct Location &loc2)
Vector2f lastKnownPositionNE
int32_t alt
param 2 - Altitude in centimeters (meters * 100) see LOCATION_ALT_MAX_M
void getEulerAngles(Vector3f &eulers) const
Vector3f outputTrackError
void getVariances(float &velVar, float &posVar, float &hgtVar, Vector3f &magVar, float &tasVar, Vector2f &offset) const
const Vector3f & get_offsets(uint8_t i) const
const Matrix3f & get_rotation_vehicle_body_to_autopilot_body(void) const
uint8_t rngBcnFuseDataReportIndex
int16_t max_distance_cm_orient(enum Rotation orientation) const
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
void rotation_matrix(Matrix3f &m) const
bool healthy[COMPASS_MAX_INSTANCES]
void getEkfControlLimits(float &ekfGndSpdLimit, float &ekfNavVelGainScaler) const
uint32_t getLastPosDownReset(float &posD) const
Receiving valid messages and 2D lock.
void getInnovations(Vector3f &velInnov, Vector3f &posInnov, Vector3f &magInnov, float &tasInnov, float &yawInnov) const
struct NavEKF3_core::@152 rngBcnFusionReport[10]
GPS_Status status(uint8_t instance) const
Query GPS status.
Location_Option_Flags flags
options bitmask (1<<0 = relative altitude)
void getFilterGpsStatus(nav_gps_status &status) const
struct nav_filter_status::@138 flags
void getFlowDebug(float &varFlow, float &gndOffset, float &flowInnovX, float &flowInnovY, float &auxInnov, float &HAGL, float &rngInnov, float &range, float &gndOffsetErr) const
struct NavEKF3_core::@154 gpsCheckStatus
int32_t lng
param 4 - Longitude * 10**7
void getStateVariances(float stateVar[24])
AP_HAL::AnalogSource * chan
void getOutputTrackingError(Vector3f &error) const
bool getMagOffsets(uint8_t mag_idx, Vector3f &magOffsets) const
uint8_t getFramesSincePredict(void) const
#define error(fmt, args ...)
const char * prearm_failure_reason(void) const
void getMagXYZ(Vector3f &magXYZ) const
void getAccelNED(Vector3f &accelNED) const
bool getHeightControlLimit(float &height) const
Receiving valid messages and 3D lock.
bool getLLH(struct Location &loc) const
bool finalInflightMagInit
struct Location EKF_origin
nav_filter_status filterStatus
uint32_t imuSampleTime_ms
void send_status_report(mavlink_channel_t chan)
uint32_t prevBodyVelFuseTime_ms
bool getOriginLLH(struct Location &loc) const
uint32_t lastGpsVelFail_ms
void getFilterTimeouts(uint8_t &timeouts) const
float bcnPosDownOffsetMin