From eea8208edf3364a3003433267314e1c1916c3029 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 9 Apr 2010 19:54:42 +0200 Subject: digital/io/src: take obstacle radius into account, refs #129 --- digital/io/src/radar.c | 3 +++ digital/io/src/radar.h | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'digital') diff --git a/digital/io/src/radar.c b/digital/io/src/radar.c index 294a4558..7c9557c4 100644 --- a/digital/io/src/radar.c +++ b/digital/io/src/radar.c @@ -98,6 +98,9 @@ radar_update (vect_t robot_pos, uint16_t robot_a, vect_t *obs_pos) robot_a + radar_sensors[i].a); vect_translate (&hit[i], &ray); valid[i] = radar_valid (hit[i]); + vect_from_polar_uf016 (&ray, RADAR_OBSTACLE_RADIUS_MM, + robot_a + radar_sensors[i].a); + vect_translate (&hit[i], &ray); } else valid[i] = 0; diff --git a/digital/io/src/radar.h b/digital/io/src/radar.h index b602b69d..a1c5fe54 100644 --- a/digital/io/src/radar.h +++ b/digital/io/src/radar.h @@ -35,6 +35,10 @@ * - determining if an obstacle should make the robot stop. */ +/** Estimated obstacle radius. As the sensors detect obstacle edge, this is + * added to position obstacle center. */ +#define RADAR_OBSTACLE_RADIUS_MM 150 + /** Update radar view. Return the number of obstacles found. Obstacles * positions are returned in obs_pos. */ uint8_t -- cgit v1.2.3