Bladeren bron

Add left turn policy

zhilong 4 jaren geleden
bovenliggende
commit
7fe5ea19da
1 gewijzigde bestanden met toevoegingen van 62 en 0 verwijderingen
  1. 62 0
      Motion Planning/left_turn_policy.py

+ 62 - 0
Motion Planning/left_turn_policy.py

@@ -0,0 +1,62 @@
+# ----------
+# User Instructions:
+# 
+# Implement the function optimum_policy2D below.
+#
+# You are given a car in grid with initial state
+# init. Your task is to compute and return the car's 
+# optimal path to the position specified in goal; 
+# the costs for each motion are as defined in cost.
+#
+# There are four motion directions: up, left, down, and right.
+# Increasing the index in this array corresponds to making a
+# a left turn, and decreasing the index corresponds to making a 
+# right turn.
+
+forward = [[-1,  0], # go up
+           [ 0, -1], # go left
+           [ 1,  0], # go down
+           [ 0,  1]] # go right
+forward_name = ['up', 'left', 'down', 'right']
+
+# action has 3 values: right turn, no turn, left turn
+action = [-1, 0, 1]
+action_name = ['R', '#', 'L']
+
+# EXAMPLE INPUTS:
+# grid format:
+#     0 = navigable space
+#     1 = unnavigable space 
+grid = [[1, 1, 1, 0, 0, 0],
+        [1, 1, 1, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0],
+        [1, 1, 1, 0, 1, 1],
+        [1, 1, 1, 0, 1, 1]]
+
+init = [4, 3, 0] # given in the form [row,col,direction]
+                 # direction = 0: up
+                 #             1: left
+                 #             2: down
+                 #             3: right
+                
+goal = [2, 0] # given in the form [row,col]
+
+cost = [2, 1, 20] # cost has 3 values, corresponding to making 
+                  # a right turn, no turn, and a left turn
+
+# EXAMPLE OUTPUT:
+# calling optimum_policy2D with the given parameters should return 
+# [[' ', ' ', ' ', 'R', '#', 'R'],
+#  [' ', ' ', ' ', '#', ' ', '#'],
+#  ['*', '#', '#', '#', '#', 'R'],
+#  [' ', ' ', ' ', '#', ' ', ' '],
+#  [' ', ' ', ' ', '#', ' ', ' ']]
+# ----------
+
+# ----------------------------------------
+# modify code below
+# ----------------------------------------
+
+def optimum_policy2D(grid,init,goal,cost):
+
+    return policy2D