自动驾驶高速路上的路径规划算法

合集下载

无人驾驶汽车实时路径规划算法分析

无人驾驶汽车实时路径规划算法分析

无人驾驶汽车实时路径规划算法分析在智能交通领域中,无人驾驶汽车正逐渐成为一种新的交通方式。

为了保证无人驾驶汽车能够安全、高效地行驶,实时路径规划算法起着重要的作用。

本文将对无人驾驶汽车实时路径规划算法进行分析,并探讨其原理和应用。

实时路径规划算法是指在随着车辆位置、环境和交通状况的实时变化进行路径规划的算法。

无人驾驶汽车需要根据当前位置、终点位置以及路况等信息来确定最佳路径,以实现安全、快速到达目的地的目标。

以下是一些常用的无人驾驶汽车实时路径规划算法。

1. A*算法A*算法是一种启发式搜索算法,通过评估预测的最佳路径来寻找最短路径。

它使用启发式函数来指导搜索过程,以便快速找到目标。

A*算法基于广度优先搜索和最佳优先搜索,使用估计函数来评估每个节点的成本。

它在无人驾驶汽车路径规划中具有较高的效率和准确性。

2. Dijkstra算法Dijkstra算法是一种单源最短路径算法,用于在有向图中找到两个顶点之间的最短路径。

该算法基于图中各边的权重来确定最短路径,通过逐步确定每个顶点到起点的最短距离来实现。

Dijkstra算法在无人驾驶汽车路径规划中有较好的性能,可以找到最短路径。

3. Bellman-Ford算法Bellman-Ford算法是一种用于解决最短路径问题的动态规划算法。

它通过迭代更新每个节点的最短距离来求解最短路径。

Bellman-Ford算法可以处理带有负权边的图,这在实时路径规划中非常有用。

然而,该算法的时间复杂度较高,在大规模图中的应用受到限制。

4. 强化学习算法强化学习算法是一种使用奖励机制来学习行为策略的算法。

在无人驾驶汽车实时路径规划中,强化学习算法可以通过与环境交互来学习最优行为策略。

通过不断试错和调整策略,无人驾驶汽车可以根据实时情况选择最佳路径。

强化学习算法在无人驾驶汽车领域具有广泛的应用前景。

除了上述算法,还有许多其他的无人驾驶汽车实时路径规划算法,如深度学习算法、遗传算法等。

自动驾驶技术的路径规划算法

自动驾驶技术的路径规划算法

自动驾驶技术的路径规划算法随着科技的不断进步,自动驾驶技术正逐渐成为现实,并引起了广泛的关注和讨论。

作为实现自动驾驶的核心技术之一,路径规划算法起到了至关重要的作用。

本文将介绍自动驾驶技术中的路径规划算法及其在智能交通系统中的应用。

一、路径规划算法概述路径规划算法是自动驾驶技术中的关键环节之一,其目的是根据车辆当前位置、目标位置和环境信息等因素,确定一条安全且高效的路径。

路径规划算法通常分为全局路径规划和局部路径规划两个阶段。

全局路径规划是在起点和目标点之间进行的,主要考虑道路情况、交通规则和车辆的运行限制等因素。

常见的全局路径规划算法包括A*算法、Dijkstra算法和遗传算法等。

局部路径规划是在车辆行驶过程中进行的,用于实时根据周围环境信息进行调整,以应对突发情况和优化路径。

典型的局部路径规划算法有基于速度调整的动态窗口方法和基于采样的方法等。

二、A*算法A*算法是一种常用的全局路径规划算法,其核心思想是通过启发式函数估计当前位置到目标位置的最短路径,并按照一定的策略进行搜索。

A*算法综合考虑了路径的代价和启发值,同时具有较强的实时性能和搜索效率。

A*算法的流程可以简单描述为以下几步:1. 初始化起点和终点,并定义启发式函数。

2. 初始化开放列表和关闭列表。

3. 将起点添加到开放列表。

4. 从开放列表中选择估值最小的节点作为当前节点。

5. 遍历当前节点的相邻节点,并计算估值函数值。

6. 若终点在相邻节点中,搜索结束,返回最优路径。

7. 将当前节点添加到关闭列表,并继续搜索下一个最优节点。

8. 若开放列表为空,则搜索失败,不存在可行路径。

三、遗传算法遗传算法是一种基于自然选择和遗传机制的全局路径规划算法,借鉴了达尔文的进化论思想。

遗传算法通过模拟种群的遗传进化过程,迭代搜索最佳路径。

遗传算法的基本步骤如下:1. 初始化种群,将每个个体表示为一条路径。

2. 根据适应度函数评价每个个体的适应度。

3. 选择父代个体进行交叉和变异操作。

自动驾驶车辆中的路径规划算法

自动驾驶车辆中的路径规划算法

自动驾驶车辆中的路径规划算法自动驾驶技术的快速发展使得自动驾驶车辆逐渐成为现实。

而在实现自动驾驶的过程中,路径规划算法起到了至关重要的作用。

路径规划算法主要负责确定车辆在行驶过程中的最优路径,以保证车辆的安全、高效和舒适性。

本文将讨论自动驾驶车辆中常用的路径规划算法以及其工作原理和优缺点。

1. A*算法A*算法是一种常用的启发式搜索算法,在自动驾驶车辆中被广泛应用于路径规划任务。

A*算法基于启发式函数和代价函数来评估每个可能的节点,并选择具有最小代价的节点作为下一步的前进方向。

其优点在于在保证最短路径的同时,具有较高的搜索效率。

然而,A*算法在处理复杂环境和障碍物时可能产生局部最优解的问题。

2. Dijkstra算法Dijkstra算法是一种常见的无向加权图的最短路径算法,也在自动驾驶车辆中得到了广泛的应用。

Dijkstra算法通过构建节点之间的图,并通过累积最小代价的方式来确定最优路径。

其优点在于可以得到全局最优解,但在处理大规模图时存在计算复杂度较高的问题。

3. 动态规划算法动态规划算法在自动驾驶车辆中的路径规划问题中也有一定的应用。

动态规划算法将问题划分为多个子问题,并通过计算每个子问题的最优解来得到全局最优解。

在路径规划中,动态规划算法可以通过将车辆位置离散化为网格,并通过状态转移方程来计算每个网格的最小代价,从而确定最优路径。

然而,动态规划算法的计算复杂度也很高,尤其是当存在大量的状态空间时。

4. 遗传算法遗传算法是一种模拟生物进化过程的搜索算法,通过模拟自然选择、交叉和变异的过程来搜索最优解。

在自动驾驶车辆中的路径规划问题中,遗传算法通过将每个路径表示为染色体,并通过交叉和变异操作来生成新的路径。

然后通过适应度函数来评估每个路径的质量,并选择具有高适应度的路径作为下一代的种群。

遗传算法的优点在于能够找到全局最优解,但计算复杂度较高且对参数设置较为敏感。

综上所述,自动驾驶车辆中的路径规划算法是多种多样的。

自动驾驶汽车中的路径规划算法性能分析

自动驾驶汽车中的路径规划算法性能分析

自动驾驶汽车中的路径规划算法性能分析自动驾驶汽车的发展已经取得了巨大的进步,并且越来越多的人开始着眼于这一技术的商业应用和日常生活中的潜力。

路径规划是自动驾驶汽车中的一个重要环节,它决定了车辆在多样的交通场景中选择最佳的行进路径。

在这篇文章中,我们将对自动驾驶汽车中常用的路径规划算法进行性能分析,并讨论它们的优缺点。

首先,最经典的路径规划算法之一是Dijkstra算法。

Dijkstra算法是一种单源最短路径算法,它通过计算出车辆到目标点的最短路径来进行路径规划。

该算法的主要优点是能够找到全局最优解,并且在小规模地图上的计算速度较快。

然而,Dijkstra算法在处理大规模地图时的计算复杂度较高,因为它需要计算所有节点之间的最短路径,这限制了它在实际应用中的使用。

为了解决Dijkstra算法的局限性,A*算法应运而生。

A*算法结合了Dijkstra算法和启发式搜索的思想,通过使用估计函数来优化搜索过程。

估计函数可以根据车辆到目标点的距离进行设置,从而更好地指导搜索方向。

A*算法在计算时间上快于Dijkstra算法,并且在大规模地图上具有较好的性能。

然而,A*算法也有一些缺点,即当估计函数不准确时,可能会导致找到的路径不是最优解。

除了基于图的算法,还有基于采样的路径规划算法,其中最常见的是RRT(Rapidly-exploring Random Tree)算法。

RRT算法通过随机采样和树结构的构建来进行路径规划。

该算法的主要优点是能够处理复杂的环境和非凸障碍物,且运算速度较快。

然而,RRT算法在路径长度和时间上的优化能力相对较弱,可能会找到一条相对绕路的路径。

除了上述算法,还有一些新兴的路径规划算法被提出,如D* 算法、D* Lite 算法、RRT* 算法等。

这些算法在性能上进行了进一步的优化和改进,以实现更高效、更准确的路径规划。

在进行路径规划算法的性能分析时,我们需要考虑以下几个方面:计算时间、路径长度、适用场景和算法复杂度。

汽车智能驾驶系统中的路径规划算法优化

汽车智能驾驶系统中的路径规划算法优化

汽车智能驾驶系统中的路径规划算法优化第一部分:引言汽车智能驾驶技术目前已成为追求更安全和更高效交通的主要发展方向。

在汽车智能驾驶系统中,路径规划算法扮演着至关重要的角色,因为它需要根据一系列输入(如车辆速度、目标位置、道路条件、交通流量等)产生一条可行且合理的路径。

如何在道路拥堵、转弯紧急、预测人行横穿等复杂的交通场景下,快速地确定车辆的行进路线,优化行驶时间,保证交通安全成为汽车智能驾驶系统需要解决的关键问题之一。

那么,如何优化汽车智能驾驶系统中的路径规划算法呢?第二部分:智能驾驶系统中的路径规划算法经典的路径规划算法分为两类:全局路径规划算法和局部路径规划算法。

全局路径规划算法从起点到目的地规划一条路线。

该算法在距离目的地较远的情况下表现良好,但是在行驶中遇到非法车辆、工作人员维修、道路封锁等情况时,需要重新规划整个路径,在速度和精度方面存在一定的缺陷。

局部路径规划算法则更侧重于通过根据周围环境变化的自适应方法来避免车辆与前方障碍物的碰撞。

在运行速度和响应时间方面表现更优,但局部路径规划算法没有考虑到交通流量、速度和路况等因素,可能会导致车辆掉入局部最优解。

目前,与传统路径规划算法相比,人工智能算法在自动驾驶车辆中公认为更为高效和准确。

其核心思想是通过机器学习来指导自动驾驶车辆确定最优路径。

特别是深度学习技术的广泛应用使路径规划算法的准确性得到了进一步提升。

第三部分:智能驾驶系统中路径规划算法的优化1. 推进自动驾驶车辆与基础设施之间的信息交换该方法推进车辆之间的信息交换,降低交通堵塞。

例如,当交通系统预测到一个拥堵时,则将该信息发送到自动驾驶车辆中,以便它们能够在规划路径时自动选择不易受拥堵影响的路线。

另外,在车辆与基础设施之间的信息交换中,通过对路面的监测并集成记录的可靠路况数据,智能驾驶系统能够规避那些艰巨的交通情况,例如交通堵塞、道路工程和突发事件。

2. 嵌入更智能的算法该方法通过增加数据来源和使用更高级的算法,实现更高的路径规划精度和准确性,并且更好地理解车辆运动规律。

浅析自动驾驶汽车路径规划算法

浅析自动驾驶汽车路径规划算法

浅析自动驾驶汽车路径规划算法自动驾驶汽车的路径规划算法最早源于机器人的路径规划研究,但是就工况而言却比机器人的路径规划复杂得多,自动驾驶车辆需要考虑车速、道路的附着情况、车辆最小转弯半径、外界天气环境等因素。

本文将为大家介绍四种常用的路径规划算法,分别是搜索算法、随机采样、曲线插值和人工势场法。

1.搜索算法搜索算法主要包括遍历式和启发式两种,其中Dijkstra算法属于传统的遍历式,A*算法属于启发式,在A*算法的基础上,还衍生出了D*Lite算法、Weighted A*算法等其他类型。

Dijkstra算法最早由荷兰计算机学家狄克斯特拉于1959年提出,算法核心是计算从一个起始点到终点的最短路径,其算法特点是以起始点开始向周围层层扩展,直到扩展到终点为止,再从中找到最短路径,算法搜索方式如图(1-1)所示。

A*算法在Dijkstra算法上结合了最佳优先算法,在空间的每个节点定义了一个启发函数(估价函数),启发函数为当前节点到目标节点的估计值,从而减少搜索节点的数量从而提高效率。

A*算法中的启发函数包括两部分,表示从初始点到任意节点n的代价,表示节点n到目标点的启发式评估代价,在对象从初始点开始向目标点移动时,不断计算的值,从而选择代价最小的节点。

一般来说遍历式算法可以取得全局最优解,但是计算量大,实时性不好;启发式算法结合了遍历式算法以及最佳优先算法的优点,具有计算小、收敛快的特点。

图(1-2)是最佳优先算法示意图,可以看出该算法有一定的选择性,但是面对图中的u型障碍物会出现计算效率低的情况。

而A*算法完美的结合了Dijkstra算法和最佳优先算法,不仅有一定的选择性,并且计算量相对也是最少的,更快得找到了最短路径。

2.随机采样随机采样主要包括蚁群算法以及RRT(快速扩展随机树)算法。

蚁群算法是由Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。

其算法基本原理如下:1.蚂蚁在路径上释放信息素。

无人驾驶车辆的路径规划

无人驾驶车辆的路径规划

未来发展方向和趋势
深入研究与开发:针对特定场景的路径规划算法研 究,提升无人驾驶车辆的决策能力
融合感知与决策:利用多传感器融合技术,提高无 人驾驶车辆的环境感知精度和鲁棒性
强化学习与人工智能:应用深度学习、强化学习等 技术,提升无人驾驶车辆的决策能力和自主性
5G与V2X通信:利用5G和V2X通信技术,实现车 与车、车与路、车与云的智能互联,提升无人驾驶 车辆的感知和决策能力
技术支持:自动驾驶出租车需要依靠先进的传感器、计算机视觉、高精度地图等技术支持,来 实现对周围环境的感知和决策。
发展前景:随着技术的不断进步和政策的逐步放开,自动驾驶出租车有望在未来成为城市出行 的重要方式之一,为人们提供未来趋势
技术创新推动发展
重要性:路径规划是无人 驾驶车辆自主导航的关键 技术之一,能够提高车辆 的行驶安全性和效率
无人驾驶车辆路径规划的特点
安全性:在无人驾驶车辆路径规划中,安全性是首要考虑的因素。规划算法应该能够考虑到车辆的行驶环境、交通规 则以及车辆自身的性能参数,确保车辆在行驶过程中不会发生危险情况。
实时性:无人驾驶车辆路径规划需要具有实时性,能够快速响应车辆的行驶需求。在复杂的交通环境下,车辆需要 不断地更新其路径规划,以适应不同的交通情况。
避障路径规划算法
紧急制动与避撞系统
安全距离预警与控制 技术
无人驾驶车辆路径规 划的实际应用
在城市交通中的应用
交通拥堵的缓解:通过路径规划技术,无人驾驶车辆能够选择最佳行驶 路径,减少拥堵情况。
行驶安全性的提高:通过精确的路径规划,无人驾驶车辆能够更准确、 稳定地行驶,减少交通事故的发生。
行驶效率的提升:通过路径规划技术,无人驾驶车辆能够优化行驶路径, 提高行驶效率。

智能驾驶技术的道路规划方法

智能驾驶技术的道路规划方法

智能驾驶技术的道路规划方法智能驾驶技术是当今科技领域的热门话题之一。

通过传感器、人工智能和实时数据处理等先进技术的应用,智能驾驶系统可以模拟人类驾驶员的判断和决策能力,实现自动驾驶。

其中,道路规划作为智能驾驶系统的重要组成部分,扮演着决定车辆行驶路径和避免交通事故的关键角色。

本文将介绍智能驾驶技术的道路规划方法,并探讨其在实际应用中的挑战与前景。

一、传统的道路规划方法在介绍智能驾驶技术的道路规划方法之前,我们先了解一下传统的道路规划方法。

传统车辆导航系统通过使用地图数据和基本的导航算法,为驾驶员提供最短路径或最快路径的规划结果。

这种方法主要考虑交通状况和道路限制等因素,但缺乏对周围环境和其他车辆的感知与分析能力,无法做出准确的决策。

二、传感器感知与数据处理智能驾驶技术的道路规划方法与传统方法相比,最大的区别在于引入了传感器感知与数据处理。

智能驾驶系统通过激光雷达、摄像头、雷达等多种传感器实时获取道路、交通和环境等信息,并通过数据处理技术对所获取到的大量数据进行处理和分析。

这种方法使得智能驾驶系统可以实时感知整个道路环境,包括其他车辆、行人、交通标志等,为车辆的道路规划提供更加准确的依据。

三、路径规划算法智能驾驶技术的道路规划方法的核心在于路径规划算法。

下面将介绍几种常见的路径规划算法。

1. A* 算法:A* 算法是一种基于图论的搜索算法,通过评估启发函数和代价函数,找到从起点到终点的最短路径。

该算法在路径规划中被广泛使用,但由于复杂的路径搜索可能导致计算时间过长。

2. RRT 算法:RRT (Rapidly-exploring Random Tree) 算法是一种随机采样算法,通过生成与树结构相似的样本来探索环境。

它可以快速搜索到一条避开障碍物的路径,适用于动态环境下的路径规划。

3. D* Lite 算法:D* Lite 算法是一种增量路径规划算法,可以在环境发生变化时高效地进行路径更新。

该算法实时更新行驶路径,同时保证计算开销的最小化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何安全有效的规划行驶路线,是自动驾驶汽车需解决的最大的难题之一。

事实上,路径规划技术,现阶段是一个非常活跃的研究领域。

路径规划之所以如此复杂,是因为其涵盖了自动驾驶的所有技术领域,从最基础的制动器,到感知周围环境的传感器,再到定位及预测模型等等。

准确的路径规划,要求汽车要理解我们所处的位置以及周边的物体(其他车辆、行人、动物等)会在接下来的几秒钟内采取什么样的行为。

另一项关键技术是轨迹生成器(trajectory generator),其产生输入路径规划算法的参考轨迹。

本期重点介绍一种基于C++开发的高速公路路径规划算法。

该算法利用jerk minimisation技术,可在模拟器中生成安全且高效的行驶路径。

·本算法的一些假设如下:
·任何情况下,不会与其他车辆发生事故
·最大行驶速度为80KMH
·最大加速度为10m/s2
·最大jerk为10m/s3
·车辆在不同车道之间不超过3s
·车辆不能超出高速的3条车道
·车辆不能逆向行驶
本算法的开发难度非常之大
1.自动驾驶汽车的功能层
首先,我们来详细的研究下自动驾驶汽车的功能层(Functional laxxxxyers)。

路径规划需要自动驾驶汽车不同功能层之间的合作、协调。

上图给出了一个自动驾驶系统的功能层的配置形式:
·动作控制层:负责控制汽车,使其尽可能的按照“设定的”轨迹形式。

该层需要最快的反应速度;
·传感器融合层:负责合并个传感器的输出(如雷达和激光雷达)
·定位层:负责尽可能准确的在地图上定位车辆的位置,并计算其他物体相对于车辆的位置·预测层:负责识别传感器检测到的物体的性质(又名感知),并根据汽车当前的轨迹、其他车辆的轨迹和场景中的各种元素(如交通灯)预测场景中近未来的变化。

这个层的一个重要任务是预测冲突。

·行为层:该层的主要作用是协调。

根据底层的输入信息来决定如何调整行车轨迹
·轨迹层:负责计算既定条件(速度、距离、车道、jerk等等)下的行车轨迹
生成行车轨迹的方法很多,这里我们采用了Frenet Coordiante System方法。

2.传感器融合层的意义
我们在模拟器中为车辆设置了一系列传感器,它们的输出融合在一起以产生更精确的测量结果。

大多数在Level4上的自动驾驶汽车公司在他们的传感器套件中使用雷达、激光雷达和照相机。

拥有多种不同类型的传感器至关重要,因为每种传感器都有各自的优缺点。

此外,对于同种传感器进行冗余设计,可以减轻传感器故障带来的影响。

在本算法中,模拟器可以提供以下传感器融合功能:
·车辆的位置、速度和方向
·其他车辆的位置和速度
·上次提交的车辆行驶轨迹
通过以上信息,我们可以计算车辆与其他车辆的准确距离,并通过行车轨迹来预测与其他车辆的碰撞可能性。

下面我们详细介绍轨迹生成器(Trajectory Generation)。

3.Frennt坐标系
通常,我们习惯使用笛卡尔坐标系来定义空间点的位置。

但在现实中,道路往往不是“笔直”的,因此对于人类非常简单的操作(如判断车辆在哪条车道),在电脑的笛卡尔坐标系中,往往是难以准确定义的。

下图展示了我们使用笛卡尔坐标系时所面临的问题:
笛卡尔坐标系中的曲线车道
设想一下,如果我们采用的坐标系可以反映道路的曲率,那么在新的坐标系下车辆向前行驶并保持在车道内的轨迹就会变成一条直线,这会大大简化路径规划的难度。

而Frenet坐标系正可以实现我们的设想。

不同坐标系下的行车轨迹:Frenet(左)vs 笛卡尔坐标系(右)
在Frenet坐标系中,可以平面上的点的位置可以由纵轴和横轴定位分别记为S和D 。

其背后的数学原理非常复杂,在此我们不进行累述。

你可以认为穿过道路中心的曲线决定了S轴,并指出了车辆在路上走了多远;D轴则映射为车辆的侧向位移。

下图显示了弯曲道路在Frenet坐标系上的样子:
4.轨迹平滑处理
我们假设车道已经被预先映射,并且提供了沿着中黄线的路径点,这条中黄线分隔了公路的两边。

这有助于我们确定我们在最近的路径点上的位置。

由于我们所设置的路径点非常稀疏,当我们试图将Frenet转换回真实世界坐标时,会产生带折角的轨迹。

这反过来又会导致车辆突然的加速和颠簸。

由于函数toRealWorld(s d) -> (x y)使用两个路径点之间的线性插值,来确定x和y的最佳逼近值,我们总是冒着产生非平滑轨迹的风险。

如何进行改善呢?在之前分享的算法中,我们发现由多项式拟合的曲线往往会产生非常平滑的轨迹。

因此,我们用多项式拟合来替代线性插值。

利用在Frenet坐标系中取位置s来创建样
条,得到真实世界的坐标(x y)和偏移量(dx和dy),然后代入这个公式,得到最接近真实世界的坐标点。

x = spline_s_x(s) + d * spline_s_dx(s)
y = spline_s_y(s) + d * spline_s_dy(s)
仿真后可以看到,经过优化的行车轨迹非常平滑。

5.状态控制机制
路径规划的另一个问题是,人类可以根据驾驶方式、环境信息以及目的地,将汽车转换到不同的状态。

事实证明,我们可以将机车辆的状态编入字典,并指导它们根据当前状态,将自动驾驶系统的其他层转换到哪些状态。

在算法中,我们的状态控制机制非常简单,如下所示:
最终的状态控制机制
最常见的状态是保持车道,但每当我们想要改变车道,汽车将首先过渡到准备换车道的左/右
状态,并在确保转换车道是安全的。

在换车道前进入的中间状态,类似于车辆在换车道前打
开左/右信号。

关于状态机的实现,我们在Frenet坐标上获得了灵感。

我们将一个给定的状态分解为它的纵
向和横向分量。

纵向状态代表保持当前车道,横向状态代表我们可能会进入的下一个状态,
而损失函数(Cost Function)则倾向于选择纵向状态。

6.损失函数
鉴于我们通常会返回多个候选状态以及轨迹,我们必须找到一种选择“最佳”行动路线的方法。

我们用损失函数来解决该问题。

损失函数可以教会汽车我们想要的合理行为,以及通过不同
的权重来惩罚哪些行为。

我们所有的成本损失函数都遵循在cost_functions文件中定义的接口:
7.最终结果
可以看到,当前我们设计的路径规划器运行得相当好,可以确保车辆在车道上安全有效的行
驶。

后续,我们计划通过调整权重、改进损失函数以及在预测层中加入机器学习算法来进一步优化。

相关文档
最新文档