Esempio n. 1
0
    def __init__(self):
        coordList = []
        self.currLocation = [0, 0, 90]

        self.nSteps = len(coordList)
        self.mov = Movement()
        self.rad = 180 / 3.14
Esempio n. 2
0
 def __init__(self):
     self.__arena = Arena()
     self.__wall = Wall(self.__arena)
     self.__snake = Snake(self.__arena)
     self.__movement = Movement(self.__arena, self.__snake)
     self.cls()
     self.gameloop()
Esempio n. 3
0
def experiment1():
    mov = Movement()

    mov.setAbsoluteSpeed(0.35)

    mov.turnRightForRadius(0.25)
    mov.moveForward(30)
    mov.pause(30)

    mov.turnRightForRadius(0.35)
    mov.moveForward(30)
    mov.pause(30)

    mov.turnRightForRadius(0.45)
    mov.moveForward(30)
    mov.pause(30)

    mov.turnRightForRadius(0.55)
    mov.moveForward(30)
    mov.pause(30)
    #mov.moveForwardDist(3)
    #    mov.moveBackwardDist(2)
    #    mov.stop()
    #mov.turnLeft(20)
    #    time.sleep(2)
    #    mov.turnLeft(40)
    #    time.sleep(2)
    #    mov.turnRight(20)
    #    time.sleep(2)
    #mov.turnStraight()
    mov.stop()
    #mov.stop()
    del mov
Esempio n. 4
0
 def update(self, entities_by_filter):
     start_balls = base.mouseWatcherNode.is_button_down(
         KeyboardButton.space(), )
     if start_balls:
         for entity in set(entities_by_filter['ball']):
             entity.remove_component(Resting)
             entity.add_component(Movement(value=Vec3(-1, 0, 0)))
 def __init__(self, world, sprite, pos, power, timer=3000):
     """."""
     self.sprite = sprite
     self.sprite.position = pos
     self.sprite.depth = 1
     self.bombdata = BombData(power, timer)
     self.movement = Movement(pos)
Esempio n. 6
0
def generate_individuals(num, bench_press_fitness_mean,
                         bench_press_fitness_variance):
    """
    Generates individuals to be used in the simulator

    :param num: Number of individuals to generate.
    :param bench_press_fitness_mean: The mean of the 1RM in bench press for the individuals
    :param bench_press_fitness_variance: The variance in the 1RM for the individuals for a normal
    distribution
    :return: A list of individuals generated

    """

    # Holds all individuals
    individuals = []

    # Normally distributed bench press fitnesses used to create bench press movementss
    bench_press_performances = np.random.normal(bench_press_fitness_mean,
                                                bench_press_fitness_variance,
                                                num).astype("int")

    for i in tqdm(range(num)):
        banister_params = random_banister_parameters()
        name = names.get_full_name()
        bench_press_movement = Movement(0, 0, bench_press_performances[i],
                                        banister_params["fitness_gain"],
                                        banister_params["fatigue_gain"],
                                        banister_params["fitness_decay"],
                                        banister_params["fatigue_decay"])
        individual = Individual(i, datetime.datetime.now(), name,
                                bench_press_movement)
        individuals.append(individual)

    return individuals
Esempio n. 7
0
    def update(self, entities_by_filter):
        # Should resting balls be started?
        start_key = KeyboardButton.space()
        start_balls = base.mouseWatcherNode.is_button_down(start_key)

        if start_balls:
            for entity in set(entities_by_filter['ball']):
                del entity[Resting]
                entity[Movement] = Movement(value=Vec3(-1, 0, 0))
Esempio n. 8
0
 def __init__(self, character):
     pygame.sprite.Sprite.__init__(self)
     self.character = character
     self.image = pygame.image.load(IMG + character).convert()
     self.image.set_colorkey(WHITE)
     self.rect = self.image.get_rect()
     self.movement = Movement(self)
     self.pos = VEC(WIDTH / 2 + 10, HEIGHT / 2)
     self.rect.midbottom = self.pos
Esempio n. 9
0
def bench_press():
    """Fixture for sample bench press movement with set parameters"""
    return Movement(fitness=0,
                    fatigue=0,
                    basic_performance=300,
                    fitness_gain=1,
                    fatigue_gain=1,
                    fitness_decay=1,
                    fatigue_decay=0.99)
Esempio n. 10
0
def speedAnalysis():
    speedList = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    timeList = [30, 30, 20, 20, 10, 10, 5, 5, 4, 4]
    mov = Movement()
    for speed, time in zip(speedList, timeList):
        print("Speed: ", speed, "\t Time: ", time, "\n")
        mov.setSpeed(speed)
        mov.moveForward(time)
        mov.pause(15)
    mov.stop()
    del mov
Esempio n. 11
0
    def populate(self):
        player = GameObject(400, 225)
        player.add_behaviour(PlayerController())
        player.add_behaviour(SquareRenderer())
        self.game_objects.append(player)

        for i in range(8):
            obstacle = GameObject(0, 0)
            obstacle.x = i * 100 + 50
            obstacle.y = i * 50
            obstacle.add_behaviour(Movement())
            obstacle.add_behaviour(CircleRenderer())
            self.game_objects.append(obstacle)
Esempio n. 12
0
    def __init__(self, width, height, title):
        super().__init__()

        self.screen = Window(width, height, title)
        self.ball = Ball(20, (0, 0, 255), 2)
        self.ball.position = (math.ceil(width / 2), math.ceil(height / 2))

        self.movementObj = Movement(self.ball.x, self.ball.y, self.ball.radius)

        self.speed = 1

        self.createObjects([self.ball])
        self.run()
Esempio n. 13
0
 def loadData(self, path):
     global senseLen
     movementList = []
     with open(path) as f:
         lines = f.readlines()
     for line in lines:
         ln = line.strip()
         ln = ln.split(",")
         senseInfoList = ln[:-1]
         direction = ln[-1]
         movement = Movement(senseInfoList, direction)
         movementList.append(movement)
     senseLen = len(senseInfoList)
     return movementList
Esempio n. 14
0
    def update(self, entities_by_filter):
        """
        Check whether the resting ball should be started?
        Note that restarting the ball's movement means removing the Entity's
        Resting Component, and adding it's Movement component with the desired
        direction.
        """

        start_key_is_pressed = base.mouseWatcherNode.is_button_down(
            StartBallMotion.start_key)

        if start_key_is_pressed:
            for entity in set(entities_by_filter['ball']):
                del entity[Resting]
                entity[Movement] = Movement(
                    direction=Vec3(-0.1 * randrange(5, 10), 0, 0))
Esempio n. 15
0
 def __init__(
     self,
     visual: Visual,
     parameters: Parameters,
     history: History,
     controllers,
     plotting,
     result,
 ):
     self.visual = visual
     self.parameters = parameters
     self.history = history
     self.movement = Movement(parameters, history)
     self.controllers = controllers
     self.plotting = plotting
     self.result = result
Esempio n. 16
0
def ManageMotion():
    move = Movement()
    while move.IsActive():

        #FRAME infos
        # Manage movement, gestures
        move.GetInfoFromNextFrame()
        #cv2.imshow('Current FrameDIFFF', move.currFrame)
        if move.ElapsedTimeSinceLastMovement() > 5:
            time.sleep(1)

        gesture = move.TakeGesture()
        threading.Thread(target=SendGesture, args=(gesture, )).start()

    move.FreeDevices()
    os._exit(1)
 def __init__(self):
     self.config = PepperConfiguration(_ROBOT_NAME)
     if(not self.config.isAvailable()):
         Logger.err("ControlFlow", "checkAvailability", "name: " + self.config.Name + ", ip: " + self.config.Ip + " not reachable!")
         sys.exit(1) #Abort since robot is not available...
     self.robot = Robot(self.config)
     Speech(self.robot) #Initialize Speech (static class, no reference needed)
     DoorChecker(self.robot) #Initialize DoorChecker (static class, no reference needed)
     TabletHandler(self.robot) #Initialize TabletHandler (static class, no reference needed)
     Filetransfer(self.config) #Initialize Filetransfer (static class, no reference needed)
     #self.tracer = Tracer(self.robot) # enable to gather sensor data
     self.sensorhandler = SensorHandler(self.robot)
     self.planner = Planner()
     self.movement = Movement(self.robot)
     self.poscalib = PositionCalibrator(self.robot)
     self.currentpos = _START_COORDINATE
Esempio n. 18
0
def generate_data(game, winner):
    board = CheckersBoard()
    movement = Movement()
    board.set_pieces_on_board_for_a_new_game()
    game_states = ''

    for move in game[:-1]:
        board = movement.make_move(board, move)
        board_state = board.get_wooden_board()
        reduced_board_state = reduce_board(board_state)
        reduced_board_state = [piece[item] for item in reduced_board_state]
        game_states += ''.join(str(x) for x in reduced_board_state) + '\n'

    timestamp = str(int(time.time() * 1000000))
    file = open('games/' + winner + '/' + winner + timestamp, 'w+')
    file.write(game_states)
    file.close()
Esempio n. 19
0
    def __init__(self):
        rospy.init_node('controller', anonymous=True)

        navigation = actionlib.SimpleActionClient("move_base", MoveBaseAction)
        navigation.wait_for_server()

        self.poses = Poses()

        self.movement = Movement(navigation, "/map", self.poses)
        self.move = self.movement.move

        self.object_detector = ObjectDetector("/object_detection/coordinates")
        self.find_red_object = self.object_detector.find_red_object

        self.arm = Arm()

        print("I'm up")
Esempio n. 20
0
    def load_from_series(self, series):
        """Loads an individual from a given one-dimentional array (series).

        :param series: The one-dimentional array (series) that the individual will be initialized from.
        """
        self.id = series['ID']
        self.name = series['Name']
        self.bench_press_movement = Movement(
            series["bench_press_fitness"],
            series["bench_press_fatigue"],
            series["bench_press_basic_performance"],
            series["bench_press_fitness_gain"],
            series["bench_press_fatigue_gain"],
            series["bench_press_fitness_decay"],
            series["bench_press_fatigue_decay"],
        )
        self.timestamp = pd.to_datetime(series["Timestamp"])
Esempio n. 21
0
def generate_individuals(num, age_mean, age_variance, weight_mean, weight_variance,
                         bench_press_fitness_mean, bench_press_fitness_variance, gender_ratio):
    """
    Generates individuals to be used in the simulator

    :param num: Number of individuals to generate.
    :param age_mean: The mean of the age for the individuals
    :param age_variance: The variance in age for the individuals for a normal distribution
    :param bench_press_fitness_mean: The mean of the 1RM in bench press for the individuals
    :param bench_press_fitness_variance: The variance in the 1RM for the individuals for a normal
    distribution
    :param gender_ratio: The ratio of individuals with female sex characteristics
    :return: A list of individuals generated

    """

    # Holds all individuals
    individuals = []

    # Normally distributed ages used to create birth dates
    ages = np.random.normal(age_mean, age_variance, num).astype("int")
    now = datetime.datetime.now()
    try:
        birth_dates = [datetime.datetime(
            now.year - age, now.month, now.day) for age in ages]
    except ValueError:
        # Date could not be set, defaulting
        birth_dates = [datetime.datetime(now.year - age, 1, 1) for age in ages]
    # Normally distributed bench press fitnesses used to create bench press movementss
    bench_press_performances = np.random.normal(bench_press_fitness_mean, bench_press_fitness_variance,
                                             num).astype("int")
    weights = np.random.normal(weight_mean, weight_variance, num)
    genders = np.ones(num)
    genders[:int(num * gender_ratio)] = 0
    np.random.shuffle(genders)
    for i in range(num):
        name = names.get_full_name(gender=gender_to_string(genders[i]))
        bench_press_movement = Movement(
            0, 0, bench_press_performances[i],
            BASE_FITNESS_GAIN, BASE_FATIGUE_GAIN, BASE_FITNESS_DECAY, BASE_FATIGUE_DECAY)
        individual = Individual(i, birth_dates[i], int(genders[i]),
                                name, weights[i], bench_press_movement)
        individuals.append(individual)

    return individuals
Esempio n. 22
0
    def __init__(self, graphics, root):

        # global variables
        self.k = K()

        # piece - piece identifier.  px, py - piece position(472x472).  mx, my - mouse position(472x472)
        self.data = {"piece": None, "px": 0, "py": 0, "mx": 0, "my": 0}

        # keeps track of current turn
        self.color = "token"

        # true when menu is displayed, else false
        self.menuOn = False

        # tkinter root
        self.root = root

        # creates window and all images
        self.graphics = graphics

        # Canvas from graphics class. Tkinter object, draws images
        self.canvas = graphics.canvas

        # functions for special moves.
        self.specialMoves = SpecialMoves(self.canvas)

        # contains board and functions pertaining to position
        self.position = Position(self.canvas, self.specialMoves)
        self.position.updateBoard()

        # contains functions for moving pieces
        self.movement = Movement(self.canvas, self.position)

        # handles menues
        self.interface = Interface(graphics)

        # creates highlights around boxes
        self.highlight = Highlight(self.canvas, self.position)

        # finds move for computer player
        self.cpu = CPU(self.position, self.canvas)

        # brings up main menu, starts game
        self.showMain(0)
Esempio n. 23
0
    def load_from_series(self, series):
        """Loads an individual from a given one-dimentional array (series).

        :param series: The one-dimentional array (series) that the individual will be initialized from.
        """
        self.id = series['ID']
        self.birth = datetime.strptime(series['Birth'], '%Y-%m-%d').date()
        self.gender = series['Gender']
        self.name = series['Name']
        self.weight = series['Weight']
        self.bench_press_movement = Movement(
            series["bench_press_fitness"],
            series["bench_press_fatigue"],
            series["bench_press_basic_performance"],
            series["bench_press_fitness_gain"],
            series["bench_press_fatigue_gain"],
            series["bench_press_fitness_decay"],
            series["bench_press_fatigue_decay"],
        )
Esempio n. 24
0
    def __init__(self,
                 id="",
                 birth: datetime = datetime(1, 1, 1),
                 name="",
                 bench_press_movement=Movement(0, 0, 0, 0, 0, 0, 0),
                 series=pd.Series()):
        """Constructor for the indivual class

        :param id: An unique identifier.
        :param name: The individual's name.
        :param bench_press_movement: An instance of Movement representing benchpress.
        :param series: Makes it possible to load an individual from an one-dimentional array (series).
        """
        if series.empty:
            self.name = name
            self.id = id
            self.bench_press_movement = bench_press_movement
        else:
            self.load_from_series(series)
Esempio n. 25
0
    def __init__(self):
        """Creates all the modules"""
        print("class: Controller created.")

        self.stances = ["default", "arm", "build", "dance", "battle_stance", ""]
        self.stance = "default"

        self.args = "|"
        self.using_joysticks = False
        self.speed1_x = 0
        self.speed1_y = 0
        self.speed2_x = 0
        self.speed2_y = 0
        self.arm = Arm()
        self.builder = Builder()
        self.dancing = Dancing()
        self.direction = ObjectDetection()
        self.movement = Movement()
        self.sound = SoundRecognition()
        self.reset = False
        self.drive = False

        # initialize bluetooth_connection connection
        self.host = connect.Connect(1, "host", 'B8:27:EB:36:3E:F8', 4, self)
        self.host.start()
        time.sleep(20)
        self.client = send.Send(2, "client", 'B8:27:EB:DE:5F:36', 5)
        self.client.start()
        time.sleep(10)

        self.msg_received = False
        # Add controller as observer to classes
        self.arm.addObserver(self)
        self.builder.addObserver(self)
        self.dancing.addObserver(self)
        self.direction.addObserver(self)
        self.movement.addObserver(self)
        self.sound.addObserver(self)

        self.robot = robot.Robot(6, 3)

        self.list = [self.arm, self.builder, self.dancing, self.direction, self.movement, self.sound]
Esempio n. 26
0
def run():
# the execution of all code shall be started from within this function
    print('Hello World')
    planet = Planet()
    odometry = Odometry()
    movement_functions = Movement(motor_list = (ev3.LargeMotor('outB'), ev3.LargeMotor('outC')), odometry = odometry)
    line_follower = follow.LineFollowing(colour_sensor = ev3.ColorSensor('in2'),
                         ts_list = (ev3.TouchSensor('in1'), ev3.TouchSensor('in4')), movement=movement_functions, odometry = odometry)
    communication = Communication(planet = planet, odometry = odometry)
    communication.connect()
    line_follower.colour_calibration()
    line_follower.line_following()
    communication.first_communication()
    sleep(2)
    line_follower.path_recognising()

    while True:
        #odometry.odometry_calculations()
        line_follower.line_following()
        line_follower.path_recognising()
Esempio n. 27
0
    def enterGame(self):
        # Set up important game logic variables
        self.parent.level = None
        self.parent.units = {}
        self.parent.inactive_units = {}
        self.parent.players = {}
        self.parent.sel_unit_id = None
        self.parent.turn_number = None
        
        # task chain for threaded tasks
        taskMgr.setupTaskChain('thread_1', numThreads = 2, tickClock = None,
                       threadPriority = TP_normal, frameBudget = None,
                       frameSync = None, timeslicePriority = None)

        # Init SceneGraph manager
        self.parent.sgm = SceneGraph(self.parent)
        
        # Init Movement
        self.parent.movement = Movement(self.parent)
        
        # Init Camera
        self.parent.camera = AppCamera(self.parent, 20, 20)
        
        # Init Interface
        self.parent.interface = Interface(self.parent)
        
        # All of our graphics components are initialized, request graphics init
        self.parent.sgm.initLights()
        
        # Init combat
        self.parent.combat = Combat()
            
        # Turn number and player on turn
        self.parent.turn_number = 0
        self.parent.turn_player = None  
        
        self.parent._game_initialized = True      
Esempio n. 28
0
 def __init__(self):
     self.board = CheckersBoard()
     self.board.set_pieces_on_board_for_a_new_game()
     self.movement = Movement()
     self.move_list_generator = MoveListGenerator()
     self.players = cycle([piece_set_two, piece_set_one])
Esempio n. 29
0
from flask import *
from camera import Camera
from movement import Movement
import os

htmlDir = os.path.abspath('HTML')
robot = Movement()
app = Flask(__name__, template_folder=htmlDir)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/camera')
def camera():
    return render_template('camera.html')


@app.route('/video_stream')
def video_stream():
    return Response(stream(Camera()),
                    mimetype='multipart/x-mixed-replace; boundary=frame')


@app.route('/move', methods=['POST'])
def move_forward():
    param = request.form["param"]
    if param == "forward":
        robot.forward()
Esempio n. 30
0
                    help='Name of bot')
args = parser.parse_args()

# Set up console logging
if args.debug:
    logging.basicConfig(format='[%(asctime)s] %(message)s',
                        level=logging.DEBUG)
else:
    logging.basicConfig(format='[%(asctime)s] %(message)s', level=logging.INFO)

# Connect to game server
gameServer = ServerComms(args.hostname, args.port)
# init information extraction library
infoExtraction = InformationExtraction(gameServer)
# init movement library
movement = Movement(gameServer)
# Spawn our tank
logging.info("Creating tank with name '{}'".format(args.name))
gameServer.sendMessage(ServerMessageTypes.CREATETANK, {'Name': args.name})
tankCreationMsg = gameServer.readMessage()

myTank = MyTank(tankCreationMsg)


# Main loop - read game messages, ignore them and randomly perform actions
def mainLoop():
    message = gameServer.readMessage()

    if 'Id' in message.keys():
        if message['Id'] == myTank.getId():
            myTank.updateInternalState(message)