diff --git a/src/lib/drivers/rangefinder/PX4Rangefinder.cpp b/src/lib/drivers/rangefinder/PX4Rangefinder.cpp index 9a9c94b658..233bd5ad28 100644 --- a/src/lib/drivers/rangefinder/PX4Rangefinder.cpp +++ b/src/lib/drivers/rangefinder/PX4Rangefinder.cpp @@ -84,7 +84,11 @@ void PX4Rangefinder::update(const hrt_abstime ×tamp_sample, const float dis } // Update the quaternion in the sample update - memcpy(report.q, q, sizeof(float) * q_len); + if (q != nullptr) { + memcpy(report.q, q, sizeof(float) * q_len); + + } + _distance_sensor_pub.update(); } diff --git a/src/lib/drivers/rangefinder/PX4Rangefinder.hpp b/src/lib/drivers/rangefinder/PX4Rangefinder.hpp index fc5d7b3b24..2ea654fba2 100644 --- a/src/lib/drivers/rangefinder/PX4Rangefinder.hpp +++ b/src/lib/drivers/rangefinder/PX4Rangefinder.hpp @@ -63,7 +63,8 @@ public: void set_mode(const uint8_t mode) { _distance_sensor_pub.get().mode = mode; } // update with quaterion sensor orientation with respect to the vehicle body frame - void update(const hrt_abstime ×tamp_sample, const float distance, const int8_t quality = -1, const float *q = nullptr, uint8_t q_len = 4); + void update(const hrt_abstime ×tamp_sample, const float distance, const int8_t quality = -1, const float *q = nullptr, + uint8_t q_len = 4); int get_instance() { return _distance_sensor_pub.get_instance(); }; uint32_t get_device_id() { return _distance_sensor_pub.get().device_id; };