Exemplo n.º 1
0
    def __init__(self, s_start, s_goal, eps, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env
        self.Plot = plotting.Plotting(s_start, s_goal)

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles
        self.x = self.Env.x_range
        self.y = self.Env.y_range

        self.g, self.rhs, self.OPEN = {}, {}, {}

        for i in range(1, self.Env.x_range - 1):
            for j in range(1, self.Env.y_range - 1):
                self.rhs[(i, j)] = float("inf")
                self.g[(i, j)] = float("inf")

        self.rhs[self.s_goal] = 0.0
        self.eps = eps
        self.OPEN[self.s_goal] = self.Key(self.s_goal)
        self.CLOSED, self.INCONS = set(), dict()

        self.visited = set()
        self.count = 0
        self.count_env_change = 0
        self.obs_add = set()
        self.obs_remove = set()
        self.title = "Anytime D*: Small changes"  # Significant changes
        self.fig = plt.figure()
Exemplo n.º 2
0
    def __init__(self, s_start, s_goal):
        self.s_start, self.s_goal = s_start, s_goal

        self.Env = env.Env()
        self.Plot = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions
        self.obs = self.Env.obs
        self.x = self.Env.x_range
        self.y = self.Env.y_range

        self.fig = plt.figure()
        self.OPEN = set()
        self.t = {}
        self.PARENT = {}
        self.h = {}
        self.k = {}
        self.path = []
        self.visited = set()
        self.count = 0

        for i in range(self.Env.x_range):
            for j in range(self.Env.y_range):
                self.t[(i, j)] = 'NEW'
                self.k[(i, j)] = 0.0
                self.h[(i, j)] = float("inf")
                self.PARENT[(i, j)] = None

        self.h[self.s_goal] = 0.0
Exemplo n.º 3
0
    def __init__(self, s_start, s_goal, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.g_fore = {
            self.s_start: 0,
            self.s_goal: float("inf")
        }  # cost to come: from s_start
        self.g_back = {
            self.s_goal: 0,
            self.s_start: float("inf")
        }  # cost to come: form s_goal

        self.OPEN_fore = queue.QueuePrior()  # OPEN set for foreward searching
        self.OPEN_fore.put(
            self.s_start,
            self.g_fore[self.s_start] + self.h(self.s_start, self.s_goal))
        self.OPEN_back = queue.QueuePrior()  # OPEN set for backward searching
        self.OPEN_back.put(
            self.s_goal,
            self.g_back[self.s_goal] + self.h(self.s_goal, self.s_start))

        self.CLOSED_fore = []  # CLOSED set for foreward
        self.CLOSED_back = []  # CLOSED set for backward

        self.PARENT_fore = {self.s_start: self.s_start}
        self.PARENT_back = {self.s_goal: self.s_goal}
Exemplo n.º 4
0
    def __init__(self, s_start, s_goal, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()
        self.Plot = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions
        self.obs = self.Env.obs
        self.x = self.Env.x_range
        self.y = self.Env.y_range

        self.g, self.rhs, self.U = {}, {}, {}

        for i in range(self.Env.x_range):
            for j in range(self.Env.y_range):
                self.rhs[(i, j)] = float("inf")
                self.g[(i, j)] = float("inf")

        self.rhs[self.s_start] = 0
        self.U[self.s_start] = self.CalculateKey(self.s_start)
        self.visited = set()
        self.count = 0

        self.fig = plt.figure()
Exemplo n.º 5
0
    def __init__(self, s_start, s_goal, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env
        self.Plot = plotting.Plotting(s_start, s_goal)

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles
        self.x = self.Env.x_range
        self.y = self.Env.y_range

        self.g, self.rhs, self.OPEN = {}, {}, {}
        self.parent = {}
        self.cknbr = {}
        self.ccknbr = {}
        self.bptr = {}
        self.init_table()

        for i in range(self.Env.x_range):
            for j in range(self.Env.y_range):
                self.rhs[(i, j)] = float("inf")
                self.g[(i, j)] = float("inf")
                self.bptr[(i, j)] = (i, j)

        self.rhs[self.s_goal] = 0.0
        self.OPEN[self.s_goal] = self.CalculateKey(self.s_goal)
        self.visited = set()
        self.count = 0
        self.fig = plt.figure()
Exemplo n.º 6
0
    def __init__(self, s_start, s_goal):
        self.s_start, self.s_goal = s_start, s_goal

        self.Env = env.Env()
        self.plotting = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.OPEN = queue.QueuePrior()  # OPEN set
        self.OPEN.put(self.s_start, self.Heuristic(self.s_start))
        self.CLOSED = []  # CLOSED set / visited order
        self.PARENT = {self.s_start: self.s_start}
Exemplo n.º 7
0
    def __init__(self, s_start, s_goal):
        self.s_start, self.s_goal = s_start, s_goal

        self.Env = env.Env()
        self.plotting = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions                       # feasible input set
        self.obs = self.Env.obs                             # position of obstacles

        self.OPEN = queue.QueueFIFO()                       # OPEN set: visited nodes
        self.OPEN.put(self.s_start)
        self.CLOSED = []                                    # CLOSED set: explored nodes
        self.PARENT = {self.s_start: self.s_start}
Exemplo n.º 8
0
    def __init__(self, s_start, s_goal, N, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.N = N  # number of expand nodes each iteration
        self.visited = []  # order of visited nodes in planning
        self.path = []  # path of each iteration
        self.h_table = {}  # h_value table
Exemplo n.º 9
0
    def __init__(self, s_start, s_goal, heuristic_type):
        self.s_start = s_start
        self.s_goal = s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.OPEN = []  # priority queue / OPEN set
        self.CLOSED = []  # CLOSED set / VISITED order
        self.PARENT = dict()  # recorded parent
        self.g = dict()  # cost to come
Exemplo n.º 10
0
    def __init__(self, s_start, s_goal):
        self.s_start, self.s_goal = s_start, s_goal

        self.Env = env.Env()
        self.plotting = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.g = {self.s_start: 0, self.s_goal: float("inf")}  # cost to come
        self.OPEN = queue.QueuePrior()  # priority queue / OPEN set
        self.OPEN.put(self.s_start, 0)
        self.CLOSED = []  # closed set & visited
        self.PARENT = {self.s_start: self.s_start}
Exemplo n.º 11
0
    def __init__(self, start, goal, heuristic_type):
        self.s_start, self.s_goal = start, goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.g = {self.s_start: 0, self.s_goal: float("inf")}  # cost to come
        self.OPEN = queue.QueuePrior()  # priority queue / OPEN set
        self.OPEN.put(self.s_start, self.fvalue(self.s_start))
        self.CLOSED = []  # CLOSED set / VISITED order
        self.PARENT = {self.s_start: self.s_start}
Exemplo n.º 12
0
    def __init__(self, s_start, s_goal):
        self.s_start = s_start
        self.s_goal = s_goal
        self.kp = 5.0
        self.eta = 400
        self.r = 30.0
        self.OL = 10
        self.rr = 2

        self.Env = env.Env()
        self.Plot = plotting.Plotting(s_start, s_goal)

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles
        self.x = self.Env.x_range
        self.y = self.Env.y_range
Exemplo n.º 13
0
    def __init__(self, s_start, s_goal, e, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()                                                # class Env

        self.u_set = self.Env.motions                                       # feasible input set
        self.obs = self.Env.obs                                             # position of obstacles
        self.e = e                                                          # initial weight
        self.g = {self.s_start: 0, self.s_goal: float("inf")}               # cost to come

        self.OPEN = {self.s_start: self.fvalue(self.s_start)}               # priority queue / OPEN set
        self.CLOSED = set()                                                 # CLOSED set
        self.INCONS = {}                                                    # INCONS set
        self.PARENT = {self.s_start: self.s_start}                          # relations
        self.path = []                                                      # planning path
        self.visited = []                                                   # order of visited nodes
Exemplo n.º 14
0
    def __init__(self, s_start, s_goal, e, heuristic_type):
        self.s_start, self.s_goal = s_start, s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles
        self.e = e  # weight

        self.g = dict()  # Cost to come
        self.OPEN = dict()  # priority queue / OPEN set
        self.CLOSED = set()  # CLOSED set
        self.INCONS = {}  # INCONSISTENT set
        self.PARENT = dict()  # relations
        self.path = []  # planning path
        self.visited = []  # order of visited nodes
Exemplo n.º 15
0
    def __init__(self, s_start, s_goal, heuristic_type):
        self.s_start = s_start
        self.s_goal = s_goal
        self.heuristic_type = heuristic_type

        self.Env = env.Env()  # class Env

        self.u_set = self.Env.motions  # feasible input set
        self.obs = self.Env.obs  # position of obstacles

        self.OPEN_fore = []  # OPEN set for forward searching
        self.OPEN_back = []  # OPEN set for backward searching
        self.CLOSED_fore = []  # CLOSED set for forward
        self.CLOSED_back = []  # CLOSED set for backward
        self.PARENT_fore = dict()  # recorded parent for forward
        self.PARENT_back = dict()  # recorded parent for backward
        self.g_fore = dict()  # cost to come for forward
        self.g_back = dict()  # cost to come for backward
    def __init__(self, s_start, s_goal):
        self.s_start, self.s_goal = s_start, s_goal

        self.Env = env.Env()
        self.Plot = plotting.Plotting(self.s_start, self.s_goal)

        self.u_set = self.Env.motions
        self.obs = self.Env.obs
        self.x = self.Env.x_range
        self.y = self.Env.y_range

        self.fig = plt.figure()

        self.OPEN = set()
        self.t = dict()
        self.PARENT = dict()
        self.h = dict()
        self.k = dict()
        self.path = []
        self.visited = set()
        self.count = 0
Exemplo n.º 17
0
 def __init__(self, problemFile):
     self.env = env.Env(problemFile)
     self.xI = self.env.xI
     self.xG = self.env.xG
     self.obs = self.env.obs
Exemplo n.º 18
0
 def __init__(self, xI, xG):
     self.xI, self.xG = xI, xG
     self.env = env.Env()
     self.obs = self.env.obs_map()