summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub
diff options
context:
space:
mode:
authorNicolas Schodet2013-05-10 13:32:43 +0200
committerNicolas Schodet2013-05-10 13:32:43 +0200
commit060f63b137bee0b44c0c9eda26b0dc56e5b9a6cf (patch)
treedfcc85787bcf04e8cad6ff11bb8afcf468428d86 /digital/io-hub
parent5dae41f95dee1c4bc7090567e2c855f1bae5c871 (diff)
digital/io-hub/src/apbirthday: add beacon obstacles to specific slots
Diffstat (limited to 'digital/io-hub')
-rw-r--r--digital/io-hub/src/apbirthday/robot.cc2
-rw-r--r--digital/io-hub/src/common-cc/obstacles.cc8
-rw-r--r--digital/io-hub/src/common-cc/obstacles.hh2
3 files changed, 11 insertions, 1 deletions
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)