DWA论文翻译

2023-05-16

摘要

        本文介绍了一种能够令机器人进行自主避障的动态窗口法(dynamic window approach ,DWA)。该方法是从机器人的运动动力学直接推导出的,因此特别适合在高速运动的机器人。与以往方法不同的是,该方法直接在速度空间中搜索控制机器人平移和旋转速度的命令。它优势在于它完美的结合了机器人的运动运动学。这是通过将搜索空间缩小到动态窗口来实现的,动态窗口包括在短时间间隔内可达到的速度。在动态窗口内,该方法只考虑那些令机器人可以安全避停的admissible velocities。 在这些速度中,DWA通过最大化目标函数来选择最优的平移速度和旋转角速度。目标函数包含了机器人的前向速度,到轨迹上下一个障碍物的距离和朝向目标位置的进度。实验证明DWA能够令机器人在复杂和动态的环境中以最大95cm/s的速度工作。

1 简介

        室内机器人研究的一个终极目标是实现机器人在复杂危险的环境中安全的完成任务。例如,在室内办公环境中协助人类的服务机器人应该能够对不可预见的变化做出快速反应,并在各种各样的环境下执行任务;然而当今大多数商用移动设备在这方面做的都不是很好。它们的运动规划往往依赖于一个准确的静态的环境,因此当行人或者其他无法预料的障碍物突然出现在它们前进路线上的时候它们往往不知所措。自主移动机器人应能够感知它们周边的环境,处理突然情况,动态规划轨迹以完成它们的任务。

        本文着重于以上机器人的某一方面:也就是避障。本文提出的动态窗口方法是直接从同步驱动移动机器人的运动动力学出发,专门针对速度和加速度受限的约束而设计的。 简而言之,我们的方法在计算下一个steering command时只考虑一个周期的时间间隔,以避免一般运动规划问题的巨大复杂性。在这样的时间间隔内,用circular curvatures逼近轨迹的结果是一个由平移速度和旋转角速度构成的二维搜索空间。 搜索空间可进一步简化为允许机器人安全刹停的admissible velocities。由于电机的加速度有限,因此速度受到进一步的限制:机器人只考虑在下一个时间间隔内可以达到的速度。这些速度形成了以机器人当前速度为中心的动态窗口。

        我们通过最大化目标函数来对动态窗口中由平移速度和旋转角速度组成的admissible velocities进行筛选。目标函数包含了机器人的前向速度、到轨迹上下一个障碍物的距离和朝向目标位置的进度。通过结合这些因素,机器人能够以一个较快的速度朝目标点前进,同时绕开障碍物。目标函数中的这些因素使得避障策略非常的鲁棒和完美。

图1 机器人RHINO

        DWA在RHINO机器人上进行了测试。在实验中,我们使用了超声波传感器构建了局部地图(障碍场)。该方法已被证明可以在多个室内环境中以95cm/s的速度可靠地运行并避免碰撞【3】。即便采用其他传感器如相机和红外探测器作为输入,DWA也没有问题。

        DWA与之前的方法在以下三个方面不同:(a) 它是直接从移动机器人的运动动力学推导出来的;(b)它考虑到了机器人的惯性,这对具有扭矩限制的机器人在高速运动时尤为重要;(c)在各种杂乱的动态环境中可以以高达95cm/s的速度安全运行。我们设想这种方法将特别适合速度较高的机器人和电机扭矩有限的低成本机器人。

        本文的剩余部分组织结构如下:第2节为相关工作。第3节给出一个自主机器人的通用运动学方程,其中的一个关键成果是自主移动机器人的轨迹可以由有限的几段的圆弧近似。第4节详细的描述我们的算法。第5节是实验总结,接下来的第6节是对更深入研究话题的讨论。

2 相关工作

        机器人的避障方法可以被粗糙的分为两类:全局路径规划方法和局部路径规划方法。典型的全局路径规划算法有road-map,cell decomposition 和势能场等方法(see 【10】 for an overview and futher references)。这些方法通常假设预先已知一个完备的地图。The advantage of global approaches lies in the fact that a complete trajectory from the starting point to the target point can be computed off-line。不过这些方法对具有较快速度的动态障碍物效果很差。Their strength is global path planning。除此之外,当全局地图是不准确的或者并不是完全已知的时候(特别是在复杂的室内环境中),这些方法被证明存在较大问题。Hu/Brady, Moravec and others【5,11】, have shown how to update global world models based on sensory input, using probabilistic representations。全局路径规划方法的第二个缺点是它们通常很慢(由于机器人运动规划的复杂性)【12】。This is particularly problematic if the underlying world model changes on-the-fly, because of the resulting need for repeated adjustments of the global plan。在上述的场景中,重复进行全局路径规划算法代价比较大。

        局部路径规划算法只需要使用环境中的部分信息即可,因而随之而来的问题就是局部路径规划算法通常无法找到最优解。它们极容易陷入局部最小值中(如U形的死胡同这种环境)。然而局部路径规划算法与全局路径规划算法相比优点在于计算量比较小,当机器人的周围环境不断变化的时候这一点就比较重要了。举个例子,如在参考文献【8】提出的势能场方法,它通过假设障碍物对机器人产生斥力而目标点对机器人产生引力,进而能够确定机器人的运动方向。这些方法的计算速度很快,并且通常只考虑机器人周围比较近的部分障碍物。Borensteion 和 Koren【9】就发现这种方法在狭窄走廊这种场景下通常会失效(振荡)。在参考文献【7】中对此提出了一种改进的势能场方法。通过改进势能函数,机器人的运动变的更加高效,并且能够实现一些诸如沿墙跟随或者跟踪的行为。

        在参考文献【2】中,提出了“vevtor field histogram”方法,这个方法是对“virtual force field histogram”【1】的扩展。这个方法使用占据栅格地图(基于超声波传感器数据生成和不断更新)构建了机器人周边的环境。Occupancy information is transformed into a histogram description of the free space around the robot,which is used to compute the motion direction and velocity for the robot。综上所述,局部路径规划算法计算速度很快,并且能够快速的适应环境中不可预知的变化。

图2  场景举例

        大部分局部路径规划算法一般通过两个阶段生成运动指令【1,2,8】。在第一个阶段确定机器人的方向。在第二个阶段则生成相应的the steering commands(使得机器人在相应方向上运动)。严格来讲,如果施加给机器人上的力是无穷大的,那么以上的这些方法都是非常合适的。然而由于机器人会受到加速度的约束,因此必须要考虑the impulse of the robot。

        举个例子,如图2所示,一个具有较大前向速度的机器人在走廊中进行运动,其中目标点则在它右侧的一个门内。很明显,此时最优的方向应该是右转。但如果不考虑无法给机器人一个无穷大的力进行右急转这一点的话,机器人就会撞到右边的墙上。 By only considering the admissible velocities in the dynamic window our method detects that the robot cannot perform the sharp turn。这时,机器人就会还保持着当前的直线运动,最终也就不会撞到墙上了。

3 运动方程

        这部分主要描述了机器人的基本运动学方程【4】。The derivation begins with the correct dynamic laws, assuming that the robot's translational and rotational velocity can be controlled independently (with limited torques)。为了使运动学方程更加实用,我们另外假设了在很短的一段时间内机器人的速度为一个恒定值。基于以上的这些假设,我们发现机器人的运动轨迹是由有限段的圆弧组成的。由于计算圆是否与障碍物相交是非常简单的一件事情,因此采用圆弧表示机器人的运动轨迹能够十分方便的进行碰撞检测。最后我们也推导出了逼近误差的上界。The piecewise circular representation forms the basis of the dynamic window approach to collision avoidance, described in Section 4。

3.1 通用的运动学方程

        令x(t)y(t)\theta(t)分别代表机器人在世界坐标系下的机器人t时刻的坐标和方位角。(x, y, \theta )这个状态空间包含了机器人的运动学属性。The motion of a synchro-drive robot is constrained in a way such that the translational velocity v always leads in the steering direction \theta of the robot, which is a non-holonomic constrain【10】。令x(t_{0})x(t_{n})分别代表机器人在世界坐标系下的机器人在t_{0}t_{n}时刻横坐标,y(t_{0})y(t_{n})分别代表机器人在世界坐标系下的机器人在t_{0}t_{n}时刻纵坐标,相应的,v(t)\omega (t)分别代表机器人在t时刻的平移速度和旋转速度。x(t_{n})y(t_{n})是关于x(t_{0})y(t_{0})\theta(t)的函数:

         方程(1)和方程(2)都依赖于机器人的不能直接设置的速度,因此我们下面将对上述方程进一步的推导。速度v(t)依赖于t_{0}时刻的初始速度v(t_{0})和[t_{0}  t_{1}]这段时间内的加速度\dot{v}(\tilde{t})。同样的,方位角\theta(t)是初始方位角\theta(t_{0})、初始旋转角速度\omega (t_{0})和[t_{0}  t_{1}]这段时间内的加速度\dot{\omega }(\tilde{t})。把v(t_{0})\dot{v}(\tilde{t})\theta(t_{0})\omega (t_{0})\dot{\omega }(\tilde{t})代入到方程(1)中,可以得到方程(3)。

         由于方程(2)与方程(1)类似,这里就不再推导了。

        方程(3)说明了机器人的运动轨迹与t_{0}时刻的状态的(x, y, \theta )以及机器人加速度有关系,而加速度我们是可认为是可控的(对于大部分的移动机器人而言,加速度是电流的单调函数)【6】。因此,当限制了电流的大小时,相应加速度的大小也被限制了。

        由于硬件数字电路的性能限制,所以我们能够设置的电机电流是存在一个范围的(这同时也意味着加速度有一个上下限)。因此,方程(3) can be simplified by assuming that between two arbitray points in time, t_{0} and t_{n}, the robot can only be controlled by finitely many acceleration commands。令n表示时间段的数量,时间段[t_{i}, t_{i+1}](其中k=1...n)内的平移加速度和旋转加速度为常数\dot{v}_{i}\dot{\omega }_{i}\Delta _{t}^{i} = t-t_{i}\Delta _{\breve{t}}^{i} = \breve{t}-t_{i}(其中i=1...n);然后基于每一个时间段内的加速度都是常数这一假设对方程(3)进行离散,最后得到的机器人运动学方程如方程(4)所示:

3.2 近似的运动学方程

        方程(4)描述了在通用情况下机器人的控制,但这对于确定机器人的转向帮助不是很大。这是因为根据上述方程计算生成的轨迹非常复杂,此外,使用上述方程进行几何操作(如相交检查)的代价也比较大。

        为了得到更加实用的运动学模型,通过假设时间段[t_{i}, t_{i+1}]内的速度是一个常数来对方程(4)进行简化。当时间间隔足够小的时候,简化后的运动学方程(6)会收敛于方程(4)。基于上述假设,我们最后发现了机器人的运动轨迹近似于由一段段的圆弧组成。不过使用分段圆弧来表示机器人的轨迹非常适合用于机器人的实时控制,这在第4章进行了详细的描述。

        当时间间隔[t_{i}, t_{i+1}]足够小的时候,由于机器人运动的平滑性,v(t_{i})+\dot{v}\Delta _{t}^{i}可以使用任意的速度v_{i}\epsilon [v_{i}, v_{i+1}]代替。同样的,\theta (t_{i})+\dot{\omega }(t_{i}) +\frac{1}{2}\dot{\omega }(t_{i})(\Delta _{t}^{i})^{2}可以使用\theta (t_{i})+\dot{\omega _{i}}代替,其中\dot{\omega _{i}} \epsilon [\dot{\omega}(t_{i}), \dot{\omega}(t_{i+1})]。基于以上,我们得到了方程(5)。

通过对方程(5)进行积分,可以得到方程(6)

其中:

同样的,对于纵坐标,有类似的结果如下:

注意当\omega _{i}=0时,那么机器人的运动是一条直线。相反,当\omega _{i}\neq 0时,机器人的运动轨迹是一个的圆。

其中,圆的方程为:

        方程(12)说明了第i段轨迹是一个以圆心为(M_{x}^{i}, M_{y}^{i})半径为\frac{v_{i}}{\omega _{i}}的圆。因此,当假设每个时间段内的速度为常数的时候,我们可以近似的认为机器人的运动轨迹是由一系列的直线和圆弧组成的。

        我们注意到,在方程(5)和(9)中,除了初始条件外,机器人的运动轨迹是由机器人的速度控制的。当我们进行控制机器人的时候,since the dynamic constraints of the robot impose bounds on the maximum deviation of velocity values in subsequent intervals,因此我们不可能随意的给机器人一个任意的速度。

3.3 逼近误差的上界

        Obviously, the derivation makes the approximate assumption that velocities are piecewise constant within a time interval。This error is bounded linearly in time between control points, t_{i+1}-t_{i},a fact which will be used below for modeling uncertainty in the robot's position。

        令E_{x}^{i}E_{y}^{i}分别代表了在时间段[t_{i}, t_{i+1}]内的X轴和Y轴误差。另外令\Delta _{t_{i}}=t_{i+1}-t_{i}。The deviation in the direction of any of the two axes is maximal if the robot moves on a straight trajectory parallel to that axis(意思就是沿着X或者Y轴线直行的时候逼近误差最大)。Since in each time interval we approximate v(t) by an arbitrary velocity v_{i}\epsilon [v(t_{i}), v(t_{i+1})],an upper bound of the error E_{x}^{i} and E_{y}^{i} for (i+1)-th time interval is governed by E_{x}^{i}, E_{x}^{i}\leq \mid v(t_{i+1})-v(t_{i}))\mid \Delta t_{i} ,which is linear in \Delta t_{i}

        读者应该注意到,逼近误差的上界只适合用于内部预测机器人的位置。而在实际控制中,机器人的位置是采用安装于电机上的光电编码器确定的(在我们的实现中秒测量4次)。

        以上完成了对机器人运动的推导。总结一下:经推导机器人的运动轨迹可以近似由一系列的圆弧组成,and we have derived a linear bound on the error due to an approximate assumption made in the derivation (速度为常数假设)。

4 动态窗口法

        动态窗口法直接在速度空间中搜索机器人的控制指令。The dynamics of the robot is inporporated into the method by reducing the search space to those velocities which are reachable under the dynamic constraints(意思是考虑了运动学特性后可以减小了需要搜索的速度空间)。除此之外,我们只考虑那些遇到障碍物能够保证停下来的速度。对速度空间的裁剪是在算法的第一步完成的。在算法的第二步我们会选择那些令目标函数值最大的速度。A Brief outline of the different parts of one cycle of the algorithm is given in 图 3。在我们当前的实现中执行上述一个周期需要大概0.25s的时间。

图3 Different parts of the DWA

        在本文的剩余部分我们将使用图2为例来阐述DWA算法的不同部分。

4.1 搜索空间

4.1.1 圆弧轨迹

        在第3章我们得到了这么一个结论:机器人的运动轨迹能够使用一系列的圆弧近似。在本文的剩余部分我们称这些圆弧为curvatures。每段curvature 是由一对速度向量(v_{i},w_{i})唯一确定,我们称这些速度向量为速度。To generate a trajectory to a given goal point for the next n time intervals the robot has to determine velocities (v_{i},w_{i}), one for each of the n intervals between t_{0} and t_{n}(意思是说找到一条去目标点的轨迹就是确定在每个时间段内速度)。当然以上的前提是轨迹不会与障碍物相交。需要搜索的空间大小与时间段的数量成指数关系。

        To make optimization feasible, DWA只着重考虑第一个时间段内的速度,然后假设剩余n-1段的速度为常数(这也就意味着在[t_{1}, t_{n}]内的加速度为零)。以上的这些简化基于以下的这些事实(a) the reduced search space is two-dimensional and thus tractable, (b) the search is repeated after each time interval, and (c) the velocities will automatically stay constant if no new commands are given。

4.1.2 推荐的速度

        复杂环境中的障碍物对进一步缩小搜索速度空间也提供了一定的帮助。例如,最大的admissible 速度 on a curvature depends on the distance to the next obstacle on this curvature。Assume that for a velocity (v, w) the term dist(v, w) represents the distance to the closet obstacle on the corresponing curvature( 在第5.2节我们将介绍怎么计算到给定轨迹的距离)。如果机器人能够在撞到机器人停下来,那么这个速度是admissible。Let \dot{v}_{a}\dot{v}_{b} be the acceleration for breakage。admissible的速度定义如下所示:

        上述方程v_{a}所定义的集合就是机器人遇到障碍物时能够确保停下来的速度。

 4.1.3 例1

        再次考虑图2给出的例子。图4展示了当加速度\dot{v_{b}}=50cm/s和角加速度\dot{w_{b}}=60deg/s时admissible速度。此外,黑色的区域代表了non-admissible速度。例如 right wall II 空间内的速度会导致机器人向右急转然后撞到 right wall。The non-admissible areas are extracted from real world proximity information; in this special case this information was obtained from sonar sensors(参考第5部分内容)。

4.1.4 动态窗口

        考虑到加速度是有界的这种情况我们可以进一步的把搜索空间缩小为一个窗口(包含了在下次积分时can be reached的速度)。令t代表积分时间,(v_{i},w_{i})代表平移和角加速度,(v_{a},w_{b})代表机器人实际的速度,那么动态窗口V_{d}可以被定义为如下:

动态窗口是以机器人的实际速度为中心,并且其窗口大小依赖于机器人的加速度。在动态窗口外面的速度是在下次积分时can not be reached,因而我们也不必考虑它们是否会撞到障碍物。

4.1.5 最终的搜索空间

        以上对搜索空间(速度)进行各种约束的结果是区域v_{r}(处于一个动态窗口中)。令v_{s}代表包括了所有可能速度的区域,然后定义v_{r}是以上各种约束区域的交集,也就是:

 在图5中结果v_{r}是白色的区域。

4.1.6 例2

        An exemplary dynamic window obtained in the situation shown in Figure 2, given acceleration of 50 cm/sec^{2} and 60 deg/sec^{2} and a time intercal of 0.25 sec is shown in Figure 5。到长方形两角的点划线代表了can be reached 极限轨迹。

4.2 最大化目标函数

        确定速度区域v_{r}后接下来我们考虑从v_{r}中选出一组最优的速度。为了综合考虑target heading,clearance, and velocity等准则,我们在v_{r}中找到令一下目标函数最大的一组速度。当然这是在离散的搜索空间(速度)中完成的。

4.2.1 目标航向

        The target heading heading(v, w)度量的是机器人是否朝着目标点移动,它等于180-\theta,其中\theta是目标点与机器人前进方向的夹角(如图6所示)。由于这个方向随着不同的速度而变化,所以θ是根据机器人的预测位置来计算的。为了确定预测的位置,我们假设机器人在下一个时间间隔内以选定的速度移动。不过在测量机器人真实的target heading的时候,还需要考虑到机器人旋转的动力学特性。因此,在机器人在下一个间隔后施加最大减速度时将到达的位置计算\theta。这使得机器人在规避障碍物的时候可以产生一个朝着目标点的平滑转向。

4.2.2 例3

        图7展示了在示例场景中不同速度时的target heading的估计。在本图和接下来的图中,non-admissible velocities 被设置为零(与图2和图4相比较)。为了清楚起见,我们展示了整个速度空间的估计,而不局限于动态窗口。图7中函数的非线性是由于在确定预测位置时考虑了动力学因素而引起的。因为正的旋转速度使曲率向右,我们在速度空间的右边找到了最佳速度。最佳速度是指在预定的位置上,达到完美朝向目标的速度当旋转速度更高时,函数会下降,因为它们会产生超出目标的转弯。

4.2.3 间隙

        dist(v,w)表示与curvature相交的最近障碍物的距离。如果curvature上没有障碍物,那么将函数值设置为一个较大的值。

4.2.4 例4

        图8中的函数值仅取决于机器人周围障碍物的距离信息。在给定的曲线图中,我们可以找到通向墙较低估计值的curvatures。对于较高的平动速度,这些值属于不允许的范围,因此被设置为零。

4.2.5 速度

        函数velocity(v, w)用于评估机器人在相应轨迹上的进度。它是平移速度v的映射函数,如下图9所示。

4.2.6 平滑

        目标函数的三个分量最后被归一化为[0,1]。这些分量的加权和如图10所示,其中\alpha =2, \beta =0.2,\gamma =0.2。正如预期的那样,通过门区域的最快轨迹得到的评价最高(与图4相比)。Smoothing increases side-clearance of the robot.。结果目标函数如图11所示,其中的最大值的位置用垂直线表示。

        需要注意的是,目标函数G的三个组成部分:target heading,the clearance和velocity都是必要的。只最大化clearance和velocity机器人总是会进入free space,但却没有动力去目标位置。只单独最大化target heading,机器人很快就会得到被第一个障碍物(位于轨迹上的)拦住了,而无法绕过它。只有通过组合所有三个部分,机器人能够在约束条件下(以上所列)以最快的速度规避障碍物,同时在朝着目标位置前进。

        在我们以前的方法(见【3】)中,寻找最佳速度是分两步进行的。在第一步中,只选择了curvatures。This was done by evaluating the target angle and the so-called "n-sec-rule",namely a linear function of the clearance。在第二步,在curvatures上确定最大的速度。Although the resulting behavior of the robot was the same, we decided to use this single step evaluation of the objective function。以上是受到了文献【13】的启发。

4.3 动态窗口的角色

        在上一节中,我们介绍了要最大化目标函数从而使得机器人的轨迹平滑和朝向目标前进。为了便于说明上述最大化的目的,我们展示了对于整个速度空间的评价结果。正如第4.1节所述的,速度空间被减少为只有动态窗口中的admissible velocities。In this section we describe how the robot respects the dynamics by this restriction。此外,我们讨论了不同速度和加速度下的the dependency of the behavior。在这两个例子中,时间间隔均固定为0.25秒。

4.3.1 当前速度的角色

        在下面的这个例子中,我们展示了行为是如何随当前速度变化而变化的。我们假设加速度为50cm/s^{2}和60deg/s^{2}。图12显示了动态窗口v_{d1}v_{d2}分别以75和40cm/s的平移速度作直线运动。图13和图14显示了动态窗口的目标函数值,其中动态窗口之外的函数值为-1。

        在第一种情况下,如当前速度为75cm/s时,由于机器人移动速度太快,无法执行必要的向右急转弯以通过打开的门。图13反映了上述这一点,即导致右转的速度是non admissible。在动态窗口中的速度中,评价最高的生成的是直线运动,如图13中的垂直线和图12中v_{d1}顶部的十字标记所示。

        相比之下,如果当前速度为40 cm/s,则动态窗口包括穿过门的curvatures(见图12和14)。由于更好地评估角度和距离,选择的速度是最极端的右转。

4.3.2 加速度依赖

        The restricted search space,评价函数和动态窗口均取决于给定的加速度。考虑当加速度为20cm/s^{2}和30deg/s^{2}时的速度空间,如图15所示。由于相比之下加速度较小,因而admissible velocities的空间也比图4小一点。所以我们只需要考虑最高速度为60cm/s和50deg/s的情况。以40cm/s的平移速度进行直线运动的动态窗口在这里以白色表示。另外由于依赖于加速度,动态窗口的大小也小了一点。

        图16是对整个速度空间的评价。图17是对搜索空间中的动态窗口内的速度的评价。同样,对于机器人而言进行急转弯进入门内太快了,而进行直线运动的速度评价最高(与图13相比较)。

5 实现和实验结果

5.1 RHINO

        我们在RHINO机器人上实现和测试了DWA方法,其中机器人上配备了24个超声波传感器、56个红外传感器和1个双目。超声波传感器的水平视野大概是15度,因而可以在一次测量中获得水平方向360度内的环境信息。另外,一次完整的声纳扫描大约需要0.4秒。

5.2 障碍物线场

        我们使用obstacle line field 作为局部地图,which is a two-dimensional description of sensory data relative to the robot's position(如图18所示)。we adjusted our sonar sensors such that most erroneous readings indicate a too long distance。To be maximally conservative,每次数据都被转换成一条障碍线。如果传感器产生虚假数据时(例如,due to cross-talk),那么可以需要使用一些更复杂的模型如占据栅格地图【11】。

        obstacle line field是由获取的传感器数据构建,并以机器人位置为圆心。It contains a line for each reading of a sonar sensor, which is perpendicular to the main axis of the sensor beam at the measured distance。The length of the line is determined by the breadth of the beam in the given distance。其中机器人与curvatures上的障碍物的距离计算如下:设r为curvatures轨迹的半径,设\gamma为obstacle line 交点与机器人的位置的夹角(见图19)。那么距离下一个障碍定义为\gamma\cdot r

        为了让机器人能够对环境的变化做出快速反应,我们限制obstacle lines的数量为72;并且使用了先入先出的策略移除the least actual lines from the obstacle line field。我们发现这些值可以让机器人在速度高达95cm/s的情况下安全行驶,同时在i486计算机上保持0.25s的计算时间。

5.3 进一步实现细节

        以下的这些策略提高了机器人运动的鲁棒性。由于它们对于本文提出的方法不是必需的,因此我们在这里仅仅对它们进行概述。

  • Rotate away mode 。在极少数的情况下,我们观察到机器人陷入了局部最小值;没有合适的轨迹让机器人进行平移就是这种情况。不过当这种情况发生的时候,很容易被检测到;令机器人一直原地旋转直到机器人可以进行平移为止。
  • Speed dependent side clearance。为了使机器人能够根据其与障碍物之间的距离自动调整速度,我们在机器人附近引入了一个safety margin(它随着机器人的平移速度线性增长)。这样可以使得机器人以较快的速度通过走廊,同时在经过门的时候缓慢通行。可能的偏差来自于第3.3节所述的近似误差。

5.4 实验结果

        基于动态窗口避碰方法,RHINO中已在各种环境中安全运行了两年。它的最大速度被硬件限制在大约95cm/s。在没有障碍物遮挡的情况下,RHINO在通过门或者走廊的时候是可以达到这个速度的。但如果障碍物挡住了它的路,则它会选择较慢的速度,并通过选择适当的轨迹来避免碰撞。例如,当穿过门时,RHINO通常会在门附近减速到20cm/s左右。在本节的剩余部分中,我们将给出使用动态窗口方法生成的实验结果。在下面的图表中场景是用手工绘制的。尽管如此,每张图都是一个实际的实验,所有显示的轨迹都是从实际位置数据中提取出来的。在上述的每个例子中有一条从当前位置到目标点(人工设置的)的全局路径。这是由全局路径规划算法生成的【14,15,16】。

5.4.1 参数设置

        虽然DWA算法的避障性能取决于加权参数\alpha, \beta\gamma,但加权参数的值即便是稍有变化算法依然很稳定。我们发现\alpha, \beta\gamma的值为0.8,0.1和0.1的时候效果还不错。机器人与目标点的偏离程度主要取决于\alpha与其它两个参数的比值。如果目标航向参数权重较低,则机器人在绕障的时候比较自由。当然如果使用的传感器(例如超声波传感器)角分辨率比较低的话,这可能会阻止机器人到达位于狭窄开口后面的目标点。这是因为机器人在其传感器未检测到开口之前就转身离开了。另一方面,如果目标航向参数权重较高,则会使得机器人在转身前非常接近物体,这就阻碍了机器人平滑的绕开障碍物。

        我们应根据环境的先验知识,选择合适的参数。比如在狭窄的环境中令目标航向权重较高比较合适,但在宽阔且人口稠密的走廊目标选择较低的目标航向权重效果可能会较好。

5.4.2 动态窗口的角色

        第一个实验展示了动态窗口对机器人行为的影响。图20中的三条路径是在不同动力学约束下机器人典型行为的示例(对于速度和加速度,我们使用了与第4.3节相同的值)。实验的关键是机器人在阴影区域采取的路径。在这个区域的时候机器人会检测到右侧的门并决定是否向右进行急转弯。这个决定很大程序上取决于机器人的动力学特性。只有当实际的速度和可能的加速度允许向右急转弯时,机器人才会直接移动到目标点。这个轨迹在图20中采用虚线表示。In the other two cases the robot decides to pass the opening and moves parallel to the wall until the evaluation of the target heading angle becomes very small。

        请注意,如果不考虑动力学约束,尝试向右急转弯几乎肯定会导致机器人与墙相碰撞。 事实上,在最初的模拟实验中,当我们忽略了一些动力学特性,经常会遇到这种类型的碰撞。

5.4.3 走廊中的直线运动

        图21显示了一个沿着走廊行进的例子,其中在走廊中间只有一个障碍物。在这种情况下,RHINO会首先原地旋转直到朝向目标点。然后当机器人检测到障碍物时,机器人会选择一条平滑的轨迹来避开障碍物。虽然RHINO在通过障碍物之前减速到55cm/s,但在它这个实验中的平均速度大约是72cm/s。不过需要注意的是,在绕障碍物后,RHINO在尽可能沿着直线行驶,而不会像其他方法那样摆动。

5.4.4 复杂环境中的快速运动

        第三个实验如图22所示,主要是令机器人穿过一条杂乱的走廊。走廊里的所有人被机器人以最大95cm/s的速度平滑绕过。不过需要注意的是,尽管机器人在通过第四个人和打开的门之间的狭窄通道(宽度小于80cm)时减速到20cm/s以下,但它保持的平均速度大约是65cm/s

5.4.5 AAAI'94 机器人竞赛

        下一个轨迹是在AAAI'94移动机器人比赛的竞技场上生成的。图23显示了竞技场的占据栅格地图和机器人的轨迹。 Here the robot moved free of collisions in an artificial indoor environment during an exploration run。The target points for the collision avoidance were generated by a global planning algorithm。这里的门宽约80-110cm

        通常很难将这里描述的结果与其他研究人员获得的结果进行比较,主要是因为机器人的不同大小和环境的微小变化会对问题的难度产生巨大影响。例如,在类似于图21和图22所示的环境中,Borenstein等人称,他们的机器人大约以58cm/s的平均速度行进【1,2】。不过从一个例子(在参考文献【1,2】中使用的)中可以判断出,我们的结果与Borenstein等人的结果相比好一点。

6 结论

        本文提出了一种移动机器人的避障方法。基于移动机器人的精确运动方程,推导出了可以使用有限段圆弧模拟机器人轨迹的一种方法。动态窗口方法首先通过只考虑the next steering command来修剪整个搜索空间。这产生了一个二维的搜索空间。然后,搜索空间被减小到admissible velocities,使得机器人能够安全停车而不与障碍物相撞。最后,动态窗口将admissible velocities限制为给定的加速度在短时间内可以达到的速度。这样我们就确保考虑到了动力学的约束。机器人不断地选择一条轨迹,在这个轨迹上它可以最大化它的平移速度和到障碍物的距离,同时最小化相对于它自己的前进方向的与目标的角度。这一步是通过最大化目标函数来实现的。

        实验表明,以上的目标函数可以产生一个非常鲁棒和优雅的避碰策略,并令我们的机器人RHINO以高达95cm/s的速度安全运行。RHINO,一个B21移动机器人,经常在无人监督的情况下经常在我们大学大楼里运行。当然,这里描述的方法只是整个自主导航系统中的一部分。例如,文献【3,15,16】综述了构建占据栅格地图、全局路径规划和计算机视觉等方法。

        原则上,本文提出的方法假设已知了障碍物的相对位置等几何信息。因此,它非常适合距离传感器如超声波传感器(实验报告中使用的),或者激光测距仪。在一些初步测试中,我们还使用摄像机和红外传感器探测障碍物。通过了解机器人的几何结构和摄像机的角度,将像素信息转换为距离信息。然而,只有当障碍物离地面比较近的时候,所得到的距离信息才比较准确。不同高度的障碍物会导致过高的估计障碍物的距离,从而导致机器人发生碰撞。立体视觉(双目)可能可以解决这个问题。机器人上的红外传感器由于检测距离比较近(<30 cm),因此当机器人速度比较快的时候可能会发生碰撞。然而,将两个传感器系统中的任何一个与超声波传感器相结合,可以有效的改善机器人轨迹的质量。

7 致谢

        The authors thank Thomas Hofmann and the other members of the RHINO team for insightful discussion, help and advice.

        One author (S.T.) is sponsored in part by the National Science Foundation under award IRI-9313367, and by the Wright Laboratory, Aeronautical Systems Center, Air Force Materiel Command, USAF, and the Defense Advanced Research Projects Agency (DARPA) under grant number F33615-93-1-1330. The views and conclusions contained in this document are those of the author and should not be interpreted as necessarily representing official policies or endorsements, either expressed or implied, of NSF, Wright Laboratory or the United States Government.

8 参考文献

[1] J. Borenstein and Y. Koren. Real-time obstacle avoidance for fast mobile robots in cluttered environments. In Proc. IEEE Int. Conf. Robotics and Automation , volume CH-2876, pages 572{577, 1990.

[2] J. Borenstein and Y. Koren. The vector field histogram - fast obstacle avoidance for mobile robots. IEEE Transactions on Robotics and Automation , 7(3):278{288, 1991.

[3] J. Buhmann, W. Burgard, A.B. Cremers, D. Fox, T. Hofmann, F. Schneider, J. Strikos, and S. Thrun. The mobile robot Rhino. AI Magazine , 16(1), 1995.

[4] L. Feng, J. Borenstein, and H.R. Everett. "Where am I?" Sensors and Methods for Autonomous Mobile Robot Positioning. Technical Report UM-MEAM-94-21, University of Michigan, December 1994.

[5] H. Hu and M. Brady. A bayesian approach to real-time obstacle avoidance for a mobile robot. In Autonomous Robots , volume 1, pages 69{92. Kluwer Academic Publishers, Boston, 1994.

[6] J.L. Jones and A.M. Flynn. Mobile Robots: Inspiration to Implementation . A K Peters, Ltd., 1993. ISBN 1-56881-011-3.

[7] M. Khatib and R. Chatila. An extended potential field approach for mobile robot sensor-based motions. In Proc. International Conference on Intelligent Autonomous Systems (IAS'4) , 1995.

[8] O. Khatib. Real-time obstacle avoidance for robot manipulator and mobile robots. The International Journal of Robotics Research , 5(1):90{98, 1986.

[9] Y. Koren and J. Borenstein. Potential field methods and their inherent limitations for mobile robot navigation. In Proc. IEEE Int. Conf. Robotics and Automation , April 1991.

[10] J. Latombe. Robot Motion Planning . Kluwer Academic Publishers, Boston, MA, 1991. ISBN 0-7923-9206-X.

[11] H.P. Moravec. Sensor fusion in certainty grids for mobile robots. AI Magazine , pages 61{74, Summer 1988.

[12] J.T. Schwartz, M. Scharir, and J. Hopcroft. Planning, Geometry and Complexity of Robot Motion . Ablex Publishing Corporation, Norwood, NJ, 1987.

[13] R. Simmons. The curvature-velocity method for local obstacle avoidance. In Proc. IEEE Int. Conf. Robotics and Automation , 1996.

[14] S. Thrun. Exploration and model building in mobile robot domains. In Proceedings of the ICNN-93 , pages 175{180, San Francisco, CA, 1993. IEEE Neural Network Council.

[15] S. Thrun and A. Bucken. Integrating grid-based and topological maps for mobile robot navigation. In Proceedings of the Thirteenth National Conference on Arti cial Intelligence AAAI-96 , 1996.

[16] S. Thrun, A. Bucken, W. Burgard, D. Fox, T. Frohlinghaus, D. Hennig, T. Hofmann, M. Krell, and T. Schimdt. Map learning and high-speed navigation in RHINO. In D. Kortenkamp, R.P. Bonasso, and R. Murphy, editors, AI-based Mobile Robots: Case studies of successful robot systems . MIT Press, Cambridge, MA, to appear.

关注 关注
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DWA论文翻译 的相关文章

  • 【MICCAI2018论文翻译】从结构磁共振图像中分割脑肿瘤和提取纤维束追踪特征预测总存活率

    原文移步 xff1a Brain Tumor Segmentation and Tractographic Feature Extraction from Structural MR Images for Overall Survival
  • Ubuntu 16.04 安装 rtl8812au系列 (DWA-182) wireless adapter driver

    Ubuntu 16 04 安装 rtl8812au系列 DWA 182 wireless adapter driver 刚刚开始使用Linux xff0c 一脸懵逼 xff0c 命令行搞得一愣一愣的 xff0c 不过熟悉了之后就好很多了 一
  • 机器人局部动态避障算法dwa解析

    简介 dwa算法全称叫动态窗口法 xff08 dynamic window approach xff09 xff0c 其算法过程主要分为仿真获取机器人的运动轨迹 对轨迹进行评价选择最优轨迹两个主要过程 xff0c 动态窗口表达的是仿真的运动
  • 8 DWA(一)

    8 DWA DMA简介 DMA xff08 Direct Memory Access xff09 直接存储器存取 xff08 可以直接访问32内部存储器 xff0c 包括内存SRAM xff0c Flash xff09 DMA可以提供外设和
  • DWA论文翻译

    摘要 本文介绍了一种能够令机器人进行自主避障的动态窗口法 xff08 dynamic window approach xff0c DWA xff09 该方法是从机器人的运动动力学直接推导出的 xff0c 因此特别适合在高速运动的机器人 与以
  • DWA仿真测试

    1 前言 由于之前已经对相关论文进行了翻译 xff0c 因此这里就不再对DWA的原理进行赘述 本文主要目的是根据相关的程序进一步强化对论文中所体现思想的理解 2 示例1 以下是使用python写的一个例子 xff0c 其中比较核心的是把搜索
  • TEB论文翻译

    摘要 传统的 elastic band 方法在规避障碍物的同时 xff0c 会根据距离最短的原则修正全局路径规划算法生成的路径 不过 elastic band 方法没有考虑到机器人的任何运动学约束 本文提出了一种称为 Time elasti
  • VINS-Mono论文翻译

    摘要 由一个相机和一个低成本惯性测量单元 IMU 组成的单目视觉惯性系统 VINS xff0c 构成了用于估计六自由度状态的最小传感器单元 xff08 大小 xff0c 重量和功耗 xff09 本文提出了VINS Mono xff1a 一个
  • FAST-LIVO论文翻译

    摘要 多传感器融合被证明是一种能够在SLAM任务中取得准确和鲁棒位姿估计的有效解决方案 xff0c 因而在机器人应用中具有无限可能 本文提出了FAST LIVO方法 xff0c 一种快速的雷达 惯性 视觉里程计 xff0c 其中包含了两个紧
  • LVI-SAM论文翻译

    摘要 我们提出了一个通过smoothing and mapping的紧耦合的雷达视觉惯性里程计框架 xff0c LVI SAM xff0c 能够实时状态估计和建图 xff0c 且具有很高的精度和鲁棒性 LVI SAM基于因子图构建 xff0
  • LIO-SAM论文翻译

    摘要 我们提出了一个通过smoothing and mapping实现的紧耦合激光惯性里程计框架 xff0c LIO SAM xff0c 能够取得高精度 实时的移动机器人的轨迹估计和地图构建 LIO SAM基于因子图构建 xff0c 把多个
  • R3live论文翻译

    摘要 在本文中 xff0c 我们提出了一个新颖的激光惯性视觉传感器融合框架 xff0c 也就是R3live xff1b 它利用了激光雷达 惯性和视觉传感器的测量值 xff0c 可以得到鲁棒和高精度的状态估计 R3live包含了两个子系统 x
  • FAST-LIO2论文翻译

    摘要 本文提出了FAST LIO2 xff1a 一个快速 xff0c 鲁棒和多功能的雷达惯性里程计框架 基于高效的紧耦合的迭代卡尔曼滤波 xff0c FAST LIO2有两个关键的创新点 xff0c 可实现快速 鲁棒和准确的激光导航 xff
  • FAST-LIO论文翻译

    摘要 本文提出了一个计算效率较高和鲁棒的激光 惯性里程计框架 我们使用基于紧耦合的迭代扩展卡尔曼滤波器将LiDAR特征点与IMU数据融合在一起 xff0c 以便在发生退化的快速运动 xff0c 嘈杂或杂乱环境中实现稳健的导航 为了在存在大量
  • Faster-lio论文翻译

    摘要 本文提出了一种基于增量体素的激光惯性里程计 xff08 LIO xff09 方法 xff0c 用于快速跟踪旋转和固态激光雷达 为了实现快速的跟踪速度 xff0c 我们既没有使用复杂的基于树的结构来划分空间点云 xff0c 也没有使用严
  • Cartographer论文翻译(回环)

    摘要 便携式激光测距仪 xff08 也被称为激光雷达 xff09 和同步定位与建图 xff08 SLAM xff09 技术是获取竣工平面图的有效方法 实时生成和可视化平面图有助于操作员评估捕获数据的质量和覆盖范围 构建一个便携式捕获平台需要
  • ORB-SLAM2论文翻译

    文章转载至泡泡机器人 转载链接 链接 摘要 ORB SLAM2是基于单目 xff0c 双目和RGB D相机的一套完整的SLAM方案 它能够实现地图重用 xff0c 回环检测和重新定位的功能 无论是在室内的小型手持设备 xff0c 还是到工厂
  • 机器人局部避障的动态窗口法DWA (dynamic window approach)-matlab代码修改及动态障碍物避障效果

    具体效果视频 xff1a DWA动态障碍物 哔哩哔哩 https b23 tv pQp6ne 一 源码及问题 最初的源码链接https blog csdn net heyijia0327 article details 44983551 改
  • AutoML-A survey of the state-of-the art翻译+总结

    AutoML A Survey of the State of the Art Abstract 深度学习 DL 技术已经渗透到我们生活的各个方面 给我们带来了极大的方便 然而 为特定任务构建高质量的DL系统高度依赖于人类的专业知识 这阻碍
  • 使用波束搜索的端到端神经网络系统中的上下文语音识别(论文翻译)

    摘要 最近的研究表明 端到端 E2E 语音识别体系结构 如Listen attent和Spell LAS 可以在LVCSR任务中获得最先进的质量结果 这种体系结构的一个优点是它不需要单独训练的发音模型 语言模型和声学模型 但是 这个属性也引

随机推荐

  • gazebo导入sdf模型

    模型文件 模型文件结构 xff1a simple car model config model sdf model config span class token operator lt span span class token oper
  • MOS管的<控制电路>与<防反接电路>

    为了方便记忆 xff0c 我不管D与S xff0c 只说MOS管中的二极管方向 另外G是控制端 这是一篇只管结果的文章 xff0c 大家只要记住就行 懂原理vs记结果 懂原理以分析一切现象 xff0c 但每次使用都要分析一次 xff1b 记
  • rt-thread studio 开启easyflash(env)

    文章目录 前言一 启用外部norflash补充说明 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 环境 xff1a Art pi开发板 bsp版本1 2 1 RT Thread 4 0 3 否则添加不了fal软件包
  • 常见开源物联网平台

    下面是我用过的 JetLink 重庆 ThingsPanel 国内 ThingsBoard 国外
  • 串口工具 和 终端工具的区别 -个人猜测

    总体来说 xff0c 都是人机交互的工具 xff0c 和图形控制软件并列 可以叫命令行工具 xff1f 串口工具 显示 输入分屏 xff1a 接收和发送分开 xff0c 输入输出相互独立 输入是文本框 xff0c 点击发送时才发送 记录lo
  • RT-Thread 添加设备初始化的方式-- INIT_BOARD_EXPORT(fn)

    代码用的是rtthread simulator v0 1 0 最开始不知道rt thread在哪里给硬件初始化 xff0c 或者在哪里添加新硬件的初始化函数 例如要添加GPIO的初始化 xff0c 和操作 1 关键的就是INIT BOARD
  • Visual Studio c#生成exe可执行文件

    生成exe可执行文件方式 1 调试完毕 xff0c 确认程序无误后 xff1a 生成 生成解决方案 2 程序所在文件夹 文件名Inverter Ver0102 2019 09 20 debug Inverter bin x64 Debug
  • 在emwin中,调用GUI_Delay()函数,程序卡死,黑屏

    没有OS TimeMS 43 1 可以在systick里或者定时器里 定时 43 1
  • STM32 堆栈大小的设置及分析

    一 通过map文件了解堆栈分配 STM32 MDK5 避免堆栈溢出 环境 xff1a STM32F103C8T6 MDK5 在最近的一个项目的开发中 xff0c 每当调用到一个函数 xff0c 程序就直接跑飞 debug跟进去看不出什么逻辑
  • C# VS2017中Windows窗体更改图标

    一 图片准备 1 需要 ICO格式的文件 2 矢量图下载可在阿里巴巴的矢量图库中下载 xff08 https www iconfont cn xff09 3 下载PNF文件的图片后需转成 ICO格式 xff08 https www uupo
  • 关于RS485的DMA发送,以及EN使能脚的自动切换

    一 电路设计 1 低成本非隔离 xff1a 3 3v系统同样 xff0c 将5V改为3 3即可 同时采用TX连接三极管 xff0c 实现三极管驱动RS485芯片的EN使能脚 xff0c 从而省下一个IO口控制 隔离只需要将两个信号线用光耦隔
  • 百度2014校园招聘笔试题(武汉站 9.28)

    一 简答题 xff08 本题共30分 xff09 动态链接库与静态链接库分别有什么优缺点 xff1f xff08 10分 xff09 轮训任务调度和抢占式任务调度有什么区别 xff1f xff08 10分 xff09 请列出数据库中常用的锁
  • c语言栈溢出的原因及解决办法_STM32编程:是时候深入理解栈了

    导读 从这篇文章开始 xff0c 将会不定期更新关于嵌入式C语言编程相关的个人认为比较重要的知识点 xff0c 或者踩过的坑 为什么要深入理解栈 xff1f 做C语言开发如果栈设置不合理或者使用不对 xff0c 栈就会溢出 xff0c 溢出
  • 时钟芯片DS1302异常

    异常现象 xff1a DS1302时间不走时 xff0c 秒位是一个大于60的错误数字 分析原因 xff1a DS1302受到干扰 xff0c 软件仿真发现DS1302的秒寄存器最高位被置为1 xff08 为时钟停止位 xff09 解决方法
  • STM32 下载调试口(JTAG+SWD)禁用及作为普通IO口

    1 RCC APB2PeriphClockCmd RCC APB2Periph AFIO ENABLE 开启AFIO时钟 2 GPIO PinRemapConfig GPIO Remap SWJ JTAGDisable ENABLE 改变指
  • 波特率的解析及转换为字节传输速率

    波特率115200 xff1d 115200 位 秒 以最普通的串口 xff08 起始位 43 8位数据 43 停止位 xff09 为例 xff1a 除以 10 xff0c 得到的是每秒字节数 xff1a 波特率115200 xff1d 1
  • 如何判断CAN总线空闲以及帧间隙,计算传输速率

    一 如何判断总线忙还是空闲呢 进入 正常模式之前 xff0c bxCAN 必须始终在 CAN 总线上实现 同步 为了进行同步 xff0c bxCAN 将等待 CAN 总线空闲 xff08 即 xff0c 已监测到CANRX 上的 11 个隐
  • STM32 DMA传输出错的防错机制

    一 DMA 中断 对于每个 DMA 数据流 xff0c 可在发生以下事件时产生中断 xff1a 达到半传输 xff08 每次传输都会触发 xff0c 属于正常触发 xff09 传输完成 传输错误 FIFO 错误 xff08 上溢 下溢或 F
  • IAR的View视图菜单中Watch、 Live Watch、 Quick Watch、 Auto、 Locals、 Statics这几个子菜单的含义和区别

    一 简述IAR的View视图菜单 View这个菜单的意思就是打开 xff08 已关闭的 xff09 视图窗口 xff0c 比如我们的工作空间窗口不见了 xff0c 就可以通过该菜单打开 不瞒大家 xff0c 以前我初学软件的时候 xff0c
  • DWA论文翻译

    摘要 本文介绍了一种能够令机器人进行自主避障的动态窗口法 xff08 dynamic window approach xff0c DWA xff09 该方法是从机器人的运动动力学直接推导出的 xff0c 因此特别适合在高速运动的机器人 与以