3 #if HAL_CPU_CLASS >= HAL_CPU_CLASS_150 42 for (uint8_t sensorIndex = 0; sensorIndex <= 1; sensorIndex++) {
44 if (sensor ==
nullptr) {
57 bool sampleFresh[2][3] = {};
58 for (uint8_t index = 0; index <= 2; index++) {
63 if (sampleFresh[sensorIndex][0] && sampleFresh[sensorIndex][1] && sampleFresh[sensorIndex][2]) {
145 if ((rawFlowQuality > 0) && rawFlowRates.
length() < 4.2f && rawGyroRates.
length() < 4.2f) {
214 for (uint8_t i=1; i<maxCount; i++) {
217 if (tempIndex >= maxCount) {
218 tempIndex -= maxCount;
244 if (changeDetected) {
399 dVel_dt =
MIN(dVel_dt,1.0e-1
f);
543 dAng_dt =
MIN(dAng_dt,1.0e-1
f);
606 const float baroDriftRate = 0.05f;
610 const float maxTerrGrad = 0.25f;
677 if (beacon ==
nullptr) {
685 bool newDataToPush =
false;
686 uint8_t numRngBcnsChecked = 0;
689 while (!newDataToPush && numRngBcnsChecked <
N_beacons) {
721 newDataToPush =
true;
738 if (posDiffSq < 9.0
f*posDiffVar) {
834 #endif // HAL_CPU_CLASS
void calcFiltBaroOffset()
float norm(const T first, const U second, const Params... parameters)
gps_elements gpsDataDelayed
uint32_t last_update_ms(uint8_t i) const
AP_RangeFinder_Backend * get_backend(uint8_t id) const
void correctDeltaAngle(Vector3f &delAng, float delAngDT)
uint32_t lastBaroReceived_ms
obs_ring_buffer_t< gps_elements > storedGPS
uint32_t extNavMeasTime_ms
bool use_for_yaw(uint8_t i) const
return true if the compass should be used for yaw calculations
void to_axis_angle(Vector3f &v)
enum Rotation orientation() const
float beacon_distance(uint8_t beacon_instance) const
uint16_t distance_cm() const
baro_elements baroDataNew
output_elements outputDataNew
Interface definition for the various Ground Control System.
bool assume_zero_sideslip(void) const
uint8_t get_primary_gyro(void) const
float get_airspeed(uint8_t i) const
obs_ring_buffer_t< range_elements > storedRange
bool getTakeoffExpected()
uint32_t lastRngMeasTime_ms
ext_nav_elements extNavDataNew
void getTimingStatistics(struct ekf_timing &timing)
uint32_t last_message_time_ms(uint8_t instance) const
float beaconVehiclePosErr
bool get_delta_velocity(uint8_t i, Vector3f &delta_velocity) const
float storedRngMeas[2][3]
bool use_accel(uint8_t instance) const
const Location & location(uint8_t instance) const
uint32_t lastTimeGpsReceived_ms
struct NavEKF2_core::state_elements & stateStruct
uint32_t imuSampleTime_ms
bool inhibitGpsVertVelUse
bool beacon_healthy(uint8_t beacon_instance) const
obs_ring_buffer_t< tas_elements > storedTAS
static auto MAX(const A &one, const B &two) -> decltype(one > two ? one :two)
const Compass * get_compass() const
static AP_InertialSensor ins
imu_elements imuDataDelayed
const AP_Airspeed * get_airspeed(void) const
const Vector3f & get_field(uint8_t i) const
Return the current field as a Vector3f in milligauss.
uint32_t framesSincePredict
uint8_t get_primary_accel(void) const
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
bool get_delta_angle(uint8_t i, Vector3f &delta_angle) const
baro_elements baroDataDelayed
float receiverPosCov[3][3]
bool get_origin(Location &origin_loc) const
const uint8_t flowTimeDeltaAvg_ms
bool readDeltaAngle(uint8_t ins_index, Vector3f &dAng, float &dAng_dt)
uint32_t secondLastGpsTime_ms
const Vector3f & velocity(uint8_t instance) const
Vector2f location_diff(const struct Location &loc1, const struct Location &loc2)
int32_t alt
param 2 - Altitude in centimeters (meters * 100) see LOCATION_ALT_MAX_M
bool use_gyro(uint8_t instance) const
bool speed_accuracy(uint8_t instance, float &sacc) const
bool get_vehicle_position_ned(Vector3f &pos, float &accuracy_estimate) const
uint32_t lastHealthyMagTime_ms
const Vector3f * body_offset
struct NavEKF2_core::@146 gpsCheckStatus
const Vector3f * body_offset
void correctEkfOriginHeight()
const Vector3f & get_offsets(uint8_t i) const
Vector3f beacon_position(uint8_t beacon_instance) const
void rotation_matrix(Matrix3f &m) const
uint32_t rngBcnLast3DmeasTime_ms
void detectOptFlowTakeoff(void)
obs_ring_buffer_t< mag_elements > storedMag
void send_text(MAV_SEVERITY severity, const char *fmt,...)
const Vector3f & get_imu_pos_offset(uint8_t instance) const
Vector3f beaconVehiclePosNED
GPS_Status status(uint8_t instance) const
Query GPS status.
uint32_t lastMagUpdate_us
bool use_compass(void) const
uint32_t beacon_last_update_ms(uint8_t beacon_instance) const
obs_ring_buffer_t< rng_bcn_elements > storedRangeBeacon
uint8_t get_count(void) const
obs_ring_buffer_t< baro_elements > storedBaro
float constrain_float(const float amt, const float low, const float high)
float get_EAS2TAS(uint8_t i) const
float get_altitude(void) const
uint8_t num_sats(uint8_t instance) const
uint32_t last_update_usec(void) const
struct Location EKF_origin
float get_delta_angle_dt(uint8_t i) const
uint32_t lastOriginHgtTime_ms
bool setOriginLLH(const Location &loc)
float get_delta_velocity_dt(uint8_t i) const
rng_bcn_elements rngBcnDataDelayed
void alignMagStateDeclination()
void writeOptFlowMeas(uint8_t &rawFlowQuality, Vector2f &rawFlowRates, Vector2f &rawGyroRates, uint32_t &msecFlowMeas, const Vector3f &posOffset)
imu_ring_buffer_t< imu_elements > storedIMU
of_elements ofDataDelayed
uint8_t primary_sensor(void) const
bool calcGpsGoodToAlign(void)
uint32_t lastTimeRngBcn_ms[10]
obs_ring_buffer_t< ext_nav_elements > storedExtNav
const uint8_t tasDelay_ms
uint8_t get_gyro_count(void) const
const AP_Beacon * get_beacon(void) const
bool rngBcnAlignmentCompleted
uint8_t localFilterTimeStep_ms
AP_InertialSensor & ins()
void rotate(const Vector3f &v)
void calcGpsGoodForFlight(void)
RangeFinder::RangeFinder_Status status() const
range_elements rangeDataNew
uint8_t lastRngBcnChecked
bool magStateResetRequest
Receiving valid messages and 3D lock.
uint32_t timeTasReceived_ms
tas_elements tasDataDelayed
bool vertical_accuracy(uint8_t instance, float &vacc) const
uint32_t extNavLastPosResetTime_ms
uint32_t rngValidMeaTime_ms
void updateTimingStatistics(void)
const uint8_t magDelay_ms
float get_loop_delta_t(void) const
int16_t ground_clearance_cm_orient(enum Rotation orientation) const
void writeExtNavData(const Vector3f &sensOffset, const Vector3f &pos, const Quaternion &quat, float posErr, float angErr, uint32_t timeStamp_ms, uint32_t resetTime_ms)
void correctDeltaVelocity(Vector3f &delVel, float delVelDT)
bool horizontal_accuracy(uint8_t instance, float &hacc) const
Quaternion imuQuatDownSampleNew
uint32_t storedRngMeasTime_ms[2][3]
uint32_t flowValidMeaTime_ms
bool readDeltaVelocity(uint8_t ins_index, Vector3f &dVel, float &dVel_dt)
rng_bcn_elements rngBcnDataNew
obs_ring_buffer_t< of_elements > storedOF
uint32_t get_last_update(void) const
uint8_t get_accel_count(void) const
struct NavEKF2::@140 logging
bool have_vertical_velocity(uint8_t instance) const
imu_elements imuDataDownSampledNew