zoukankan      html  css  js  c++  java
  • ROS Navigation 局部避障的动态窗口法(DWA)

    耳熟能详的局部避障动态窗口法(Dynamic Window Approach)

     概述:机器人局比避障规划方法有很多,ROS中主要采用的是动态窗口法(和原来的论文中的dwa方法不一样)。动态窗口法主要是在速度(v,w)空间中采样多组速度,并模拟机器人在这些速度下一定时间内的轨迹。在得到多组轨迹后,对这些轨迹进行评价,选取最优得轨迹所对应的速度来驱动机器人运动。该算法的图书店在于动态窗口这个名词,它的含义是依据移动机器人的加减速性能限定速度采样空间在一个可行的动态范围。

    1、机器人运动模型

      见本博客:关于gmapping运动模型,误差的影响

      假设两轮运动情况下,只能前进和旋转,

    2、速度采样

      机器人的轨迹模型可以得到,根据选定的速度就可以获得轨迹。

      动态窗口法的第二个核心是如何采样速度:

      限制1:移动机器人收到自身最大速度和最小速度的限制

      限制2:移动机器人受到电机性能影响:因此一定时间内,存在一个动态窗口,窗口内的速度是机器人能够实际达到的速度。

      限制:3:基于移动机器人的安全性考虑:比如在障碍物前停下来,速度有限制;

    3、评价函数

      在采样的速度组中,有若干组轨迹是可行的,因此使用评价函数对每一条轨迹进行评价。

      评价指标:

      1、方位角评价函数,轨迹末端朝向与终点连线角衡量,指向终点为最高,背向终点为最低

      2、空隙:当前轨迹上与最近障碍物的距离,如果这一条轨迹上没有障碍物,就将其设为一个常数

      3、速度:速度、角速度,用以评价当前轨迹的速度大小

      4、平滑处理:即归一化,每一项除以每一项的总和;

    参考文献:http://blog.csdn.net/akunainiannian/article/details/48442269

  • 相关阅读:
    List内存分配
    《深入理解JAVA虚拟机》笔记1
    oracle(三)
    常见排序算法
    C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
    C++ Primer 有感(异常处理)(四)
    C++ Primer 有感(异常处理)(三)
    C++ Primer 有感(异常处理)(二)
    C++ Primer 有感(异常处理)
    C++ Primer 有感(多重继承与虚继承)
  • 原文地址:https://www.cnblogs.com/cwyblogs/p/8289701.html
Copyright © 2011-2022 走看看