
运动规划Motion Planning在机器人领域一般指给机器人从起始状态到目标状态生成一条满足约束的运动轨迹。比如人形机器人抓瓶子已知机器人当前姿态 → 目标抓取位姿 → 生成机械臂关节轨迹 → 避障 → 平滑执行这整个过程就是运动规划。运动规划算法大体分为几类1. 基于搜索的规划Search-based Planning适合移动机器人栅格地图低维空间① A* 算法最经典路径规划。思想总代价 已经走过的代价 预计距离 f(n)g(n)h(n)其中g(n)当前位置到当前节点成本h(n)当前位置到目标估计距离例如机器人 S □ □ □ □ ■ ■ □ □ □ □ G A*: S → → ↓ ↓ → G优点✅ 保证最优缺点❌ 高维机械臂不适合应用ROS Nav2Global PlannerSmac Planner② DijkstraA* 的前身。区别Dijkstraf(n)g(n)不知道目标在哪里全部搜索。优点保证最短路径缺点慢。2. 采样规划Sampling-based Planning这是机械臂最常用的一类。因为机械臂空间例如7自由度q[q1,q2,q3,q4,q5,q6,q7]搜索空间巨大。所以随机采样。① RRTRapidly-exploring Random Tree机器人领域非常经典。思想随机长树。例如* * * S----* \ * * G步骤随机生成一个点找最近节点朝它扩展碰撞检测连到树优点✅ 快✅ 高维有效缺点❌ 路径比较乱② RRT*RRT优化版。核心重新连接。让路径RRT: S------*---*---G RRT*: S-----------G特点随着采样增加越来越接近最优。目前机械臂规划非常常用。③ Informed RRT*进一步优化。不是全空间随机而是在起点-终点椭球区域采样。速度更快。④ PRMProbabilistic Roadmap适合固定环境。先建地图随机点: * * * * * * 连接: *---*---* \ / *---*然后搜索。3. 优化类运动规划Optimization-based现在机器人研究热点。核心把运动规划变成优化问题。目标最小[Cost距离碰撞能量平滑]① CHOMPCovariant Hamiltonian Optimization for Motion Planning优化轨迹原始--------- \ \ G优化----------- \ G特点轨迹平滑。② STOMP基于随机优化。特点不需要梯度。③ TrajOpt工业机器人常用。优势速度快。目标min: 轨迹长度 碰撞代价 动力学约束4. MPCModel Predictive Control这个现在非常火。不是一次规划到底。而是滚动规划。例如机器人走路预测未来现在 | |----未来2秒预测 | 执行0.1秒 重新规划循环。优势✅ 动态环境✅ 机器人控制结合应用自动驾驶四足机器人人形机器人5. 速度规划Time Parameterization规划路径后还需要什么时候到哪里例如路径A-------------B变成t0 t1 t2 A------M-------B常用TOPPTime Optimal Path ParameterizationRuckig现在工业机器人非常火。作用限制速度加速度jerkMoveIt2 默认大量使用。6. 人形机器人/机械臂常用组合视觉 | 目标抓取位姿 | IK逆运动学 | 运动规划 | 轨迹优化 | 控制执行具体MoveIt2:OMPL | RRTConnect | RRT* | PRM | TrajOpt | Ruckig7. 不同场景对应算法场景算法二维地图导航A*、DijkstraROS导航A*、D*、Smac机械臂避障RRTConnect高自由度机械臂RRT*工业机械臂TrajOpt动态环境MPC人形机器人MPC优化抓取规划RRTIK腿式机器人MPC