尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

导航中规划器与控制器的关系

导航中规划器与控制器的关系 全局规划 Global Planner从起点到终点在整张地图上找一条全局可行路径。算法Theta*、A*、Dijkstra特点只在大地图做一次 / 低频更新绕开大块障碍物不处理局部小扰动。局部规划 Local Planner局部轨迹规划器以全局路径为引导在机器人附近窗口内生成短时间的局部运动轨迹。算法MPPI、TEB、Smac Planner、DWB特点高频运行躲避突然出现的障碍物输出短时参考轨迹。项目规划 Planning控制 Control核心问题该走哪条路如何跟上这条路输入地图、目标点、障碍物期望轨迹 机器人实时状态反馈输出一系列位姿点 (x,y,yaw) 参考轨迹速度 / 力矩指令下发给硬件是否考虑动力学局部规划部分考虑动力学全局基本不考虑必须考虑动力学、机器人物理限制失败表现找不到路径、路径穿障碍物路径是好的但机器人跑偏、震荡、跟踪不上典型故障现象规划器报 no valid path轨迹有但 yaw 摇摆、打滑、跟踪误差大整体链路planner_server(全局规划)→ 输出全局参考路径 Path →controller_server→ 输出 cmd_vel 速度指令 →机器狗底层 SDK不属于 Nav2→ 步态 / 力矩 → 硬件运动模块分工全局规划 planner_server插件Theta*(SmacPlannerThetaStar)任务整张地图找起点到终点的可行路径输出nav_msgs/Path不输出速度。controller_server控制器层接收全局路径 costmap内部插件分两类模式模式 ATEB你当前配置插件teb_local_planner::TebLocalPlannerROS一身二合一局部轨迹优化 控制器会修改、拉扯全局路径做局部避障直接求解输出cmd_vel优点窄通道局部绕障强缺点调参复杂、易 yaw 震荡、CPU 开销大模式 B “额外控制器”只有一种情况 你用一个只生成轨迹、不输出速度的局部规划器再搭配一个独立跟踪控制器。为什么有人用 Theta*RPP纯跟踪而不用 Theta*TEB关键区别TEB 局部轨迹优化 输出速度指令一体化规划 控制做在同一个插件RPP (Regulated Pure Pursuit 正则纯跟踪) 只做路径跟踪控制器几乎不做局部轨迹变形避障你现在Theta*全局规划 → TEB(局部优化输出cmd_vel)别人Theta*全局规划 → RPP跟踪控制器那 RPP 没有局部避障怎么办用 RPP 的人一般两种方案全局规划做得足够强Theta*/Smac 在全局就绕开障碍局部 costmap 负责检测危险撞风险就停下。适合静态已知地图、巡检巡逻环境变化不大。外挂独立局部规划模块全局路径出来先过一层局部规划生成局部参考 Path再交给 RPP 去跟踪这条新 Path。实现 “局部避障 稳定跟踪” 分离架构.对比TEB你现在用的RPP 纯跟踪是否修改全局路径✅会拉扯变形局部绕障碍物❌不改动路径只沿着原路径走局部动态避障能力强窄门 / 窄走廊优势大弱遇到障碍只会减速停止不会绕开调参难度很高一堆 weight 权重容易震荡很低主要调前视距离 lookaheadCPU 占用较高 (g2o 优化)很低cmd_vel 输出调不好会速度跳变、yaw 抖动输出平滑对四足底层友好适合环境窄通道、门多、静态环境开阔走廊、巡检巡逻地图环境稳定
返回列表