CN113496189B - 基于静态障碍物地图的感知方法及*** - Google Patents

基于静态障碍物地图的感知方法及*** Download PDF

Info

Publication number
CN113496189B
CN113496189B CN202011548264.2A CN202011548264A CN113496189B CN 113496189 B CN113496189 B CN 113496189B CN 202011548264 A CN202011548264 A CN 202011548264A CN 113496189 B CN113496189 B CN 113496189B
Authority
CN
China
Prior art keywords
static
perception
adv
obstacles
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011548264.2A
Other languages
English (en)
Other versions
CN113496189A (zh
Inventor
朱帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/840,278 external-priority patent/US11556127B2/en
Application filed by Baidu USA LLC filed Critical Baidu USA LLC
Publication of CN113496189A publication Critical patent/CN113496189A/zh
Application granted granted Critical
Publication of CN113496189B publication Critical patent/CN113496189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本公开提供一种基于静态障碍物地图的感知方法及***。利用在离线地图生成过程中检测到的区域的静态物体来辅助自主驾驶车辆(ADV)的在线感知算法。离线地图生成过程可以收集相同区域的多个点云数据。感知算法可以对点云数据进行操作以检测静态物体,静态物体可以是在点云数据之间不改变的固定道路特征,从而允许感知算法更准确地检测静态物体。在ADV通过区域的在线操作期间,ADV可以修整区域的感兴趣区域(ROI)以排除预定义的静态物体。感知算法可以实时执行ROI的传感器数据以检测ROI中的物体。可以将预定义的静态物体添加回感知算法的输出,以完成感知输出。

Description

基于静态障碍物地图的感知方法及***
技术领域
本公开的实施例一般涉及操作自主车辆。更特别地,本公开的实施例涉及用于辅助自主驾驶车辆(autonomous driving vehicle,ADV)执行的感知算法的方法和***。
背景技术
以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当以自主模式操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在没有任何乘客的一些情况下行驶。
运动规划和控制是自动驾驶中的关键操作。运动规划和控制操作的安全性、准确性和效率取决于ADV感测和预测运动中的障碍物(例如其他车辆或行人)的运动以及识别非运动物体的能力。例如相机、激光雷达(LIDAR)单元,雷达等传感器用于捕获车辆周围环境的视频和电磁图像。ADV可以处理由传感器捕获的信息,以感知包括ADV周围的障碍物、交通要素和道路特征的驾驶环境,以规划和控制ADV的运动。
为了识别ADV周围的物体并预测附近车辆的运动或轨迹,ADV的感知模块可以利用基于捕获到传感器数据操作的神经网络。运动规划和控制操作可以根据周围环境的预先生成的高清(high definition,HD)地图来处理由感知模块检测到的物体,以安全地导航ADV。高清地图可以包括道路信息,例如道路边界、车道配置及地形等。在某些情况下,捕获的传感器数据可能没有足够的具体信息使感知模块能够检测所有周围的物体。
发明内容
在第一方面中,提供一种用于辅助ADV的感知算法的方法,所述方法包括:
从一个或多个传感器收集区域的多个点云数据;
对多个点云数据运行感知算法以检测所述区域的多个障碍物;
从多个障碍物中移除一个或多个移动障碍物和一个或多个可移动的静态障碍物,以产生多个静态障碍物;以及
记录静态障碍物的至少子集作为与所述区域相关联的预定义静态障碍物集合,以辅助ADV的感知算法实时检测所述区域的物体。
在第二方面中,提供一种非暂时性机器可读介质,具有存储于其中的指令,所述指令在由处理器执行时,使所述处理器执行如第一方面所述的方法的操作。
在第三方面中,提供一种数据处理***,包括:
处理器;以及
耦接到处理器的存储器,用于存储指令,在处理器执行指令时,使处理器执行如第一方面所述的方法的操作。
在第四方面中,提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面所述的方法的操作。
根据本发明,ADV的感知模块可以使用来自地图生成过程的信息来改善在ADV的环境中对静态物体的检测,从而产生更好的感知结果以用于规划和控制ADV的运动。
附图说明
本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。
图1是示出根据一个实施例的联网***的框图。
图2是示出根据一个实施例的自主车辆的示例的框图。
图3A-3B是示出根据一个实施例的与自主驾驶车辆一起使用的感知和规划***的示例的框图。
图4是示出根据一个实施例的自动驾驶***的架构的框图。
图5是示出根据一个实施例的感知和规划***的示例的框图,感知和规划***利用在离线高清地图收集过程中映射得到的周围环境的静态障碍物来帮助在线检测物体。
图6是示出根据一个实施例的高清地图生成***的示例的框图。
图7是示出根据一个实施例的用于在高清地图收集过程中生成绘制的静态障碍物的方法的示例的流程图。
图8是示出根据一个实施例的感知算法利用在高清地图收集过程中检测到的静态障碍物以帮助物体的在线感知的方法的示例的流程图。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。
说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。
ADV的运动规划和控制取决于ADV感知其周围驾驶环境的能力,例如检测ADV附近的移动车辆或行人的轨迹以及交通要素的位置、道路特点和其他非移动物体。为了识别ADV周围的物体并预测附近车辆的运动或轨迹以安全导航ADV,ADV的感知模块可以使用在感知传感器(例如LIDAR)捕获的数据上操作的神经网络。感知模块检测到的物体可以包括例如移动的车辆、行人、骑行者等的移动物体以及静态物体。一些静态物体可以是固定的道路要素,例如护栏、横梁、交通标志、树木、建筑物等,而一些静态物体可以是静止但可以移动的物体,例如停放的车辆、交通锥、临时路标等。
ADV的运动规划和控制操作可以处理关于由感知模块检测到的物体的信息以及关于由高清地图提供的交通要素的信息,以在环境中导航ADV,高清地图包含诸如道路边界、车道配置、地形等运行环境的信息。高清地图可以在离线过程中构造,在离线过程中,绘制车辆的感知传感器(例如,LIDAR传感器)捕获要被绘制的区域的数据点。数据点称为点云,并且对应于在捕获数据点的特定时间点处的传感器的姿态(例如,位置和方向)。传感器通过多个姿态捕获的点云用于构建区域的高清地图。
为了生成高清地图,绘制车辆可以捕获相同区域的数个点云数据。例如,绘制车辆可以沿路线行驶数圈以捕获路线的多个点云数据。地图生成过程可以组合多个点云数据,并且可以在点云数据上运行感知算法以构造路线的准确高清3D地图。由于相同区域的点云可以被多次捕获,因此组合的点云数据拥有在点云捕获期间不发生变化的物体的更多详细信息,从而改善了对这些静态物体的检测。公开了用于使用关于在地图生成过程中检测到的静态物体的信息以帮助感知算法实时地导航ADV通过地图覆盖的区域的方法和***。ADV的感知模块可以使用来自地图生成过程的信息来改善在ADV的环境中对静态物体的检测,从而产生更好的感知结果以用于规划和控制ADV的运动。
根据一些实施例,公开了一种用于辅助ADV的感知算法的方法。方法包括从传感器收集区域的多个点云数据。方法还包括在多个点云数据上运行感知算法以检测该区域的物体。方法还包括移除静止障碍物和相对于检测到的物体可以移动的移动障碍物,以生成针对该区域的静态障碍物。该方法还包括将静态障碍物保持并记录为一组预定义的静态障碍物(也称为离线生成的、预定的或预先识别的静态障碍物),这将用于辅助ADV的感知算法来实时检测该区域的物体。
根据一些实施例,公开了一种用于使用区域的预定静态障碍物来辅助ADV的在线感知算法的方法。方法包括接收区域的预定静态障碍物和区域的传感器数据。方法还包括处理区域的传感器数据以修整区域的感兴趣区域(regions of interest,ROI)以排除预定的静态障碍物。方法还包括在ROI的传感器数据上实时运行ADV的感知算法,以生成部分感知结果。方法还包括将已经从ROI中排除的预定义静态障碍物添加回部分感知结果,以完成来自感知算法的区域的感知输出。
图1是示出根据本公开的一个实施例的自主车辆网络配置的框图。参照图1,网络配置100包括可以通过网络102通信耦接到一个或多个服务器103-104的自主车辆101。尽管示出了一个自主车辆,但是多个自主车辆可以彼此耦接和/或通过网络102耦接到服务器103-104。网络102可以是任何类型的有线或无线网络,例如局域网(LAN)、广域网(WAN)(例如Internet)、蜂窝网络、卫星网络或其组合。服务器103-104可以是任何种类的服务器或服务器集群,例如Web或云服务器、应用程序服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或位置服务器等。在一个实施例中,自主车辆101可以从服务器103或104下载高清地图以用于运动规划和控制。
自主车辆是指可以配置为处于自主模式的车辆,在自主模式下,车辆在驾驶员很少或没有驾驶的情况下在环境中导航。这种自主车辆可以包括具有一个或多个传感器的传感器***,一个或多个传感器被配置为检测关于车辆在其中运行的环境的信息。车辆及其关联的控制器使用检测到的信息在环境中导航。自主车辆101可以在手动模式、完全自主模式或部分自主模式下操作。
在一个实施例中,自主车辆101包括但不限于感知和规划***110、车辆控制***111、无线通信***112、用户接口***113和传感器***115。自主车辆101还可包括在普通车辆中包括的某些通用部件,例如发动机、车轮、方向盘、变速器等,可以由车辆控制***111和/或感知和规划***110使用各种通信信号和/或命令,例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等来控制这些部件。
组件110-115可以经由互连、总线、网络或其组合在通信上彼此耦接。例如,组件110-115可以经由控制器局域网(CAN)总线彼此通信耦接。CAN总线是一种车辆总线标准,被设计为允许微控制器和设备在没有主机的应用中相互通信。它是基于消息的协议,最初是为车辆内的多路电气布线而设计的,但也用于许多其他情况。
现在参考图2,在一个实施例中,传感器***115包括但不限于一个或多个相机211、全球定位***(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光检测和测距(LIDAR)单元215。GPS***212可以包括收发器,收发器可操作以提供关于自主车辆的位置的信息。IMU单元213可以基于惯性加速度来感测自主车辆的位置和方向改变。雷达单元214可以表示利用无线电信号来感测自主车辆的局部环境内的对象的***。在一些实施例中,除了感测对象之外,雷达单元214还可以感测对象的速度和/或前进方向。LIDAR单元215可以使用激光感测自主车辆所处的环境中的对象。LIDAR单元215可以包括一个或多个激光源、激光扫描仪以及一个或多个检测器以及其他***组件。相机211可以包括一个或多个设备以捕获自主车辆周围的环境的图像。相机211可以是静物照相机和/或摄像机。相机可以是机械可移动的,例如通过将相机安装在旋转和/或倾斜的平台上。
传感器***115还可包括其他传感器,例如,声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如,麦克风)。音频传感器可以被配置为从自主车辆周围的环境捕获声音。转向传感器可以被配置为感测车辆的方向盘、车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在某些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感器。
在一个实施例中,车辆控制***111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201用于调整车辆的方向或行驶方向。油门单元202用于控制电动机或发动机的速度,进而控制车辆的速度和加速度。制动单元203通过提供摩擦以使车辆的车轮或轮胎减速来使车辆减速。注意,图2中所示的组件可以以硬件、软件或其组合来实现。
再次参考图1,无线通信***112允许自主车辆101与外部***(例如设备、传感器、其他车辆等)之间的通信。例如,无线通信***112可以直接或通过通信网络与一个或多个设备无线通信,例如,通过网络102与服务器103-104通信。无线通信***112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如使用WiFi与另一个组件或***进行通信。无线通信***112可以例如使用红外链路、蓝牙等与设备(例如,乘客的移动设备、显示设备、车辆101中的扬声器)直接通信。用户接口***113可以是在车辆101内实现的***设备的一部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。
自主车辆101的某些或全部功能可以由感知和规划***110控制或管理,特别是在以自主驾驶模式操作时。感知和规划***110包括必要的硬件(例如,处理器、内存、存储器)和软件(例如,操作***、规划和路由程序),以从传感器***115、控制***111、无线通信***112和/或用户接口***113接收信息,处理接收到的信息,规划从起点到目的地点的路线或路径,然后基于规划和控制信息驾驶车辆101。可替代地,感知和规划***110可以与车辆控制***111集成。
例如,作为乘客的用户可以例如经由用户接口指定行程的起始位置和目的地。感知和规划***110获得行程相关数据。例如,感知和规划***110可以从MPOI服务器获得位置和路线信息,MPOI服务器可以是服务器103-104的一部分。位置服务器提供位置服务,MPOI服务器提供地图服务和某些位置的POI。可替代地,这样的位置和MPOI信息可以本地缓存在感知和规划***110的永久性存储设备中。在一个实施例中,可以从服务器103-104下载的高清地图获得位置和MPOI信息。
当自主驾驶车辆101沿着路线行驶时,感知和规划***110还可以从交通信息***或服务器(TIS)获得实时交通信息。要注意的是,服务器103-104可以由诸如服务提供商的第三方实体来操作,该服务可以将开始位置和目的地位置下载到感知和规划***110以用于感知和规划***110来规划路线。第三方还可以向感知和规划***110发出指令,命令自主车辆101开始在规划的路线上行驶。可替代地,服务器103-104的功能可以与感知和规划***110集成。基于实时交通信息,MPOI信息和位置信息,以及由传感器***115检测或感知到的实时本地环境数据(例如,障碍物、对象、附近的车辆),感知和规划***110可以规划最佳路线,并例如经由控制***111根据规划的路线驾驶车辆101以安全有效地到达指定目的地。
服务器103可以是为各种客户端执行数据分析服务的数据分析***。在一个实施例中,数据分析***103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆收集驾驶统计数据123,这些车辆可以是自主驾驶车辆或由人类驾驶员驾驶的常规车辆。驾驶统计数据123包括指示所发出的驾驶命令(例如,油门、制动器、转向命令)信息以及车辆传感器在不同的时间点捕获的车辆响应信息(例如,速度、加速、减速、方向)。驾驶统计数据123可以进一步包括描述在不同时间点的驾驶环境的信息,例如路线(包括起点和目的地位置)、MPOI、道路状况、天气状况等。驾驶统计数据123可以进一步包括由IMU和GPS传感器捕获的姿态,描述车辆的位置和方向。
基于驾驶统计数据123,机器学习引擎122出于各种目的而生成或训练一组规则、算法和/或预测模型124。在一个实施例中,算法124可以包括深度学习神经网络模型,用于预测自主驾驶车辆101的环境中其他车辆的轨迹,以使感知和规划***110能够导航自主驾驶车辆101以避免与其他车辆碰撞。
在一些实施例中,数据分析***103可以针对由自动车辆101的传感器***115捕获的环境收集多个点云数据,以生成环境的高清图。感知和规划***110可以在离线地图生成过程中处理多个点云数据,以在生成地图时检测静态物体。数据收集器121可以对检测到的静态物体和检测到的静态物体的信息进行记录。如所提到的,机器学习引擎122可以训练感知和规划***110中深度学习神经网络的规则、算法和/或预测模型124。感知和规划***110可以利用训练后的规则、算法和/或预测模型124和来自离线地图生成过程的有关检测到的静态物体信息,并基于传感器***115捕获的数据,来实时检测自动驾驶汽车101环境中的物体。
算法124可以上传到ADV上,在自动驾驶期间实时使用,或者可以由其他模块(例如服务器103中的障碍物追踪引擎125)使用。在一个实施例中,障碍物追踪引擎125可以基于移动障碍物的过去轨迹和移动障碍物所处的环境,预测诸如自主驾驶车辆101周围的车辆或行人的移动障碍物的近期运动或轨迹。尽管障碍物追踪引擎125被显示为服务器103的一部分,但是在某些实施例中,引擎125可以是服务器104的一部分。
图3A和3B是示出根据一个实施例的与自主驾驶车辆一起使用的感知和规划***的示例的框图。***300可以被实现为图1的自主驾驶车辆101的一部分,包括但不限于感知和规划***110、控制***111和传感器***115。参照图3A-3B,感知和规划***110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306、路由模块307和静态物体绘制模块308。
模块301-308中的一些或全部可以以软件、硬件或其组合来实现。例如,这些模块可以被安装在永久性存储设备352中,被加载到存储器351中,并且由一个或多个处理器(未示出)执行。可替代地,这样的组件可以被实现为可执行的编程代码或嵌入到专用硬件中,例如,集成电路(例如,应用程序特定的IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),可以通过相应的驱动程序和/或操作***从应用程序进行访问。此外,这样的组件可以被实现为处理器或处理器核心中的特定硬件逻辑,作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。要注意的是,这些模块中的一些或全部可以通信耦接到图2的车辆控制***111的一些模块或与之集成。模块301-308中的一些可以被集成为集成模块。例如,决策模块304和规划模块305可以集成为单个模块。
定位模块301确定自主车辆300的当前位置(例如,利用GPS单元212),并管理与用户的行程或路线有关的任何数据。定位模块301(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。用户可以通过例如用户界面登录并指定旅程的开始位置和目的地。定位模块301与自主驾驶车辆300的其他组件通信,例如地图和路线信息311,以获得与旅程相关的数据。例如,定位模块301可以从位置服务器以及MPOI服务器获得位置和路线信息。位置服务器提供位置服务,并且MPOI服务器提供地图服务和某些位置的POI,其可以被缓存为地图和路线信息311的一部分。在一个实施例中,地图和路线信息311可以是高清地图。高清地图可以从位置服务器和MPOI服务器下载。当自主驾驶车辆300沿路线移动时,定位模块301还可以从交通信息***或服务器获得实时交通信息。
基于传感器***115提供的传感器数据和定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示出与普通驾驶员驾驶汽车时所感知到周围的车辆相同的信息。感知可以包括例如车道中的车道配置、交通信号灯、另一车辆相对位置、行人、建筑物、人行横道或其他与交通有关的标志(例如,停车标志,让路标志),例如,物体的形式。车道配置包括描述一个或多个车道的信息,例如,车道的形状(例如,笔直或弯曲)、车道的宽度、一条道路中车道数量、单向或双向车道、合并或拆分车道、出口车道等。
感知模块302可以包括计算机视觉***或计算机视觉***的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自主车辆101的环境中的对象和/或特征。对象可以包括交通信号、道路边界、其他车辆、行人和/或障碍物等。计算机视觉***可以利用对象识别算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉***可以绘制环境,跟踪物体并估计物体的速度等。感知模块302还可以基于由诸如雷达和/或LIDAR的其他传感器提供的其他传感器数据来检测对象。在一个实施例中,感知模块302可以生成图像地图,该图像地图示出自主驾驶车辆101的环境中其他车辆或行人的当前位置,当前方向和过去轨迹。
对于每个对象,预测模块303预测在当前情况下对象将表现出什么。预测是基于感知数据根据一组地图/路线信息311和交通规则312进行的,感知数据感知在时间点处的驾驶环境。例如,如果对象是在相反方向行驶的车辆且当前驾驶环境包括交叉路口,则预测模块303将预测车辆是否将可能直线行驶或转弯。如果感知数据指示交叉路口没有交通灯,则预测模块303可以预测车辆可能必须在进入交叉路口之前完全停止。如果感知数据指示车辆当前位于仅左转车道或仅右转车道,则预测模块303可分别预测车辆将更可能左转或右转。
对于每个对象,决策模块304做出关于如何处理对象的决策。例如,对于特定对象(例如在十字路口中的另一辆车辆)及其描述对象的元数据(例如速度、方向、转弯角度),决策模块304决定处理如何遇到该对象(例如超车、让路、停止、通过)。决策模块304可以根据可以存储在永久性存储设备352中的一组规则(诸如交通规则或驾驶规则312)做出这样的决策。
路由模块307被配置为提供从起点到目的地的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块307获得路线和地图信息311,并确定从起始位置到达目的地位置的所有可能的路线或路径。路由模块307可以针对其确定的从起始位置到达目的地位置的每条路线生成地形图形式的参考线。参考线是指理想的路线或路径,不受其他车辆、障碍物或交通状况等其他因素的干扰。也就是说,如果道路上没有其他车辆、行人或障碍物,则ADV应该准确或紧密地遵循参考线。然后将地形图提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305根据其他模块提供的其他数据,检测所有可能的路线以选择和修改最佳路线中的一个,其他模块提供的其他数据诸如来自定位模块301的交通状况,感知模块302感知的驾驶环境以及预测模块303预测的交通状况。根据时间点处的特定驾驶环境,用于控制ADV的实际路径或路线可以接近或不同于由路由模块307提供的参考线。
基于针对感知到的每个对象的决策,规划模块305利用路由模块307提供的参考线作为基础来规划自主车辆的路径或路线以及驾驶参数(例如距离、速度和/或转弯角度)。也就是说,对于给定的对象,决策模块304决定如何处理对象,而规划模块305确定怎么做。例如,对于给定的对象,决策模块304可以决定通过该对象,而规划模块305可以确定是在对象的左侧还是在右侧通过。规划和控制数据由规划模块305生成,规划和控制数据包括描述车辆300将如何在下一运动周期(例如下一路线/路径段)中移动的信息。例如,规划和控制数据可以指示车辆300以每小时30英里(mph)的速度移动10米,然后以25mph的速度改变到右车道。
基于规划和控制数据,控制模块306根据规划和控制数据所定义的路线或路径,通过向车辆控制***111发送适当的命令或信号来控制和驾驶自主车辆。规划和控制数据包括足够的信息,以便在沿路径或路线的不同时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向指令)将车辆从路线或路径的第一点驾驶到第二点。
在一个实施例中,在多个规划周期(也称为驾驶周期)中执行规划阶段,例如在每个100毫秒(ms)的时间间隔中。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。即,对于每100毫秒,规划模块305规划下一路线段或路径段,例如包括目标位置和ADV到达目标位置所需的时间。可替代地,规划模块305可以进一步指定特定的速度、方向和/或转向角等。在一个实施例中,规划模块305规划下一预定时间段(例如5秒)的路线段或路径段。对于每个规划周期,规划模块305基于在先前周期中规划的目标位置来规划当前周期(例如,接下来的5秒)的目标位置。然后,控制模块306基于当前周期的规划和控制数据来生成一个或多个控制命令(例如油门、制动、转向控制命令)。
注意,决策模块304和规划模块305可以被集成为集成模块。决策模块304/规划模块305可以包括导航***或导航***的功能,以确定用于自主车辆的驾驶路径。例如,导航***可以确定一系列速度和前进方向,以在驱使自主车辆沿着通往最终目的地的基于道路的路径前进时,对沿着基本上避开感知到的障碍物的路径移动的自主车辆产生影响。可以根据经由用户接口***113的用户输入来设置目的地。导航***可以在自主车辆运行时动态地更新驾驶路径。导航***可以合并来自GPS***的数据和一个或多个地图,以便确定自主车辆的行驶路径。
决策模块304/规划模块305还可包括防撞***或防撞***的功能,以识别、评估、避免或绕过自动驾驶汽车环境中的潜在障碍。例如,防撞***可以通过操作控制***111中的一个或多个子***以进行转向、转弯、制动等操作来实现自动驾驶汽车的导航变化。防撞***可以基于周围的交通模式,道路状况等自动确定可行的避障机动。防撞***可以用于当其他传感器***在自主驾驶车辆相邻的区域中检测到行人、车辆、建筑障碍物等时,不进行转向机动。防撞***可以自动选择既可采用又使自主驾驶车辆的乘员安全最大化的操纵。防撞***可以选择可预测到的在自主驾驶车辆的乘客舱中引起最少的加速度的避开机动。
在一些实施例中,静态物体绘制模块308可以收集多个点云数据以绘制由传感器***115捕获的环境。感知模块302可以处理多个点云数据以检测绘制的环境中的静态物体。静态物体绘制模块308可以记录检测到的静态物体和关于检测到的静态物体的信息。感知模块302可以基于由传感器***115捕获的数据,使用记录的静态物体作为辅助来改善对自主驾驶车辆周围的绘制环境中的物体的实时检测。
图4是示出根据一个实施例的用于自动驾驶的***架构的框图。***架构400可以表示如图3A和3B所示的自主驾驶***的***架构。参照图4,***架构400包括但不限于应用层401、规划和控制(planning and control,PNC)层402、感知层403、驱动层404、固件层405和硬件层406。应用层401可以包括与自主驾驶车辆的用户或乘客进行交互的用户接口或配置应用,例如与用户接口***113相关联的功能。PNC层402可以包括至少规划模块305和控制模块306的功能。感知层403可以包括至少感知模块302的功能。在一个实施例中,存在包括预测模块303和/或决策模块304的功能的附加层。可替换地,这样的功能可以被包括在PNC层402和/或感知层403中。固件层405可以至少表示传感器***115的功能,其可以以现场可编程门阵列(FPGA)的形式实现。硬件层406可以表示自主驾驶车辆的硬件,例如控制***111。层401-403可以经由设备驱动层404与固件层405和硬件层406通信。
图5是根据一个实施例的感知和规划***110的示例的框图,感知和规划***110利用在离线高清地图收集过程中绘制的周围环境的静态障碍物来帮助在线检测物体。离线静态障碍物绘制模块308可以收集由传感器***115捕获的环境的多个点云数据,以生成环境的高清地图。感知和规划***110可以在离线地图生成过程中处理多个点云数据,以在生成高清地图时检测静态物体。离线静态障碍物绘制模块308可以记录检测到的静态物体和关于检测到的静态物体的信息。在线操作过程中,当ADV处于高清地图的环境中时,感知和规划***110可以利用记录的静态物体作为辅助,基于由传感器***115捕获的数据,实时地改进对ADV周围的物体的检测。
传感器***115可以包括相机211、LIDAR 215和雷达214。相机211、LIDAR 215和雷达241各自可以包括多个传感器,并且每个传感器可以与用于提供ADV周围环境的视频或电磁数据的通道相关联。在一个实施例中,传感器***115可以包括其他类型的传感器,诸如GPS接收器、IMU、超声传感器、GNSS(全球导航卫星***)接收器和***传感器(例如温度、湿度、压力传感器)等。
传感器组合模块500将来自相机211、LIDAR 215和雷达214的传感器数据组合或合并。传感器数据组合操作可以包括传感器数据的时间戳标记、来自相机211的数据的视频压缩、压缩视频数据的分段、传感器数据的时间同步、传感器数据的合并等。在线操作过程中,感知和规划***110可以处理组合的传感器数据以检测物体并生成关于ADV周围的物体的信息。物体可以包括交通信号、道路边界、其他车辆、行人和/或障碍物等。关于物体的信息可以包括环境中其他车辆或行人的当前位置、当前前进方向和过去轨迹。在离线地图生成过程中,感知和规划***110可以处理组合的传感器数据以检测要被绘制的区域的物体。
离线静态障碍物绘制模块308可通过利用ADV作为绘制车辆来捕获要绘制区域的数据点,从而在离线地图生成过程中构建高清地图。数据点被称为点云,并且对应于在捕获数据点时的特定时间点的传感器的姿态(例如,位置和方向)。由传感器***115从许多姿态捕获到的点云被用于构造区域的高清地图。高清地图可以包含诸如道路边界、车道配置、地形等的信息,其可以用于在区域中导航ADV。
图6是示出根据一个实施例的高清地图生成***600的示例的框图。高清地图生成***600可以是离线静态障碍物绘制模块308的一部分。在一个实施例中,高清地图生成***600包括点云注册子***601和高清地图生成子***602。点云注册子***601可以接收IMU信号、GPS信号和LIDAR图像603(例如,分别来自IMU 213、GPS单元212和LIDAR单元215)作为输入,并基于接收到的输入生成高清姿态604(或对准LIDAR图像603的姿态)。高清地图生成子***602然后可以接收LIDAR图像603和高清姿态604作为输入,并基于这些输入生成高清地图605。
返回参考图5,为了生成高清地图,离线静态障碍物绘制模块308可以捕获并组合同一区域的数个点云数据。例如,绘制车辆可沿路线行驶数圈以捕获路线的多个点云数据。在一个实施例中,离线静态障碍物绘制模块308可以捕获并组合给定路线的5至10圈中每圈10000点的点云数据。感知和规划***110可以在组合的点云数据上运行感知算法以构造路线的准确高清3D地图。作为离线高清地图生成过程的一部分,感知和规划***110可以检测静态物体。由于组合的点云数据具有在点云姿态之间不变的静态物体的更多详细信息,因此改进了对这些静态物体的检测。静态物体可以是固定的道路要素,例如护栏、横梁、交通标志、树木、建筑物等。当ADV在路线上行驶时,静态物体可以用作辅助工具,以实时改善对物体的感知。
在一个实施例中,为了检测静态物体,离线高清地图生成过程可以移除感知和规划***110所检测到的非静态的障碍物。例如,离线静态障碍物绘制模块308可以去除移动物体,例如高清地图上的移动车辆、行人、自行车等。离线高清地图生成过程可以进一步去除静止的但可移动的障碍物,例如停放的车辆、停放的自行车、交通锥、临时路标等。尽管这些物体在对区域进行高清绘制时是静态的,但是是随时可移动的,所以当ADV在在线操作中使用高清地图时,可能会再检测到它们。在一个实施例中,离线高清地图生成过程可以进一步去除感兴趣区域之外的不可移动的静态物体。例如,离线静态障碍物绘制模块308可以仅保持不在道路上但是距道路边界小于5米的障碍物,使得不应该出现在道路上的物体,例如,岩石也被移除。离线静态障碍物绘制模块308可以在离线高清地图生成过程中记录感兴趣区域内的不可移动的静态物体,并且还可以记录关于这些静态物体的信息,例如它们的位置和形状。
在ADV使用高清地图的在线操作期间,感知和规划***110可以处理来自传感器***115的传感器数据,这些数据由离线静态障碍物绘制模块308记录的静态物体来辅助。在一个实施例中,在感知算法的数据准备阶段,感知和规划***110可以从感兴趣区域(ROI)剔除记录的静态物体。基于静态物体的位置,可以从ROI剔除静态物体。例如,可以从ROI移除距离道路边界5米之内的静态物体(例如护栏)。护栏可能会被其他车辆挡住,并且从ROI中移除护栏可能会有助于检测ROI中的其他物体。在从ROI剔除静态物体之后,感知和规划***110可以对来自传感器***115的传感器数据执行感知算法以检测ROI中的物体。在ROI中检测到的物体可以包括移动物体,例如车辆、行人、自行车或道路上的其他障碍物,这些物体不是预先定义的已记录的静态物体,例如车道配置、人行横道、其他与交通有关的标志,的一部分。
可将已从ROI中移除以促进感知算法的静态物体重新添加到感知算法的结果中。例如,感知和规划***110可以将从感知算法的ROI移除的护栏恢复为感知结果以完成感知输出。在一个实施例中,感知和规划***110可以恢复距ADV小于最大距离的所有预定义静态物体。例如,记录的信息(包括距离ADV各个侧面小于200米的所有预定义静态物体的位置和形状)可以恢复为感知结果,以完成感知输出。决策模块304可以利用来自感知和规划***110的感知输出来做出关于如何处理在感知输出中检测到的物体的决策。
图7是示出根据一个实施例的用于在高清地图收集过程中生成静态障碍物的方法700的示例的流程图。方法700可以由处理逻辑来执行,处理逻辑可以包括软件、硬件或其组合。例如,方法700可以由诸如结合图5描述的自主驾驶车辆的传感器***115、离线静态障碍物绘制模块308以及感知和规划***110来执行。
在操作701,方法700收集要绘制的区域的多个点云数据。点云数据可以由传感器(诸如绘制车辆的传感器***115的相机211、LIDAR 215和雷达214)捕获。所捕获的点云数据可以与传感器在捕获点云数据时的特定时间点的姿态信息(例如,位置和方向)相关联。要绘制的区域可以由许多姿态表示。为了增加传感器数据的细节并改善感知结果,可以多次收集同一区域的点云数据。例如,操作701可以收集并组合给定路线的5至10圈的点云数据。
在操作703,方法700对收集的点云数据运行感知算法。在一实施例中,感知算法可以离线运行。使用深度学习神经网络的一组训练有素的规则、算法和/或预测模型,感知算法可以检测该区域的障碍物,例如交通信号、道路边界、其他车辆、行人、其他障碍物等。感知和规划***110中的感知模块302可以执行感知算法。感知算法的输出可以包括一组检测到的障碍物以及有关障碍物的运动或轨迹的信息。
在操作705,方法700从检测到的障碍物的集合中去除移动障碍物和静态可移动障碍物。在一个实施例中,操作705可以从检测到的障碍物的集合中去除移动的障碍物,例如移动的车辆、行人、骑行者。操作705还可以从检测到的障碍物的集合中去除静止但可移动的障碍物,例如停放的车辆、停放的自行车、交通锥、临时道路标志等。剩余的障碍物可以包括不可移动的静态障碍物和其他固定的道路要素,例如护栏、横梁、交通标志、树木、建筑物等。因为多个点云数据包含在点云姿态之间不发生变化的静态障碍物的更多详细信息,与ADV在路线上行驶时实时运行的感知算法相比,在地图生成过程中在点云数据上运行的感知算法可以更准确地检测到静态障碍物。
在操作707,方法700通过从检测到的静态障碍物的集合去除感兴趣区域之外的静态障碍物来保持感兴趣区域内的静态障碍物。例如,操作707可以保持不在道路上但是距道路边界小于5米的静态障碍物。原本不应该在道路上的静态障碍物,例如岩石,可以从检测到的障碍物的集合中去除。
在操作709,方法700记录关于保留在检测到的障碍物的集合中的静态障碍物的信息。例如,静态障碍物可包括距离所绘制路线的道路边界小于5米的障碍物,例如护栏、横梁、交通标志、树木、建筑物等。所记录的信息可以包括每个静态障碍物的位置和形状。所记录的静态障碍物的信息可以用作辅助,以改善对路线附近物体的实时感知。
图8是示出根据一个实施例的感知算法利用在高清地图收集过程中检测到的静态障碍物以帮助物体的在线感知的方法800的示例的流程图。方法800可以由处理逻辑来执行,处理逻辑可以包括软件、硬件或其组合。例如,方法800可以由ADV的传感器***115、离线静态障碍物绘制模块308以及感知和规划***110执行,例如结合图5所描述的。
在操作801,方法800接收由感知算法生成的区域的静态障碍物。例如,操作801可以接收由图7的高清地图收集过程记录的绘制区域的路线的静态障碍物的位置和形状。
在操作803,当ADV在区域中行进时,方法800接收由传感器(例如,传感器***115的相机211,LIDAR 215和雷达214)捕获的传感器数据。传感器数据可以具有关于传感器的姿态(例如,位置和方向)的信息,从而可以确定由传感器数据表示的区域中物体的位置,诸如所绘制区域的路线。
在操作805,方法800处理传感器数据以修整由传感器数据表示的区域中的一个或多个感兴趣区域(ROI),以排除由感知算法检测到的静态障碍物。在一个实施例中,在由感知模块302执行的感知算法的数据准备阶段期间,感知和规划***110可以基于静态障碍物的位置从ROI剔除预定的静态障碍物。例如,可以从ROI移除道路边界附近的护栏,例如距离路线的道路边界小于5米的预定护栏。护栏可能会被其他车辆挡住,并且从ROI移除护栏可能有助于检测ROI中的其他物体。
在操作807,方法800在由传感器数据表示的区域中修整过的ROI上实时运行感知算法,以生成部分感知结果。例如,利用训练过的一组规则、算法、和/或深度学习神经网络的预测模型,感知模块302可以在表示路线环境中修整过的ROI的传感器数据上执行感知算法,以检测ROI中的物体。在ROI中检测到的物体可以包括移动物体,例如车辆、行人、自行车或路线上的其他障碍物,它们不是预定义的静态障碍物,例如车道配置、人行横道、其他交通相关标志的一部分。
在操作809,方法800将从ROI去除的预定义静态障碍物添加回部分感知结果中,以生成区域的感知输出。例如,感知和规划***110可以将从区域的ROI剔除的预定义护栏恢复到来自感知算法的部分感知结果,以完成感知输出。在一个实施例中,感知和规划***110可以恢复距ADV小于最大距离的所有预定静态障碍物。例如,记录的信息(包括距离ADV的所有侧面小于200米的预定义静态障碍物的位置和形状)可以恢复到部分感知结果,以完成感知输出。决策模块304可以利用来自感知和规划***110的感知输出来做出如何处理感知输出中检测到的物体的决策。
数据处理***可以执行上述任何过程或方法,例如,用于生成在高清地图收集过程中绘制的静态障碍物的方法,或用于使用在高清地图收集过程中检测到的静态障碍物以帮助物体的在线感知的方法。数据处理***可以包括许多不同的组件。这些组件可以实现为集成电路(IC)、其部分、离散的电子设备或适合于电路板的其他模块,例如计算机***的主板或附加卡,或并入计算机***的机箱中的其他组件。
数据处理***可以包括一个或多个处理器、一个或多个存储器以及经由总线连接的设备。处理器可以代表一个或多个通用处理器,例如微处理器、中央处理单元(CPU)等。更特别地,处理器可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实现其他指令集的处理器,或者是实现指令集组合的处理器。处理器也可以是一个或多个专用处理器,例如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或任何其他能够处理指令的逻辑。处理器可以用于执行存储在存储器中的指令,以执行本文讨论的操作和步骤。
本文描述的处理模块/单元/逻辑、组件和其他特征可以被实现为离散的硬件组件,或者被集成在诸如ASICS、FPGA、DSP或类似设备的硬件组件的功能中。另外,处理模块/单元/逻辑可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑可以以任何组合的硬件设备和软件组件来实现。
已经关于对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的那些操作。
然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机***或类似电子计算设备的动作和过程,所述计算机***或类似电子计算设备将计算机***的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机***存储器或寄存器或其它这样的信息存储、传输或显示设备内的类似地表示为物理量的其它数据。
本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非瞬态计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。
在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。
本公开的实施例不是参考任何特别编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本公开的实施例的教示。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

Claims (11)

1.一种用于辅助自主驾驶车辆ADV的感知算法的方法,所述方法包括:
从一个或多个传感器收集区域的多个点云数据;
对多个点云数据运行感知算法以检测所述区域的多个障碍物;
从多个障碍物中移除一个或多个移动障碍物和一个或多个可移动的静态障碍物,以产生多个静态障碍物;
记录静态障碍物的至少一个子集作为与所述区域相关联的预定义静态障碍物集合,以辅助ADV的感知算法实时检测所述区域的物体;
接收由一个或多个传感器捕获的所述区域的传感器数据;
处理所述区域的传感器数据以修整所述区域的一个或多个感兴趣区域ROI以排除一个或多个预定义静态障碍物;
在ROI的传感器数据上实时运行ADV的感知算法,以生成部分感知结果;以及
将已从ROI中排除的一个或多个预定义静态障碍物添加到部分感知结果,以生成所述区域的感知输出。
2.如权利要求1所述的方法,其中,从一个或多个传感器收集区域的多个点云数据包括:
收集由一个或多个传感器针对同一区域进行多次重复捕获的点云数据。
3.如权利要求1所述的方法,其中在所述多个点云数据上运行感知算法以检测所述区域的多个障碍物包括:
通过感知算法检测多个障碍物的运动。
4.如权利要求1所述的方法,其中,构成所述预定静态障碍物集合的多个静态障碍物的子集包括在所述区域的感兴趣区域内的一个或多个静态障碍物。
5.如权利要求1所述的方法,其中,记录所述预定静态障碍物集合包括:
记录集合中每个预定义静态障碍物的位置和形状中的一个或多个。
6.如权利要求1所述的方法,其中,记录预定静态障碍物集合包括记录集合的每个预定静态障碍物的位置,并且其中,处理所述区域的传感器数据以修整所述区域的一个或多个ROI,以排除一个或多个预定义静态障碍物包括:
基于一个或多个预定义静态障碍物的位置,从ROI的传感器数据中排除一个或多个预定义静态障碍物。
7.如权利要求1所述的方法,其中,在所述ROI的传感器数据上实时运行ADV的感知算法以生成部分感知结果包括:
检测ROI中的一个或多个移动物体。
8.如权利要求1所述的方法,其中,将已经从ROI中排除的一个或多个预定义静态障碍物添加到部分感知结果,以生成所述区域的感知输出包括:
将已从ROI中排除的距ADV的距离小于阈值距离的一个或多个预定义静态物体添加到所述部分感知结果。
9.一种非暂时性机器可读介质,具有存储于其中的指令,所述指令在由处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的用于辅助自主驾驶车辆(ADV)的感知算法的方法的操作。
10. 一种数据处理***,包括:
处理器;以及
耦接到处理器的存储器,用于存储指令,在处理器执行指令时,使处理器执行如权利要求1-8中任一项所述的用于辅助自主驾驶车辆ADV的感知算法的方法的操作。
11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-8中任一项所述的用于辅助自主驾驶车辆ADV的感知算法的方法的操作。
CN202011548264.2A 2020-04-03 2020-12-24 基于静态障碍物地图的感知方法及*** Active CN113496189B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/840,278 US11556127B2 (en) 2020-04-03 2020-04-03 Static obstacle map based perception system
US16/840,278 2020-04-03

Publications (2)

Publication Number Publication Date
CN113496189A CN113496189A (zh) 2021-10-12
CN113496189B true CN113496189B (zh) 2024-06-28

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109443369A (zh) * 2018-08-20 2019-03-08 北京主线科技有限公司 利用激光雷达和视觉传感器融合构建动静态栅格地图的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109443369A (zh) * 2018-08-20 2019-03-08 北京主线科技有限公司 利用激光雷达和视觉传感器融合构建动静态栅格地图的方法

Similar Documents

Publication Publication Date Title
CN113128326B (zh) 具有语义地图和lstm的车辆轨迹预测模型
US11556127B2 (en) Static obstacle map based perception system
CN113448329B (zh) 减少用于规划自主驾驶车辆的路径的障碍物的方法及***
CN112149487A (zh) 一种用于自动驾驶的用于训练神经网络对象检测模型的用于确定锚框的方法
CN114026463B (zh) 基于部分点云的行人速度估计方法
CN113552870A (zh) 基于感知结果的动态速度限制调整***及方法
CN112977473A (zh) 用于预测移动障碍物驶出十字路口的方法及***
US11661085B2 (en) Locked pedestrian detection and prediction for autonomous vehicles
EP3914492B1 (en) A parking-trajectory generation method combined with offline and online solutions
CN113044058A (zh) 自动驾驶车辆三点转弯
CN112230646A (zh) 设计用于单车运行的自动驾驶***下的车辆队列实施
CN113075924B (zh) 自动驾驶车辆停放场景设计
CN112985435B (zh) 用于操作自主驾驶车辆的方法及***
CN113247017B (zh) 用于确保自动驾驶车辆的稳定绕行的双缓冲***
US11787440B2 (en) Lane boundary and vehicle speed based nudge decision
EP3838696A1 (en) A post collision, damage reduction brake system
US11663913B2 (en) Neural network with lane aggregation for lane selection prediction of moving objects during autonomous driving
EP4147936B1 (en) Drive with caution under uncertainty for an autonomous driving vehicle
EP4026747A1 (en) Sound source detection and localization for autonomous driving vehicle
US11325529B2 (en) Early brake light warning system for autonomous driving vehicle
US20210370941A1 (en) Precautionary slowdown speed planning
CN113496189B (zh) 基于静态障碍物地图的感知方法及***
CN113728324A (zh) 基于点云的低高度障碍物检测***
US20230202516A1 (en) Planning under prediction with confidence region for an autonomous driving vehicle
CN115320634A (zh) 操作自主驾驶车辆的方法和***

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant