ros dwa局部路径规划原理

 

 

 

 

 

首先在V_m∩V_d的范围内采样速度:

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) //如果能够及时刹车,该对速度可接收

如果这组速度可接受,接下来利用评价函数对其评价,找到最优的速度组

 

 

 

来源:http://adrianboeing.blogspot.com/2012/05/dynamic-window-algorithm-motion.html

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)

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

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值