具体实施方式
在本公开的一个方面,可通过使激光器沿着道路移动而收集激光扫描数据,其包括来自激光器的多个射束的多个数据点。该数据点可描述用于激光被从其反射的对象的强度和位置信息。可使激光器的每个射束与所述多个数据点的相应数据点子集相关联。
针对单个射束,可将相应数据点子集划分成区段。针对每个区段,可确定相应平均强度和用于强度的相应标准偏差。可基于相应平均强度和用于强度的相应标准偏差来确定用于每个区段的阈值强度。可针对激光器的其他射束重复此操作。
可生成来自所述多个数据点的一组车道标记数据点。这可包括评估所述多个数据点中的每个数据点以确定其是否在道路的阈值高度内且通过将用于数据点的强度值与用于数据点的相应区段的阈值强度值相比较。可将该组车道标记数据点存储在存储器中以供以后使用,或者可以另外方式使得其可用于例如由自主交通工具进一步处理。
如图1中所示,根据本公开的一个方面的自主驾驶***100包括具有各种部件的交通工具101。虽然本公开的某些方面结合特定类型的交通工具而特别有用,但该交通工具可以是任何类型的交通工具,包括但不限于汽车、卡车、摩托车、公交车、船、飞机、直升机、割草机、娱乐车、游乐园车辆、电车、高尔夫手推车、火车以及手推车。该交通工具可具有一个或多个计算机,诸如包含处理器120、存储器130和通常存在于通用计算机中的其他部件的计算机110。
存储器130存储可被处理器120访问的信息,包括可被处理器120执行或以另外方式使用的指令132和数据134。存储器130可以是能够存储可被处理器访问的信息的任何类型,包括计算机可读介质或存储可借助于电子设备来读取的数据的其他介质,诸如硬驱、存储卡、ROM、RAM、DVD或其他光盘以及其他能写和只读存储器。***和方法可包括前述的不同组合,由此,将指令和数据的不同部分存储在不同类型的介质上。
指令132可以是将被处理器直接地(诸如机器代码)或间接地(诸如脚本)执行的任何指令集。例如,可将指令作为计算机代码存储在计算机可读介质上。在该方面,在本文中可以可互换地使用术语“指令”和“程序”。可以对象代码格式来存储指令以便由处理器直接处理,或者用任何其他计算机语言,包括被按需解释或预先编译的独立源代码模块的脚本或集合。下面更详细地解释指令的功能、方法和例程。
可由处理器120根据指令132来检索、存储或修改数据134。例如,虽然所述***和方法不受任何特定数据结构的限制,但可将数据存储在计算机寄存器中、作为具有多个不同字段和记录的表格而在关系数据库中、XML文档或平面文件。还可以任何计算机可读格式将数据格式化。仅以示例的另一方式,可将图像数据存储为位图,其包括根据压缩或未压缩、无损(例如,BMP)或有损(例如,JPEG)、基于位图或矢量(例如SVG)的格式存储的像素格栅以及用于画图形的计算机指令。该数据可包括足以识别相关信息的任何信息,诸如编号、描述性文本、专有代码、对存储在同一存储器的其他区域或不同存储器(包括其他网络位置)中的数据的参考或被函数用来计算相关数据的信息。
处理器120可以是任何常规处理器,诸如商业可获得的CPU。替选地,处理器可以是诸如ASIC之类的专用设备。虽然图1在功能上将计算机110的处理器、存储器及其他元件图示为在同一块内,但将理解的是处理器和存储器实际上可包括可以或可以不存储在同一物理外壳内的多个处理器和存储器。例如,存储器可以是位于不同于计算机110的外壳中的硬驱或其他存储介质。相应地,应将对处理器或计算机的参考理解成包括对可以或可以不并行操作的处理器或计算机或存储器集合的参考。作为使用单个处理器来执行本文所述步骤的替代,诸如转向部件和减速部件之类的某些部件可每个具有其自己的处理器,其仅执行与部件的特定功能有关的计算。
在本文所述的各种方面中,处理器可远离交通工具定位且无线地与交通工具通信。在其他方面,在设置于交通工具内的处理器上执行本文所述的某些过程,同时由远程处理器来执行其他过程,包括采取执行单个操纵所需的步骤。
计算机110可包括正常地与计算机相结合地使用的所有部件,诸如中央处理单元(CPU)、存储数据134和指令的诸如web浏览器之类的存储器(例如,RAM和内部硬驱)、电子显示器142(例如,具有屏幕的监视器、小型LCD触摸屏或可操作地显示信息的任何其他电设备)、用户输入140(例如,鼠标、键盘、触摸屏和/或麦克风)以及用于收集关于一个人的状态和期望的明示(例如手势)或隐含(例如,“那个人在熟睡”)信息的各种传感器(例如视频相机)。
在一个示例中,计算机110可以是被合并到交通工具101中的自主驾驶计算***。图2描述了自主交通工具的内部的示例性设计。自主交通工具可包括非自主交通工具的所有特征,例如:转向设备,诸如转向盘210;导航显示设备,诸如导航显示器215;以及齿轮选择器设备,诸如齿轮移位器220。交通工具还可具有各种用户输入设备,诸如齿轮移位器220、触摸屏217或用于将一个或多个自主驾驶模式激活或去激活且用于使得驾驶员或乘客290能够向自主驾驶计算机110提供诸如导航目的地之类的信息的按钮输入端219。
交通工具101还可包括一个或多个附加显示器。例如,交通工具可包括用于显示关于自主交通工具或其计算机的状态的信息的显示器225。在另一示例中,交通工具可包括状态指示设备,诸如状态栏230,以指示交通工具101的当前状态。在图2的示例中,状态栏230显示“D”和“2mph”,指示交通工具目前处于驾驶模式且正在以每小时2英里移动。在该方面,交通工具可在电子显示器上显示文本,照亮交通工具101的各部分,诸如转向盘210,或者提供各种其他类型的指示。
自主驾驶计算***可以能够与交通工具的各种部件通信。例如,返回图1,计算机110可与交通工具的常规中央处理器160通信,并且可以从交通工具101的各种***发送和接收信息,例如致动180、加速182、发送信号184以及导航186***,以便控制交通工具101的移动、速度等。另外,在在使用时,计算机110可控制交通工具101的某些或所有这些功能且因此完全或仅仅部分地是自主的。将理解的是尽管在交通工具101内示出了各种***和计算机110,但是这些元件可在交通工具101外部或者在物理上分离大的距离。
交通工具还可包括与计算机110通信以便确定设备的地理位置的地理位置部件144。例如,位置部件可包括用于确定设备的纬度、经度和/或高度位置的GPS接收机。还可使用诸如基于激光器的局部化***、惯性辅助GPS或基于相机的局部化之类的其他位置***来识别交通工具的位置。交通工具的位置可包括诸如纬度、经度以及高度之类的绝对地理位置以及诸如相对于直接在其周围的其他汽车的位置的相对位置信息,其常常能够以比绝对地理位置更少的噪声来确定。
交通工具还可包括与计算机110通信的其他特征,诸如加速度计、陀螺仪或另一方向/速度检测设备146以确定交通工具的方向和速度或其变化。仅以示例的方式,设备146可确定其相对于重力方向或与之垂直的平面的俯仰、偏航或横摇(或其变化)。该设备还可跟踪速度方面的增加或减小和此类变化的方向。如本文所阐述的设备的位置和取向数据的提供可被自动地提供给用户、计算机110、其他计算机和前述的组合。
计算机可通过控制各种部件来控制交通工具的方向和速度。举例来说,如果交通工具正在完全自主模式下操作,则计算机110可促使交通工具加速(例如,通过增加提供给引擎的燃料或其他能量)、减速(例如,通过减少供应给引擎的燃料或者通过应用制动)或改变方向(例如,通过使两个前轮转弯)。
交通工具还可包括用于检测在交通工具外部的对象、诸如其他交通工具、道路中的障碍物、交通信号灯、标志牌、树等的部件。检测***可包括激光器、声纳、雷达、相机或记录可被计算机110处理的数据的任何其他检测设备。例如,如果交通工具是小客车,则汽车可包括安装在顶篷或其他方便位置上的激光器。如图3A中所示,交通工具101可包括小客车。在本示例中,交通工具101传感器可包括分别安装在交通工具的前面和顶部上的激光器310和311。激光器可包括扩商业可获得的激光器,诸如Velodyne HDL-64或其他型号。激光器可包括超过一个激光束;例如,Velodyne HDL-64激光器可包括64个射束。在一个示例中,激光器310的射束可具有150米的范围、三十度垂直视场以及三十度水平视场。激光器311的射束可具有50—80米的范围、三十度垂直视场以及360度水平视场。将理解的是还可使用具有不同范围和配置的其他激光器。该激光器可以为交通工具提供计算机可用来识别交通工具周围的各种对象的位置和距离的范围和强度信息。在一个方面,激光器可通过绕着其轴自旋并改变其节距来测量交通工具与面对交通工具的对象表面之间的距离。
上述传感器可允许交通工具理解其环境并潜在地对其环境进行响应,以便使乘客以及环境中的对象或人的安全性最大化。将理解的是交通工具类型、传感器的数目和类型、传感器位置、传感器视场以及传感器的传感器场仅仅是示例性的。还可利用其他各种配置。
除上述传感器之外,计算机还可使用来自传感器典型非自主交通工具的输入。例如,这些传感器可包括胎压传感器、引擎温度传感器、制动器热传感器、制动垫状态传感器、胎面传感器、燃料传感器、油位和质量传感器、空气质量传感器(用于检测空气中的温度、湿度或颗粒)等。
这些传感器中的许多提供被计算机实时地处理的数据,亦即,传感器可连续地更新其输出以反映在一定时间或在一定时间范围内所感测的环境,并且连续地或根据需求将该已更新的输出提供给计算机,使得计算机能够确定是否应响应于所感测的环境而改变交通工具的当时方向或速度。
除处理由各种传感器提供的数据之外,计算机可依赖于在先前时间点处获得且可预期无论交通工具在该环境中的存在如何都将持续的环境数据。例如,返回图1,数据134可包括详细地图信息136,例如高度详细的地图,其识别道路的形状和高度、交叉口、人行横道、速度限制、交通信号灯、建筑物、标志牌、实时交通信息或其他此类对象和信息。
详细地图信息136还可包括识别车道标记的位置、高度以及形状的车道标记信息。车道标记可包括诸如实线或虚线双或单车道线、实线或虚线车道线、反射镜等特征。可使给定车道与左和右车道线或定义车道边界的其他车道标记相关联。
图4描述了包括道路的相同示例性区段(以及在激光器范围之外的信息)的详细地图400。该道路区段的详细地图包括诸如实线车道线410、虚线车道线420、440以及双实线车道线430之类的信息。这些车道线定义车道450和460。每个车道与指示其中交通工具一般地应在相应车道中行进的方向的围栏455、465相关联。例如,交通工具可在沿着车道460行驶时遵循围栏465。
再次,虽然在本文中将详细地图信息描述为基于图像的地图,但地图信息不需要是完全基于图像的(例如,光栅)。例如,详细地图信息可包括一个或多个道路图或信息的图形网络,诸如道路、车道、交叉口以及这些特征之间的连接。可将每个特征存储为图形数据,并且可使其与信息相关联,诸如地理位置以及其是否被链接到其他相关特征,例如可将停止标志牌链接到公路和交叉口等。在某些示例中,关联数据可包括道路图的基于网格的索引以允许某些道路图特征的高效查找。
计算机110还可向和从其他计算机接收或传输信息。例如,可从其他计算机接收或传输由计算机110存储的地图信息和/或可将从交通工具101的传感器收集的传感器数据传输到另一计算机以用于处理,如本文所述。如图3B和图3C中所示,可将来自计算机110的数据经由网络发送到计算机320以用于进一步处理。网络以及中间节点可包括各种配置和协议,包括因特网、万维网、内部网、虚拟专用网、广域网、本地网、使用专用于一个或多个公司的通信协议的专用网络、以太网、WiFi和HTTP以及前述的各种组合。可用能够向和从其他计算机发送数据的任何设备来促进此类通信,诸如调制解调器和无线接口。在另一示例中,可通过将数据存储在可被110和320访问或连接到计算机110和320的存储器上来传输数据。
在一个示例中,计算机320可包括具有多个计算机的服务器,例如负载平衡服务器场,其为了从计算机110接收、处理和发送数据的目的而与网络的不同节点交换信息。可与计算机110类似地配置服务器,具有处理器330、存储器350、指令360以及数据370。
返回图1,数据134还可包括车道标记模型138。该车道标记模型可定义典型车道线的几何结构,诸如宽度、尺寸、相对于其他车道线的位置等。可将车道标记模型138作为地图信息136的一部分或者单独地存储。还可将车道标记模型存储在交通工具101、计算机320或两者处。
除上文所述和图中所示的操作之外,现在将描述各种操作。应理解的是不必按照下面描述的精确顺序来执行以下操作。相反地,可以按照不同的顺序或同时地处理各种步骤,并且还可添加或省略步骤。
可沿着道路驾驶包括一个或多个激光器的交通工具。例如,激光器可以是被附着于典型交通工具或自主驾驶***的一部分、诸如交通工具101的外置传感器。图5描述了对应于图4的详细地图信息的道路500的一段上的交通工具101。在本示例中,道路包括实线车道线510、虚线车道线520和540、双车道线530以及车道550和560。
随着交通工具的一个或多个激光器向前移动,激光器可收集激光器扫描数据。激光器扫描数据可包括具有来自多个方向和/或处于不同时间的用于相同位置(点或区域)的范围和强度信息的数据点。例如,可使激光器扫描数据与从其提供数据的特定射束相关联。因此,对于单个360度扫描,每个射束可提供一组数据点。
由于在单个激光器中可存在多个射束,所以可一起处理与单个射束相关联的数据点。例如,可由计算机110(或计算机320)来处理用于激光器311的射束中的每个射束的数据点以生成地理位置坐标。这些地理位置坐标可包括具有第三、高度分量的GPS经纬度坐标(x,y,z),或者可使其与其他坐标系相关联。此处理的结果是一组数据点。此集合的每个数据点可包括强度值,其指示由激光器从其接收到光的对象的反射率以及位置和高度分量:(x,y,z)。
图6描述了接近交叉口的交通工具101的示例性图像600。从由交通工具的激光器例如使用一个或多个收集激光器的所有射束的数据点针对交通工具周围环境的单个360度扫描收集的激光扫描数据生成图像。白色线表示激光器如何“看到”其周围环境。当一起考虑多个射束的数据点时,该数据点可指示交通工具的周围环境中的其他项目的形状和三维(3D)位置(x,y,z)。例如,激光扫描数据可指示诸如人610、交通工具620以及路缘630的各种对象的轮廓、形状和与交通工具101的距离。
图7描述了在交通工具沿着图5的道路500行驶的同时对于单个扫描收集(并且在图4的地图信息400中描述)的激光扫描数据的另一示例700。在图7的示例中,描述了被激光线730围绕的交通工具101,其指示被激光器扫描的交通工具周围的区域。每个激光线可表示来自单个射束的一系列离散数据点。当一起考虑多个射束的数据点时,该数据点可指示交通工具的周围环境中的其他项目的形状和三维(3D)位置(x,y,z)。来自更高度反射特征、诸如车道线、白色材料(诸如油漆)、反射器或具有反向反射性质的那些的数据点可具有比较低反射性特征更大的强度。在本示例中,参考线720连接与实线车道线相关联的数据点710且不是激光数据的一部分。
图7还包括由从实线双车道线反射的光生成的数据点740以及由从虚线车道线反射的光生成的数据点750。除道路特征之外,激光扫描数据可以是来自诸如760之类的其他对象的数据,从道路中的另一对象、诸如交通工具生成。
计算机110(或计算机320)可计算用于单个射束的统计量。例如,图8是用于单个射束的激光扫描数据的示例800。在本示例中,数据点包括由从双车道线530(图5中所示)反射的光生成的数据线740、由从虚线车道线550(图5中所示)反射的光生成的数据点750以及从道路中的另一对象、诸如交通工具生成的数据点760。
可将射束的数据点划分成一组均匀间隔的区段以用于评估。图9是被划分成16个物理区段的图8的激光扫描数据的示例900,包括区段910、920和930。虽然在本示例中仅使用16个区段,但还可使用更多或更少的区段。此分段可滚动地执行,例如随着数据点被计算机接收而评估N个数据点的集合,或者通过在已执行整个360度扫描之后在物理上将数据点分段。
可计算用于每个区段的平均强度值和标准偏差。在某些示例中,可在每个区段之间或之中将数据点归一化以确保强度值和标准偏差在相邻区段之间不相差太大。此归一化可通过考虑附近数据而减少估计的噪声。
可评估用于射束的所有数据点以识别一组车道标记数据点或很可能对应于车道标记的数据点。例如,计算机可确定每个数据点是否满足用于是(或者不是)车道标记的某些准则。可将满足该准则的数据点视为与车道标记相关联,并且可包括在一组可能的车道标记数据点中。在这方面,计算机不需要区别不同的车道线。换言之,该组可能车道标记数据点可包括来自多个不同车道线的点。
在一个示例中,标准可基于数据点的高度。在本示例中,具有非常接近于地面(或道路表面)的高度分量(z)的数据点与在道路表面之上大于阈值距离的点相比更有可能与车道标记相关联(或至少与道路相关联)。可在地图信息中包括道路表面信息或者可从激光扫描数据来估计。例如,计算机还可将表面模型拟合到激光数据以识别地面且然后将此确定用于车道标记数据点分析。因此,计算机可过滤或忽视在阈值距离以上的数据点。换言之,可对于该组车道标记数据点考虑或在其中包括处于阈值高度或在其以下的数据点。
例如,图10A是来自区段910的数据点的一部分的x和y(纬度和经度)坐标的图。如上述示例的情况一样,数据点750是与虚线车道线620(在图6中示出)相关联的那些。图10B是该相同数据的高度(z)的图。在本示例中,所有数据点都接近于道路表面线1020,并且全部小于阈值高度线(zTH)1030。因此,可对于该组车道标记数据点考虑或在其中包括所有此数据。
另一标准可基于阈值强度值。该阈值强度值可以是默认值或单个值,或者可以是特定于特定区段。例如,阈值强度值可以是用于给定区段的平均强度。在本示例中,可将用于给定区段的每个特定数据点的强度值与用于给定区段的平均强度相比较。如果用于给定区段的数据点的强度值高于给定区段内的平均强度,则可认为这些数据点与车道标记相关联。在另一示例中,用于给定区段的阈值强度值可以是在用于给定区段的平均强度之上的某个数目(2、3、4等)的标准偏差。因此,计算机可过滤或忽视在阈值强度值以下的数据点。换言之,可对于该集合考虑或在其中包括处于阈值强度值或在其以上的数据点。
例如,类似于图10A,图11A是来自区段910的数据点的一部分的x和y(纬度和经度)坐标的图。如上述示例的情况一样,数据点750是与虚线车道线620(在图6中示出)相关联的那些。图11B是该同一数据的强度(I)的图。本示例还包括平均强度线和阈值数目的标准偏差线(NσI)1120。在本示例中,数据点750在线1120以上(且可显著地大于线1110),同时数据点1010在线1120以下(且可不显著地大于线1110)。因此,在本示例中,可对于该集合考虑或在其中包括数据点750,同时可过滤或忽视数据点1010。
因此,考虑图10B和11B两者的示例,数据点750比数据点1010更可能与车道标记相关联。相应地,可在用于射束的所识别的一组车道标记数据点中包括数据点750,而数据点1010可能不这样。
还可过滤所识别的一组车道标记数据点以去除不那么可能的点。例如,可评估每个数据点以确定其是否与所识别的一组车道标记数据点中的其余数据点一致。计算机110(或计算机320)可确定一组的数据点之间的间距是否与典型车道标记一致。在这方面,可将车道标记数据点与车道标记模型138相比较。可过滤或去除不一致数据点以便减少噪声。
过滤还可包括检查高强度数据点的集群。例如,在360度扫描的情况下,激光扫描数据中的相邻点可对应于世界上的附近位置。如果存在相互接近(例如,相互邻近)地定位的具有相对高强度的一组两个或更多数据点,则这些数据点可能对应于同一车道标记。类似地,也可从所识别的一组车道标记数据点过滤或以另外方式不在其中包括不在其他高强度数据点附近或不与集群相关联的高强度数据点。
还可基于获取激光扫描数据时的激光器(或交通工具)的位置来过滤所识别的一组车道标记数据点。例如,如果计算机知道交通工具应在车道边界的一定距离内(在某个方向上),则也可从所识别的一组车道标记数据点过滤或以另外方式不在其中包括不接近于与交通工具的此距离(在某个方向上)的高强度数据点。类似地,如果激光扫描数据越是远离激光器(或交通工具)噪声越大,则可从所识别的一组车道标记数据点忽视或过滤相对远离(例如超过预定码数等)激光器(或交通工具)定位的激光数据点。
可对于激光器的每个射束重复上述步骤。例如,如果在特定激光器中存在64个射束,则可存在64组已过滤的车道标记数据点。
可存储结果得到的已过滤的各组车道标记数据点以供以后使用或者简单地使得其可用于其他用途。例如,该数据可被诸如计算机110之类的计算机用来实时地操纵自主交通工具,诸如交通工具101。例如,计算机110可使用已过滤的各组车道标记数据来识别车道线或将交通工具101保持在车道中。随着交通工具沿着车道移动,计算机110可继续处理激光数据,重复上述的所有或某些步骤。
在某些示例中,可由另一计算机、诸如计算机320在以后的时间确定已过滤的各组车道标记数据。例如,可将激光扫描数据上传或发送到计算机320以用于处理。可如上所述地处理激光扫描数据,并且可使用结果得到的各组已过滤车道标记数据来生成、更新或补充用来操纵自主交通工具的地图信息。类似地,此信息可用来准备用于导航(例如,GPS导航)及其他目的的地图。
图12的流程图1200是上述某些方面的示例。可由计算机110、计算机320或两者的组合来执行以下步骤中的每一个。在本示例中,在1202处通过使激光器沿着道路移动而收集激光扫描数据,其包括来自激光器的多个射束的多个数据点。如上所述,数据点可描述用于激光被从其反射的对象的强度和位置信息。可使激光器的每个射束与所述多个数据点的相应数据点子集相关联。
针对单个射束,在方框1204处将相应数据点子集划分成区段。针对每个区段,在方框1206处确定相应平均强度和用于强度的各标准偏差。在方框1208处基于相应平均强度和用于强度的相应标准偏差来确定用于每个区段的阈值强度。如果在方框1210处存在用于评估的其他射束,则过程返回至方框1204并如上文所讨论地评估用于下一射束的数据点的子集。
返回方框1210,如果不存在用于评估的其他射束,则在方框1212处生成来自所述多个数据点的一组车道标记数据点。这包括评估所述多个数据点中的每个数据点以确定其是否在道路的阈值高度内且通过将用于数据点的强度值与用于数据点的相应区段的阈值强度值相比较。在方框1214处可将该组车道标记数据点存储在存储器中以供以后使用,或者以另外方式使得其可用于进一步处理。
虽然上述示例包括连续地处理来自每个射束的数据,但可将相同的步骤应用于包括强度值的任何一组激光数据。例如,如果存在多个射束,则可全部一次地而不是逐个射束地处理用于单个360扫描的激光数据。在另一示例中,激光数据可仅包括单个射束,或者在没有射束的任何指示的情况下由计算机110或320来接收激光扫描数据。
在这方面,可以多种不同方式来计算统计量(平均值、强度标准偏差)。例如,可将激光扫描数据划分成具有来自多个射束而不是每个射束的数据的区段。替选地,可在不将数据点划分成区段的情况下一次全部地处理用于多于一个或所有射束的所有激光扫描数据。另外,可存储用于道路的特定区段的扫描的统计数据并离线地(在以后的时间)将其与在未来在相同位置上获取的新激光扫描数据相比较。
另外,可用返回基于反向反射和/或白色材料(诸如油漆)而增加的值的任何传感器来替换包括位置、高度以及强度值的激光扫描数据的使用。
上述方面可提供附加益处。例如,识别非常有可能与车道标记相关联的数据点可减少执行其他处理步骤所需的时间和处理功率。这在实时地处理激光扫描数据以便操纵自主交通工具的情况下可能尤其重要。因此,在时间和处理功率成本方面的节省价值是巨大的。
由于在不脱离由权利要求定义的主题的情况下可以利用上文所讨论的特征的这些及其他变化和组合,所以应以举例说明的方式而不是以限制由权利要求定义的主题的方式理解示例性实施方式的先前描述。还应理解的是不应将本文所述的示例的提供(以及作为“诸如”、“例如”、“包括”等短语的子句)解释为使要求保护的主题限于特定示例;相反,该示例意图仅仅举例说明许多可能方面中的某些。
工业实用性
本公开可以用来从激光扫描数据识别非常有可能与道路上的车道标记相关联的数据点。