Coursera自动驾驶课程第23讲:Reactive Planning in Static Environments

在第22讲《Coursera自动驾驶课程第22讲:Principles of Behaviour Planning》 我们学习了行为规划,如何使用有限状态机构建行为规划器。

在讲中,我们将学习一些概念,如何利用自行车运动学模型构建一个反应式运动规划器。反应式运动规划器是一种接收机器人周围局部信息,以生成无碰撞且朝某个目标位置前进的轨迹的规划器。在本讲中,作为迈向为自动驾驶汽车路径规划的第一步,我们将先局限于静态环境,然后逐步介绍路径预测和碰撞检查的概念。

文章目录

      • [1. Trajectory Propagation](#1. Trajectory Propagation)
      • [2. Collision Checking](#2. Collision Checking)
      • [3. Trajectory Rollout Algorithm](#3. Trajectory Rollout Algorithm)
      • [4. Dynamic Windowing](#4. Dynamic Windowing)

1. Trajectory Propagation

在本小节中,我们将讨论如何为机器人模型的一系列控制输入在离散设定下生成轨迹。

首先,我们想简要回顾一下什么是运动学模型。运动学模型给出机器人的运动方程,同时忽略质量和惯性对其运动的影响。我们可以将其与动力学模型进行对比,动力学模型考虑质量和惯性,但代价是更加复杂。运动学模型关注线速度和角速度,有时也以它们的导数作为输入,而动力学模型关注力和力矩作为输入。 为说明这一点,这里将运动学质点模型与带摩擦的动力学质点模型进行对比。对于路径规划和轨迹优化,我们通常关注运动学模型,以使运动规划问题在计算上更易处理,而把因简化动力学而带来的问题留给控制器。

举一个具体例子,这里有我们自动车模型的运动方程,这些方程是什么意思?本质上,我们定义机器人基座连杆位于固定坐标系中的位置 x , y x,y x,y。我们还取机器人航向角为相对于 x x x 轴的 θ θ θ。将二者结合起来, x , y x,y x,y 位置和航向角 θ θ θ 给出了机器人在任意时刻的状态。对于自行车模型,每个时间点给出的输入是速度和转向角。这些输入与当前状态一起,使我们能够根据自行车模型运动学方程计算轨迹如何随时间演化。

从中要记住的一点是,我们通常无法直接访问机器人的状态。我们不能直接告诉机器人去 x x x 和 y y y 中的某个特定位置。然而,我们可以设计一系列控制输入 u n u_n un,根据运动学方程使我们到达所说的 x , y x,y x,y 位置。控制输入序列将对应于机器人将遵循的轨迹。

现在我们已经看过一些运动学方程的例子,你可能会问:"对于给定输入序列,我们实际上如何计算轨迹?"

我们给出的运动学方程本质上是一个连续时间微分方程组。为了轨迹生成,我们将关注这些方程的离散对应形式。通过关注离散模型,我们可以轻松高效地为给定控制输入序列传播轨迹。有许多方法可以离散化连续时间微分方程,我们这里使用简单的零阶保持。

这些方程离散化的一个结果是,我们可以递归地实现对所有更新的求和,这使我们能够针对给定输入序列迭代地构建完整轨迹。这节省了计算量,因为不必为轨迹中的每个点重新计算之前所有更新的和,而是可以仅使用先前计算的点来增量计算轨迹的下一个点。这表示为每个状态变量方程最终的右侧。我们将在这个模块中一直使用这种递归解。

如果我们现在应用这种离散化,并逐步遍历整个控制输入序列,我们将得到机器人将遵循轨迹的准确近似。虽然这对轨迹规划有用,但它对运动预测也有用:在驾驶场景中,我们知道另一个智能体的运动学模型,并且对其将采取的控制输入有合理猜测。由此,我们可以估计其未来轨迹,这有助于我们规划运动以避免碰撞。

例如,假设我们给自行车模型一个恒定速度输入以及恒定转向角。如动画所示,这导致机器人以恒定速度沿圆弧运动,同时其航向随每个时间步缓慢变化。如果我们改为根据某个转向函数沿路径改变转向角,我们可以执行更复杂的机动,这对避障等任务至关重要。 这本质上就是局部规划问题的核心:计算所需控制输入,以安全导航到给定目标点。在动画中,我们可以看到,像之前那样以恒定转向角行驶会导致碰撞。为了解决这个问题,我们给机器人一系列不同的转向角输入,以避开障碍物。


2. Collision Checking


3. Trajectory Rollout Algorithm


4. Dynamic Windowing

相关推荐
霸道流氓气质1 小时前
Spring AI Alibaba Graph Studio 入门指南:可视化Agent编排与调试平台
java·人工智能·spring
爱写代码的小朋友1 小时前
Windows 下 MSYS2 + MinGW64 安装与使用 OpenCV 全指南(含踩坑记录)
c++·人工智能·windows·opencv
染指11101 小时前
129.Agent-LangChain核心组件-自定义中间件-通过类实现(AgentMiddleware)
人工智能·中间件·langchain·agent·agents
Dawson Zhu1 小时前
Agent系统工程质量评估体系:原理解析与工程实践
人工智能·语言模型·架构·aigc·agi
Ivanqhz1 小时前
窥孔优化(Peephole Optimization)
人工智能·深度学习·机器学习
Java的搬运工1 小时前
2026 AI Agent 实战:五层架构、MCP 工具调用与十条避坑清单 合集 - AI行业观察
人工智能·架构·智能体·大模型应用·langgraph·aiagent·mcp
知几蜗牛1 小时前
Nova Act合成监控:从选择器脚本转向结果断言
人工智能
qyz_hr1 小时前
央国企人力资源穿透式监管的关键领域、核心机制与数智化路径研究
大数据·人工智能
打工仔折腾 AI1 小时前
网易UU远程实测:手机控电脑做Python开发和Agent调试的真实体验
人工智能·后端·python·智能手机·性能优化·电脑·ai agent 实战