def test_new_gen_env():
    from env_gen import load_folder_and_plot
    from obstacle_environment import ObstacleEnvironment2D
    from mip_planner import MIPPlanner, TESTA, TESTB
    from core.dynamics.linear_system_dynamics import LinearSystemDynamics
    import matplotlib.pyplot as plt

    START = (15, 10, 0, 0)
    END = (90, 90, 0, 0)
    OBSTACLES = None
    x_b = (0, 100)
    y_b = (0, 100)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    a, b = load_folder_and_plot(ax, (START[0], START[1]), (END[0], END[1]),
                                "../envs/2", x_b, y_b)  # read and plot
    START_ENV = ObstacleEnvironment2D(START, END, OBSTACLES, a, b)
    planner = MIPPlanner(START_ENV, LinearSystemDynamics(TESTA, TESTB),
                         T=50,
                         h_k=0.01, presolve=0)
    planner.set_optim_timelimit(180)
    wp, _, _, _, _, _ = planner.optimize_path()
    START_ENV.plot_path(wp, ax)
    ax.set_xlim(-50, 200)
    ax.set_ylim(-50, 200)
    fig.show()
Exemple #2
0
    for k, v in dict.items():
        for v_i in v:
            G.add_edge(k, v_i)
    return G

def generate_path_list(a,b, start,end):
    G = generate_graph(a,b)
    start_node = point_in_which_regions(start, a, b)
    end_node = point_in_which_regions(end, a, b)
    assert len(start_node) > 0
    assert len(end_node) > 0
    #lets assume start and end only belong in one region for now
    #TODO: add more regions if we can handle it
    return [p for p in all_simple_paths(G, start_node[0], end_node[0])]

if __name__ == "__main__":
    s = (10, 10)
    e = (90, 90)
    x_b = (0, 100)
    y_b = (0, 100)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    a, b = load_folder_and_plot(ax, s, e, "envs/2", x_b, y_b)  # read and plot
    fig.show()
    fig = plt.figure(2)
    G = generate_graph(a,b)
    start_node = point_in_which_regions(s, a, b)
    end_node = point_in_which_regions(e, a, b)
    networkx.draw(G)
    fig.show()
    print([p for p in all_simple_paths(G, start_node[0], end_node[0])])
import numpy as np

import reinforce as rf

np.random.seed(1)

START = (10, 10, 0, 0)
END = (90, 90, 0, 0)
OBSTACLES = None
t = 200
time_steps = 10
x_b = (0, 100)
y_b = (0, 100)
fig = plt.figure()
ax = fig.add_subplot(111)
a, b = load_folder_and_plot(ax, (START[0], START[1]), (END[0], END[1]),
                            "envs/10", x_b, y_b)  # read and plot
paths = generate_path_list(a, b, START, END)
print(paths)
# pick a path
p = paths[np.random.randint(len(paths))]
print(p)
START_ENV = ObstacleEnvironment2D(START, END, OBSTACLES, a, b)
planner = MIPPlanner(START_ENV,
                     LinearSystemDynamics(TESTA, TESTB),
                     T=t,
                     h_k=0.001,
                     presolve=2)
planner.set_optim_timelimit(10)
last_inactive_set = np.zeros((t, len(a)), dtype=bool)
for row in range(0, int(t / time_steps)):
    last_inactive_set[row][p[0]] = True