ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

Coursera自动驾驶课程第23讲:Reactive Planning in Static Environments 在第22讲《Coursera自动驾驶课程第22讲Principles of Behaviour Planning》 我们学习了行为规划如何使用有限状态机构建行为规划器。在讲中我们将学习一些概念如何利用自行车运动学模型构建一个反应式运动规划器。反应式运动规划器是一种接收机器人周围局部信息以生成无碰撞且朝某个目标位置前进的轨迹的规划器。在本讲中作为迈向为自动驾驶汽车路径规划的第一步我们将先局限于静态环境然后逐步介绍路径预测和碰撞检查的概念。文章目录1. Trajectory Propagation2. Collision Checking3. Trajectory Rollout Algorithm4. Dynamic Windowing1. Trajectory Propagation在本小节中我们将讨论如何为机器人模型的一系列控制输入在离散设定下生成轨迹。首先我们想简要回顾一下什么是运动学模型。运动学模型给出机器人的运动方程同时忽略质量和惯性对其运动的影响。我们可以将其与动力学模型进行对比动力学模型考虑质量和惯性但代价是更加复杂。运动学模型关注线速度和角速度有时也以它们的导数作为输入而动力学模型关注力和力矩作为输入。为说明这一点这里将运动学质点模型与带摩擦的动力学质点模型进行对比。对于路径规划和轨迹优化我们通常关注运动学模型以使运动规划问题在计算上更易处理而把因简化动力学而带来的问题留给控制器。举一个具体例子这里有我们自动车模型的运动方程这些方程是什么意思本质上我们定义机器人基座连杆位于固定坐标系中的位置x , y x,yx,y。我们还取机器人航向角为相对于x xx轴的θ θθ。将二者结合起来x , y x,yx,y位置和航向角θ θθ给出了机器人在任意时刻的状态。对于自行车模型每个时间点给出的输入是速度和转向角。这些输入与当前状态一起使我们能够根据自行车模型运动学方程计算轨迹如何随时间演化。从中要记住的一点是我们通常无法直接访问机器人的状态。我们不能直接告诉机器人去x xx和y yy中的某个特定位置。然而我们可以设计一系列控制输入u n u_nun​根据运动学方程使我们到达所说的x , y x,yx,y位置。控制输入序列将对应于机器人将遵循的轨迹。现在我们已经看过一些运动学方程的例子你可能会问“对于给定输入序列我们实际上如何计算轨迹”我们给出的运动学方程本质上是一个连续时间微分方程组。为了轨迹生成我们将关注这些方程的离散对应形式。通过关注离散模型我们可以轻松高效地为给定控制输入序列传播轨迹。有许多方法可以离散化连续时间微分方程我们这里使用简单的零阶保持。这些方程离散化的一个结果是我们可以递归地实现对所有更新的求和这使我们能够针对给定输入序列迭代地构建完整轨迹。这节省了计算量因为不必为轨迹中的每个点重新计算之前所有更新的和而是可以仅使用先前计算的点来增量计算轨迹的下一个点。这表示为每个状态变量方程最终的右侧。我们将在这个模块中一直使用这种递归解。如果我们现在应用这种离散化并逐步遍历整个控制输入序列我们将得到机器人将遵循轨迹的准确近似。虽然这对轨迹规划有用但它对运动预测也有用在驾驶场景中我们知道另一个智能体的运动学模型并且对其将采取的控制输入有合理猜测。由此我们可以估计其未来轨迹这有助于我们规划运动以避免碰撞。例如假设我们给自行车模型一个恒定速度输入以及恒定转向角。如动画所示这导致机器人以恒定速度沿圆弧运动同时其航向随每个时间步缓慢变化。如果我们改为根据某个转向函数沿路径改变转向角我们可以执行更复杂的机动这对避障等任务至关重要。这本质上就是局部规划问题的核心计算所需控制输入以安全导航到给定目标点。在动画中我们可以看到像之前那样以恒定转向角行驶会导致碰撞。为了解决这个问题我们给机器人一系列不同的转向角输入以避开障碍物。2. Collision Checking3. Trajectory Rollout Algorithm4. Dynamic Windowing
返回列表