From a605d27b23fd5c1886f6188aac7123ca80160e9d Mon Sep 17 00:00:00 2001 From: David Wehr <dawehr@iastate.edu> Date: Fri, 14 Apr 2017 00:24:29 -0500 Subject: [PATCH] Added check to verify that LiDAR is within reasonable ranges, since it sometimes spikes randomly. --- quad/src/quad_app/control_algorithm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quad/src/quad_app/control_algorithm.c b/quad/src/quad_app/control_algorithm.c index 3af671161..c58886dd3 100644 --- a/quad/src/quad_app/control_algorithm.c +++ b/quad/src/quad_app/control_algorithm.c @@ -14,6 +14,7 @@ #include "timer.h" //#define USE_LIDAR +#define MAX_VALID_LIDAR (10.0) // Maximum valid distance to read from LiDAR to update #define PX4FLOW_QUAL_MIN (100) #define OF_OFFSET_ANGLE (-0.62204) // -35.64 degrees @@ -388,7 +389,9 @@ int control_algorithm_init(parameter_t * ps) graph_set_param_val(graph, ps->gyro_y, CONST_SET, sensor_struct->gyr_y); graph_set_param_val(graph, ps->gyro_x, CONST_SET, sensor_struct->gyr_x); graph_set_param_val(graph, ps->gyro_z, CONST_SET, sensor_struct->gyr_z); - graph_set_param_val(graph, ps->lidar, CONST_SET, sensor_struct->lidar_altitude); + if (fabs(sensor_struct->lidar_altitude) <= MAX_VALID_LIDAR) { + graph_set_param_val(graph, ps->lidar, CONST_SET, sensor_struct->lidar_altitude); + } graph_set_param_val(graph, ps->flow_quality, CONST_SET, sensor_struct->optical_flow.quality); //As per documentation, disregard frames with low quality, as they contain unreliable data if (sensor_struct->optical_flow.quality >= PX4FLOW_QUAL_MIN) { -- GitLab