summaryrefslogtreecommitdiff
path: root/digital/ai/tools/guybrush.py
blob: d7e2dc69423ce30a219c907e2041348a8085a4de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import asserv
import asserv.init
import mimot
import mimot.init
import io_hub
import io_hub.init

from proto.popen_io import PopenIO
import math
import subprocess

class Robot:
    """Guybrush robot instance."""

    import simu.model.table_eurobot2012 as table_model
    import simu.view.table_eurobot2012 as table_view

    import simu.robots.guybrush.link.bag as robot_link
    import simu.robots.guybrush.model.bag as robot_model
    import simu.robots.guybrush.view.bag as robot_view

    robot_start_pos = {
            False: (250, 2000 - 250, math.radians (0)),
            True: (3000 - 250, 2000 - 250, math.radians (180))
            }

    client_nb = 4

    tick = 900

    def __init__ (self, proto_time, instance = 'robot0'):
        self.instance = instance
        def proto (proto_class, cmd, init):
            cmd = [ s.format (instance = instance) for s in cmd ]
            return proto_class (PopenIO (cmd), proto_time, **init)
        def prog (cmd):
            cmd = [ s.format (instance = instance) for s in cmd ]
            subprocess.Popen (cmd)
        asserv_cmd = ('../../mimot/src/asserv/asserv.host',
                '-i{instance}:asserv0', '-m9', 'guybrush')
        mimot_cmd = ('../../mimot/src/dirty/dirty.host',
                '-i{instance}:mimot0', '-m9', 'guybrush')
        io_hub_cmd = ('../../io-hub/src/guybrush/io_hub.host',
                '-i{instance}:io0')
        beacon_stub_cmd = ('../../beacon/src/stub/simu_stub.host',
                '-i{instance}:beacon0')
        self.asserv = proto (asserv.Proto, asserv_cmd,
                asserv.init.host['guybrush'])
        self.mimot = proto (mimot.Proto, mimot_cmd,
                mimot.init.host['guybrush'])
        self.io = proto (io_hub.ProtoGuybrush, io_hub_cmd,
                io_hub.init.host['guybrush'])
        self.beacon_stub = prog (beacon_stub_cmd)
        self.protos = (self.asserv, self.mimot, self.io)