summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-08 01:11:29 +0200
committerNicolas Schodet2012-05-08 01:11:29 +0200
commit7bee1130c8d2eb1fc122bbf7867d15e413292ec2 (patch)
tree6faaf51e64cce03e50cec5786d8f0484c6b8dac8
parent36e894b04ec6e9927740165a5875356b58b9b2ee (diff)
digital/io-hub/src/guybrush, host/simu/robots/guybrush: add lower clamp zero
-rw-r--r--digital/io-hub/src/guybrush/contact_defs.h4
-rw-r--r--eurobot/2012/io-hub-cabling.svg10
-rw-r--r--host/simu/robots/guybrush/link/bag.py2
-rw-r--r--host/simu/robots/guybrush/model/bag.py2
-rw-r--r--host/simu/robots/guybrush/model/clamps.py9
5 files changed, 23 insertions, 4 deletions
diff --git a/digital/io-hub/src/guybrush/contact_defs.h b/digital/io-hub/src/guybrush/contact_defs.h
index 2b1385f3..80f1bd32 100644
--- a/digital/io-hub/src/guybrush/contact_defs.h
+++ b/digital/io-hub/src/guybrush/contact_defs.h
@@ -38,6 +38,7 @@
#define CONTACT_DOOR_CLOSE E, 1
#define CONTACT_GOLD_BAR E, 6
#define CONTACT_TOTEM E, 7
+#define CONTACT_LOWER_CLAMP_ZERO D, 7
#define CONTACT_LIST \
CONTACT (CONTACT_STRAT, 1) \
@@ -50,6 +51,7 @@
CONTACT (CONTACT_DOOR_OPEN, 1) \
CONTACT (CONTACT_DOOR_CLOSE, 1) \
CONTACT (CONTACT_GOLD_BAR, 1) \
- CONTACT (CONTACT_TOTEM, 1)
+ CONTACT (CONTACT_TOTEM, 1) \
+ CONTACT (CONTACT_LOWER_CLAMP_ZERO, 0)
#endif /* contact_defs_h */
diff --git a/eurobot/2012/io-hub-cabling.svg b/eurobot/2012/io-hub-cabling.svg
index 7a2a9dbc..730d76af 100644
--- a/eurobot/2012/io-hub-cabling.svg
+++ b/eurobot/2012/io-hub-cabling.svg
@@ -1009,6 +1009,16 @@
id="tspan3024"
x="650"
y="802.36218">lower clamp sensor 2</tspan></text>
+ <text
+ id="text3043"
+ y="862.36218"
+ x="649.5722"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="862.36218"
+ x="649.5722"
+ id="tspan3045"
+ sodipodi:role="line">lower clamp zero</tspan></text>
</g>
<path
sodipodi:nodetypes="ccccc"
diff --git a/host/simu/robots/guybrush/link/bag.py b/host/simu/robots/guybrush/link/bag.py
index 0603e2d9..234450e4 100644
--- a/host/simu/robots/guybrush/link/bag.py
+++ b/host/simu/robots/guybrush/link/bag.py
@@ -33,7 +33,7 @@ class Bag:
self.asserv = asserv.mex.Mex (node, '%s:asserv0' % instance,
aux_nb = 0)
self.io_hub = io_hub.mex.Mex (node, '%s:io0' % instance,
- contact_nb = 13, output_nb = 10)
+ contact_nb = 14, output_nb = 10)
self.mimot = mimot.mex.Mex (node, '%s:mimot0' % instance)
self.beacon = beacon.mex.Mex (node, '%s:beacon0' % instance)
diff --git a/host/simu/robots/guybrush/model/bag.py b/host/simu/robots/guybrush/model/bag.py
index a6302f44..ec83cb29 100644
--- a/host/simu/robots/guybrush/model/bag.py
+++ b/host/simu/robots/guybrush/model/bag.py
@@ -59,7 +59,7 @@ class Bag:
None, scheduler, 0., 30., 150., 75., 30.),
PneumaticCylinder (output[self.OUTPUT_LOWER_CLAMP_2_CLOSE],
None, scheduler, 0., 30., 150., 75., 30.)),
- contact[0:4],
+ contact[0:4], contact[10],
PneumaticCylinder (output[self.OUTPUT_UPPER_CLAMP_DOWN],
output[self.OUTPUT_UPPER_CLAMP_UP], scheduler,
0., 1., 1., 1., 1., contact[4], contact[5]),
diff --git a/host/simu/robots/guybrush/model/clamps.py b/host/simu/robots/guybrush/model/clamps.py
index d723847a..22444f30 100644
--- a/host/simu/robots/guybrush/model/clamps.py
+++ b/host/simu/robots/guybrush/model/clamps.py
@@ -31,7 +31,7 @@ import random
class Clamps (Observable):
def __init__ (self, table, robot_position, lower_clamp_motor,
- lower_clamp_cylinders, lower_clamp_sensors,
+ lower_clamp_cylinders, lower_clamp_sensors, lower_clamp_zero,
upper_clamp_up_down_cylinder, upper_clamp_in_out_cylinder,
upper_clamp_open_cylinder, door_cylinder):
Observable.__init__ (self)
@@ -40,6 +40,7 @@ class Clamps (Observable):
self.lower_clamp_motor = lower_clamp_motor
self.lower_clamp_cylinders = lower_clamp_cylinders
self.lower_clamp_sensors = lower_clamp_sensors
+ self.lower_clamp_zero = lower_clamp_zero
self.lower_clamp_clamping = [ None, None ]
self.lower_clamp_content = [ [ ], [ ] ]
self.upper_clamp_up_down_cylinder = upper_clamp_up_down_cylinder
@@ -132,6 +133,12 @@ class Clamps (Observable):
for s in self.lower_clamp_sensors:
s.state = new_state
s.notify ()
+ old_state = self.lower_clamp_zero.state
+ new_state = (rot_mod >= pi * 1.45 and rot_mod < pi * 1.55
+ and self.lower_clamp_clamping[0])
+ if new_state != old_state:
+ self.lower_clamp_zero.state = new_state
+ self.lower_clamp_zero.notify ()
return changed
def __compute_upper_clamp (self):