Beispiel #1
0
    def setUp(self):
        self.arene = Arene()
        # Création aléatoire des variables
        l = [random.randint(1, 5) * random.choice([1, -1]) for i in range(2)]
        origine = Point(l[0], l[1], 0)
        teta = random.random() * random.choice(
            [1, -1]) * 2 * pi  # Angle du vecteur entre l'origine et le pavé
        v = Vecteur(1, 0, 0).rotate(teta).norm()

        # True est obligatoire pour que test_vue_dessus affiche le pavé au centre
        self.view_mat = VueMatriceArene(self.arene, origine.clone(), v.clone(),
                                        True)
Beispiel #2
0
    def setUp(self):
        c = Point(2, 2, 1)
        v = Vecteur(1, 0, 0)
        dist = 3.0
        self.arene = Arene()
        self.strat = DeplacementDroitAmeliore(robot=RobotMotorise(
            forme=Pave(1, 1, 1, c.clone()), direction=v.clone()),
                                              arene=self.arene)
        self.v = self.strat.robot.direction * dist

        self.p = Pave(0.5, 0.5, 0.5, self.strat.robot.centre + self.v)
        self.arene.add(self.p)
        self.arene.add(self.strat.robot)
class TestDroitVersBalise(unittest.TestCase):
    """
    TODO: S'arranger pour que la direction u capteur ir suive bien celle de la tête
    """
    def setUp(self):
        self.v2 = Vecteur(1,0,0)
        self.p0 = Point(1,1,0.5)
        self.strat = DroitVersBaliseVision(RobotMotorise(forme=Pave(1,1,1,self.p0.clone()), direction=self.v2.clone()), AreneFermee(5,5,5))
        self.target = RobotTarget(forme=Pave(1,1,1, self.p0.clone()+self.v2*3), direction=self.v2.clone())
        self.strat.arene.add(self.target)

    def test_target_straith_trajectory(self):
        self.strat2 = DeplacementDroit(robot=self.target,vitesse= 30, distance_max=2)
        td = Thread(target=self.strat.start_3D)
        sim = Simulation(strategies=[self.strat2, self.strat], tmax=15, tic=3,
                         tic_display=[self.strat],
                         final_actions=[self.strat.stop_3D])

        td.start()
        while not self.strat.robot.tete.sensors["cam"].is_set:
            pass
        sim.start()
        while not sim.stop:
            pass

    def test_target_circle_trajectectory(self):
        self.strat = DroitVersBaliseVision(RobotMotorise(forme=Pave(1,1,1,self.p0.clone()), direction=self.v2.clone()), AreneFermee(10,10,10))
        self.strat2 = DeplacementCercle(robot=self.target,vitesse=30, diametre=3, angle_max=360)
        td = Thread(target=self.strat.start_3D)
        sim = Simulation(strategies=[self.strat2, self.strat], tmax=15, tic=1,tic_display=[self.strat], final_actions=[self.strat.stop_3D])
        td.start()
        while not self.strat.robot.tete.sensors["cam"].is_set:
            pass
        sim.start()
        while not sim.stop:
            pass
        self.assertNotEqual(self.strat.last_detected, None)