diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp index 00dedaccde..14bc9a160b 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp @@ -136,6 +136,7 @@ void AP_RangeFinder_PX4::update(void) if (count != 0) { state.distance_cm = sum / count * 100.0f; + state.distance_cm += ranger._offset[state.instance]; } } diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_PX4_PWM.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_PX4_PWM.cpp index 7108b221c5..342460f0e4 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_PX4_PWM.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_PX4_PWM.cpp @@ -105,7 +105,7 @@ void AP_RangeFinder_PX4_PWM::update(void) _last_pulse_time_ms = now; // setup for scaling in meters per millisecond - float distance_cm = pwm.pulse_width * 0.1f * scaling; + float distance_cm = pwm.pulse_width * 0.1f * scaling + ranger._offset[state.instance]; if (distance_cm > ranger._max_distance_cm[state.instance] || distance_cm < ranger._min_distance_cm[state.instance]) { diff --git a/libraries/AP_RangeFinder/RangeFinder.cpp b/libraries/AP_RangeFinder/RangeFinder.cpp index ea29181a24..108e9ca7eb 100644 --- a/libraries/AP_RangeFinder/RangeFinder.cpp +++ b/libraries/AP_RangeFinder/RangeFinder.cpp @@ -44,7 +44,7 @@ const AP_Param::GroupInfo RangeFinder::var_info[] PROGMEM = { // @Param: _OFFSET // @DisplayName: rangefinder offset - // @Description: Offset in volts for zero distance + // @Description: Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM and I2C Lidars // @Units: Volts // @Increment: 0.001 AP_GROUPINFO("_OFFSET", 3, RangeFinder, _offset[0], 0.0),