From 060f63b137bee0b44c0c9eda26b0dc56e5b9a6cf Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 10 May 2013 13:32:43 +0200 Subject: digital/io-hub/src/apbirthday: add beacon obstacles to specific slots --- digital/io-hub/src/apbirthday/robot.cc | 2 +- digital/io-hub/src/common-cc/obstacles.cc | 8 ++++++++ digital/io-hub/src/common-cc/obstacles.hh | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'digital') diff --git a/digital/io-hub/src/apbirthday/robot.cc b/digital/io-hub/src/apbirthday/robot.cc index f99351dc..460cea9f 100644 --- a/digital/io-hub/src/apbirthday/robot.cc +++ b/digital/io-hub/src/apbirthday/robot.cc @@ -184,7 +184,7 @@ Robot::main_loop () vect_t pos; int trust = beacon.get_position (i, pos); if (trust > 70) - obstacles.add (pos); + obstacles.add (pos, i); } if (usdist_control_.update ()) { diff --git a/digital/io-hub/src/common-cc/obstacles.cc b/digital/io-hub/src/common-cc/obstacles.cc index 26945137..17161902 100644 --- a/digital/io-hub/src/common-cc/obstacles.cc +++ b/digital/io-hub/src/common-cc/obstacles.cc @@ -104,6 +104,14 @@ Obstacles::add (const vect_t &pos) changed_ = true; } +void +Obstacles::add (const vect_t &pos, int slot) +{ + obstacles_[slot].pos = pos; + obstacles_[slot].valid = valid_new_; + changed_ = true; +} + bool Obstacles::blocking (const vect_t &robot, const vect_t &dest, int stop_mm_) const { diff --git a/digital/io-hub/src/common-cc/obstacles.hh b/digital/io-hub/src/common-cc/obstacles.hh index 9a87f895..c8abd93f 100644 --- a/digital/io-hub/src/common-cc/obstacles.hh +++ b/digital/io-hub/src/common-cc/obstacles.hh @@ -42,6 +42,8 @@ class Obstacles void update (); /// Add an obstacle detection. void add (const vect_t &pos); + /// Add an obstacle detection, to specific slot. + void add (const vect_t &pos, int slot); /// Return true if there is an obstacle near the robot while going to a /// destination point. bool blocking (const vect_t &robot, const vect_t &dest, int stop_mm_ = -1) -- cgit v1.2.3