From fd2970444d83ac38e0d6af53a6b4dada4226250e Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 26 Mar 2013 21:01:32 +0100 Subject: host/simu/model: add output level factor for US distance sensor --- host/simu/model/distance_sensor_sensopart.py | 15 ++++++++------- host/simu/robots/guybrush/model/bag.py | 8 ++++---- host/simu/robots/marcel/model/bag.py | 8 ++++---- host/simu/robots/robospierre/model/bag.py | 8 ++++---- 4 files changed, 20 insertions(+), 19 deletions(-) (limited to 'host/simu') diff --git a/host/simu/model/distance_sensor_sensopart.py b/host/simu/model/distance_sensor_sensopart.py index bb8e17c7..528c15d0 100644 --- a/host/simu/model/distance_sensor_sensopart.py +++ b/host/simu/model/distance_sensor_sensopart.py @@ -41,12 +41,12 @@ class DistanceSensorSensopart (Observable): # Calibrated values. MIN = 100 MAX = 700 - # Output levels for MIN/MAX. - OMIN = 250 * 0.004 - OMAX = 250 * 0.020 + # Output levels for MIN/MAX calibrated for 1 V. + OMIN = 50 * 0.004 + OMAX = 50 * 0.020 def __init__ (self, link, scheduler, table, pos, angle, into = None, - level = 0, exclude = None): + level = 0, exclude = None, factor = 1): Observable.__init__ (self) self.rays = [ ] range = self.RANGE * self.QUALITY @@ -56,6 +56,7 @@ class DistanceSensorSensopart (Observable): for i in (-1, 1): self.rays.append (DistanceSensorSensopartRay (table, pos, angle + s[0] * i, range * s[1], into, level, exclude)) + self.factor = factor self.link = link self.scheduler = scheduler self.value = None @@ -71,11 +72,11 @@ class DistanceSensorSensopart (Observable): d = r.distance # Convert to voltage. if d is None or d > self.MAX: - self.value = self.OMAX + self.value = self.factor * self.OMAX elif d < self.MIN: - self.value = self.OMIN + self.value = self.factor * self.OMIN else: - self.value = (self.OMIN + self.value = self.factor * (self.OMIN + (d - self.MIN) / (self.MAX - self.MIN) * (self.OMAX - self.OMIN)) # Update observers. diff --git a/host/simu/robots/guybrush/model/bag.py b/host/simu/robots/guybrush/model/bag.py index f2ad12e7..389e1698 100644 --- a/host/simu/robots/guybrush/model/bag.py +++ b/host/simu/robots/guybrush/model/bag.py @@ -75,13 +75,13 @@ class Bag: ) self.distance_sensor = [ DistanceSensorSensopart (link_bag.io_hub.adc[0], scheduler, table, - (150, 0), 0, (self.position, ), 4), + (150, 0), 0, (self.position, ), 4, factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[1], scheduler, table, - (50, 147), 0, (self.position, ), set ([3, 4])), + (50, 147), 0, (self.position, ), set ([3, 4]), factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[2], scheduler, table, - (50, -147), 0, (self.position, ), set ([3, 4])), + (50, -147), 0, (self.position, ), set ([3, 4]), factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[3], scheduler, table, - (-120, 0), pi, (self.position, ), 4), + (-120, 0), pi, (self.position, ), 4, factor = 5), ] self.path = link_bag.io_hub.path self.pos_report = link_bag.io_hub.pos_report diff --git a/host/simu/robots/marcel/model/bag.py b/host/simu/robots/marcel/model/bag.py index 67cc0359..a5b09108 100644 --- a/host/simu/robots/marcel/model/bag.py +++ b/host/simu/robots/marcel/model/bag.py @@ -46,16 +46,16 @@ class Bag: self.distance_sensor = [ DistanceSensorSensopart (link_bag.io.adc[0], scheduler, table, (30 - 20, 0), 0, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io.adc[1], scheduler, table, (20 - 20, 20), pi * 30 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io.adc[2], scheduler, table, (20 - 20, -20), -pi * 30 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io.adc[3], scheduler, table, (-30 - 20, 0), pi, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), ] link_bag.io.adc[4].value = 0 link_bag.io.adc[5].value = 0 diff --git a/host/simu/robots/robospierre/model/bag.py b/host/simu/robots/robospierre/model/bag.py index f95f48ef..d2fb0210 100644 --- a/host/simu/robots/robospierre/model/bag.py +++ b/host/simu/robots/robospierre/model/bag.py @@ -56,16 +56,16 @@ class Bag: self.distance_sensor = [ DistanceSensorSensopart (link_bag.io_hub.adc[0], scheduler, table, (20, 20), pi * 10 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[1], scheduler, table, (20, -20), -pi * 10 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[2], scheduler, table, (-20, -20), pi + pi * 10 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), DistanceSensorSensopart (link_bag.io_hub.adc[3], scheduler, table, (-20, 20), pi - pi * 10 / 180, (self.position, ), 5, - distance_sensor_exclude), + distance_sensor_exclude, factor = 5), ] self.path = link_bag.io_hub.path self.pos_report = link_bag.io_hub.pos_report -- cgit v1.2.3