mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-15 09:50:34 +08:00
FlightTaskAuto: reference update only if refence altitude has not bee set.
This commit is contained in:
committed by
Lorenz Meier
parent
45810ec2b4
commit
66d5f2ffd2
@@ -177,10 +177,13 @@ bool FlightTaskAuto::_isFinite(const position_setpoint_s sp)
|
||||
|
||||
void FlightTaskAuto::_evaluateVehicleGlobalPosition()
|
||||
{
|
||||
FlightTask::_evaluateVehicleLocalPosition();
|
||||
|
||||
// check if reference has changed and update.
|
||||
if (_sub_vehicle_local_position->get().ref_timestamp != _time_stamp_reference) {
|
||||
// Only update if reference timestamp has changed AND no valid reference altitude
|
||||
// is available.
|
||||
// TODO: this needs to be revisited and needs a more clear implementation
|
||||
if (_sub_vehicle_local_position->get().ref_timestamp != _time_stamp_reference &&
|
||||
(_sub_vehicle_local_position->get().z_global && !PX4_ISFINITE(_reference_altitude))) {
|
||||
|
||||
map_projection_init(&_reference_position,
|
||||
_sub_vehicle_local_position->get().ref_lat,
|
||||
_sub_vehicle_local_position->get().ref_lon);
|
||||
|
||||
@@ -92,7 +92,7 @@ private:
|
||||
map_projection_reference_s _reference; /**< Reference frame from global to local. */
|
||||
|
||||
map_projection_reference_s _reference_position{}; /**< Structure used to project lat/lon setpoint into local frame. */
|
||||
float _reference_altitude = 0.0f; /**< Altitude relative to ground. */
|
||||
float _reference_altitude = NAN; /**< Altitude relative to ground. */
|
||||
hrt_abstime _time_stamp_reference = 0; /**< time stamp when last reference update occured. */
|
||||
|
||||
bool _evaluateTriplets(); /**< Checks and sets triplets. */
|
||||
|
||||
Reference in New Issue
Block a user