示例#1
0
def exercise_9c(world, timestep, reset):
    """Exercise 9c"""
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            drive=4,
            amplitudes=0.28,
            frequency=1,
            RHead = RHead,
            RTail = RTail,
            #Backwards = False,
            #phase_lag=2*np.pi/10,
            #turnRate=[1,1],
            # ...
        )
        for RHead in np.linspace(0,1, 10)
        for RTail in np.linspace(0,1, 10)
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/exercise_9c/simulation_{}.npz".format(simulation_i)
        )
示例#2
0
def exercise_9g(world, timestep, reset):
    """Exercise 9g"""
    # Parameters
    n_joints = 10
    listuple = []
    Rtail = np.linspace(0.2, 0.2, 1)
    Rhead = np.linspace(0.1, 0.2, 1)
    for i in range(Rtail.size):
        for j in range(len(Rhead)):
            listuple.append((Rtail[i], Rhead[j]))
    nbsimu = Rhead.size * Rtail.size

    parameter_set = [
        SimulationParameters(
            simulation_duration=30,
            phase_lag=2 * np.pi / 10,
            drive_mlr=1.2,
            turn=0,
        ) for grad in listuple
    ]

    # Grid search

    for simulation_i, parameters in enumerate(parameter_set):
        print(simulation_i)
        reset.reset()
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs="./logs/9g/simulation_{}.npz".format(simulation_i))
    plot_results.main(nbsimu, Rtail, Rhead, plot=True)
示例#3
0
def exercise_9b(world, timestep, reset):
    """Exercise 9b"""
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            drive=4,
            amplitude=amplitude,
            phase_lag=phase_lag,
            turn=0,
            flag="9b"
            # ...
        )
        for phase_lag in np.linspace(math.pi*3/2,4*math.pi,10)
        for amplitude in np.linspace(0.3,0.5,10)
        # for amplitudes in ...
        # for ...
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/9b/simulation_{}.npz".format(simulation_i)
        )
示例#4
0
def exercise_example(world, timestep, reset):
    """Exercise example"""
    # Parameters
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            drive_mlr=drive,
            amplitude_value=0.5,
            
            turn=0
            
        )
        for drive in np.linspace(3, 4, 2)]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/example/simulation_{}.npz".format(simulation_i)
        )
示例#5
0
def exercise_9c(world, timestep, reset):
    """Exercise 9c"""
    # Parameters
    n_joints = 10
    listuple = []
    Rtail = np.linspace(0.1, 0.4, 2)
    Rhead = np.linspace(0.1, 0.4, 4)

    for i in range(Rtail.size):
        for j in range(len(Rhead)):
            listuple.append((Rtail[i], Rhead[j]))

    nbsimu = Rhead.size * Rtail.size

    parameter_set = [
        SimulationParameters(
            simulation_duration=1,
            #drive=drive,
            amplitude_gradient=-(grad[1] - grad[0]) / 10,
            amplitude_body_value=grad[1],
            phase_lag=2 * np.pi / 10) for grad in listuple
    ]

    # Grid search

    for simulation_i, parameters in enumerate(parameter_set):
        print(simulation_i)
        reset.reset()
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs="./logs/9c/simulation_{}.npz".format(simulation_i))
    plot_results.main(nbsimu, Rtail, Rhead, plot=True)
示例#6
0
def exercise_9c(world, timestep, reset):
    Rhead = [0.1, 0.2, 0.3]
    Rtail = [0.1, 0.2, 0.3]
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            #drive=drive,
            amplitude_gradient=True,
            amplitudes=[H, T],
            freqs=1,
            phase_bias_vertical=2 * np.pi / 10,
            turn=0,
        ) for H in Rhead for T in Rtail
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        path = "./logs/9c/simulation_{}.npz".format(simulation_i)
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs=path)
    plot_results.plot_9c(len(parameter_set))
示例#7
0
def exercise_9f2(world, timestep, reset):
    """Exercise 9f"""

    '''
        II) Influence of: 
            - Body oscillation amplitude
        on: 
            - walking speed (along the x axis)

        -> Set nominal radius to best value found previously. 
        -> show plot showing the effect of the amplitude. 
    ''' 
    # Parameters
    n_joints = 10
    _, amplitudes = get_amplitude_search_space()
    for i,amplitude in enumerate(amplitudes):
        parameters = SimulationParameters(
            drive=2.5,
            amplitude=[amplitude,amplitude], # head, tail 
            phase_lag=2*np.pi/10, # total phase lag of 2 pi along the body 
            turn=None, 
            couplingBody=10, 
            couplingLeg=30,
            rate=20,
            simulation_duration=10,
            limb_spine_phase_lag=0 
        )
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/9f2/simulation_{}.npz".format(i) 
        )
示例#8
0
def exercise_9d1(world, timestep, reset):
    """Exercise 9d1"""
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=40,
            drive=4,
            #amplitudes=0.5,
            #frequency=1,
            #RHead = RHead,
            #RTail = RTail,
            Backwards = False,
            #phase_lag=2*np.pi/10,
            turnRate=[1,1],
            # ...
        )
        
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/exercise_9d1/simulation_{}.npz".format(simulation_i)
        )
示例#9
0
def exercise_9b(world, timestep, reset):
    """Exercise 9b"""
    # Parameters
    amplitudes = [0.2, 0.5]
    phase_bias = [np.pi / 2, np.pi / 10, np.pi / 14, np.pi / 20]
    parameter_set = [
        SimulationParameters(
            simulation_duration=4,
            #drive=drive,
            amplitudes=amp,
            phase_bias_vertical=phase,
            turn=0,
            freqs=3,
        ) for amp in amplitudes for phase in phase_bias
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        path = "./logs/9b/simulation_{}.npz".format(simulation_i)
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs=path)
    plot_results.main("./logs/9b/simulation_{}.npz", len(parameter_set))
示例#10
0
def exercise_example(world, timestep, reset):
    """Exercise example"""
    # Parameters
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            #drive=drive,
            amplitudes=0.8,
            freqs = 8,
            turn=0,
        )
        for drive in np.linspace(1, 2, 2)
            
        # for ...
        
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/example/simulation_{}.npz".format(simulation_i)
        )
示例#11
0
def exercise_9d1(world, timestep, reset):  
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            use_drive_saturation=1,
            shes_got_legs=1,
            cR_body = [0.05, 0.16], #cR1, cR0
            cR_limb = [0.131, 0.131], #cR1, cR0
            amplitudes_rate = 40,
            drive_left = 3.3,
            drive_right = 3.3,
            turn=turn
            # ...
        )
        for turn in np.linspace(-.2,.2, 7)
    ]

    # Grid search
    #logs =""
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/9d1/simulation_{}.npz".format(simulation_i)
        )
示例#12
0
def exercise_9d2(world, timestep, reset):
    """Exercise 9d2"""
    '''
        Modify phase to generate backward swimming. 

        -> plot GPS trajectory to show turning results. 
        -> plot spine angles. 
    '''
    # Parameters
    n_joints = 10

    parameters = SimulationParameters(
        drive=5,
        amplitude=[0.16, 0.2],  # head, tail 
        phase_lag=-2 * np.pi /
        10,  # total phase lag of 2 pi along the body -> but swim BACKWARD!! 
        turn=None,
        couplingBody=10,
        couplingLeg=30,
        rate=20,
        simulation_duration=10)
    reset.reset()
    run_simulation(world,
                   parameters,
                   timestep,
                   int(1000 * parameters.simulation_duration / timestep),
                   logs="./logs/9d2/simulation.npz")
示例#13
0
def exercise_9c(world, timestep, reset):
    """Exercise 9c"""
    # Parameters
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=5,
            drive=1,
            nominal_amplitudes=0.0,
            is_amplitude_gradient=1,
            rhead=rhead,
            rtail=rtail,
            turn=1,
            # ...
        ) for rhead in np.linspace(0.0, 0.5, num=5)
        for rtail in np.linspace(0.0, 0.5, num=5)
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/9c/random/simulation_{}.npz".format(simulation_i))
示例#14
0
def exercise_9b(world, timestep, reset):
    """Exercise example"""
    # Parameters
    n_joints = 10
    listamplitude=np.linspace(0.05,0.4, 4)
    listphaselag=np.linspace(0., 0.9, 6)
    listuple=[]
    
    for i in range(len(listamplitude)):
        for j in range(len(listphaselag)):
            listuple.append((listamplitude[i], listphaselag[j]))
            
    nbsimu=len(listamplitude)* len(listphaselag)
    
    parameter_set = [SimulationParameters(
        simulation_duration=15, 
        amplitude_body_value=amp,
        phase_lag=phasel, 
        drive_mlr=None)
        for amp, phasel in listuple]

    # Grid search
   
    for simulation_i, parameters in enumerate(parameter_set):
        print(simulation_i)
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/9b/simulation_{}.npz".format(simulation_i)     
        )
    plot_results.main(nbsimu,listamplitude, listphaselag, plot=True)
示例#15
0
def exercise_9d2(world, timestep, reset):
    """Exercise 9d2"""
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=20,
            drive=4,
            turn=0,
            flag="9d2",
            back=True,
            # ...
        )
        # for amplitudes in ...
        # for ...
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/9d2/simulation_{}.npz".format(simulation_i))
示例#16
0
def exercise_9g(world, timestep, reset):
    """Exercise 9g"""
    n_joints = 10

    parameter_set = [
        SimulationParameters(
            simulation_duration=25,
            use_drive_saturation=1,
            shes_got_legs=1,
            cR_body=[0.052, 0.157],#0.052  # cR1, cR0
            cR_limb=[0.105, 0.105],#0.105  # cR1, cR0
            drive_left=2.0,
            drive_right=2.0,
            enable_transitions=True,
            # ...
        )
        # for turn in np.linspace(-.2,.2, 7)
    ]

    # Grid search
    # logs =""
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/9g/water_to_land_1{}.npz".format(simulation_i)
        )

    # plot_results.plot_turn_trajectory()
    plot_results.plot_9g()
示例#17
0
def exercise_9f(world, timestep, reset):
    """Exercise 9f"""
    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            drive=2,
            turn=0,
            leg_body=leg_body,
            flag="9f",
            amplitude=0.3
            # ...
        )
        for leg_body in np.linspace(0,math.pi*2,50)
        #for amplitude in np.linspace(0,0.6,50)
        # for ...
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000*parameters.simulation_duration/timestep),
            logs="./logs/9f/simulation_{}.npz".format(simulation_i)
        )
示例#18
0
def exercise_9b(world, timestep, reset):
    """Exercise 9b"""
    # Parameters

    n_joints = 10
    parameter_set = [
        SimulationParameters(
            simulation_duration=15,
            #            nominal_amplitudes=test,
            drive_right=test,
            drive_left=test,
            body_phase_bias=test2,
            use_drive_saturation=1,
            turn=0,
            # ...
        ) for test in np.linspace(4.0, 5.0, num=6)
        #As seen in Ijspeer paper fig.1.B.
        for test2 in np.linspace(
            2 * np.pi / 10 - 0.2, 2 * np.pi / 10 + 0.2, num=7)
        #We know nature is set to 2*pi/length. So we could test from lower than 2*pi/lengh to above of it.
        #Different proposals with 2*pi/lenght on the center value.
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs="./logs/9b/test_{}.npz".format(simulation_i))
示例#19
0
def exercise_9f(world, timestep, reset):
    """Exercise 9f"""
    amplitudes = np.linspace(0, 0.5, 10)

    parameter_set = [
        SimulationParameters(
            freq_coef_body=np.array([1, .5]),  # [C_v1, C_v0] in HZ
            freq_coef_limb=np.array([1, 0.0]),
            amp_coef_body=np.array([amp, 0.0]),  # [C_R1, C_R0] in radians
            amp_coef_limb=np.array([0.3, 0.0]),
            simulation_duration=10,
            drive=1,
            walk=True,
        ) for amp in amplitudes
    ]

    for i, parameters in enumerate(parameter_set):
        reset.reset()
        path = "./logs/9f/simulation_{}.npz".format(i)
        run_simulation(world,
                       parameters,
                       timestep,
                       int(1000 * parameters.simulation_duration / timestep),
                       logs=path)

    plot_results.plot_9f(timestep, len(amplitudes), amplitudes)
示例#20
0
def exercise_9d1(world, timestep, reset):
    """Exercise 9d1"""
    '''
        Modulate drive to generate turning. 

        -> plot GPS trajectory to show turning results. 
        -> plot spine angles. 
    '''
    # Parameters
    n_joints = 10

    parameters = SimulationParameters(
        drive=5,
        amplitude=[0.16, 0.2],  # head, tail 
        phase_lag=2 * np.pi / 10,  # total phase lag of 2 pi along the body 
        turn=-0.5,  # turn left 
        couplingBody=10,
        couplingLeg=30,
        rate=20,
        simulation_duration=10)
    reset.reset()
    run_simulation(world,
                   parameters,
                   timestep,
                   int(1000 * parameters.simulation_duration / timestep),
                   logs="./logs/9d1/simulation.npz")
示例#21
0
def exercise_9d2(world, timestep, reset):
    """Exercise 9d2"""
    parameter_set = [
        SimulationParameters(
            simulation_duration=10,
            use_drive_saturation=1,
            reverse = reverse,
            turn = turn,
            shes_got_legs = 1,
            cR_body = [0.05, 0.16], #cR1, cR0
            cR_limb = [0.131, 0.131], #cR1, cR0
            drive_left = 3.3,
            drive_right = 3.3,
            # ...
        )
        for turn in np.linspace(-.2,.2, 3)            
        for reverse in np.linspace(0,1,2)
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/9d2/simulation_{}.npz".format(simulation_i)
        )

    plot_results.plot9d2()
    #TODO: Plot GPS Coordinates
    #TODO: Plot Spine Angles
    #TODO: Maybe compare spine angles to swimming forward?
示例#22
0
def exercise_9c(world, timestep, reset):
    """Exercise 9c"""
    # Parameters
    outfile = TemporaryFile()

    parameter_set = [
        [
            SimulationParameters(
                simulation_duration=20,
                drive=4.5,
                amplitude_gradient=[head, tail],
                phase_lag=2 * np.pi / 10,
                # ...
            ) for head in np.linspace(0.1, 1.5, 15)
        ] for tail in np.linspace(0.1, 1.5, 15)
    ]
    # for amplitudes in ...

    pylog.warning(np.shape(parameter_set))
    head = np.linspace(0.1, 1.5, 15)
    tail = np.linspace(0.1, 1.5, 15)
    pylog.warning(head)
    energy = np.zeros((len(head), len(tail)))
    for i in range(0, len(head)):
        for j in range(0, len(tail)):
            reset.reset()
            parameters = parameter_set[i][j]
            run_simulation(
                world,
                parameters,
                timestep,
                int(1000 * parameters.simulation_duration / timestep),
                logs="./logs/simulation9c_more_head{}_tail{}.npz".format(
                    head[i], tail[j]))

            data = np.load("logs/simulation9c_more_head{}_tail{}.npz".format(
                head[i], tail[j]))
            velocity = np.diff(data["joints"][:, :, 0], axis=0) / timestep
            velocity = np.insert(velocity, 0, 0, axis=0)
            torque = data["joints"][:, :, 2]
            energy[i, j] = np.mean(np.trapz(velocity * torque, dx=timestep))

    np.save(outfile, energy)
    outfile.seek(0)  #for when you want to open it again

    plt.imshow(energy, extent=[0.1, 1, 0.1, 1])
    plt.xlabel('head factor')
    plt.ylabel('tail factor')
    plt.title('Energy estimation')
    plt.colorbar()
    plt.show()
示例#23
0
def exercise_9f(world, timestep, reset):
    """Exercise 9f"""
    n_joints = 10

    #ex9f1

    #    parameter_set = [
    #        SimulationParameters(
    #            simulation_duration=10,
    #            drive=1,
    #            amplitudesLimb=0.3,
    #            phase_lag_body_limb=phase_lag_body_limb,
    #        )
    #        for phase_lag_body_limb in np.linspace(0,2*np.pi,30)
    #    ]

    #ex9f2
    #    parameter_set = [
    #        SimulationParameters(
    #            simulation_duration=10,
    #            drive=1,
    #
    #            amplitudesLimb=amplitude,
    #            phase_lag_body_limb = 2.816
    #        )
    #        for amplitude in np.linspace(0,0.5,30)
    #    ]

    #normal walking
    parameter_set = [
        SimulationParameters(
            simulation_duration=40,
            drive=1,

            #amplitudesLimb=0.32,
            #phase_lag_body_limb = 2.816,
        )
        #for amplitude in np.linspace(0,0.5,15)
    ]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/exercise_9f_walking/simulation_{}.npz".format(
                simulation_i))
示例#24
0
def exercise_9d1(world, timestep, reset):
    """Exercise 9d1"""
    parameters = SimulationParameters(
        simulation_duration=10,
        drive=4.5,
        amplitude_gradient=[0.2, 1],
        phase_lag=2 * np.pi / 10,
        turn=[0.2, 'Right'],
        # ...
    )
    run_simulation(world,
                   parameters,
                   timestep,
                   int(1000 * parameters.simulation_duration / timestep),
                   logs="./logs/simulation9d1.npz")
示例#25
0
def exercise_9g(world, timestep, reset):
    """Exercise 9g"""
    parameters = SimulationParameters(
        simulation_duration=50,
        drive=3,
        walk=True,
    )

    reset.reset()
    path = "./logs/9g/simulation_{}.npz".format(0)
    run_simulation(world,
                   parameters,
                   timestep,
                   int(1000 * parameters.simulation_duration / timestep),
                   logs=path)
    plot_results.plot_9g()
def exercise_9c(world, timestep, reset):
    """Exercise 9c"""
    """
        Influence of: 
            - Rhead
            - Rtail
        on: 
            - speed (along the x axis)
            - energy (integral of [torque * joint's speed])

        -> Use frequency of 1 Hz and total phase lag of 2 pi along the whole body.  
        -> Run grid search on those parameters. For each run, evaluate: 
            - maximal energy (absolute value)
        -> Display 2D plot of results of the grid search. 
    """
    # Parameters
    n_joints = 10

    # Search space definition
    num_trials, rhead_set, rtail_set = get_search_space()

    # Grid search
    simulation_i = -1
    for rhead in rhead_set:
        for rtail in rtail_set:
            simulation_i += 1
            parameters = SimulationParameters(
                drive=5,
                amplitude=[rhead, rtail],  # head, tail 
                phase_lag=0.5,  # total phase lag of 2 pi along the body 
                turn=None,
                couplingBody=10,
                couplingLeg=30,
                rate=20,
                #cRBody = [0.025, 0.005],
                simulation_duration=sim_time)

            reset.reset()
            run_simulation(
                world,
                parameters,
                timestep,
                int(1000 * parameters.simulation_duration / timestep),
                logs="./logs/9c/simulation_{}.npz".format(simulation_i))

    # Evaluate the grid search
    compute_energy_speed()
示例#27
0
def exercise_9b(world, timestep, reset):
    """Exercise 9b"""
    """
        Influence of: 
            - phase lag
            - amplitude
        on: 
            - speed (along the x axis)
            - energy (integral of [torque * joint's speed])

        -> Run grid search on those parameters. For each run, evaluate: 
            - maximal energy (absolute value)
        -> Display 2D plot of results of the grid search. 
    """
    # Parameters
    n_joints = 10

    # Search space definition
    num_trials, amplitudes, phase_lags = get_search_space()

    # Grid search
    simulation_i = -1
    for amplitude in amplitudes:
        for phase_lag in phase_lags:
            simulation_i += 1
            parameters = SimulationParameters(
                drive=5,
                amplitude=[amplitude, amplitude],  # head, tail 
                phase_lag=phase_lag,
                turn=None,
                couplingBody=10,
                couplingLeg=30,
                rate=20,
                cRBody=[0.025, 0.005],
                simulation_duration=sim_time)

            reset.reset()
            run_simulation(
                world,
                parameters,
                timestep,
                int(1000 * parameters.simulation_duration / timestep),
                logs="./logs/9b/simulation_{}.npz".format(simulation_i))

    # Evaluate the grid search
    compute_energy_speed()
示例#28
0
def exercise_9g(world, timestep, reset):
    """Exercise 9g"""
    n_joints = 10
    parameter_set = [SimulationParameters(
        simulation_duration=40,
        drive=2,
    )]

    # Grid search
    for simulation_i, parameters in enumerate(parameter_set):
        reset.reset()
        run_simulation(
            world,
            parameters,
            timestep,
            int(1000 * parameters.simulation_duration / timestep),
            logs="./logs/test/simulation_{}.npz".format(simulation_i))
示例#29
0
def exercise_9g(world, timestep, reset):
    """Exercise 9g"""
    
    parameters = SimulationParameters(
            simulation_duration=60, 
            amplitude_gradient = [1,1], 
            phase_lag=2*np.pi/10, 
            turn=[1, 'Right'],
#            offset = 2*np.pi/10, #optimal phase lag
            amp_factor = 1.0, 
            drive_mlr = 1.5
            ) 
    run_simulation(
                world,
                parameters,
                timestep,
                int(1000*parameters.simulation_duration/timestep),
                logs="logs/simulation9g.npz"
            )
示例#30
0
def exercise_9d1(world, timestep, reset):
    """Exercise 9d1"""

    parameters = SimulationParameters(
        simulation_duration=10,
        drive = 4,
        turn = 0.,
    )

    reset.reset()
    path = "./logs/9d1/simulation_{}.npz".format(0)
    run_simulation(
        world,
        parameters,
        timestep,
        int(1000*parameters.simulation_duration/timestep),
        logs=path
    )

    plot_results.plot_9d1()