机器人的“诗和远方”:浅析移动机器人运动规划

机器人的“诗和远方”:浅析移动机器人运动规划
最新回答
梦里七彩虹

2026-04-27 13:36:34

机器人的运动规划是自主导航的核心,主要解决“在哪”、“去哪”及“怎么去”的问题,分为全局路径规划和局部路径规划两个阶段。

基于图搜索的全局路径规划

全局路径规划是在机器人被告知目的地后,根据静态地图规划出一条从当前位置到目的地之间的无碰撞路径。此阶段机器人尚未运动,不考虑动态障碍,也不控制机器人运动。

  • 图搜索的基本概念

    图(Graph)是一种抽象的数据结构,由节点(Vertex)和边(Edge)组成。图搜索即找到图中从一个节点到另一个节点所经过的边和节点的组合。通过将机器人所处环境地图网格化处理,可将全局路径规划问题用图搜索表示,并使用图搜索算法实现。

  • 常见的图搜索算法

    深度优先搜索(DFS):沿着一个分支走到底,若该分支无目标节点,则从另一个分支重新开始,特点是“不撞南墙不回头”。

  • 广度优先搜索(BFS):先搜索离自己最近的邻居,然后一圈一圈往外扩散,特点是“近水楼台先得月”。

由于DFS和BFS都不能保证路径的最优性,通常不直接用于解决路径规划问题。

  • 启发式搜索

    与DFS和BFS不同,启发式搜索的搜索方向由启发函数决定,即根据某种规则给待搜索节点计算优先级,优先级越高的节点越先被访问。启发式搜索分为三种:

    贪心算法(Greedy Best First Search):启发函数只关注待搜索节点与目标节点的估计距离,目的性很强,但缺乏大局观,在存在凹形障碍物的环境中容易多走冤枉路。

  • 迪杰斯特拉(Dijkstra)算法:启发函数只关注待搜索节点到起点的代价,能保证搜索结果最优,但目的性不强,具有一定的盲目性,效率不高。

  • A*算法:启发函数为待搜索节点与目标节点的估计距离加上待搜索节点到起点的代价,兼顾了“眼前的苟且”和“诗和远方”,综合性能最优。

通过对比可知,贪心算法缺乏大局观,迪杰斯特拉算法效率较低,A*算法是最佳选择。

考虑运动学模型和动态障碍物的局部路径规划

局部路径规划是控制机器人在全局路径的指引下向目的地运动,实时感知周围环境,若发现障碍物则采取相应的规避措施。重点介绍滑动窗口法(Dynamic Window Approach,DWA):

  • DWA算法流程

    细化目标:在全局路径上按照一定规则选择若干局部目标。

    离散化采样:在车体的速度区间内进行离散化采样,得到一系列轮子速度组合。

    时间窗口内前向模拟:在一个时间窗口内进行前向模拟,得到一系列模拟的机器人轨迹。

    综合考虑轨迹:综合考虑轨迹到障碍物距离、轨迹到局部目标的距离。

    重新选择局部目标点:重新选择局部目标点,进行新一轮的局部规划,直到机器人到达最终的全局目标。

  • 联想晨星机器人自主导航模块的工作流程

    根据静态地图规划出一条无碰路径,这里基于A*算法实现。然后局部路径规划实时规划出可行的速度控制量发送给机器人执行,这里基于DWA算法实现。机器人对于突然出现的动态障碍物也能做出规避动作。