summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2013-03-26 21:01:32 +0100
committerNicolas Schodet2013-03-26 21:03:14 +0100
commitfd2970444d83ac38e0d6af53a6b4dada4226250e (patch)
tree8834aa993e99a4880b93c0e63adb43ebf5f9d849
parent14ce108a8d7138def681854b3d4bddb53e32be8d (diff)
host/simu/model: add output level factor for US distance sensor
-rw-r--r--host/simu/model/distance_sensor_sensopart.py15
-rw-r--r--host/simu/robots/guybrush/model/bag.py8
-rw-r--r--host/simu/robots/marcel/model/bag.py8
-rw-r--r--host/simu/robots/robospierre/model/bag.py8
4 files changed, 20 insertions, 19 deletions
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