ArduCopter: report crosstrack_error

This commit is contained in:
Pierre Kancir
2018-06-26 08:42:14 +09:00
committed by Randy Mackay
parent bffe3f6c21
commit 2d5cbd2cf8
3 changed files with 15 additions and 1 deletions
+1 -1
View File
@@ -168,7 +168,7 @@ void NOINLINE Copter::send_nav_controller_output(mavlink_channel_t chan)
MIN(flightmode->wp_distance() * 1.0e-2f, UINT16_MAX),
pos_control->get_alt_error() * 1.0e-2f,
0,
0);
flightmode->crosstrack_error() * 1.0e-2f);
}
int16_t GCS_MAVLINK_Copter::vfr_hud_throttle() const
+5
View File
@@ -93,6 +93,7 @@ protected:
virtual void run_autopilot() {}
virtual uint32_t wp_distance() const { return 0; }
virtual int32_t wp_bearing() const { return 0; }
virtual float crosstrack_error() const { return 0.0f;}
virtual bool get_wp(Location_Class &loc) { return false; };
virtual bool in_guided_mode() const { return false; }
@@ -280,6 +281,7 @@ protected:
uint32_t wp_distance() const override;
int32_t wp_bearing() const override;
float crosstrack_error() const override { return wp_nav->crosstrack_error();}
bool get_wp(Location_Class &loc) override;
void run_autopilot() override;
@@ -780,6 +782,7 @@ protected:
uint32_t wp_distance() const override;
int32_t wp_bearing() const override;
float crosstrack_error() const override;
private:
@@ -957,6 +960,7 @@ protected:
uint32_t wp_distance() const override;
int32_t wp_bearing() const override;
float crosstrack_error() const override { return wp_nav->crosstrack_error();}
void descent_start();
void descent_run();
@@ -1018,6 +1022,7 @@ protected:
uint32_t wp_distance() const override;
int32_t wp_bearing() const override;
float crosstrack_error() const override { return wp_nav->crosstrack_error();}
private:
+9
View File
@@ -769,3 +769,12 @@ int32_t Copter::ModeGuided::wp_bearing() const
return 0;
}
}
float Copter::ModeGuided::crosstrack_error() const
{
if (mode() == Guided_WP) {
return wp_nav->crosstrack_error();
} else {
return 0;
}
}