日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3 基于采样的路径规划 —— RRT算法

發布時間:2023/12/31 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3 基于采样的路径规划 —— RRT算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • RRT—— 快速擴展隨機算法
  • 算法步驟
    • 1. 生成隨機點 Xrand
    • 2. 尋找距離 Xrand 最近的節點 Xnear
    • 3. 生成新的節點 Xnew
    • 4. 再次采樣 Xrand,尋找距離最近的節點 Xnear
    • 5. 繼續采樣,隨著采樣的進行越來越靠近終點
    • 6. 以一定概率選擇終點最為采樣點
  • class RRT
    • def `_init_` 初始化
    • def rrt_planning
      • class Node 設置節點
      • def sample 獲取采樣點
      • def get_nearest_list_index 找到距離采樣點最近的節點下標
      • theta 求解最近節點和采樣點之間的角度,生成新節點方向
      • def get_new_node 得到新的結點
      • def check_segment_collision 判斷障礙物是否在Xnew和Xnear的線段上
        • def distance_squared_point_to_segment 計算點到直線的距離(重難點)
      • def is_near_goal 判斷是否到了終點附近
        • def line_cost 計算兩點間的距離
      • def get_final_course 找路徑
  • RRT 完整代碼

RRT—— 快速擴展隨機算法

算法步驟

1. 生成隨機點 Xrand

2. 尋找距離 Xrand 最近的節點 Xnear

當前只有根節點,后期的話有了其他新的節點,則找最近的節點

3. 生成新的節點 Xnew

樹的具體生長:將Xnear和Xrand連接起來作為樹具體的生長方向,設置步長(stepsize)作為樹枝的長度,產生新的節點 Xnew

4. 再次采樣 Xrand,尋找距離最近的節點 Xnear

結果發現生長的枝會穿越障礙物,會拋棄這次生長

5. 繼續采樣,隨著采樣的進行越來越靠近終點

設置提前停止的方法:每次生成Xnew節點,都會把該點和終點進行連線,判斷之間的距離是否小于步長且沒有障礙物,這樣就直接把該點和終點連起來。

6. 以一定概率選擇終點最為采樣點


@[TOC]算法講解

class RRT

def _init_ 初始化

def __init__(self, obstacleList, randArea = [-2,18], expandDis = 2.0, goalSampleRate = 10, maxIter = 200):self.start = Noneself.goal = Noneself.min_rand = randArea[0] # 采樣范圍賦值給最小值和最大值self.max_rand = randArea[1] # randArea = [-2, 18]self.expand_dis = expandDis # 設定步長為2self.goal_sample_rate = goalSampleRate # 目標采樣率,有10%的概率每次將終點作為采樣點self.max_iter = maxIter # 設置最大迭代次數為200self.obstacle_list = obstacleList # 設置障礙物位置和大小self.node_list = None # 存儲RRT樹上節點
  • 障礙物設置
# 設置障礙物 (x,y,r)最后參數是半徑 obstacleList = [ (3, 3, 1.5), (12, 2, 3), (3, 9, 2), (9, 11, 2),]

def rrt_planning

class Node 設置節點

class Node:def __init__(self, x, y):self.x = xself.y = yself.cost = 0.0self.parent = None

def sample 獲取采樣點

  • random.randint(start, stop):返回指定范圍內的整數
  • random.uniform 返回一個隨機浮點數 N ,當 a <= b 時 a <= N <= b ,當 b < a 時 b <= N
    <= a
def sample(self):# randint 是在指定的某個區間內的一個值, 產生(0,100)的隨機整數, ,[low,high]左閉右閉if random.randint(0, 100) > self.goal_sample_rate: # goal_sample_rate = 10# random.uniform 返回一個隨機浮點數 N ,當 a <= b 時 a <= N <= b ,當 b < a 時 b <= N <= arnd = [random.uniform(self.min_rand, self.max_rand), random.uniform(self.min_rand, self.max_rand)]# random.uniform(a,b) 返回a、b之間的隨機浮點值, [a,b], min_read = -2 max_read = 18else: # goal point samplingrnd = [self.goal.x, self.goal.y] # 以終點作為采樣點,返回終點坐標,goal = [15, 12]return rnd

def get_nearest_list_index 找到距離采樣點最近的節點下標

def get_nearest_list_index(nodes, rnd):# 遍歷當前所有的節點,計算采樣點和每個節點的距離dList = [(node.x - rnd[0]) ** 2 + (node.y - rnd[1]) ** 2 for node in nodes]minIndex = dList.index(min(dList)) # 得到列表里距離值最小的下標,dList是列表格式,index最小值的下標return minIndex # 返回下標

theta 求解最近節點和采樣點之間的角度,生成新節點方向

theta = math.atan2(rnd[1] - nearestNode.y, rnd[0] - nearestNode.x)

def get_new_node 得到新的結點

# 生成新的節點, n_ind表示離采樣點最近節點的下標,nearestNode表示離采樣點最近的節點(用x,y表示)def get_new_node(self, theta, n_ind, nearestNode):newNode = copy.deepcopy(nearestNode) # 拷貝最近的節點作為新的節點,然后再增加x,y軸方向的坐標# 進行生長,生長的距離(設置為2)乘以余弦正弦值,得到節點的坐標,expand_dis = 2newNode.x += self.expand_dis * math.cos(theta)newNode.y += self.expand_dis * math.sin(theta)newNode.cost += self.expand_dis # cost值等于長度,記錄長度newNode.parent = n_ind # 記錄這個新節點的父節點,就是 nearestNode 的下標return newNode

def check_segment_collision 判斷障礙物是否在Xnew和Xnear的線段上

def check_segment_collision(self, x1, y1, x2, y2): # 把生成的新節點和最近的節點輸入進來for (ox, oy, size) in self.obstacle_list: # 遍歷所有障礙物# 判斷直線和圓是否相切,只需要判斷圓心到直線的距離# 輸入 Xnew, Xnear, 障礙物圓心# array處理向量的模塊dd = self.distance_squared_point_to_segment(np.array([x1, y1]),np.array([x2, y2]),np.array([ox, oy]))if dd <= size ** 2: # 距離大于半徑則沒有碰撞return False # collisionreturn True

def distance_squared_point_to_segment 計算點到直線的距離(重難點)

  • 點到直線的公式(用向量表示)
  • 下面公式的值是一個比例,vw與vo的長度比例 = 向量vw的自乘和向量 vp與 vw乘積的比值

python中dot函數用法

  • dot()函數可以通過NumPy庫調用,也可以由數組實例對象進行調用。例如:a.dot(b) 與 np.dot(a,b)效果相同。但矩陣積計算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結果是不一樣的
# 計算點到直線的距離def distance_squared_point_to_segment(v, w, p):# Return minimum distance between line segment vw and point p# 如果端點v,w是同一個點,則距離就是p到v/w的距離,變成點到點的距離if np.array_equal(v, w):# a.dot(b) 與 np.dot(a, b) 效果相同return (p - v).dot(p - v) # v == w case,返回距離的平方(向量(p-v)的x^2+y^2)l2 = (w - v).dot(w - v) # i.e. |w-v|^2 - avoid a sqrt 計算w和v的線段長度的平方# Consider the line extending the segment,# parameterized as v + t (w - v).# We find projection of point p onto the line.# It falls where t = [(p-v) . (w-v)] / |w-v|^2# We clamp t from [0,1] to handle points outside the segment vw.t = max(0, min(1, (p - v).dot(w - v) / l2)) # (p - v) 與 (w - v)做點積,就是向量pv與向量wv做乘積,t是個比例projection = v + t * (w - v) # Projection falls on the segment 圖中的o點return (p - projection).dot(p - projection) # 返回p 和 o點的距離的平方

def is_near_goal 判斷是否到了終點附近

def is_near_goal(self, node):d = self.line_cost(node, self.goal) # 計算新加入點和終點的距離if d < self.expand_dis: # 距離小于步長的話,則表示和終點非常接近,可以直接和終點連起來return Truereturn False

def line_cost 計算兩點間的距離

def line_cost(node1, node2):return math.sqrt((node1.x - node2.x) ** 2 + (node1.y - node2.y) ** 2)

def get_final_course 找路徑

def get_final_course(self, lastIndex): # 找路徑,傳入終點值path = [[self.goal.x, self.goal.y]]while self.node_list[lastIndex].parent is not None: # 當parent = 0是就找到終點了node = self.node_list[lastIndex]path.append([node.x, node.y])lastIndex = node.parentpath.append([self.start.x, self.start.y])return path

RRT 完整代碼

import copy import math import random import timeimport matplotlib.pyplot as plt from scipy.spatial.transform import Rotation as Rot import numpy as npshow_animation = Trueclass RRT:def __init__(self, obstacleList, randArea = [-2,18], expandDis = 2.0, goalSampleRate = 10, maxIter = 200):self.start = Noneself.goal = Noneself.min_rand = randArea[0] # 采樣范圍賦值給最小值和最大值self.max_rand = randArea[1] # randArea = [-2, 18]self.expand_dis = expandDis # 設定步長為2self.goal_sample_rate = goalSampleRate # 目標采樣率,有10%的概率每次將終點作為采樣點self.max_iter = maxIter # 設置最大迭代次數為200self.obstacle_list = obstacleList # 設置障礙物位置和大小self.node_list = None # 存儲RRT樹上節點# start = [0, 0], goal = [15, 12], animation = show_animation (開頭設置show_animation = True)def rrt_planning(self, start, goal, animation = True):start_time = time.time() # 進行計時,統計時間self.start = Node(start[0], start[1]) # 將起點和終點以node節點的方式存儲起來,start[0]表示起點x值self.goal = Node(goal[0], goal[1]) # Node 是一個類 class Nodeself.node_list = [self.start] # 將起點加入到node列表中,起點作為根節點path = Nonefor i in range(self.max_iter): # 進行for循環,到最大迭代次數200rnd = self.sample() # 獲取采樣點rnd# 求采樣點和節點的距離,返回采樣點和各個節點距離值最小的節點的下標 n_indn_ind = self.get_nearest_list_index(self.node_list, rnd)nearestNode = self.node_list[n_ind] # 使用下標找到距離采樣點最近的節點 Xnear# steertheta = math.atan2(rnd[1] - nearestNode.y, rnd[0] - nearestNode.x) # 求解最近節點和采樣點之間的角度newNode = self.get_new_node(theta, n_ind, nearestNode) # 生長過程,生成新的節點noCollision = self.check_segment_collision(newNode.x, newNode.y, nearestNode.x, nearestNode.y)if noCollision: # 沒有碰撞,就可以把新的節點加入到樹里面self.node_list.append(newNode)if animation:self.draw_graph(newNode, path)# 判斷是否到了終點附近if self.is_near_goal(newNode):if self.check_segment_collision(newNode.x, newNode.y,self.goal.x, self.goal.y): # 判斷路徑是否與障礙物發生碰撞lastIndex = len(self.node_list) - 1 # 沒有碰撞的話就找到終點,下標從0開始,長度減1path = self.get_final_course(lastIndex)pathLen = self.get_path_len(path)print("current path length: {}, It costs {} s".format(pathLen, time.time()-start_time))if animation:self.draw_graph(newNode, path)return pathdef rrt_star_planning(self, start, goal, animation=True):start_time = time.time()self.start = Node(start[0], start[1])self.goal = Node(goal[0], goal[1])self.node_list = [self.start]path = NonelastPathLength = float('inf')for i in range(self.max_iter): # 迭代次數rnd = self.sample() # 獲取采樣點# 找離采樣點最近的節點,最開始找的離初始點近的結點(有步長)n_ind = self.get_nearest_list_index(self.node_list, rnd)nearestNode = self.node_list[n_ind] # 由索引得到距離最近的節點# steertheta = math.atan2(rnd[1] - nearestNode.y, rnd[0] - nearestNode.x) # 求解采樣點和最近的節點的角度值newNode = self.get_new_node(theta, n_ind, nearestNode) # 由角度、最近點的父節點的索引值、最近節點得到新的節點# 判斷是否有障礙物noCollision = self.check_segment_collision(newNode.x, newNode.y, nearestNode.x, nearestNode.y)if noCollision:nearInds = self.find_near_nodes(newNode)newNode = self.choose_parent(newNode, nearInds)self.node_list.append(newNode)self.rewire(newNode, nearInds)if animation:self.draw_graph(newNode, path)if self.is_near_goal(newNode):if self.check_segment_collision(newNode.x, newNode.y,self.goal.x, self.goal.y):lastIndex = len(self.node_list) - 1tempPath = self.get_final_course(lastIndex)tempPathLen = self.get_path_len(tempPath)if lastPathLength > tempPathLen:path = tempPathlastPathLength = tempPathLenprint("current path length: {}, It costs {} s".format(tempPathLen, time.time()-start_time))return pathdef informed_rrt_star_planning(self, start, goal, animation=True):start_time = time.time()self.start = Node(start[0], start[1])self.goal = Node(goal[0], goal[1])self.node_list = [self.start]# max length we expect to find in our 'informed' sample space,# starts as infinitecBest = float('inf')path = None# Computing the sampling spacecMin = math.sqrt(pow(self.start.x - self.goal.x, 2)+ pow(self.start.y - self.goal.y, 2))xCenter = np.array([[(self.start.x + self.goal.x) / 2.0],[(self.start.y + self.goal.y) / 2.0], [0]])a1 = np.array([[(self.goal.x - self.start.x) / cMin],[(self.goal.y - self.start.y) / cMin], [0]])e_theta = math.atan2(a1[1], a1[0])# 論文方法求旋轉矩陣(2選1)# first column of identity matrix transposed# id1_t = np.array([1.0, 0.0, 0.0]).reshape(1, 3)# M = a1 @ id1_t# U, S, Vh = np.linalg.svd(M, True, True)# C = np.dot(np.dot(U, np.diag(# [1.0, 1.0, np.linalg.det(U) * np.linalg.det(np.transpose(Vh))])),# Vh)# 直接用二維平面上的公式(2選1)C = np.array([[math.cos(e_theta), -math.sin(e_theta), 0],[math.sin(e_theta), math.cos(e_theta), 0],[0, 0, 1]])for i in range(self.max_iter):# Sample space is defined by cBest# cMin is the minimum distance between the start point and the goal# xCenter is the midpoint between the start and the goal# cBest changes when a new path is foundrnd = self.informed_sample(cBest, cMin, xCenter, C)n_ind = self.get_nearest_list_index(self.node_list, rnd)nearestNode = self.node_list[n_ind]# steertheta = math.atan2(rnd[1] - nearestNode.y, rnd[0] - nearestNode.x)newNode = self.get_new_node(theta, n_ind, nearestNode)noCollision = self.check_segment_collision(newNode.x, newNode.y, nearestNode.x, nearestNode.y)if noCollision:nearInds = self.find_near_nodes(newNode)newNode = self.choose_parent(newNode, nearInds)self.node_list.append(newNode)self.rewire(newNode, nearInds)if self.is_near_goal(newNode):if self.check_segment_collision(newNode.x, newNode.y,self.goal.x, self.goal.y):lastIndex = len(self.node_list) - 1tempPath = self.get_final_course(lastIndex)tempPathLen = self.get_path_len(tempPath)if tempPathLen < cBest:path = tempPathcBest = tempPathLenprint("current path length: {}, It costs {} s".format(tempPathLen, time.time()-start_time))if animation:self.draw_graph_informed_RRTStar(xCenter=xCenter,cBest=cBest, cMin=cMin,e_theta=e_theta, rnd=rnd, path=path)return pathdef sample(self):# randint 是在指定的某個區間內的一個值, 產生(0,100)的隨機整數, ,[low,high]左閉右閉if random.randint(0, 100) > self.goal_sample_rate: # goal_sample_rate = 10# random.uniform 返回一個隨機浮點數 N ,當 a <= b 時 a <= N <= b ,當 b < a 時 b <= N <= arnd = [random.uniform(self.min_rand, self.max_rand), random.uniform(self.min_rand, self.max_rand)]# random.uniform(a,b) 返回a、b之間的隨機浮點值, [a,b], min_read = -2 max_read = 18else: # goal point samplingrnd = [self.goal.x, self.goal.y] # 以終點作為采樣點,返回終點坐標,goal = [15, 12]return rnddef choose_parent(self, newNode, nearInds):if len(nearInds) == 0:return newNodedList = []for i in nearInds:dx = newNode.x - self.node_list[i].xdy = newNode.y - self.node_list[i].yd = math.hypot(dx, dy)theta = math.atan2(dy, dx)if self.check_collision(self.node_list[i], theta, d):dList.append(self.node_list[i].cost + d)else:dList.append(float('inf'))minCost = min(dList)minInd = nearInds[dList.index(minCost)]if minCost == float('inf'):print("min cost is inf")return newNodenewNode.cost = minCostnewNode.parent = minIndreturn newNodedef find_near_nodes(self, newNode):n_node = len(self.node_list)r = 50.0 * math.sqrt((math.log(n_node) / n_node))d_list = [(node.x - newNode.x) ** 2 + (node.y - newNode.y) ** 2for node in self.node_list]near_inds = [d_list.index(i) for i in d_list if i <= r ** 2]return near_indsdef informed_sample(self, cMax, cMin, xCenter, C):if cMax < float('inf'):r = [cMax / 2.0,math.sqrt(cMax ** 2 - cMin ** 2) / 2.0,math.sqrt(cMax ** 2 - cMin ** 2) / 2.0]L = np.diag(r)xBall = self.sample_unit_ball()rnd = np.dot(np.dot(C, L), xBall) + xCenterrnd = [rnd[(0, 0)], rnd[(1, 0)]]else:rnd = self.sample()return rnd@staticmethoddef sample_unit_ball():a = random.random()b = random.random()if b < a:a, b = b, asample = (b * math.cos(2 * math.pi * a / b),b * math.sin(2 * math.pi * a / b))return np.array([[sample[0]], [sample[1]], [0]])@staticmethoddef get_path_len(path):pathLen = 0for i in range(1, len(path)):node1_x = path[i][0]node1_y = path[i][1]node2_x = path[i - 1][0]node2_y = path[i - 1][1]pathLen += math.sqrt((node1_x - node2_x)** 2 + (node1_y - node2_y) ** 2)return pathLen@staticmethoddef line_cost(node1, node2):return math.sqrt((node1.x - node2.x) ** 2 + (node1.y - node2.y) ** 2)@staticmethoddef get_nearest_list_index(nodes, rnd):# 遍歷當前所有的節點,計算采樣點和每個節點的距離dList = [(node.x - rnd[0]) ** 2 + (node.y - rnd[1]) ** 2 for node in nodes]minIndex = dList.index(min(dList)) # 得到列表里距離值最小的下標,dList是列表格式,index最小值的下標return minIndex # 返回下標# 生成新的節點, n_ind表示離采樣點最近節點的下標,nearestNode表示離采樣點最近的節點(用x,y表示)def get_new_node(self, theta, n_ind, nearestNode):newNode = copy.deepcopy(nearestNode) # 拷貝最近的節點作為新的節點,然后再增加x,y軸方向的坐標# 進行生長,生長的距離(設置為2)乘以余弦正弦值,得到節點的坐標,expand_dis = 2newNode.x += self.expand_dis * math.cos(theta)newNode.y += self.expand_dis * math.sin(theta)newNode.cost += self.expand_dis # cost值等于長度,記錄長度newNode.parent = n_ind # 記錄這個新節點的父節點,就是 nearestNode 的下標return newNodedef is_near_goal(self, node):d = self.line_cost(node, self.goal) # 計算新加入點和終點的距離if d < self.expand_dis: # 距離小于步長的話,則表示和終點非常接近,可以直接和終點連起來return Truereturn Falsedef rewire(self, newNode, nearInds):n_node = len(self.node_list)for i in nearInds:nearNode = self.node_list[i]d = math.sqrt((nearNode.x - newNode.x) ** 2+ (nearNode.y - newNode.y) ** 2)s_cost = newNode.cost + dif nearNode.cost > s_cost:theta = math.atan2(newNode.y - nearNode.y,newNode.x - nearNode.x)if self.check_collision(nearNode, theta, d):nearNode.parent = n_node - 1nearNode.cost = s_cost@staticmethod# 計算點到直線的距離def distance_squared_point_to_segment(v, w, p):# Return minimum distance between line segment vw and point p# 如果端點v,w是同一個點,則距離就是p到v/w的距離,變成點到點的距離if np.array_equal(v, w):# a.dot(b) 與 np.dot(a, b) 效果相同return (p - v).dot(p - v) # v == w case,返回距離的平方(向量(p-v)的x^2+y^2)l2 = (w - v).dot(w - v) # i.e. |w-v|^2 - avoid a sqrt 計算w和v的線段長度的平方# Consider the line extending the segment,# parameterized as v + t (w - v).# We find projection of point p onto the line.# It falls where t = [(p-v) . (w-v)] / |w-v|^2# We clamp t from [0,1] to handle points outside the segment vw.t = max(0, min(1, (p - v).dot(w - v) / l2)) # (p - v) 與 (w - v)做點積,就是向量pv與向量wv做乘積,t是個比例projection = v + t * (w - v) # Projection falls on the segment 圖中的o點return (p - projection).dot(p - projection) # 返回p 和 o點的距離的平方def check_segment_collision(self, x1, y1, x2, y2): # 把生成的新節點和最近的節點輸入進來for (ox, oy, size) in self.obstacle_list: # 遍歷所有障礙物# 判斷直線和圓是否相切,只需要判斷圓心到直線的距離# 輸入 Xnew, Xnear, 障礙物圓心# array處理向量的模塊# dd 表示兩點距離的平方dd = self.distance_squared_point_to_segment(np.array([x1, y1]),np.array([x2, y2]),np.array([ox, oy]))if dd <= size ** 2: # 距離的平方大于半徑的平方則沒有碰撞return False # collisionreturn Truedef check_collision(self, nearNode, theta, d):tmpNode = copy.deepcopy(nearNode)end_x = tmpNode.x + math.cos(theta) * dend_y = tmpNode.y + math.sin(theta) * dreturn self.check_segment_collision(tmpNode.x, tmpNode.y, end_x, end_y)def get_final_course(self, lastIndex): # 找路徑,傳入終點值path = [[self.goal.x, self.goal.y]]while self.node_list[lastIndex].parent is not None: # 當parent = 0是就找到終點了node = self.node_list[lastIndex]path.append([node.x, node.y])lastIndex = node.parentpath.append([self.start.x, self.start.y])return pathdef draw_graph_informed_RRTStar(self, xCenter=None, cBest=None, cMin=None, e_theta=None, rnd=None, path=None):plt.clf()# for stopping simulation with the esc key.plt.gcf().canvas.mpl_connect('key_release_event',lambda event: [exit(0) if event.key == 'escape' else None])if rnd is not None:plt.plot(rnd[0], rnd[1], "^k")if cBest != float('inf'):self.plot_ellipse(xCenter, cBest, cMin, e_theta)for node in self.node_list:if node.parent is not None:if node.x or node.y is not None:plt.plot([node.x, self.node_list[node.parent].x], [node.y, self.node_list[node.parent].y], "-g")for (ox, oy, size) in self.obstacle_list:plt.plot(ox, oy, "ok", ms=30 * size)if path is not None:plt.plot([x for (x, y) in path], [y for (x, y) in path], '-r')plt.plot(self.start.x, self.start.y, "xr")plt.plot(self.goal.x, self.goal.y, "xr")plt.axis([-2, 18, -2, 15])plt.grid(True)plt.pause(0.01)@staticmethoddef plot_ellipse(xCenter, cBest, cMin, e_theta): # pragma: no covera = math.sqrt(cBest ** 2 - cMin ** 2) / 2.0b = cBest / 2.0angle = math.pi / 2.0 - e_thetacx = xCenter[0]cy = xCenter[1]t = np.arange(0, 2 * math.pi + 0.1, 0.1)x = [a * math.cos(it) for it in t]y = [b * math.sin(it) for it in t]rot = Rot.from_euler('z', -angle).as_matrix()[0:2, 0:2]fx = rot @ np.array([x, y])px = np.array(fx[0, :] + cx).flatten()py = np.array(fx[1, :] + cy).flatten()plt.plot(cx, cy, "xc")plt.plot(px, py, "--c")def draw_graph(self, rnd=None, path=None):plt.clf()# for stopping simulation with the esc key.plt.gcf().canvas.mpl_connect('key_release_event',lambda event: [exit(0) if event.key == 'escape' else None])if rnd is not None:plt.plot(rnd.x, rnd.y, "^k")for node in self.node_list:if node.parent is not None:if node.x or node.y is not None:plt.plot([node.x, self.node_list[node.parent].x], [node.y, self.node_list[node.parent].y], "-g")for (ox, oy, size) in self.obstacle_list:# self.plot_circle(ox, oy, size)plt.plot(ox, oy, "ok", ms=30 * size)plt.plot(self.start.x, self.start.y, "xr")plt.plot(self.goal.x, self.goal.y, "xr")if path is not None:plt.plot([x for (x, y) in path], [y for (x, y) in path], '-r')plt.axis([-2, 18, -2, 15])plt.grid(True)plt.pause(0.01)class Node:def __init__(self, x, y):self.x = xself.y = yself.cost = 0.0self.parent = Nonedef main():print("Start rrt planning")# create obstaclesobstacleList = [ # 設置障礙物 (x,y,r)最后參數是半徑(3, 3, 1.5),(12, 2, 3),(3, 9, 2),(9, 11, 2),]# obstacleList = [(5, 5, 1), (3, 6, 2), (3, 8, 2), (3, 10, 2), (7, 5, 2),# (9, 5, 2), (8, 10, 1)]# Set params 類RRT,采樣范圍[-2,18],障礙物,最大迭代次數rrt = RRT(randArea = [-2, 18], obstacleList = obstacleList, maxIter = 200)path = rrt.rrt_planning(start = [0, 0], goal = [15, 12], animation = show_animation) # 傳入起點和終點# path = rrt.rrt_star_planning(start=[0, 0], goal=[15, 12], animation=show_animation)# path = rrt.informed_rrt_star_planning(start=[0, 0], goal=[15, 12], animation=show_animation)print("Done!!")if show_animation and path:plt.show()if __name__ == '__main__':main()

總結

以上是生活随笔為你收集整理的3 基于采样的路径规划 —— RRT算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美精品做受xxx性少妇 | 久久亚洲欧美 | 婷婷色网视频在线播放 | 国产精品一区二区久久精品爱微奶 | 成人影音在线 | 久久99国产精品久久99 | 国产精品免费在线播放 | 91最新网址| 91麻豆精品国产91久久久使用方法 | 国产99在线 | 欧美日韩高清一区 | 一区二区三区高清在线 | 日韩视频免费在线观看 | 丁香婷婷综合激情五月色 | 天天操天天干天天摸 | 欧美少妇xx | 国产理论在线 | 色爱区综合激月婷婷 | 国产精华国产精品 | 欧美日韩亚洲一 | 国产亚洲欧美精品久久久久久 | av日韩不卡 | 中文在线免费一区三区 | 久久免费黄色大片 | 成人国产精品电影 | 天天爽人人爽 | 欧美激情h | 成年人在线免费视频观看 | 国产精品国产毛片 | 国产欧美综合视频 | 久草在线最新 | 国产在线高清精品 | 国产色在线 | 国产麻豆视频在线观看 | 黄色国产在线观看 | 亚洲精品国偷拍自产在线观看 | 精品视频99 | 欧美激情精品久久久久久 | 亚洲精品国产精品国自产观看 | 91黄色在线看 | 三级av免费观看 | 久草www | 国产成人在线免费观看 | 久久观看 | 天天爽夜夜爽人人爽一区二区 | 97在线视频网站 | 欧美在线观看视频 | 久久视频精品在线观看 | 国产精品久久久久久爽爽爽 | www.天天操.com | 久久五月婷婷丁香 | 精品99在线视频 | www.亚洲精品视频 | 国产精品久久久久久一二三四五 | 成年人在线免费看视频 | 久久天天躁狠狠躁亚洲综合公司 | av解说在线观看 | 高清色免费 | 最新超碰| 日韩欧美电影 | 亚洲欧美视频在线播放 | 在线观看韩日电影免费 | 一级a性色生活片久久毛片波多野 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久热香蕉视频 | 视频成人免费 | 69av免费视频 | 亚洲精品国产精品国自产观看 | 欧美9999| 丁香网婷婷 | www日韩在线 | 国内精品中文字幕 | 色播五月婷婷 | 91人网站| 日韩精品极品视频 | 国产无吗一区二区三区在线欢 | 日韩免费观看av | 国产精品高清一区二区三区 | 五月婷婷一区二区三区 | 欧美精品在线观看一区 | 超碰在线天天 | 日韩精品你懂的 | 免费日韩 精品中文字幕视频在线 | 成人免费av电影 | 911久久| 色综合久久久网 | 久久成人国产精品一区二区 | 在线观av| 在线观看视频中文字幕 | 91麻豆精品一区二区三区 | 美女天天操 | 国产精品va在线播放 | 91视频在线观看免费 | 国产九色91 | 97视频人人澡人人爽 | 四虎影视成人精品 | 日本激情视频中文字幕 | 五月天丁香视频 | 日本资源中文字幕在线 | 久久精品视频免费播放 | 丁香六月中文字幕 | 亚洲欧美偷拍另类 | 成人精品999| 色综合天天色综合 | 国产精品大尺度 | 精品一区在线 | 国产精品久久久久久久电影 | av中文字幕在线看 | 二区精品视频 | 欧美在线a视频 | 麻花传媒mv免费观看 | 久久夜色电影 | 欧美肥妇free | www成人av | 色综合天天射 | 人人看人人草 | 婷婷在线色 | 亚洲欧洲精品一区二区精品久久久 | 欧美日韩一区久久 | 成人黄色大片在线观看 | 婷婷视频在线观看 | 亚洲 欧美 成人 | 日韩综合在线观看 | 中文在线字幕观看电影 | 欧美精品久久久久性色 | 亚洲精品乱码久久久久久高潮 | 日韩电影一区二区三区在线观看 | 午夜丁香视频在线观看 | 亚洲精品免费观看 | 成人在线视频论坛 | 一级黄色电影网站 | 中文字幕精品一区久久久久 | 久操97 | 国产.精品.日韩.另类.中文.在线.播放 | 日韩精品免费一线在线观看 | 亚洲国产播放 | 成人免费网站在线观看 | 欧美日韩高清一区 | 久热超碰| 国产成人61精品免费看片 | 日韩综合视频在线观看 | 国产91精品一区二区麻豆网站 | 亚洲香蕉在线观看 | 日日夜夜人人精品 | 日韩有色 | 国产精品视频资源 | 亚洲精品影院在线观看 | 国产精品va在线观看入 | 操操色| 精品视频在线免费观看 | 四虎成人av | 亚洲精品视频在线免费播放 | 91精品视频观看 | 久久激情五月丁香伊人 | 激情综合五月婷婷 | 香蕉一区 | 婷五月激情 | 欧美一区二区三区四区夜夜大片 | 国产亚洲精品女人久久久久久 | 国产精品一区在线观看 | 欧美乱淫视频 | 国模一二三区 | 久久免费的精品国产v∧ | 五月天中文在线 | 日韩欧美视频一区二区三区 | 99re中文字幕 | 91视频在线国产 | 免费在线看成人av | 一区二区三区免费看 | 免费看国产曰批40分钟 | 精品在线播放 | 91在线文字幕 | 91精品国产91热久久久做人人 | 国产裸体视频网站 | 十八岁以下禁止观看的1000个网站 | 狠狠的日日 | 91免费在线视频 | 日韩中文字 | 97色在线观看免费视频 | 胖bbbb搡bbbb擦bbbb | 亚洲精品国产自产拍在线观看 | 日韩精品欧美专区 | 日韩欧美一区二区三区在线 | 美女视频是黄的免费观看 | 97超视频免费观看 | 日韩深夜在线观看 | 日韩中文字幕一区 | 国产亚洲欧美在线视频 | 久久国产精品99精国产 | 99精品久久99久久久久 | 欧美不卡视频在线 | 一区二区视频免费在线观看 | 亚洲国产精品一区二区尤物区 | 在线观看久久久久久 | 亚洲在线网址 | 久草在线资源免费 | 五月综合激情婷婷 | 9在线观看免费高清完整版在线观看明 | 久久区二区 | av一区二区三区在线观看 | 一区二区三区免费在线 | 久久久久免费网站 | 成人四虎 | 欧美一级在线观看视频 | av九九九 | 黄色a一级视频 | 这里只有精彩视频 | 亚洲精品国产精品久久99热 | 久草精品免费 | 国产精品第52页 | 91精品国产一区 | 狠狠躁日日躁夜夜躁av | 久久情侣偷拍 | 草久久av| 日韩在线免费视频观看 | 99视频一区| 免费高清在线观看成人 | www.伊人网 | 黄污网站在线观看 | 久久躁日日躁aaaaxxxx | 久久免费国产电影 | 涩av在线 | 免费观看性生活大片3 | 亚洲国产日韩欧美 | 在线观看中文字幕 | 久久精品久久99精品久久 | 国产97视频 | 中文字幕第一页av | 午夜精品视频免费在线观看 | 麻豆一精品传二传媒短视频 | 中文免费观看 | 91精品国产高清自在线观看 | 人人插人人射 | 91传媒在线观看 | 性色av免费在线观看 | 亚洲va欧美va | 亚洲精品影院在线观看 | 毛片激情永久免费 | 久久亚洲影视 | 亚洲精品成人av在线 | 亚洲第一av在线播放 | 久久在线电影 | 日韩欧美成人网 | 日韩精品久久久久 | 免费网站在线观看人 | 高清一区二区三区 | 色www精品视频在线观看 | 欧美-第1页-屁屁影院 | 在线精品在线 | 综合色婷婷 | 另类老妇性bbwbbw高清 | 日本黄色免费在线观看 | 一级欧美一级日韩 | 在线黄av | 一级片观看 | 黄色资源在线观看 | 在线观看视频黄色 | 国产不卡在线播放 | 免费观看一区二区三区视频 | 久久夜色精品国产欧美一区麻豆 | 成人一区电影 | 91成人精品一区在线播放69 | 国产亚洲综合性久久久影院 | 午夜电影 电影 | 精品欧美一区二区精品久久 | 91在线视频播放 | av电影中文字幕 | av观看久久久 | 在线观看自拍 | 日韩午夜精品 | 偷拍福利视频一区二区三区 | 欧美aaa视频 | 亚洲国产午夜精品 | 激情网站免费观看 | 国产成人精品免高潮在线观看 | 国内视频一区二区 | 久久精品1区2区 | 色噜噜色噜噜 | 精品视频一区在线 | 亚洲精品久久久久999中文字幕 | 热久在线| 色资源中文字幕 | 欧美一区三区四区 | 亚洲精品字幕在线观看 | 午夜视频在线观看一区二区三区 | 久久综合国产伦精品免费 | 精品久久一| 久久av网址| 91看毛片 | 日韩久久精品一区二区 | 久久中文精品视频 | av成人动漫在线观看 | 中文字幕免费高 | 国产精品黄色 | 最近中文字幕免费大全 | 日韩视频一 | 亚洲精品 在线视频 | 啪啪免费视频网站 | 精品国产一区二区三区在线 | 青青草久草在线 | 五月激情视频 | 91看片在线观看 | 亚洲精品久久久久久久不卡四虎 | 日韩精品视频网站 | 少妇av片 | 91一区啪爱嗯打偷拍欧美 | 亚洲理论在线观看电影 | 国产一区在线免费 | 爱射综合| 日本xxxxav | 特黄特黄的视频 | 久久激情视频 | 日韩午夜高清 | 四虎免费av | 色婷婷www | 在线观看日韩国产 | 亚洲精品一区二区网址 | 激情视频久久 | 五月天婷婷狠狠 | 波多野结衣在线观看一区二区三区 | 一区二区三区不卡在线 | 亚洲无线视频 | av久久久| 天天操夜夜操国产精品 | 国产伦理久久 | 久久第四色 | 久久免费视频网站 | 久久久污 | 免费在线国产黄色 | 91高清视频免费 | 国产精品不卡在线观看 | 久久中文字幕在线视频 | 国产乱老熟视频网88av | 九九涩涩av台湾日本热热 | 国产亚洲综合性久久久影院 | 国产亚洲精品成人av久久影院 | 日本黄色免费观看 | 欧美成年人在线视频 | 丁香久久五月 | 天天色婷婷 | 亚洲情感电影大片 | 欧美天天综合 | 国产精品久久网 | 最新日韩电影 | 免费91麻豆精品国产自产在线观看 | 五月激情丁香图片 | 国产精品一区二区久久精品爱微奶 | 麻豆久久久 | 亚洲精品高清一区二区三区四区 | 99精品国产高清在线观看 | 一区二区三区免费在线观看 | 国产精品1区2区在线观看 | 国产精品成人自产拍在线观看 | 久久久在线免费观看 | 国产明星视频三级a三级点| 99久久成人 | 在线视频亚洲 | 国产精品18久久久久久首页狼 | 天天干国产 | 国产精品69av | 五月天久久 | av三级av | 五月天激情在线 | 黄色一二级片 | 在线观看成人 | 国内精品毛片 | 特及黄色片 | 国产一区二区成人 | 在线成人免费 | 久久精品视频观看 | 国产一区久久久 | 精品国产资源 | 激情综合电影网 | 亚洲国产美女精品久久久久∴ | 精品一区二区免费在线观看 | 亚洲男男gaygay无套同网址 | 99久久久久免费精品国产 | 免费看av片网站 | а中文在线天堂 | 一级特黄av | 亚洲欧美国产日韩在线观看 | 国产高清在线 | 在线三级av | 国产精品18久久久久久久久久久久 | 日产乱码一二三区别免费 | 99精品热视频只有精品10 | 亚洲欧美日韩精品久久奇米一区 | 99热九九这里只有精品10 | 国内精品久久久久久 | 日韩免费一区二区三区 | 成年人看片 | 日韩网站在线播放 | 在线观看视频亚洲 | 国产成人三级一区二区在线观看一 | 91免费日韩| 香蕉影院在线播放 | 欧美亚洲成人xxx | 亚洲黄网址 | 最近最新中文字幕 | 中文字幕在线观看视频一区 | 国产一级一级国产 | 午夜精品久久一牛影视 | 国内精品久久久久久久久久久 | 国产精品一区二区电影 | 久久久久免费网站 | 久久国产精品影视 | 激情久久婷婷 | 精品视频在线免费观看 | 99久久精品久久亚洲精品 | 日韩日韩日韩日韩 | 在线观看视频在线 | 国产人成在线视频 | 美女视频久久黄 | 日韩r级在线 | 久久久久久97三级 | 在线午夜电影神马影院 | 精品福利视频在线观看 | av在线之家电影网站 | 伊人日日干 | 中文字幕在线观看2018 | 色综合激情网 | 在线观看亚洲精品 | 亚洲国产合集 | 青草草在线 | 色综合天天狠狠 | 婷婷99| 国产高清精品在线观看 | 香蕉视频在线播放 | 久久婷婷精品视频 | 成人欧美亚洲 | 在线播放日韩av | 欧美贵妇性狂欢 | 91精品国自产在线偷拍蜜桃 | 婷婷综合五月 | 国产精品久久99综合免费观看尤物 | 精品久久久久久亚洲 | 一区二区精品在线观看 | 天天射天天干天天 | 高清在线一区 | 在线免费看片 | 国产第一二区 | 日韩精品中文字幕一区二区 | 久久精品99国产国产 | 亚洲成人av一区二区 | 成人在线视频网 | 久久国产系列 | 久久久99国产精品免费 | 最近中文字幕第一页 | 婷婷丁香花五月天 | 九九久久精品 | 欧美乱大交 | 国产精品免费麻豆入口 | 国产成人精品午夜在线播放 | 欧美日韩亚洲第一页 | 精品国产视频一区 | 久草资源在线观看 | 久久免费福利 | 亚洲粉嫩av | 国产99久久99热这里精品5 | 国产 日韩 欧美 中文 在线播放 | 亚洲免费av在线播放 | 精品亚洲免a | 国产视频2区 | 欧美精选一区二区三区 | 在线观看中文字幕 | 欧美激情操 | 中文字幕精 | 91av视频在线免费观看 | 国产精品麻豆一区二区三区 | 国产v视频 | 日韩 精品 一区 国产 麻豆 | 黄色av电影一级片 | 麻豆久久 | 色多多污污 | 蜜臀久久99精品久久久酒店新书 | 亚洲欧美日韩国产一区二区三区 | 五月丁婷婷 | 免费看片色 | 五月婷香| 激情五月六月婷婷 | 久久精品香蕉视频 | 特级毛片爽www免费版 | 天天综合网天天综合色 | 久草97| 在线观看免费视频你懂的 | 91片黄在线观 | 91视频最新网址 | 五月婷婷视频在线观看 | 久久视频在线免费观看 | 日韩三级不卡 | 日韩二区在线播放 | 欧美一级激情 | 人人插人人艹 | 在线视频国产区 | 中文字幕 国产视频 | 免费看片色 | 日韩高清在线不卡 | 最新国产视频 | 香蕉视频在线视频 | 日韩美女av在线 | 久久理论视频 | 久久久www免费电影网 | 久久精品久久99 | 免费看国产曰批40分钟 | 日本亚洲国产 | 麻豆国产网站入口 | 国产美女在线精品免费观看 | 99精品视频免费看 | 日韩av二区 | 黄色在线免费观看网站 | 波多野结衣电影一区二区三区 | 人人干人人超 | 人人超碰人人 | 色.www | 久久久久视 | a极黄色片 | 日韩在线网址 | 国产色女人 | 免费av大片| 天天操狠狠操夜夜操 | 狠狠久久综合 | 成人免费网站在线观看 | 欧美精品999 | www.久草视频 | 国产黄色av网站 | 天天综合色天天综合 | 精品国产一区二区三区噜噜噜 | 人人澡人人爱 | 最新av免费在线观看 | 日韩在线视频不卡 | wwxxxx日本| 国产成人在线网站 | 欧美日性视频 | 最新国产精品久久精品 | 五月婷在线视频 | 欧美日韩在线视频免费 | 久久久久久久国产精品视频 | 亚洲精品视频一 | 亚洲精品乱码久久久久久9色 | 黄色com| 久草爱视频 | 国产一区二区电影在线观看 | 婷婷亚洲综合 | 亚洲精选国产 | 日日夜夜婷婷 | 精品国产亚洲在线 | 欧美日韩不卡一区 | 国产日韩欧美在线播放 | 色wwwww| 国产精品mm| 91在线观看欧美日韩 | 日韩免费在线观看视频 | 色综合久久五月天 | 91精品视频免费看 | 色婷婷狠狠18| 一区二区三区在线观看免费视频 | 丁香一区二区 | 四虎影院在线观看av | 粉嫩av一区二区三区四区在线观看 | 人人看97| 国产 在线观看 | 97视频在线免费 | 国产中文在线字幕 | 亚洲japanese制服美女 | www国产亚洲精品久久麻豆 | 国产91九色视频 | 国产精品麻豆欧美日韩ww | 国产日韩欧美在线播放 | 久久精品日产第一区二区三区乱码 | 久久久久 | 操少妇视频 | 亚洲久在线 | 国产精品嫩草影院99网站 | 黄色软件在线观看 | 欧美日韩视频一区二区 | 最新国产精品亚洲 | 国产精品专区一 | 美女视频黄免费的久久 | 久久精品在线免费观看 | 婷婷综合成人 | 香蕉视频在线播放 | 国产成人久久精品亚洲 | 精品黄色在线 | 又湿又紧又大又爽a视频国产 | 国内丰满少妇猛烈精品播 | 最近免费中文字幕 | 亚洲高清在线 | 欧美一级在线观看视频 | 婷婷丁香五 | 超碰在线99 | 精品日本视频 | 91视频免费看 | 日韩欧美精品一区二区三区经典 | 天天天插 | 国产高清av免费在线观看 | 高清免费av在线 | 97超碰人人模人人人爽人人爱 | 国产精品国产三级国产aⅴ无密码 | 99r在线精品 | 久久视频一区二区 | av免费在线网 | 亚洲日本色 | 97在线看 | 国产精品嫩草55av | 性色av香蕉一区二区 | 欧美日韩一级视频 | 人人干97| 一级一片免费观看 | 美女网站视频免费黄 | 国产精品专区h在线观看 | 在线观看亚洲a | 免费在线观看a v | 在线观看色网 | 91最新网址 | 久草综合在线 | 久av电影 | 狠狠躁日日躁夜夜躁av | 国内精品久久久久久久久 | 波多野结衣久久资源 | 亚洲综合色激情五月 | 欧美精品在线观看 | 91免费版在线 | 91在线观看视频网站 | 91伊人久久大香线蕉蜜芽人口 | 免费观看一级成人毛片 | 婷婷av综合| 国产99久久久精品视频 | 操操日| 国产福利一区二区三区视频 | www.少妇| 国产精品99久久久久的智能播放 | 99激情网| 色视频成人在线观看免 | 91在线播放国产 | 99视频久久| 成年人免费看片网站 | 亚洲精品在线网站 | 黄网站污 | 久久视频二区 | 成人动态视频 | 99久久99精品| 99视频精品视频高清免费 | 亚洲精品免费在线观看 | 丁香高清视频在线看看 | 亚洲最大激情中文字幕 | 最近乱久中文字幕 | 五月婷婷国产 | 欧美一级电影免费观看 | 国产视频97| av黄色影院 | 在线播放国产一区二区三区 | 91av国产视频 | 99久久精品久久久久久清纯 | 精品国产视频在线 | 成年人看片 | 国产亚洲精品女人久久久久久 | 日韩视频www| 国产精品网址在线观看 | 黄色精品久久久 | 色婷婷免费视频 | 又黄又爽免费视频 | 久久99日韩| 在线观看视频在线观看 | 91免费的视频在线播放 | 国产日韩av在线 | 久草国产精品 | 中国黄色一级大片 | 日本韩国精品在线 | 亚洲一二三在线 | 欧美性视频网站 | 亚洲综合射 | 亚洲精品午夜久久久 | 欧美成人在线免费 | 欧美激情第八页 | 国产精品日韩欧美 | www.夜夜操 | 欧美日韩视频一区二区 | av高清在线观看 | 国产日韩欧美在线播放 | 手机av电影在线 | 国产精品久久久久影院 | 伊人黄色网 | 久久社区视频 | av久久在线 | 丁香视频 | 免费看三级| 国产美女免费观看 | 青春草视频在线播放 | 一区二区三区免费在线观看 | 亚洲成人软件 | 国产看片免费 | 亚洲国产精品成人av | sm免费xx网站 | www.777奇米 | 久久精品韩国 | 在线v片 | 美女精品久久久 | 精产嫩模国品一二三区 | 97超碰网| 日韩精品中文字幕在线播放 | 伊人久久婷婷 | 亚洲九九九在线观看 | 久久综合亚洲鲁鲁五月久久 | 日韩视频中文字幕在线观看 | 免费看的视频 | 麻豆精品在线 | 日韩一级黄色片 | 国产乱视频 | 美女视频永久黄网站免费观看国产 | 亚洲黄色小说网址 | 婷婷色在线观看 | 欧洲精品亚洲精品 | 国产精品一区二区美女视频免费看 | 婷婷激情网站 | 草久在线播放 | 超碰在线日韩 | 欧美一区在线看 | 青草草在线视频 | 久久午夜影视 | 日韩有码第一页 | 国产免费又爽又刺激在线观看 | 91九色视频在线 | 91成人免费观看视频 | 日本一区二区三区免费看 | 成人h电影在线观看 | 国产午夜精品av一区二区 | 插婷婷| 色综合久久久久久久久五月 | 国产精品嫩草影院99网站 | av不卡中文字幕 | 欧美一级欧美一级 | 亚洲va欧美va人人爽春色影视 | 久久污视频 | 久久久久女教师免费一区 | www国产精品com | 日韩另类在线 | 超碰在线人人艹 | 日韩欧美高清不卡 | 999久久久久久 | 国产在线视频一区二区三区 | 久草网在线 | 国产99久久久国产精品 | 少妇bbb好爽| 精品久久1 | 久亚洲 | 日日干视频 | 国产精品18久久久久久首页狼 | 欧美视频99 | 国产伦理一区 | 亚洲国产一区在线观看 | 在线看av的网址 | 国产在线不卡一区 | 午夜黄色大片 | 一级精品视频在线观看宜春院 | 久久久久久久久久久久久久av | 国产成人区 | 在线观看深夜福利 | 日本中文字幕网址 | 日韩有码中文字幕在线 | 亚洲综合在线五月天 | 91精品国产91久久久久久三级 | 中文字幕综合在线 | 在线看国产日韩 | 国产美女精品人人做人人爽 | 精品久久久久久电影 | 天天爽夜夜爽精品视频婷婷 | 99久久久国产精品免费观看 | 三上悠亚一区二区在线观看 | 久久综合网色—综合色88 | 精品国产一二三四区 | 日韩成人免费观看 | a色视频 | 一级久久久 | 成人黄色av网站 | 99久久爱 | 久久精品精品电影网 | 91黄色在线视频 | 国产精品久久久久国产精品日日 | 国产精品免费一区二区 | 欧美日韩国产色综合一二三四 | 日韩性片| 五月天久久婷 | 91九色视频在线播放 | 美女中文字幕 | 久久99精品一区二区三区三区 | 国产理伦在线 | 在线视频观看你懂的 | 91在线免费视频观看 | 91视频在线国产 | 中文字幕免费高清在线 | 国产无遮挡猛进猛出免费软件 | se视频网址 | 怡红院av| 天天操天天射天天舔 | 又大又硬又黄又爽视频在线观看 | 香蕉视频在线免费看 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产精品精品国产婷婷这里av | 国产人在线成免费视频 | 国产成人免费在线 | 久久激情片 | 久久9999久久免费精品国产 | 午夜体验区 | 久久视影 | av免费网站 | 天天操夜夜叫 | 字幕网资源站中文字幕 | 少妇视频一区 | 日本mv大片欧洲mv大片 | av免费在线观看1 | 亚洲三级网站 | 看黄色.com| 九九免费在线看完整版 | 色综合天天做天天爱 | 中文字幕免费高 | 免费看日韩片 | 国产精品va在线播放 | 91视频 - 88av| 久久精品日产第一区二区三区乱码 | 午夜精品视频免费在线观看 | 天天色综合三 | 五月天丁香亚洲 | 激情综合网婷婷 | 99精品国产在热久久下载 | 亚洲黄色在线看 | 久久一线 | 亚洲国产三级在线观看 | 久草在线免| 国产精品自产拍在线观看桃花 | 久久久黄视频 | 久久精品五月 | 91香蕉视频 mp4 | 日韩av资源在线观看 | 国产午夜精品一区二区三区欧美 | 国产精品你懂的在线观看 | 国产伦理精品一区二区 | 久久久久一区 | 天天av资源 | 国产精彩视频一区 | 狠狠狠色丁香婷婷综合激情 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 日本久久久久 | 在线观看国产麻豆 | 亚洲国产精品一区二区久久hs | 国产尤物视频在线 | 日韩视频一区二区三区在线播放免费观看 | 综合久久网站 | 四虎精品成人免费网站 | 免费看的黄网站 | 亚洲三级黄 | 天天爱天天草 | 日本护士撒尿xxxx18 | 亚洲精品欧美专区 | 欧美另类高潮 | 日本成址在线观看 | av东方在线 | 日韩激情小视频 | 欧美激情综合五月色丁香小说 | 四虎国产精 | 手机av观看 | 国产99久久久国产精品免费二区 | 久久精品中文字幕一区二区三区 | 国产又粗又长又硬免费视频 | 黄色av电影 | 国产99久久久国产精品免费二区 | 亚洲激情综合 | 美女在线观看av | 视频二区在线视频 | 国产香蕉在线 | 日日夜夜网| 日韩av电影网站在线观看 | 五月婷久久 | 欧美一区二区三区在线播放 | 亚洲国产日韩一区 | 亚洲综合日韩在线 | 亚洲一区二区精品视频 | 日韩性片 | 丰满少妇在线 | 激情五月激情综合网 | 欧美色图狠狠干 | www天天干com | 一区二区三区 中文字幕 | 精品1区2区3区 | 99在线视频播放 | 国产精品网站 | 日韩电影在线看 | 亚洲免费av电影 | 亚洲成av人片在线观看www | 在线观看国产福利片 | 九九免费精品视频 | 国产综合福利在线 | 日韩精品视频在线观看网址 | 在线观看日韩国产 | 久草视频免费在线观看 | 久久综合亚洲鲁鲁五月久久 | 久久精品综合一区 | 国产精品嫩草55av | 欧美伦理一区二区三区 | 2021国产在线| 久久刺激视频 | 国产精品免费麻豆入口 | 国产一区二三区好的 | 久久精品中文字幕免费mv | 亚洲天堂网在线视频 | 国产在线自 | 亚洲国产激情 | 日韩网站免费观看 | 日韩理论视频 | 日韩欧美电影在线观看 | 免费观看久久久 | 久久久av免费 | 国产一区二区视频在线 | 亚洲国产成人精品电影在线观看 | 就色干综合 | 国产精品99蜜臀久久不卡二区 | 天天爽天天爽夜夜爽 | 欧美成人性战久久 | 探花在线观看 | 九九热在线观看 | 中文有码在线视频 | 天天艹| 2021国产在线视频 | 国产亚洲精品久久久久久移动网络 | 欧美激情视频一二区 | 91av蜜桃| 国产免费一区二区三区最新6 | 香蕉视频在线播放 | 狠狠色丁香婷婷综合久小说久 | 青青视频一区 | 97超碰人 | 国产中文字幕一区二区三区 | 欧美精品v国产精品v日韩精品 | 97超碰资源总站 | 国产精品尤物 | 丁香婷婷色 | 91刺激视频| 日韩免费电影一区二区 | 午夜婷婷网 | av网站在线观看免费 | 久久视频免费在线 | 黄色av影视| 福利一区在线视频 | 美女视频黄,久久 | 狠狠干 狠狠操 | 色婷婷狠狠五月综合天色拍 | 视频精品一区二区三区 | 日韩在线视频看看 | 91热精品 | 久草视频一区 | 日韩网站在线免费观看 | 天海冀一区二区三区 | 日日干日日操 | 丁香九月婷婷综合 | 天天射射天天 | 国产精品毛片一区二区在线看 | 在线播放视频一区 | 精品女同一区二区三区在线观看 | 99久久精品久久亚洲精品 | 中文字幕中文字幕在线中文字幕三区 | 在线看片日韩 | 亚洲精品字幕在线 | 亚洲码国产日韩欧美高潮在线播放 | 色噜噜日韩精品一区二区三区视频 | av福利第一导航 | 日韩欧美视频一区 | 久草免费在线观看视频 | 欧美精品亚州精品 | 成人免费在线看片 | 久久久免费精品视频 | 亚洲一区二区三区精品在线观看 | 色夜视频 | 久久国产精品视频观看 | 国产精品久久久久久妇 | 久久人人添人人爽添人人88v | 一级黄色片在线观看 | 日韩aⅴ视频 | 91免费看片黄 | 99操视频 | 91精品国产成人 | 国内外成人在线 | 丁香花中文在线免费观看 | 99久久久久成人国产免费 | 亚洲综合五月 | 国产精彩在线视频 | 免费在线激情电影 | 亚洲作爱| 美女视频永久黄网站免费观看国产 | 日日躁夜夜躁xxxxaaaa | 久久久福利视频 | 久久久久北条麻妃免费看 | 五月综合激情 | 午夜av不卡 | 国产又黄又爽又猛视频日本 | 91亚色视频在线观看 | 国产欧美综合在线观看 | 美女久久久久 | 免费色婷婷| 国产黄色在线看 |