移动机器人常用ROS局部规划器简介

14 篇文章 10 订阅
13 篇文章 3 订阅

背景

对于室内小车,ROS社区已有很多大牛们贡献了各种不同的局部规划器,总结主要有以下几种:

  • base_local_planner
  • DWA_local_planner
  • DWB_local_planner
  • asr_ftc_local_planner
  • TEB_local_planner
  • Eband_local_planner

以下分别介绍。

base_local_planner

在这里插入图片描述

wiki主页:http://wiki.ros.org/base_local_planner

base_local_planner包含有轨迹展开(Trajectory Rollout)和动态窗口方法(Dynamic Window Approach,DWA)算法。基本思想如下:

  1. 在机器人的控制空间(dx,dy,dtheta)中进行离散采样。
  2. 对于每个采样速度,从机器人的当前状态执行前向模拟,以预测如果应用采样速度在某个(短)时间段内会发生什么情况。
  3. 使用包含以下特征的度量来评估(评分)由前向模拟产生的每个轨迹:接近障碍物程度,接近目标程度,接近全局路径程度和采用的速度。丢弃非法轨迹(与障碍物碰撞的轨迹)。
  4. 选择得分最高的轨迹并将相关的速度发送到移动基座。
  5. 清零并重复。

DWA与“Trajectory Rollout”的不同之处在于如何对机器人的控制空间进行采样。在给定机器人的加速度极限的情况下,Trajectory Rollout在整个前向模拟周期内从可实现的速度集合中进行采样,而DWA在给定机器人的加速度极限的情况下仅针对一个模拟步骤从可实现的速度集合中进行采样。这意味着DWA是一种更有效的算法,因为它可以采样更小的空间,但是对于具有低加速度限制的机器人,可能性能不如“Trajectory Rollout”,因为DWA不会向前模拟恒定加速度。然而,在实践中,我们发现DWA和轨迹展示在我们的所有测试中都具有相同的性能,建议使用DWA来提高效率。

DWA_local_planner

在这里插入图片描述

wiki主页:http://wiki.ros.org/dwa_local_planner

介绍见上面base_local_planner

DWB_local_planner

在这里插入图片描述

wiki主页:http://wiki.ros.org/dwb_local_planner

项目主页: https://github.com/locusrobotics/robot_navigation/tree/master/dwb_local_planner

dwb_local_planner重新实现并扩展了dwa_local_planner的功能,因此在逻辑上称为dwb_local_planner。它的目标是通过pluginlib或直接扩展实现类方式,可以定义尽可能多的功能。

局部规划器的目标是采用全局代价图和局部代价图,产生速度命令,使机器人到目标点。 dwadwb都通过速度采样来做到这一点,即生成合理的速度命令并在各种度量模型上评估它们的效果并选择具有最佳得分的命令,以使机器人达到目标。

假设我们正在评估给定的命令,看它是否与costmap中的任何障碍物发生碰撞。关键问题是机器人是否采用该速度命令驱动机器人行走。为此,需要知道机器人的位置和速度。此外,还需要考虑机器人的运动学特征。

综合来看,这是一个David V Lu重新实现的基于DWA算法的提供更多扩展功能的规划器。效果上应与DWA类似。

asr_ftc_local_planner

在这里插入图片描述
wiki主页: http://wiki.ros.org/asr_ftc_local_planner

asr_ftc_local_planner意为“跟随萝卜”的算法,以尽可能地贴合全局路径。
当发送一个新目标点后,算法可划分为三个阶段:

  • 将机器人的转向目标点朝向
  • 走向目标
  • 在目标点将机器人的朝向旋转到位

主要优势

  • 快速驾驶:机器人尽可能达到最大速度行驶。
  • 参数很少:只需设置11个参数。
  • 很少有剧烈转换的情况:机器人尽可能以最大速度往前开。
  • 小房间情况:机器人紧密跟随全局路径,不像dwa_local_planner那样存在绕目标点循环的问题。所以它可以在小房间中无冲突行驶。
  • 通过全局路径在前进中排除障碍:保证在障碍物附近找到路径。
  • 处理时间短

缺点

  • 仅适用于圆形的机器人。
  • 只适用于差动驱动的机器人。
  • 仅有向前走(没有后退机制)。

可见它是一种很简单的路径跟随规划器,适用于AGV这种在固定位置有预设动作的机器人。

TEB_local_planner

在这里插入图片描述

wiki主页:http://wiki.ros.org/teb_local_planner

teb_local_planner实现了一个在线优化的局部轨迹规划器,用于移动机器人的导航和控制,可以作为ROS导航包的插件。

由全局规划器生成的初始轨迹在运行期间进行优化,以最小化轨迹的执行时间(时间最优目标),与障碍物分离处理,满足诸如最大速度和加速度的动力学约束。

teb_local_planner的当前实现符合非完整机器人(差动驱动和类似汽车的机器人)的运动学特征。
(注:对地面移动机器人来说,非完整机器人 X X X—方向有速度,而 Y Y Y-速度为0的机器人)

注意:teb_local_planner的最重要特征在于:在行进过程中调整机器人的朝向以使到达位置时的朝向是所要的朝向(见前面的图)。此外,它在行进过程中也不会紧密贴合路径(见下图)。

在这里插入图片描述

Eband_local_planner

wiki主页:http://wiki.ros.org/eband_local_planner

eband_local_planner实现了base_local_planner的插件。它在SE2流形上实现了弹性带方法。
ROS的move_base局部规划器的原始实现仅支持全向(完整)机器人。

修改了当前版本以与差分驱动器一起使用。将differential_drive设置为false以启用横向/完整运动,但该模式已经过很长时间的测试,应该被认为是实验性的。

在到达目标位置和目标之前计算速度时,差动驱动机器人可以处于三种动作之一:

1:机器人在目标位置的横向公差(xy_goal_tolerance)内,并且在适当位置旋转以达到目标方向。

2:机器人在目标位置的横向公差之外,则必须朝向目标移动。给定机器人的方向以及弹性带中下一个点的方向,机器人首先计算这两个位置之间的差异。如果该差值小于参数rotation_threshold_multiplier,则机器人执行线性和角速度分量以朝向频带中的下一个点弧。一旦机器人靠近目标位置,使得到目标的x和y距离小于0.6 * xy_goal_tolerance,然后进入步骤1。

这里选择0.6,因为机器人在开始之前接近目标而不是公差要求最后一个转弯,因为最后一个转弯可能会导致机器人稍微偏离位置。

3:如果在前一步骤中计算的差值大于参数rotation_threshold_multiplier,则机器人就位,直到差值变小,并且机器人可以执行动作2。

在这里插入图片描述

在这里插入图片描述
Bubble就是一个代表路径上的点与障碍物不冲突的圆形范围(not to collide with an obstacle),如果距离障碍物近,bubble会小,距离障碍物远,bubble会大
在这里插入图片描述
为了确保path 是 collision free的,我们会让生成bubbles是overlap的,这一点图中也可以看得出来。

最后就是操纵生成的Bubble(Manipulating the Bubbles) 。比如对bubble前移或者后移,在障碍物近的地方生成bubble更加密集

参考:
【1】 https://blog.csdn.net/lh2008xp/article/details/89214582
【2】 https://blog.csdn.net/qq91752728/article/details/81179744

  • 6
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS(机人操作系统)是一套用于开发机人软件的开源框架,其中包括了丰富的功能包。局部路径规划(Local Path Planner)是ROS中的一个重要功能包。 局部路径规划用于在机人周围的局部环境中计算机人的运动轨迹,以避开障碍物并达到目标位置。它基于机人的传感数据和地图信息,对机人周围的环境进行感知和分析,然后根据规划算法生成合适的路径。 ROS局部路径规划功能包提供了多种路径规划算法的实现,包括经典的Dijkstra算法、A*算法等。这些算法根据不同的需求和环境特点,可以选择合适的算法来进行路径规划局部路径规划的核心思想是通过将机人当前位置作为起点,在环境中搜索一个合适的路径,并考虑到障碍物的避开以及路径的平滑性。具体的规划过程可以分为以下几个步骤: 1. 获取机人当前位置和地图信息。 2. 根据当前位置和地图,使用路径规划算法计算出一条可行的路径。 3. 对计算出的路径进行平滑处理,以便更顺利地跟随路径。 4. 将规划的路径发送给机人的控制系统,实现路径跟踪和控制。 局部路径规划的目标是使机人能够安全、高效地在复杂环境中移动,避开障碍物并尽快到达目标位置。它在机人导航任务中起到关键作用,能够帮助机人实现自主移动和避障等功能。 总而言之,ROS局部路径规划是一种功能强大的工具,通过利用机人感知和规划算法,能够为机人提供合适的路径,使其在环境中安全地移动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值