dwa演算法分析
dwa演算法實現分為四個部分
1.運動模型的建立
2.速度取樣
3.評價函式
具體步驟如下
1.首先建立機械人的運動模型,退到出運動模型的航跡推演公式。
2.運動模型建立完畢後,接下來要進行速度取樣。
取樣速度的重點是要將機械人的速度限制在一定的範圍內(v,w)
dist(vw)為機械人裡障礙物最近的距離(並不是一開始就可以得到的,而是根據機械人遇到障礙物時這組速度可不可以停下來,如果可以停下來,那麼這組資料就是可以接受的。如果停不下來,那就接受不了)
3.評價函式:
heading(v ,w)達到模擬軌跡末端時的朝向和目標之間的角度差距。dist(v,w)表示當前軌跡上和障礙物的差距。velocity(v w)用來評價當前軌跡速度的大小。
三個部分在歸一化後進行相加。
demo:
egin dwa(robotpose,robotgoal,robotmodel)
laserscan = readscanner()
allowable_v = generatewindow(robotv, robotmodel)
allowable_w = generatewindow(robotw, robotmodel)
for each v in allowable_v
for each w in allowable_w
dist = find_dist(v,w,laserscan,robotmodel)
breakdist = calculatebreakingdistance(v)
if (dist > breakdist) //can stop in time
heading = hdiff(robotpose,goalpose, v,w)
//clearance與原**稍不一樣
clearance = (dist-breakdist)/(dmax - breakdist)
cost = costfunction(heading,clearance, abs(desired_v - v))
if (cost > optimal)
best_v = v
best_w = w
optimal = cost
set robot trajectory to best_v, best_w
end
參考:白巧克力亦唯心的部落格。
2023年1月28日學習進度
今天,勵志努力學習,以期在這個時候把收穫大篇幅地寫出來,安撫一下心靈,離就業更近一步。然而完成得不盡人意。首先,為了夯實基礎,撿起了放假前沒有學完的計算機網路,看到當時在書上做的筆記,燃起了新的鬥志,要努力找到當時的充實感。首先,複習了前兩章的概論 應用層相關知識,心裡進一步加深了對知識的理解。又努...
2023年11月7日學習總結
c語言程式書寫規範 1 標頭檔案換行,即寫完第一行 include之後要隔一行才可以開始寫函式。2 函式內部內容首字母需四次空格縮排,但是函式名不需要。3 不可以用tab鍵進行縮排。4 每一行只允許定義乙個變數。5 定義的一類變數寫在一起,不同型別變數之間要隔一行。6 不同板塊塊之間隔一行。7 運算...
2023年5月13日學習筆記
1.關於clonerange 和clonecontents clonerange是建立乙個新的range物件,表示與當前range物件相同的區域 這是用來轉殖的文字 clone 哈哈哈哈 clone clonecontents是把range內容複製到乙個documentfragment中 extra...