From 8ddd21a6f3c65cd94b794cb25e6fa74dc20da3cc Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 9 Feb 2012 21:23:47 +0100 Subject: digital/ai/tools, host/simu/robots: simulate several robots --- digital/ai/tools/robospierre.py | 62 ++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 28 deletions(-) (limited to 'digital/ai/tools/robospierre.py') diff --git a/digital/ai/tools/robospierre.py b/digital/ai/tools/robospierre.py index 6a44883e..0d258b34 100644 --- a/digital/ai/tools/robospierre.py +++ b/digital/ai/tools/robospierre.py @@ -1,10 +1,3 @@ -import simu.model.table_eurobot2011 -import simu.view.table_eurobot2011 - -import simu.robots.robospierre.link.bag -import simu.robots.robospierre.model.bag -import simu.robots.robospierre.view.bag - import asserv import asserv.init import mimot @@ -16,26 +9,39 @@ from proto.popen_io import PopenIO import math class Robot: + """Robospierre robot instance.""" + + import simu.model.table_eurobot2011 as table_model + import simu.view.table_eurobot2011 as table_view + + import simu.robots.robospierre.link.bag as robot_link + import simu.robots.robospierre.model.bag as robot_model + import simu.robots.robospierre.view.bag as robot_view + + robot_start_pos = { + # In real life, better place the robot in green zone. + False: (300, 2100 - 200, math.radians (180)), + True: (3000 - 300, 2100 - 200, math.radians (0)) + } + + client_nb = 3 - def __init__ (self, proto_time): - self.table_model = simu.model.table_eurobot2011 - self.table_view = simu.view.table_eurobot2011 - self.robot_link = simu.robots.robospierre.link.bag - self.robot_model = simu.robots.robospierre.model.bag - self.robot_view = simu.robots.robospierre.view.bag - asserv_cmd = ('../../asserv/src/asserv/asserv.host', '-m9', - 'robospierre') - mimot_cmd = ('../../mimot/src/dirty/dirty.host', '-m9', 'robospierre') - io_hub_cmd = ('../../io-hub/src/robospierre/io_hub.host') - self.asserv = asserv.Proto (PopenIO (asserv_cmd), proto_time, - **asserv.init.host['robospierre']) - self.mimot = mimot.Proto (PopenIO (mimot_cmd), proto_time, - **mimot.init.host['robospierre']) - self.io = io_hub.Proto (PopenIO (io_hub_cmd), proto_time, - **io_hub.init.host['robospierre']) - self.robot_start_pos = { - # In real life, better place the robot in green zone. - False: (300, 2100 - 200, math.radians (180)), - True: (3000 - 300, 2100 - 200, math.radians (0)) - } + 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) + asserv_cmd = ('../../asserv/src/asserv/asserv.host', + '-i{instance}:asserv0', '-m9', 'robospierre') + mimot_cmd = ('../../mimot/src/dirty/dirty.host', + '-i{instance}:mimot0', '-m9', 'robospierre') + io_hub_cmd = ('../../io-hub/src/robospierre/io_hub.host', + '-i{instance}:io0') + self.asserv = proto (asserv.Proto, asserv_cmd, + asserv.init.host['robospierre']) + self.mimot = proto (mimot.Proto, mimot_cmd, + mimot.init.host['robospierre']) + self.io = proto (io_hub.Proto, io_hub_cmd, + io_hub.init.host['robospierre']) + self.protos = (self.asserv, self.mimot, self.io) -- cgit v1.2.3