日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RRT算法

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

簡介


RRT 算法(快速擴展隨機樹,rapidly exploring random tree)是一種隨機性算法,它可以直接應用于非完整約束系統的規劃,不需進行路徑轉換,所以它的算法復雜度較小,尤為適用于高維多自由度的系統。


缺點是得到的路徑質量不是很好。需要后處理進一步優化。
思想快速擴張一群像樹一樣的路徑以探索(填充)空間的大部分區域,伺機找到可行的路徑。


RRT 的基本步驟是:
  1. 起點作為一顆種子,從它開始生長枝丫;
  2. 在機器人的“構型”空間中,生成一個隨機點X;
  3. 在樹上找到距離X最近的那個點,記為Y吧;
  4. 朝著X的方向生長,如果沒有碰到障礙物就把生長后的樹枝和端點添加到樹上,返回 2;

?


  

?


 六維空間的RRT

實際效果如圖。

?

偽代碼

function BuildRRT(qinit, K, Δq)T.init(qinit)for k = 1 to Kqrand = Sample() -- chooses a random configurationqnearest = Nearest(T, qrand) -- selects the node in the RRT tree that is closest to qrandif Distance(qnearest, qgoal) < Threshold thenreturn trueqnew = Extend(qnearest, qrand, Δq) -- moving from qnearest an incremental distance in the direction of qrandif qnew ≠ NULL thenT.AddNode(qnew)return falsefunction Sample() -- Alternatively,one could replace Sample with SampleFree(by using a collision detection algorithm to reject samples in C_obstaclep = Random(0, 1.0)if 0 < p < Prob thenreturn qgoalelseif Prob < p < 1.0 thenreturn RandomNode()


?初始化時隨機樹T只包含一個節點:根節點qinit。首先Sample函數從狀態空間中隨機選擇一個采樣點qrand(4行);

然后Nearest函數從隨機樹中選擇一個距離qrand最近的節點qnearest(5行);

最后Extend函數通過從qnearest向qrand擴展一段距離,得到一個新的節點qnew(8行)。如果qnew與障礙物發生碰撞,則Extend函數返回空,放棄這次生長,否則將qnew加入到隨機樹中。重復上述步驟直到qnearest和目標點qgaol距離小于一個閾值,則代表隨機樹到達了目標點,算法返回成功(6~7行)。為了使算法可控,可以設定運行時間上限或搜索次數上限(3行)。如果在限制次數內無法到達目標點,則算法返回失敗。


為了加快隨機樹到達目標點的速度,簡單的改進方法是:在隨機樹每次的生長過程中,根據隨機概率來決定qrand是目標點還是隨機點。在Sample函數中設定參數Prob (probability),每次得到一個0到1.0的隨機值p,當0<p<Prob的時候,隨機樹朝目標點生長;當Prob<p<1.0時,隨機樹朝一個隨機方向生長


原文鏈接:https://blog.csdn.net/a735148617/article/details/103644670

?

?

?

上圖說明了RRT在有障礙物和沒有障礙物的情況下探索自由空間的能力。這種特性通常被稱為RRT的Voronoi偏差。作為均勻采樣的結果,規劃器更有可能在更大的Voronoi區域中選擇樣本,并且樹朝著那個自由空間遞增地快速增長。

?

RRT路徑規劃算法

https://blog.csdn.net/aoyousihaiqiuqihuang/article/details/100147478? ?matlab實現,包括后處理smooth

- 關于后處理,有不同的策略,文中采用的貪心策略,是相對簡單的一種

?

一種后處理smooth策略:

#!/usr/bin/python # -*- coding: UTF-8 -*- import numpy as np import random import mathclass Smoother(object):"""@desc; 在規劃好的path中,隨機選擇兩個point(中間至少間隔一個point),對選中的兩個point采用固定長度的線性插值,若中間插值點未發生碰撞,則用該path替換之前兩點之間的path"""def __init__(self):passdef __linecdchecker(self, start, goal):""":param start::param goal::return:"""nps = np.array(start).reshape(-1,1)npg = np.array(goal).reshape(-1,1)nele = math.ceil((abs(npg-nps)/self.__expanddis).max())ratio = np.linspace(0, 1, nele, endpoint=False)jointslist = (nps+(npg-nps)*ratio).T.tolist()for joints in jointslist:iscollided = self.__iscollidedcallback(joints, self.__obstaclelist, self.__robot, self.__cdchecker)if iscollided:return False, []return True, jointslistdef pathsmoothing(self, path, planner, maxiter):"""the path and planner are necessary parametersthe following member variables of planner will be used for smoothing1. jointlimits2. iscollidedcallback3. cdchecker4. robot5. expanddis6. obstaclelist:param path::param planner::return:"""self.__jointlimits = planner.jointlimitsself.__iscollidedcallback = planner.iscollidedcallbackself.__cdchecker = planner.cdcheckerself.__robot = planner.robotself.__expanddis = planner.expanddisself.__obstaclelist = planner.obstaclelistpathlength = len(path)if pathlength <= 3:return pathfor i in range(maxiter):pickpoint0 = random.randint(0, pathlength-3)pickpoint1 = random.randint(pickpoint0+1, pathlength-1)result, addpath = self.__linecdchecker(path[pickpoint0], path[pickpoint1])if result:path = path[:pickpoint0]+addpath+path[pickpoint1:]pathlength = len(path)return path

smooth效果:

?

?

總結

以上是生活随笔為你收集整理的RRT算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 黄色aa毛片| 超碰丝袜 | 按摩毛片 | 精品日韩视频 | 林天顾悦瑶笔趣阁 | 日本精品网站 | 国产精欧美一区二区三区白种人 | 欧洲性生活视频 | 老湿机69福利区午夜x片 | 免费看成人aa片无码视频羞羞网 | 护士人妻hd中文字幕 | a国产在线 | 日韩亚洲影院 | 91tv在线观看 | 玉足脚交榨精h文 | 免费人成在线观看 | a一级黄色 | 日韩影院在线 | 美女高潮黄又色高清视频免费 | 国产熟妇乱xxxxx大屁股网 | 99性趣网 | 99精品视频在线观看免费 | 丰满圆润老女人hd | 超碰在线日韩 | 伊人艹| 国产色爽| 国产在视频线精品视频 | 91视频免费网址 | 国产精品日韩一区二区三区 | 亚洲精品一区三区三区在线观看 | 97精品国产露脸对白 | 精品99999 | 精品视频免费在线观看 | 国产又粗又猛又爽又黄无遮挡 | 亚洲高清网站 | 久色国产 | 欧美高清性 | 久久久久久国产精品一区 | 91精品一区二区 | 狠狠躁| 中文字幕第一区 | 久久理论视频 | 国产精品视频免费在线观看 | 色伊人影院 | 夜夜操国产 | 国产偷人| 无码人妻精品一区二区蜜桃色欲 | 欧美r级在线 | 凹凸精品熟女在线观看 | 久久久资源网 | av女优一区| 在线色网 | 性色福利 | 日本美女日批视频 | 久草综合网 | 中文字幕系列 | 免看一级片 | 国产精品久久久久久久久久久久久久 | 国产欧美一区二区三区视频在线观看 | 娇小激情hdxxxx学生 | 男男play呻吟动漫网站 | 免费一二三区 | 青青草五月天 | 国产又黄又爽又色 | www.色在线| 人人超碰97 | www.久久久久久久 | 国产极品在线观看 | 亚洲天堂一区二区在线观看 | 秋霞网av| 成人观看 | 中文字幕第315页 | 99久久精品国产成人一区二区 | 亚洲激情在线观看视频 | 青草99| 男生和女生一起差差差视频 | 国产精品亚洲自拍 | 欧洲精品一区二区三区久久 | 日韩亚洲精品在线 | 日本视频一区二区三区 | 国产女人被狂躁到高潮小说 | 成人免费在线视频网站 | 色就是色亚洲色图 | 色屁屁一区二区三区 | 欧美浪妇xxxx高跟鞋交 | 欧美久久久久久久 | 久久精品亚洲精品国产欧美 | 欧美成人精品二区三区99精品 | 久久久久久久爱 | 国产精品片 | 深夜视频一区二区三区 | 亚洲天堂网站 | 在线视频免费观看你懂的 | 99精品色 | 久久香蕉精品视频 | 伊人久久综合影院 | 无码少妇精品一区二区免费动态 | 日日操天天操 | 日韩网站在线观看 |