def positionall(): t1=time.time() vision = psl.SSLVisionClient('224.5.23.2', 10020) vision.connect() tcontrol = psl.SSLgrSimClient('127.0.0.1', 20011) tcontrol.connect() L=[] while len(L)!=5: data=vision.receive() if len(data.detection.robots_yellow) != 0 : for r in data.detection.robots_yellow: if r.robot_id==0: dy0=data if 'y0' not in L: L.append('y0') else : dy1=data if 'y1' not in L: L.append('y1') elif len(data.detection.robots_blue)!=0: for r in data.detection.robots_blue: if r.robot_id==1: db1=data if 'b1' not in L: L.append('b1') else : db0=data if 'b0' not in L: L.append('b0') if len(data.detection.balls)!=0: dball=data if 'ball' not in L: L.append('ball') t2=time.time() Pos=dict() Pos[('b',0)]=db0 Pos[('b',1)]=db1 Pos[('y',0)]=dy0 Pos[('y',1)]=dy1 Pos['ball']=dball return Pos
def stop(i,team): tcontrol = psl.SSLgrSimClient('127.0.0.1', 20011) tcontrol.connect() packet_b0 = psl.grSim_pb2.grSim_Packet() commands_b0 = packet_b0.commands commands_b0.timestamp = time.time() if team=='y': commands_b0.isteamyellow = True else : commands_b0.isteamyellow = False robot_commands_b0 = commands_b0.robot_commands.add() robot_commands_b0.id = i robot_commands_b0.kickspeedx = 0. robot_commands_b0.kickspeedz = 0. robot_commands_b0.veltangent = 0. robot_commands_b0.velnormal = 0. robot_commands_b0.velangular = 0. # Ask for rotation robot_commands_b0.spinner = False robot_commands_b0.wheelsspeed = False tcontrol.send(packet_b0) tcontrol.close()
from mpl_toolkits.mplot3d import Axes3D import matplotlib.patches as patches import matplotlib.lines as lines import potentiel as pt from psl_package import paris_saclay_league as psl import cmath as c import time import numpy as np import ia_v3 as ia #Connexion au simulateur vision = psl.SSLVisionClient(ip='224.5.23.2', port=10020) vision.connect() grSim = psl.SSLgrSimClient('127.0.0.1', 20011) grSim.connect() #%% Paramètres #TERRAIN longueur = 1350 largeur = 1000 xmin = -longueur xmax = longueur ymin = -largeur ymax = largeur ##ROBOT r_robot = 115 K_max = 0.8 #facteur prop vitesse
except: communication = None print('Pas de carte communication détectée') #%% Connexion à la vision vision = psl.SSLVisionClient(ip='224.5.23.2', port=10006) vision.connect3() #%% Connexion simulateur simulateur = False if simulateur: grSim = psl.SSLgrSimClient('192.168.1.11', 20011) grSim.connect() sim = grSim print('Connexion au simulateur OK') else: print('Sans grSim') sim = None #%%Création match '''parametre disp : -1 : aucun affichage 0 : affichage dans la console des changements de postes 1 : affichage dans un plot des status des robots 2 : affichage dans un plot du terrain avec les robots et leur status''' match_test = match.Match('test', vision, sim, communication, disp=2)
if 'b0' not in L: L.append('b0') if len(data.detection.balls)!=0: dball=data if 'ball' not in L: L.append('ball') t2=time.time() Pos=dict() Pos[('b',0)]=db0 Pos[('b',1)]=db1 Pos[('y',0)]=dy0 Pos[('y',1)]=dy1 Pos['ball']=dball return Pos tcontrol = psl.SSLgrSimClient('127.0.0.1', 20011) tcontrol.connect() class ball(): def __init__(self): pos=positionall() for r in pos['ball'].detection.balls: ball.x=r.x ball.y=r.y class robot(): def __init__(self,i,team): self.id=i self.team=team self.packet=psl.grSim_pb2.grSim_Packet() self.commands_b0 = self.packet.commands