diff --git a/libraries/AP_Terrain/AP_Terrain.cpp b/libraries/AP_Terrain/AP_Terrain.cpp index 3f2cf78166..a6146937ae 100644 --- a/libraries/AP_Terrain/AP_Terrain.cpp +++ b/libraries/AP_Terrain/AP_Terrain.cpp @@ -95,7 +95,7 @@ AP_Terrain::AP_Terrain() : This function costs about 20 microseconds on Pixhawk */ -bool AP_Terrain::height_amsl(const Location &loc, float &height, bool corrected) +bool AP_Terrain::height_amsl(const Location &loc, float &height) { if (!allocate()) { return false; @@ -107,10 +107,6 @@ bool AP_Terrain::height_amsl(const Location &loc, float &height, bool corrected) if (loc.lat == home_loc.lat && loc.lng == home_loc.lng) { height = home_height; - // apply correction which assumes home altitude is at terrain altitude - if (corrected) { - height += (ahrs.get_home().alt * 0.01f) - home_height; - } return true; } @@ -161,11 +157,6 @@ bool AP_Terrain::height_amsl(const Location &loc, float &height, bool corrected) home_loc = loc; } - // apply correction which assumes home altitude is at terrain altitude - if (corrected) { - height += (ahrs.get_home().alt * 0.01f) - home_height; - } - return true; } @@ -186,7 +177,7 @@ bool AP_Terrain::height_terrain_difference_home(float &terrain_difference, bool const AP_AHRS &ahrs = AP::ahrs(); float height_home, height_loc; - if (!height_amsl(ahrs.get_home(), height_home, false)) { + if (!height_amsl(ahrs.get_home(), height_home)) { // we don't know the height of home return false; } @@ -197,7 +188,7 @@ bool AP_Terrain::height_terrain_difference_home(float &terrain_difference, bool return false; } - if (!height_amsl(loc, height_loc, false)) { + if (!height_amsl(loc, height_loc)) { if (!extrapolate || !have_current_loc_height) { // we don't know the height of the given location return false; @@ -283,7 +274,7 @@ float AP_Terrain::lookahead(float bearing, float distance, float climb_ratio) return 0; } float base_height; - if (!height_amsl(loc, base_height, false)) { + if (!height_amsl(loc, base_height)) { // we don't know our current terrain height return 0; } @@ -297,7 +288,7 @@ float AP_Terrain::lookahead(float bearing, float distance, float climb_ratio) climb += climb_ratio * grid_spacing; distance -= grid_spacing; float height; - if (height_amsl(loc, height, false)) { + if (height_amsl(loc, height)) { float rise = (height - base_height) - climb; if (rise > lookahead_estimate) { lookahead_estimate = rise; @@ -324,12 +315,12 @@ void AP_Terrain::update(void) // try to ensure the home location is populated float height; - height_amsl(ahrs.get_home(), height, false); + height_amsl(ahrs.get_home(), height); // update the cached current location height Location loc; bool pos_valid = ahrs.get_location(loc); - bool terrain_valid = pos_valid && height_amsl(loc, height, false); + bool terrain_valid = pos_valid && height_amsl(loc, height); if (pos_valid && terrain_valid) { last_current_loc_height = height; have_current_loc_height = true; @@ -372,7 +363,7 @@ void AP_Terrain::log_terrain_data() float current_height = 0; uint16_t pending, loaded; - height_amsl(loc, terrain_height, false); + height_amsl(loc, terrain_height); height_above_terrain(current_height, true); get_statistics(pending, loaded); diff --git a/libraries/AP_Terrain/AP_Terrain.h b/libraries/AP_Terrain/AP_Terrain.h index aeac19c4bc..ae47f72664 100644 --- a/libraries/AP_Terrain/AP_Terrain.h +++ b/libraries/AP_Terrain/AP_Terrain.h @@ -121,12 +121,8 @@ public: find the terrain height in meters above sea level for a location return false if not available - - if corrected is true then terrain alt is adjusted so that - the terrain altitude matches the home altitude at the home location - (i.e. we assume home is at the terrain altitude) */ - bool height_amsl(const Location &loc, float &height, bool corrected); + bool height_amsl(const Location &loc, float &height); /* find difference between home terrain height and the terrain diff --git a/libraries/AP_Terrain/TerrainGCS.cpp b/libraries/AP_Terrain/TerrainGCS.cpp index 17621f1a72..4eed5931ab 100644 --- a/libraries/AP_Terrain/TerrainGCS.cpp +++ b/libraries/AP_Terrain/TerrainGCS.cpp @@ -228,8 +228,8 @@ void AP_Terrain::send_terrain_report(mavlink_channel_t chan, const Location &loc Location current_loc; const AP_AHRS &ahrs = AP::ahrs(); if (ahrs.get_location(current_loc) && - height_amsl(ahrs.get_home(), home_terrain_height, false) && - height_amsl(loc, terrain_height, false)) { + height_amsl(ahrs.get_home(), home_terrain_height) && + height_amsl(loc, terrain_height)) { // non-zero spacing indicates we have data spacing = grid_spacing; } else if (extrapolate && have_current_loc_height) { @@ -238,7 +238,7 @@ void AP_Terrain::send_terrain_report(mavlink_channel_t chan, const Location &loc terrain_height = last_current_loc_height; } else { // report terrain height if we can, but can't give current_height - height_amsl(loc, terrain_height, false); + height_amsl(loc, terrain_height); } uint16_t pending, loaded; get_statistics(pending, loaded); diff --git a/libraries/AP_Terrain/TerrainMission.cpp b/libraries/AP_Terrain/TerrainMission.cpp index ab6b8b79ce..40a23f865a 100644 --- a/libraries/AP_Terrain/TerrainMission.cpp +++ b/libraries/AP_Terrain/TerrainMission.cpp @@ -95,7 +95,7 @@ void AP_Terrain::update_mission_data(void) // we have a mission command to check float height; - if (!height_amsl(cmd.content.location, height, false)) { + if (!height_amsl(cmd.content.location, height)) { // if we can't get data for a mission item then return and // check again next time return; @@ -157,7 +157,7 @@ void AP_Terrain::update_rally_data(void) loc.lat = rp.lat; loc.lng = rp.lng; float height; - if (!height_amsl(loc, height, false)) { + if (!height_amsl(loc, height)) { // if we can't get data for a rally item then return and // check again next time return;