动态窗口算法运动规划(DWA)


简要介绍动态窗口算法,具体不加个人评价和理解。可看原文

1. 定义

dynamic window approach算法的定义,根据wiki的定义:

在机器人运动规划领域,动态窗方法为三位大佬Dieter Fox, Wolfram Burgard, and Sebastian Thrun 于1997发表的论文,被引用高达2800次。应用于实时碰撞避免策略,和其余碰撞避免算法不同,动态窗口直接考虑到机器人的动力学,特别是设计来用于受到速度和加速度约束的机器人。
其主要包含两部分:首先是生成一个有效的搜索区域,其次在搜索区域中选择一个最优解。其论文中讲到,搜索空间限制在短时间内可到达且无碰撞的安全圆周轨迹。优化目标是选择一个方向和速度,使机器人以最大的距离远离障碍物且能到达目标位置。

2. 伪代码

DWA的主要创新点是使用(v,w)(速度,角速度)空间来表示车辆在平面内的运动;

论文优化目标如下:
在这里插入图片描述
伪码如下:

//http://adrianboeing.blogspot.com/2012/05/dynamic-window-algorithm-motion.html
BEGIN DWA(robotPose,robotGoal,robotModel)
   desiredV = calculateV(robotPose,robotGoal)
   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) //计算朝向cost(注意要归一化)
         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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值