机器人局部避障的动态窗口法(dynamic window approach)
其他
2018-08-09 18:26:24
阅读次数: 0
-
-
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)
-
-
如果这组速度可接受,接下来利用评价函数对其评价,找到最优的速度组
-
-
BEGIN 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)
-
-
heading = hDiff(robotPose,goalPose, v,w)
-
-
clearance = (dist-breakDist)/(dmax - breakDist)
-
cost = costFunction(heading,clearance,
abs(desired_v - v))
-
-
-
-
-
set robot trajectory to best_v, best_w
-
-
-
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)
-
-
如果这组速度可接受,接下来利用评价函数对其评价,找到最优的速度组
-
-
BEGIN 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)
-
-
heading = hDiff(robotPose,goalPose, v,w)
-
-
clearance = (dist-breakDist)/(dmax - breakDist)
-
cost = costFunction(heading,clearance,
abs(desired_v - v))
-
-
-
-
-
set robot trajectory to best_v, best_w
-
转载自blog.csdn.net/u010312937/article/details/80970007