常用ROS局部规划器
时间: 2025-03-15 18:05:15 浏览: 59
### 常见的 ROS 局部规划器及其实现方式
#### 1. **DWA (Dynamic Window Approach)**
动态窗口法(DWA)是一种基于速度空间的实时局部路径规划算法,在 ROS 中由 `dwa_local_planner` 实现。其核心思想是在当前状态下计算一组可行的速度组合,并从中选取最优解以使机器人接近目标点并避开障碍物。
主要流程包括以下几个部分:
- 计算速度约束下的候选速度集合。
- 对每组候选速度评估代价函数,通常涉及目标距离、路径一致性以及碰撞风险等因素[^1]。
- 返回最佳速度指令给控制器。
优点在于其实时性和适应性强的特点,适合快速变化环境中的移动机器人应用;缺点则是容易受到目标点吸引而导致忽略全局路径指导的情况发生。
代码配置示例:
```yaml
DWAPlannerROS:
acc_lim_x: 2.5
max_vel_theta: 1.0
min_vel_x: 0.0
path_distance_bias: 32.0
goal_distance_bias: 24.0
```
---
#### 2. **Teb Local Planner**
时间弹性带(Time-Elastic Band, Teb)局部规划器提供了一种更灵活的方式处理复杂场景下机器人运动规划问题。该方法不仅考虑几何形状上的避障需求,还兼顾了动力学特性限制条件的影响。
具体而言,TebOptimalPlanner 类负责单条轨迹优化过程,而 HomotopyClassPlanner 则扩展此功能至多拓扑类别探索阶段。后者利用概率路网技术构建潜在通道路线集,并筛选出满足特定标准的最佳选项[^3]。
参数调整方面需要注意的关键项如下所示:
```yaml
TeBLocalPlannerROS:
max_global_plan_lookahead_dist: 3.0
weight_viapoint: 1e9
shrink_horizon_backupdist: 0.1
```
相比传统 DWA 方法,Teb 更加注重平滑度与精确性表现,尤其当面对狭窄通道或者需要转弯操作的任务情境时优势明显。
---
#### 3. **Pure Pursuit**
纯追踪(Pure Pursuit)属于一种较为基础却高效的前馈型控制策略,特别适配于轮式平台如 AGVs 的直线前进模式作业场合。它依据预先定义好的参考曲线寻找最邻近的目标点作为即时导向参照物,进而决定转向角度大小完成循迹动作[^2]。
尽管如此简单易懂的设计思路让 Pure Pursuit 成为了不少初学者入门首选方案之一,但它缺乏对于突发状况的有效应对机制——比如突然出现的新障碍物可能会造成不可预见后果。
典型设置片段展示如下:
```yaml
PurePursuitController:
lookahead_distance: 0.8
wheelbase_width: 0.4
```
---
#### 4. **Model Predictive Control (MPC)**
模型预测控制(Model Predictive Control,MPC),作为一种先进的反馈控制系统设计理论框架,在自动驾驶领域得到了广泛应用。通过不断滚动求解有限时间段内的开环最优控制序列来逼近理想行为模式,从而达到既定性能指标的要求。
在实际部署过程中需关注几个重要维度:状态估计精度、在线求解效率及时延补偿措施等等因素都会直接影响最终效果呈现形式。由于 MPC 需要较高的计算资源支持才能维持良好运行状态,因此一般仅限高端硬件设备上采用。
以下是可能涉及到的部分关键属性举例说明:
```yaml
MPCLocalPlanner:
prediction_time_step: 0.1
number_of_future_steps: 20
cost_function_weights:
obstacle_cost_weight: 10.0
tracking_error_weight: 5.0
```
---
#### 5. **PID Controller**
比例积分微分(Proportional Integral Derivative,PID) 控制器广泛应用于工业自动化系统之中,因其结构清晰明了且易于调试维护备受青睐。然而单纯依靠 PID 来解决复杂的自主导航问题是不够充分的,往往还需要与其他高级算法相结合形成复合解决方案才行得通。
常规情况下只需要调节三个系数即可获得满意的结果:
| 参数名 | 描述 |
|--------------|--------------------------|
| Kp | 比例增益 |
| Ki | 积分作用强度 |
| Kd | 微分校正力度 |
例如下面这段 YAML 文件片断即代表了一个基本版 PID 设置案例:
```yaml
PIDController:
p_gain: 1.2
i_gain: 0.01
d_gain: 0.5
```
---
### 总结对比表
| 名称 | 特点描述 | 使用范围 | 推荐指数 |
|-------------------|-------------------------------------------------------------------------------------------|--------------------------------------------|---------------|
| Dynamic Window | 动态更新速度窗口,适合实时调整 | 室内外通用 | ★★★★☆ |
| Time Elastic Band| 结合时间和空间信息建模,强调灵活性和平滑性 | 复杂环境下精细操控 | ★★★★★ |
| Pure Pursuit | 构造简洁高效,专攻固定路线追随 | 已知路径明确 | ★★★☆☆ |
| Model Predictive | 提供精准未来预测能力 | 高端计算资源充足 | ★★★★☆ |
| Proportional...etc.| 经典可靠,便于理解实践 | 辅助其他高阶逻辑 | ★★☆☆☆ |
---
阅读全文
相关推荐


















