机器人导航学习历程(四)local planner

local planner

  我们先来回顾一下Navigation的框架,可以看出位于红框中的local_planner是move_base节点的一部分,输入包括来自global_planner的全局的规划路径、里程计信息以及local_costmap的信息,输出是速度控制指令,作为控制器的输入。

在这里插入图片描述

base_local_planner

  局部规划一般是用base_local_planner包实现的,该包使用Trajectory Rollout和**Dynamic Window approaches(DWA)**算法,根据地图数据,通过算法搜索到达目标的多条路经,利用一些评价标准(是否会撞击障碍物,所需要的时间等等)选取最优的路径,并且计算所需要的实时速度和角度。

DWA算法

  这里有一张DWA算法的示意图,蓝色的方块表示机器人,红色表示障碍物,机器人前方的多条黑色虚线表示备选的路线(可以设置参数来调整虚线的数量,也可以设置参数来调整虚线的长度,虚线越多越长对计算资源的消耗越多,但也会得到更为精确的结果),DWA算法会对每条路线进行评分,最终选择得分最高的路线,而会导致碰撞发生的路线会被排除。

在这里插入图片描述

  Trajectory Rollout和DWA算法的主要思路如下:

  1. 采样机器人当前的状态(dx,dy,dtheta);
  2. 针对每个采样的速度,计算机器人以该速度行驶一段时间后的状态,得出一条行驶的路线;
  3. 利用一些评价标准为多条路线打分;
  4. 根据打分,选择最优路径;
  5. 重复上面过程。

  Trajectory Rollout和Dynamic Window Approach (DWA)两种方法,理论上来说分别对应base_local_planner和dwa_local_planner两个包,但其实dwa的大部分代码都放在了base_local_planner包里面。

类继承关系

  base_local_planner类继承图如图所示。

在这里插入图片描述

  • TrajectoryPlanners(红框标出)实现了DWA 和Trajectory Rollout算法。
  • TrajectorySampleGenerator产生一系列轨迹
  • 然后TrajectoryCostFunction遍历轨迹打分
  • TrajectorySearch找到最好的轨迹拿来给小车导航
  • 由于小车不是一个质点,WorldModel会检查小车有没有碰到障碍物

teb_local_planner

  teb_local_planner也是local planner的一个插件。teb即Timed Elastic Band,基本思路是根据轨迹执行时间、避障、动力学约束(如最大速度和最大加速度的限制)等来优化机器人的轨迹。

TEB算法

  对于二维路径的描述,有一个有趣的方法,叫做Elatic Band(橡皮筋)。简而言之,就是连接起始、目标点,并让这个路径可以变形,变形的条件就是将所有约束当做橡皮筋的外力。

  经典的“elastic band”由n个的机器人位姿组成的序列描述 X i = ( x i , y i , β i ) T X_i=(x_i,y_i,\beta_i)^T Xi=(xi,yi,βi)T,其中 x i x_i xi y i y_i yi是机器人位置, β i \beta_i βi被定义为全局中机器人的方向。
Q = { X i } i = 0... n Q=\{X_i\}_{i=0...n} Q={Xi}i=0...n
  为了显示轨迹的运动学信息,我们在点与点之间定义运动时间Time。于是,这个方法就叫做Timed-Elastic-Band

  TEB在原有的基础上加入了时间间隔序列:
τ = { Δ T i } i = 0... n − 1 \tau=\{\Delta{T_i}\}_{i=0...n-1} τ={ΔTi}i=0...n1
  每个时间间隔表示机器人需要从当前位姿转换到序列 Q Q Q中的下一个位姿所需要的时间。

在这里插入图片描述

  因此,TEB由上述两个序列组成。
B : = ( Q , τ ) B:=(Q,\tau) B:=(Q,τ)
  TEB算法的目标函数主要包括:

  1. 跟随全局路径+避开障碍物。跟随全局路径使得elastic bands靠近全局路径,而避障约束使得elastic bands远离障碍物。
  2. 速度和加速度限制。这一条限制即简单的不等式约束。
  3. 运动学限制。一般情况下机器人在平面运动只有两个自由度,其只能以朝向的方向直线运动或旋转。这种运动学约束使得机器人以有若干弧段组成的平滑的轨迹运动。对于某些机器人,会有最小转弯半径的约束(因为不能原地旋转)。
  4. 其他限制。比如使时间间隔序列的平方和最小。

  我们的目标是进行局部的路径规划:
f ( B ) = ∑ k γ k f k ( B ) f(B)=\sum_{k}\gamma_kf_k(B) f(B)=kγkfk(B)

B ∗ = arg ⁡ min ⁡ B f ( B ) B^*=\arg\min_Bf(B) B=argBminf(B)

   f ( B ) f(B) f(B)是全局目标函数,它是考虑各种约束的目标函数的加权和, B ∗ B^* B是被优化的TEB序列结果,也就是我们需要的局部规划的路径。

  这是一个复杂的多目标优化问题,虽然看似复杂,但是这就是一个bundle adjustment问题。我们可以将它描述成图,然后用图优化进行求解。求解示例如下(转自:参考资料[2])。

在这里插入图片描述

  如图,这个图的节点(vertexs)是橡皮筋的状态(机器人姿态+时间)。

在这里插入图片描述

  图的边edges是我们自己定义的目标函数,这张图加入了速度约束。

在这里插入图片描述

  这张图加入了加速度约束。

在这里插入图片描述
  这张图加入了障碍物约束。

  求解的框架,可以使用g2o(A General Framework for Graph Optimization)。当然,节点和边的类型需要我们自己使用g2o中的模板定义。

参考资料

[1] http://wiki.ros.org/base_local_planner

[2] https://www.leiphone.com/news/201612/0TCtaBOIcFOIBN69.html

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: The TEB local planner是ROS(机器人操作系统)中的一种规划器,用于在机器人导航过程中生成局部路径。TEB全称为Time-Elastic Band,意为时间弹性带。它是一种流行的自适应快速规划器,用于生成机器人的轨迹,以适应环境中的不同动态障碍物。 TEB local planner的主要目标是在尽可能短的时间内生成可行的、平滑的路径。它采用时间分配机制,为路径的每个轨迹点分配一个时间戳,以确保路径的平滑性。这使得机器人能够依靠实时的感知信息做出对路径的调整。 TEB local planner具有许多优点。首先,它能够处理非常动态的环境,因为它可以实时调整路径。其次,它生成的路径在运动过程中具有平滑性和连续性,提高了机器人的运动效率和稳定性。此外,TEB local planner还可以考虑机器人的运动约束,如最大速度和最大加速度,以确保路径的可行性。 关于TEB local planner的使用,用户可以通过RViz(ROS可视化工具)或编程接口来配置参数和调整相关设置,以满足自己的导航需求。此外,TEB local planner还可以与其他ROS导航功能如全局路径规划器结合使用,以实现完整的机器人导航系统。 总之,TEB local planner是一种先进的局部路径规划器,具有自适应性和高效性,能够使机器人在复杂、动态的环境中以平滑、快速的方式进行导航。 ### 回答2: Teb local planner是一种常用于自主导航系统中的路径规划器。它主要负责生成机器人在局部环境中的路径,以实现机器人的避障和导航功能。 Teb(local)全称为Timed Elastic Band(Timed Elastic Band)本地路径规划器。它采用弹性带概念来进行路径规划,通过将路径表示为一系列时间-位姿(In pose)对的集合来建模。Teb路径规划器在机器人导航中非常流行,因为它能够同时考虑全局导航和局部避障,使机器人能够在动态环境中灵活地移动。 Teb local planner的核心算法是基于开源的ROS(机器人操作系统)框架中提供的global_planner全局规划器的结果进行局部路径规划。它结合机器人当前位置和地图信息,使用迭代优化的方法来计算机器人的最优轨迹。该方法还会考虑机器人的动力学特性,以确保生成的路径是可行的。 Teb local planner还提供了一些配置选项,以满足不同场景下的需求。例如,用户可以选择不同的轨迹生成策略、模型机器人的底盘约束、动态障碍物的处理方法等。这些选项可以根据具体的应用来调整,以获得最佳的导航性能。 总而言之,Teb local planner是一种高效且可靠的局部路径规划器,能够帮助机器人在复杂的环境中快速、安全地进行导航和避障。它在自主导航系统中扮演着重要的角色,为机器人的智能移动提供了强力支持。 ### 回答3: TEB(Timed Elastic Band)本地规划器是一种基于时序弹性带的路径规划算法。它是一种用于机器人导航的方法,可以帮助机器人在动态环境中有效、安全地规划路径。 TEB本地规划器的核心概念是弹性带,弹性带可以想象成机器人周围的一个弹簧,它会根据周围环境的变化而伸缩。机器人的运动轨迹被定义为弹性带上的一条路径,路径上的点表示机器人的位置。TEB本地规划器可以根据弹性带的状态和机器人的状态来生成路径,以实现机器人导航。 TEB本地规划器具有以下特点: 1. 高效性:TEB本地规划器可以在动态环境中快速生成路径,因为它只考虑机器人附近的一小块区域,而不是整个地图。这种局部规划的方法可以大大减少计算量,提高规划效率。 2. 灵活性:TEB本地规划器可以根据机器人的动态特性进行路径规划。它可以考虑机器人的速度、加速度等因素,以生成平滑、符合动力学约束的路径。这样可以帮助机器人更好地避开障碍物,保证行驶的平稳性和安全性。 3. 路径优化:TEB本地规划器不仅考虑了机器人的动态特性,还考虑了路径的时间性。它可以根据机器人运动的时间窗口,在路径规划过程中进行时间优化,生成最佳的路径。这样可以使机器人在有限的时间内完成任务。 综上所述,TEB本地规划器是一种适用于机器人导航的路径规划算法,它可以在动态环境中高效、灵活地生成符合动力学约束的路径。TEB本地规划器的应用可以帮助机器人更好地完成导航任务,提高机器人的路径规划效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与你如初见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值