科技小制作小发明,北京做网站优化的公司,dw如何做网站界面,建造师信息查询网原文链接#xff1a;进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview 运动规划#xff08;Motion Planning#xff09;就是在给定的位置A与位置B之间为机器人找到一条符合约束条件的路径。这个约束可以是无碰撞、路径最短、机械功最小等。具体的案例…原文链接进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview 运动规划Motion Planning就是在给定的位置A与位置B之间为机器人找到一条符合约束条件的路径。这个约束可以是无碰撞、路径最短、机械功最小等。具体的案例可以是为移动机器人规划出到达指定地点的最短距离或者是为机械臂规划出一条无碰撞的运动轨迹从而实现物体抓取等。 基本的运动规划就是在起始构型与目标构型之间找到一条连续运动轨迹同时避开环境中的障碍物。 上周阿波君为大家详细介绍了「进阶课程⑳Apollo感知之旅——机器学习与感知的未来」。 通过介绍了感知中的机器学习、未来以及课后思考其中详细的介绍了感知里的机器学习问题如何应对corner case除深度学习外、还有其他算法深度学习仿真数据车载Al芯片成为一种趋势智能交通设施、V2X的普及等知识还思考了延时是如何来影响自动驾驶安全的ACC自适应巡航的功能是如何实现的等问题。 本周阿波君将与大家分享Apollo规划技术详解——Basic Motion Planning and Overview。下面我们一起进入进阶课程第21期。 1.什么叫做运动规划
规划问题本质上是一个搜索问题即对一个给定的函数寻找最优解。相对于无人车而言规划问题就是给定现在的状态找到无人车移动的最优解。通常最优解目标函数F(x)定义。
从内容考虑规划问题涉及三个领域机器人领域控制领域和人工智能。不同的领域对问题的理解不同。 robotic fields规划就是如何产生轨迹以完成目标涉及RRT A*D* lite等。控制领域规划理解为到达目标状态的动态系统涉及MPC LQR等。artificial intellegenceAI是生成状态到动作的映射涉及reinforcement learningend-to-end imitation learning等。2.如何构建汽车的运动规划问题
从最简单问题出发把运动规划抽象成一个path finding problem路径查找问题只关心无人车怎样走周围环境是不变的。如图1所示我们将其抽象成无数的网格从绿色的点到红色的点的路径规划就是一个path finding problem 。如图想寻找最短路径可通过广度优先的方法也可以使用深度优先方法。但是对于最短路径优化问题深度优先方法的效率太低。 图1 路径查找问题
另外可以通过启发式方式对搜索问题进行优化。前面的广度优先方法没有利用起点和终点之间的信息breadth first searchBFS和 depth first searchDFS都属于non-information search问题就在于不知道目标在哪里。A-star算法是大概知道红点在右边定义一个启发式函数该函数猜测距离目标还有多远通过这种方法先搜索一些比较近的点然后从这个点出发逐渐扩大搜索圈。 图2 A-star算法
A-star花费时间比广度优先算法时间更短因为它有信息支持现在的一些路径搜索算法本质上都是从A-star算法出发需要知道目标函数的样子。
目前A-star算法还不能直接用在规划模块上因为A-star算法本身要求对整个环境全知。而自动驾驶对周围环境是部分观察的如图3所示。红色的点是小车红色和绿色块是障碍物对于无人车来说是看不见的无人车的传感器雷达、激光雷达、摄像机系统能部分观察环境。 图3 无人车部分可见动态环境
对于部分观察我们可以使用贪心算法其实就是一个增量搜索就是在看见的情况下尽量走好。如图4所示利用D-star算法对部分观察的数据进行控制规划。它利用当前能够看到的信息进行增量规划D-star的特点是处理在看到的有限范围的条件下如何到达预定地点的搜索问题方法。这种增量搜索很难通过一步步的迭代达到全局最优解。 图4 D-star算法
在现实生活中人类开车是很少做90度直角转弯的这样的折线并没有考虑无人车运动过程中的运动模型和动力学模型。更进一步可以通过平滑性曲线的方式来优化折线换成一些较为平滑的曲线来完成如图5所示。 图5 曲线平滑
那么上述介绍的搜索技术离自动驾驶运动规划还差多少首先是在部分观察空间的动态障碍物规划模块怎么处理动态障碍物是关键并且是有难度的。其次是自动驾驶汽车能否按照规划的行驶可能需要一个动态模型。第三还缺少了遵守交通规则它是道路安全的基本保证将交通规则融入规划也是一个难点。第四是实时计算目前来说百度要求规划模块运转周期是100毫秒。 图6 实现自动驾驶还缺什么 图7 自动驾驶运动规划
运动规划问题就是让自动驾驶车辆能够安全平稳到达终点本质是一个三维规划问题即 XY 坐标加上时间维度叫做 3D Trajectory Optimization Problem轨迹优化问题。从车辆动力学模型来说维度需要进一步上升因为涉及到车头的方向车的转向角、加速度等问题。 3.无人驾驶硬件系统 图8 自动驾驶汽车硬件系统
无人车硬件系统除了汽车之外还涉及很多传感器传感器感知汽车周围环境即使是这样也只是部分搜索环境。还有 GPS 接收器可以做定位以及 IMU 惯性导航系统如上图所示。 4.无人驾驶系统软件 图9 自动驾驶汽车系统软件
如上图所示运动规划可以获得两部分信息一部分是动态信息包括从认知获得的信息就是从感知模块和定位模块获得信息另一部分是静态信息就是高精地图。 图10 无人驾驶系统软件的组成
无人驾驶系统软件包括定位、感知、预测、运动规划和控制等。定位就是知道汽车在哪里。感知即是对周围环境信息的获取。预测就是感知到的障碍物的行进意图例如旁边有无人超车。运动规划是在知道这些信息后告知汽车如何运动。控制模块就是得到指令之后如何控制汽车。 图11 规划模块的工作原理
车辆状态、交通灯信息、障碍以及障碍轨迹、导航、高精地图都是规划模块能获得的信息。规划就是在这样的部分可见信息中给无人车找到一条轨迹。它不仅是一条路径而是随着时间推移路径该怎么走它包含两方面一是路径信息二是速度配置文件需要保证速度和路径变化都是平滑的。 5.课程概述
如图所示整个规划模块将会介绍以下内容。包括使用的方法、环境认知、所解决的问题、构建运动规划以及如何构建一个通用生态系统。 图12 规划模块的组成