summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/ai/tools/test_simu_control_guybrush.py38
-rw-r--r--host/simu/robots/guybrush/model/bag.py31
2 files changed, 42 insertions, 27 deletions
diff --git a/digital/ai/tools/test_simu_control_guybrush.py b/digital/ai/tools/test_simu_control_guybrush.py
index 003c91f7..adf27a85 100644
--- a/digital/ai/tools/test_simu_control_guybrush.py
+++ b/digital/ai/tools/test_simu_control_guybrush.py
@@ -25,18 +25,13 @@ from test_simu import TestSimu, run
from Tkinter import *
import math
+import simu.robots.guybrush.model.bag
+
+defs = simu.robots.guybrush.model.bag.Bag
+
class TestSimuControl (TestSimu):
"""Interface with extra control."""
- UPPER_CLAMP_OPEN = 1 << 1
- UPPER_CLAMP_OUT = 1 << 2
- UPPER_CLAMP_IN = 1 << 3
- UPPER_CLAMP_DOWN = 1 << 4
- UPPER_CLAMP_UP = 1 << 5
- DOOR_OPEN = 1 << 6
- DOOR_CLOSE = 1 << 7
- LOWER_CLAMP_1_CLOSE = 1 << 8
- LOWER_CLAMP_2_CLOSE = 1 << 9
LOWER_CLAMP_ROTATION_STROKE = int (16 * 250)
def __init__ (self, robot_class, *args):
@@ -46,9 +41,9 @@ class TestSimuControl (TestSimu):
self.asserv = self.robots[0].asserv
self.mimot = self.robots[0].mimot
self.robot_model = self.robots[0].model
- self.io.output (self.UPPER_CLAMP_UP, 'toggle')
- self.io.output (self.UPPER_CLAMP_IN, 'toggle')
- self.io.output (self.DOOR_CLOSE, 'toggle')
+ self.io.output (1 << defs.OUTPUT_UPPER_CLAMP_UP, 'toggle')
+ self.io.output (1 << defs.OUTPUT_UPPER_CLAMP_IN, 'toggle')
+ self.io.output (1 << defs.OUTPUT_DOOR_CLOSE, 'toggle')
def create_widgets (self):
TestSimu.create_widgets (self)
@@ -61,18 +56,25 @@ class TestSimuControl (TestSimu):
button = Button (self.control_frame, text = name,
padx = 0, pady = 0, command = command)
button.pack ()
- out_button ('LClamp 1 open', self.LOWER_CLAMP_1_CLOSE)
- out_button ('LClamp 2 open', self.LOWER_CLAMP_2_CLOSE)
+ out_button ('LClamp 1 open',
+ 1 << defs.OUTPUT_LOWER_CLAMP_1_CLOSE)
+ out_button ('LClamp 2 open',
+ 1 << defs.OUTPUT_LOWER_CLAMP_2_CLOSE)
self.lower_clamp_rotate_button = Button (self.control_frame,
text = 'LClamp rotate', padx = 0, pady = 0,
command = self.lower_clamp_rotate_command)
self.lower_clamp_rotate_button.pack ()
out_button ('UClamp up/down',
- self.UPPER_CLAMP_UP | self.UPPER_CLAMP_DOWN)
+ 1 << defs.OUTPUT_UPPER_CLAMP_UP
+ | 1 << defs.OUTPUT_UPPER_CLAMP_DOWN)
out_button ('UClamp in/out',
- self.UPPER_CLAMP_IN | self.UPPER_CLAMP_OUT)
- out_button ('UClamp open', self.UPPER_CLAMP_OPEN)
- out_button ('Door open', self.DOOR_OPEN | self.DOOR_CLOSE)
+ 1 << defs.OUTPUT_UPPER_CLAMP_IN
+ | 1 << defs.OUTPUT_UPPER_CLAMP_OUT)
+ out_button ('UClamp open',
+ 1 << defs.OUTPUT_UPPER_CLAMP_OPEN)
+ out_button ('Door open',
+ 1 << defs.OUTPUT_DOOR_OPEN
+ | 1 << defs.OUTPUT_DOOR_CLOSE)
self.backward_var = IntVar ()
self.backward_button = Checkbutton (self.control_frame,
text = 'Backward', variable = self.backward_var)
diff --git a/host/simu/robots/guybrush/model/bag.py b/host/simu/robots/guybrush/model/bag.py
index 00d653a0..f9c98814 100644
--- a/host/simu/robots/guybrush/model/bag.py
+++ b/host/simu/robots/guybrush/model/bag.py
@@ -33,6 +33,16 @@ import random
class Bag:
+ OUTPUT_UPPER_CLAMP_OPEN = 1
+ OUTPUT_UPPER_CLAMP_OUT = 2
+ OUTPUT_UPPER_CLAMP_IN = 3
+ OUTPUT_UPPER_CLAMP_DOWN = 4
+ OUTPUT_UPPER_CLAMP_UP = 5
+ OUTPUT_DOOR_OPEN = 6
+ OUTPUT_DOOR_CLOSE = 7
+ OUTPUT_LOWER_CLAMP_1_CLOSE = 8
+ OUTPUT_LOWER_CLAMP_2_CLOSE = 9
+
def __init__ (self, scheduler, table, link_bag):
self.color_switch = Switch (link_bag.io_hub.contact[0], invert = True)
self.color_switch.state = random.choice ((False, True))
@@ -45,18 +55,21 @@ class Bag:
output = link_bag.io_hub.output
contact = [ Switch (c) for c in link_bag.io_hub.contact[3:] ]
self.clamps = Clamps (table, self.position, link_bag.mimot.aux[0],
- (PneumaticCylinder (output[8], None, scheduler,
- 0., 30., 150., 75., 30.),
- PneumaticCylinder (output[9], None, scheduler,
- 0., 30., 150., 75., 30.)),
+ (PneumaticCylinder (output[self.OUTPUT_LOWER_CLAMP_1_CLOSE],
+ 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],
- PneumaticCylinder (output[4], output[5], scheduler,
+ PneumaticCylinder (output[self.OUTPUT_UPPER_CLAMP_DOWN],
+ output[self.OUTPUT_UPPER_CLAMP_UP], scheduler,
0., 1., 1., 1., 1., contact[4], contact[5]),
- PneumaticCylinder (output[3], output[2], scheduler,
+ PneumaticCylinder (output[self.OUTPUT_UPPER_CLAMP_IN],
+ output[self.OUTPUT_UPPER_CLAMP_OUT], scheduler,
0., 1., 1., 1., 0.),
- PneumaticCylinder (None, output[1], scheduler,
- 0., 30., 150., 75., 30.),
- PneumaticCylinder (output[7], output[6], scheduler,
+ PneumaticCylinder (None, output[self.OUTPUT_UPPER_CLAMP_OPEN],
+ scheduler, 0., 30., 150., 75., 30.),
+ PneumaticCylinder (output[self.OUTPUT_DOOR_CLOSE],
+ output[self.OUTPUT_DOOR_OPEN], scheduler,
0., 1., 1., 1., 1., contact[7], contact[6])
)
def distance_sensor_exclude (o):