用于对工业车辆提供准确定位的方法和设备的制作方法

文档序号:6166124阅读:247来源:国知局
用于对工业车辆提供准确定位的方法和设备的制作方法
【专利摘要】描述了一种用于对工业车辆提供准确定位的方法和设备,包括:处理来自多个传感器装置的至少一个传感器输入消息,其中至少一个传感器输入消息包括关于观测到的环境特征的信息;响应于至少一个传感器输入消息确定与工业车辆相关联的位置测量值,其中多个传感器装置包括二维激光扫描器,以及从里程计、超声传感器、指南针、加速度计、陀螺仪、惯性测量单元或成像传感器中选择的至少一个其它传感器装置;以及利用位置测量值更新车辆状态。
【专利说明】用于对工业车辆提供准确定位的方法和设备
【技术领域】
[0001]本发明的实施例总体上涉及工业车辆自动化,更具体地涉及用于对工业车辆提供准确定位的方法和设备。
【背景技术】
[0002]实体定期操作许多设备,以便满足供应和/或需求目标。例如,从小到大的公司、政府组织等使用各种物流管理和库存管理范式,将物体(例如,原材料、货物、机器等)移动到各种物理环境(例如仓库、冷藏室、工厂、车间、商店等)中。跨国公司可能在一个国家建造仓库以存储用于制造货物的原材料,这些货物被储藏在另一个国家的仓库中以分发到本地零售市场中。必须良好地组织仓库以便保持和/或提高生产和销售。如果未以最优速率将原材料运输到工厂,则制造较少的物品。因此,对于未制造的货物未生成收益以抵消原材料的成本。
[0003]然而,诸如仓库的物理环境具有妨碍各个任务的及时完成的一些限制。例如,仓库和其它共用空间对于人类员工必须是安全的。一些雇员操作重型机器和工业车辆,例如铲车,其可能会导致严重的或致命的伤害。但是,人类需要使用工业车辆来完成任务,包括物体处理任务,例如将多个货盘的货物移动到仓库中的不同位置。大部分仓库使用大量的铲车驱动器和铲车来移动物体。为了增加产率,这些仓库仅增加更多的铲车和铲车驱动器。
[0004]为了缓解上述问题,一些仓库使用用于使这些任务自动化的设备。作为示例,这些仓库可使用自动化的工业车辆,例如铲车,以在路径上承载物体。当使工业车辆自动化时,关键要求是在仓库中准确定位车辆的能力;为此,经常使用多个传感器来确定物理环境中的车辆位置(X、y位置和取向)。一种方案使用旋转激光器或固定相机来测量与具体的、限定的或编码的标记的距离。然而,该方法具有需要详细的环境勘测以测量限定的或编码的标记的整体位置的缺陷,这增加了整个系统的部署时间和成本。另一个方案使用例如三维激光器和/或相机中的三维传感器来定位工业车辆。然而,该方法需要复杂的计算,这些计算在通过使用更大的信息集合并且在需要参考地图的情况下增加,从而在创建和验证正确性时包括显著的成本和时间。
[0005]因此,本领域中需要用于通过使用对工业车辆的二维(平面)感测来提供准确定位的方法和设备。

【发明内容】

[0006]本发明的各个实施例总体上包括用于提供对工业车辆的准确定位的方法和设备,包括:处理来自多个传感器装置的至少一个传感器输入消息,其中所述至少一个传感器输入消息包括与观测到的环境特征有关的信息;响应于至少一个传感器输入消息确定与工业车辆相关联的位置测量值,其中所述多个传感器装置包括二维激光扫描器和从里程计、超声波传感器、指南针、加速度计、陀螺仪、惯性测量单元(IMU)或成像传感器中选择的至少一个其它传感器装置;以及利用所述位置测量值更新车辆状态。【专利附图】

【附图说明】
[0007]通过参考实施例更具体地描述以上概述的本发明,可以详细地理解本发明的上述特征,在附图中示出了部分实施例。然而,应注意,附图仅示出了本发明的典型实施例,因此不应被认为是限制本发明的范围,而本发明允许其它等同有效的实施例。
[0008]图1是包括本发明的各个实施例的物理环境的透视图;
[0009]图2示出根据一个或更多个实施例的用于导航物理环境以执行各个任务的铲车的透视图;
[0010]图3为根据一个或更多个实施例的用于提供对工业车辆的准确位置定位的系统的结构框图;
[0011]图4为根据一个或更多个实施例的用于提供对工业车辆的准确定位的系统的功能框图;
[0012]图5示出根据一个或更多个实施例的与物理环境中的车辆移动相关联的运动和时间失真;
[0013]图6示出根据一个或更多个实施例的用于在视场中执行激光扫描的平面激光扫描器;
[0014]图7A-B为示出根据一个或更多个实施例的用于工业车辆的定位处理的交互图;
[0015]图8为示出根据一个或更多个实施例的传感器输入消息处理的示例性时序图;
[0016]图9示出根据一个或更多个实施例的传感器输入消息处理的一部分;
[0017]图10为示出根据一个或更多个实施例的用于在物理环境中定位工业车辆的定位和地图绘制系统的功能框图;
[0018]图11为根据一个或更多个实施例的用于提供对工业车辆的准确定位的方法的流程图;以及
[0019]图12为根据一个或更多个实施例的利用滤波器更新工业车辆的车辆状态的方法的流程图。
【具体实施方式】
[0020]图1是包括本发明的一个或更多个实施例的物理环境100的透视图。
[0021]在一些实施例中,物理环境100包括与移动计算机104耦合的车辆102、中央计算机106以及传感器阵列108。如以下将进一步说明的,传感器阵列108包括多个装置,用于分析物理环境100中的各个物体,并且将数据(例如,二维范围数据、三维范围数据、图像数据、里程计数据、超声范围数据、加速度计数据、陀螺仪数据、IMU数据等)发送给移动计算机104和/或中央计算机106。传感器阵列108包括各种传感器,例如激光范围取景器、编码器、超声范围取景器、相机、压力传感器、指南针、加速度计、陀螺仪、惯性测量单元(IMU)等。
[0022]物理环境100还包括支持多个物体的地板110。如以下将进一步说明的,多个物体包括多个货盘112、多个单元114等。物理环境100可包括对于车辆102的正确操作的各个障碍(未示出)。如果这样的物体干扰任务的完成,则多个物体中的一部分可能构成为沿着各个路径(例如,预编程或动态计算的路线)的障碍。
[0023]物理环境100还包括多个标记116。多个标记116被示出为附接到天花板和地板110的物体,但是多个标记116可以位于物理环境100中的任何地方。在一些实施例中,多个标记116为如以下所述的有助于基于环境的导航的信标。多个标记116以及物理环境100周围的其它物体形成环境特征。移动计算机104提取环境特征,并确定准确的当前车辆位置。
[0024]物理环境100可以包括仓库或冷藏库,用于储藏准备用于未来运输的多个单元114。仓库可以包括装卸码头,以从商用车辆、铁路、机场和/或海港装载和卸载多个单元。多个单元114通常包括各种货物、产品和/或原材料等。例如,多个单元114可以是消费品,该消费品被置于ISO标准货盘上并通过铲车被装载到货盘架中以分发到零售店。车辆102通过将消费品移动到指定位置来帮助这样的分发,在指定位置,商业车辆(例如卡车)装货,随后将消费品运送到一个或更多个目的地。
[0025]根据一个或更多个实施例,车辆102可以为自动导向车辆(AGV),例如自动铲车,被配置为处理和/或移动地板110上的多个单元114。车辆102使用一个或更多个提升单元,例如铲叉来提升一个或更多个单元114,然后沿着路径运输这些单元114以放置到指定位置。替选地,一个或更多个单元114可以被布置在货盘112上,并且车辆102提升货盘112并且移动到指定位置。
[0026]多个货盘112的每个为平坦运输结构,该平坦运输结构当被车辆102和/或其它升降装置(例如货盘搬运车和/或前端装载机)提升时以稳定的方式支持货物。货盘112是物体装载的结构基础,并且允许处理和存储效率。可以在货架系统(未示出)中使用多个货盘112中的各种货盘。在典型的货架系统中,重力辊或轨道允许一个或更多个货盘112上的一个或更多个单元114流动到前方。一个或更多个货盘112向前移动,直至通过减速装置、物理停止件或其它货盘112减速或停止为止。
[0027]在一些实施例中,移动计算机104和中央计算机106是控制车辆102并且在物理环境100中执行各种任务的计算装置。如图所示,移动计算机104适于与车辆102耦合。移动计算机104还可以接收和聚集通过传感器阵列108发送的数据(例如,激光扫描器数据、图像数据和/或任何其它相关传感器数据)。如以下进一步所述的,移动计算机104中的各种软件模块控制与车辆102相关联的硬件部件的操作。
[0028]图1示出具有铲车的工业区域,铲车配置有各种传感器装置,例如激光扫描器、编码器或相机。如以下进一步所述的,移动计算机104利用诸如车轮旋转的一系列测量值计算车辆的位置变化。一个或更多个传感器装置与车轮耦合,并且提供对由这些车轮中的每个行进的距离的独立测量,其中根据该独立测量计算里程计数据。替选地,可以使用惯性测量单元(IMU)测量里程计数据。一个或更多个二维激光扫描器以与车辆102的范围读数及其对应角度的形式提供物理环境100的细节。移动计算机104从激光数据提取环境特征,例如直线、拐角、弧、标记等。相机可以提供包括高度测量值的三维信息。除了所提取的特征之外,还可以基于诸如颜色、尺寸、深度、位置、取向、纹理等的各种特征从相机数据提取地标。
[0029]使用滤波器(例如,扩展卡尔曼(Kalman)滤波器(EKF)),移动计算机104将车辆在二维平面(即,车辆102的前进方向和(x,y)坐标)中的位置建模为概率密度。使用里程计数据更新车辆的预测位置,并且可以将从激光扫描提取的环境特征与包括已知环境特征的已知地图和/或由滤波器保存的动态环境特征的列表进行比较,以校正车辆位置的误差。[0030]图2示出根据本发明的一个或更多个实施例的用于在物理环境中执行各种任务的铲车200的透视图。
[0031]铲车200 (即,提升卡车、升降机、堆垛卡车、拖车装载机、侧向装载机或叉吊车)是具有各种装载容量并用于提升和运输各种物体的机动工业卡车。在一些实施例中,铲车200被配置为沿物理环境(例如,图1的物理环境100)中的路径移动一个或更多个货盘(例如,图1的货盘112)的单元(例如,图1的单元114)。路径可以是预定义的,或者是在接收到任务时动态计算的。铲车200可以在作为多个深的货盘位置的储藏间中行进以放置或取回货盘。通常,铲车200将货盘置于悬臂或轨道上。
[0032]铲车200通常包括用于在物理环境中提升并且承载单元的两个或多个铲叉(即,滑板或齿)。替选地,取代两个或更多个铲叉,铲车200可包括一个或更多个金属杆(未示出),以便提升特定单元(例如,地毯卷、金属线圈等)。在一个实施例中,铲车200包括液压动力的可伸缩铲叉,其允许两个或更多个货盘被放置在彼此后面而在这些货盘之间没有通道。
[0033]根据一个或更多个实施例,铲车200还可以包括各种机械致动器、液压致动器和/或电气上操作的致动器。在一些实施例中,铲车200包括一个或更多个液压致动器(未标记),其允许铲车中常见的两个或更多个铲叉的横向和/或旋转移动。在一个实施例中,铲车200包括用于移动铲叉并拢和分开的液压致动器(未标记)。在另一个实施例中,铲车200包括用于压缩要运输的单元(例如,桶、小桶、纸卷等)的机械或液压部件。
[0034]铲车200可以与移动计算机104耦合,移动计算机104包括用于根据一个或更多个任务操作铲车200的软件模块。铲车200还与包括各种传感器装置的阵列(例如,图1的传感器阵列108)耦合,该阵列将传感器数据(例如,二维范围数据、图像数据、三维范围数据等)发送到移动计算机104,以提取与环境特征关联的信息。可以将这些装置安装在铲车200的任何外部和/或内部位置、或安装在物理环境100周围的已知位置。铲车200的示例性实施例通常包括附接到每侧的平面激光扫描器204和/或附接到每个车轮208的编码器206。在其它实施例中,铲车200包括相机、和/或平面激光扫描器204和/或编码器206。编码器206确定与车辆移动有关的运动数据。外部安装的传感器可以包括激光扫描器或相机,其被布置成使得可从这样的传感器获得的丰富的数据集将增强自动化操作。外部传感器可包括有限的收发器集合和/或其它有源或无源装置,由此自动车辆可以获得近似位置和/或滤波器中的处理以确定车辆状态。
[0035]在一些实施例中,许多传感器装置(例如,激光扫描器、激光范围取景器、编码器(即,里程计)、压力传感器等)及其在铲车200上的位置是车辆相关的,并且安装这些传感器的位置影响对测量数据的处理。例如,通过确保将全部激光扫描器放置在可测量位置,传感器阵列可以处理激光扫描数据并且将激光扫描数据变换为铲车200的中心点或其它共同参考帧。另外,传感器阵列可以将多个激光扫描组合为单个虚拟激光扫描,其可被各个软件模块使用以控制铲车200。
[0036]图3为根据一个或更多个实施例的用于对工业车辆提供准确位置定位的系统300的结构框图。在一些实施例中,系统300包括移动计算机104、中央计算机106、以及传感器阵列108,其中每个部件通过网络302彼此耦合。
[0037]移动计算机104可以包括一种计算装置(例如,膝上型计算机、桌上型计算机、个人桌面助理(PDA)、iPad、平板计算机、智能电话等),该计算装置包括中央处理单元(CPU)304、各种支持电路306、以及存储器308。CPU 304可以包括有助于数据处理和存储的一个或更多个可商业获得的微处理器或微控制器。各种支持电路306有助于CPU 304的操作,并且可以包括时钟电路、总线、电源、输入/输出电路等。存储器308可以包括只读存储器、随机存取存储器、盘驱动存储装置、光学存储装置、可移除存储装置等。存储器308可以包括各种数据,例如具有传感器输入消息312和时间戳314的优先级队列310、传感器测量数据316、以及车辆状态信息318。每个时间戳314指示传感器输入消息312中的对应的传感器输入消息的获取时间。存储器308包括各种软件包,例如基于环境的导航模块320。
[0038]中央计算机106是一种计算装置(例如,膝上型计算机、桌上型计算机、个人桌面助理(PDA)、iPad、平板计算机、智能电话等),该计算装置包括中央处理单元(CPU)322、各种支持电路324、以及存储器326。CPU322可以包括有助于数据处理和存储的一个或更多个可商业获得的微处理器或微控制器。各种支持电路324有助于CPU322的操作,并且可以包括时钟电路、总线、电源、输入/输出电路等。存储器326可以包括只读存储器、随机存取存储器、盘驱动存储装置、光学存储装置、可移除存储装置等。存储器326包括诸如管理器328的各种软件包、以及诸如任务330和地图数据332的各种数据。
[0039]网络302包括通信系统,该通信系统通过利用各种已知的网络元件(例如集线器、开关、路由器等)的线路、缆线、光纤和/或无线链接来连接计算机。网络302可以使用各种已知的协议在网络资源之间传输信息。例如,网络302可以是利用诸如以太网、WiF1、WiMax、通用无线分组业务(GPRS)等各种通信基础设施的因特网或内联网的一部分,并且还可以包括各种云计算基础设施、平台和应用。
[0040]传感器阵列108与移动计算机104通信耦合,移动计算机104附接到诸如铲车(例如,图2的铲车200)的自动车辆。传感器阵列108包括用于监视物理环境并且拍摄各个感测结果的多个装置332,各个观测结果被移动计算机104存储为传感器输入消息312。在一些实施例中,传感器阵列108可以包括诸如一个或更多个激光扫描器、编码器、相机、里程计、超声传感器、指南针、加速度计、陀螺仪、惯性测量单元(MU)、以及成像传感器等装置的任意组合。例如,激光扫描器可以为位于铲车主体上的固定位置的平面激光扫描器,在该位置,该平面激光扫描器的视场延伸到覆盖铲车附近的区域。多个装置332 (例如,传感器108、相机202、激光扫描器204、编码器206等)还可以在整个物理环境中分布于固定位置和/或移动位置。
[0041]在一些实施例中,传感器测量数据316包括通过关于物理环境的多个装置332发送的、并且代表多个装置332的观测结果的传感器数据的聚集。所聚集的传感器数据可包括与静态和/或动态环境特征相关联的信息。在一些实施例中,如以下进一步所述的,相对于时间和/或运动失真校正传感器测量数据316,以便确定当前车辆位置并且更新车辆状态信息318。
[0042]优先级队列310与数据源和测量时间戳314 —起,以传感器输入消息312的形式存储在时间段上观测到的传感器数据。在一些实施例中,基于环境的导航模块320基于优先级将每个传感器输入消息312插入到优先级队列310中。根据一些实施例,基于环境的导航模块320使用诸如获取时间的各种因素,确定传感器输入消息312中的每个的优先级。
[0043]车辆状态信息318描述车辆在各个时间Ici的一个或更多个状态(例如,先前和/或当前车辆状态)。在一些实施例中,车辆状态信息318包括车辆位置(x、y位置和取向)的估计,本公开内容可以将车辆位置的估计表示为位置预测。在一些实施例中,车辆状态信息318包括在考虑先前车辆位置、里程计数据和/或平面激光扫描数据的情况下对位置预测的更新。在一些实施例中,车辆状态信息318包括车辆速度和关于车辆移动的其它运动数据。例如,其它运动数据是表示在激光扫描期间由车辆移动导致的失真的时间特性。
[0044]基于环境的导航模块320使用滤波器(例如,诸如扩展卡尔曼滤波器的处理滤波器),以基于先前车辆状态生成位置预测,然后利用位置测量数据310更新位置预测。基于来自传感器阵列108 (例如附接到车轮的编码器)的里程计数据,或者其它位置预测数据(例如来自惯性测量单元的数据),基于环境的导航模块320估计当前车辆状态。例如,利用车轮直径,基于环境的导航模块320计算工业车辆102从先前车辆位置行进的距离。作为另一个示例,编码器可以直接测量车轮的表面速度,并将这样的测量值传送给基于环境的导航模块320。将关于行进距离的该信息与先前计算的车辆状态估计相结合以给出新的车辆状态估计。基于环境的导航模块320还可以使用滤波器估计与当前车辆状态(例如,车辆位置)相关联的不确定性和/或噪声。
[0045]基于环境的导航模块320访问优先级队列310,并且按照接收时间的顺序检查传感器输入消息312。在一些实施例中,基于环境的导航模块320在更新车辆状态信息318之前重排列(例如,排序)传感器输入消息312。根据与传感器相关联的特性测量延迟和/或内部系统延迟重排列传感器输入消息312。每个数据源具有可测量内部系统延迟,可测量内部系统延迟可以用作对测量时间的估计。由于检索传感器输入消息312的顺序与通过传感器装置332获取传感器输入消息312中的数据的顺序相同,所以处理重排列的传感器输入消息312使得能够进行准确的位置定位和地图绘制。
[0046]在一些实施例中,基于环境的导航模块320按照获取时间而不是接收时间的顺序执行观测更新步骤。基于先前车辆状态和当前位置预测,基于环境的导航模块320执行数据融合技术,以结合可用的里程计数据并且校正当前位置预测。基于环境的导航模块320使用当前位置预测,以准确的车辆位置(x、y位置和前进方向)更新车辆状态信息318。
[0047]图4为根据一个或更多个实施例的用于对工业车辆提供准确定位的系统400的功能框图。系统400包括与诸如铲车的工业车辆耦合的移动计算机104、以及传感器阵列108。移动计算机104中的各个软件模块共同形成基于环境的导航模块(例如图3的基于环境的导航模块320)。
[0048]移动计算机104包括用于执行导航功能的各个软件模块(即,部件),例如定位模块402、地图绘制模块404、校正模块408、以及车辆控制器410。移动计算机104提供工业车辆的准确位置,并且可以利用与环境特征相关联的信息更新地图数据406。定位模块402还包括用于确定车辆状态418的各个部件,例如滤波器414和特征提取模块416。地图绘制模块404包括各种数据,例如动态环境特征422和静态环境特征424。地图绘制模块404还包括各个部件,例如特征选择模块420。
[0049]在一些实施例中,校正模块408处理一个或更多个传感器输入数据消息,并且检查一个或更多个传感器输入数据消息中的观测到的传感器数据。在通过滤波器414处理数据之前,校正模块408消除运动和/或时间失真伪像(distortion artifact)。
[0050]图5示出根据一个或更多个实施例的在视场中执行激光扫描500的平面激光扫描器204。如上所述,铲车200在激光扫描500期间可以在特定方向(例如向前)上移动。如以下进一步详细描述的,移动计算机(例如,图1的移动计算机104)执行基于环境的导航模块320,基于环境的导航模块320校正激光扫描器数据以考虑车辆移动,从而产生准确定位。
[0051]在从P1到P2的视场之间,平面激光扫描器204在扫描时间(Ts)502期间执行激光扫描。替选地,当平面激光扫描器是具有单个范围方位测量装置(其顺时针旋转,进行从P1到P2的测量)的旋转型扫描器时,可以将瞬时扫描时间(Ts) 502与离散扫描读数相关联,从而产生具有关联范围和方位数据点的扫描时间的时间序列。用于处理激光扫描器数据所需的时间段被存储为处理时间(Tp)。接下来,在传送时间(Tt) 506期间将激光扫描器数据以传感器输入消息的形式传送到处理滤波器。TS502、TP504和Tt506共同构成在获取激光扫描器数据与处理滤波器可利用该激光扫描器数据以更新车辆状态之间的延迟。基于环境的导航模块利用常数值(例如包括Ts502、Tp504和Tt506的一半的值之和)考虑这样的延迟。如果由于不知道激光器的内部处理而无法计算Tp504,则处理滤波器使用与传感器输入消息的可用性和发布速率(即,激光扫描的周期)相关联的时间来估计Τρ504。
[0052]图6示出根据一个或更多个实施例的与物理环境100中的车辆102的移动相关联的运动失真。具体地,在通过诸如旋转型平面激光扫描器的各种传感器装置的扫描期间,车辆102被示出为移动到更接近于例如墙壁604的特征。当这些传感器装置捕获激光扫描器数据时,车辆102在位置600开始,在直线向前方向上移动,并且最后在位置602结束。车辆102的移动导致激光扫描器数据中的运动伪影,该运动伪影使得各种环境特征的坐标失真。车辆在扫描期间的运动导致墙壁角度中的估计误差608,从而导致如606所示的被估计的墙壁位置。本领域技术人员将理解,激光扫描器的旋转运动可导致观测到的特征的更复杂的失真,该失真如果未被校正将产生车辆位置估计中的显著误差。这些误差随着车辆速度增大而变大。
[0053]基于环境的导航模块采集在扫描时间Ts502期间的车辆运动数据,例如里程计数据,并且校正平面激光扫描器数据。在一些实施例中,车辆运动数据包括用于确定行进距离和/或方向的参数,用于调节坐标关联的各种环境特征。在去除由车辆移动导致的运动伪影之后,基于环境的导航模块使用Ts502更新先前的车辆位置预测,并且确定当前车辆状态。
[0054]在一些实施例中,校正模块408将一个或更多个传感器输入数据消息插入到队列中。随后,校正模块408基于校正后的获取时间对传感器输入消息进行排序。当来自触发数据源的传感器输入消息对于校正模块408变得可用时,通过定位模块402对队列执行滤波器更新处理,定位模块402将剩余的传感器数据结合到位置测量中,以确定当前车辆位置。例如,触发数据源可以是特定类型的传感器装置,例如激光扫描器。
[0055]除了用于计算车辆状态418的滤波器414之外,定位模块402还包括用于从校正后的传感器数据提取特征的特征提取模块416。地图绘制模块404将车辆状态418与动态特征422和/或静态特征424比较,以消除不相关的特征,这减少了要检查的特征的总数。特征选择模块420管理对地图数据406添加和修改动态特征422。特征选择模块420可以更新地图数据406,以指示特定特征的最近被占据或被清除的区域,例如已知的放置和拾取的项目。
[0056]滤波器414比较从校正后的传感器数据提取的特征与已知的地图绘制的环境特征、和/或结合传感器数据,并且校正位置预测,以解决不正确的估计和/或观测到的环境特征不确定性,并且更新车辆状态418。滤波器414确定车辆状态418,并且可以指示地图绘制模块404以与动态特征422关联的信息更新地图数据406。通过滤波器414建模的车辆状态418表示当前车辆状态,并且包括指示车辆位置(例如x、y的坐标和取向)以及移动(例如,车辆速度、加速度等)的数据。定位模块402将与车辆状态418关联的数据传送到地图绘制模块404,同时还将这样的数据传送到车辆控制器410。基于车辆位置,车辆控制器410将工业车辆导航到目的地。
[0057]可以理解,系统400可以使用若干个计算装置执行基于环境的导航。计算装置104内的任何软件模块可被部署在不同的或多个物理硬件部件上,例如其它计算装置。例如,地图绘制模块404可以在网络(例如,图3的网络302)上的服务器计算机(例如,图1的中央计算机102)上被执行,以与多个移动计算装置连接,用于利用当前车辆位置共享并更新地图数据406。
[0058]在一些实施例中,校正模块408处理来自诸如传感器阵列108的不同数据源的传感器输入消息,不同数据源具有用于车辆状态418的不同采样/发布速率、以及不同(内部)系统延迟。由于不同的采样周期和系统延迟,获取传感器输入消息的顺序与传感器输入消息最终变得对于计算装置104可用的顺序不相同。特征提取模块416从这些消息中的传感器数据提取观测到的环境特征。定位模块402分别检查每个消息以保持每个观测的一致性。可以执行这样的检查而不是融合传感器数据,以避免任何航迹推算误差。
[0059]图7A为示出根据一个或更多个实施例的用于工业车辆的定位和地图绘制处理700的交互图。具体地,定位和地图绘制处理700包括在部件或层之间处理和传送各种数据,部件或层例如为传感器数据校正702、接口 704、特征提取706、数据关联708、EKF710以及动态地图712。定位和地图绘制处理700利用主要环境特征支持工业车辆操作。接口 704有助于层上的控制,并且被添加到基于环境的导航模块。
[0060]特征提取706检查通过传感器装置输入的数据,并且提取观测到的环境特征(例如,线和角)。数据关联708比较观测到的特征与已知静态环境特征信息424和/或动态环境特征信息422,以识别与已知地图数据匹配的特征。EKF710为扩展卡夫曼滤波器,其在给定与匹配特征和先前车辆位置相关联的测量值的情况下,提供最可能的当前车辆位置。动态地图管理器712保存在先验静态地图中未发现的用于定位的动态环境特征的最新动态地图。动态地图712使得特征可用于数据关联708,从而使得检查静态和动态环境特征二者。
[0061]图7B为示出根据一个或更多个实施例的利用与工业车辆关联的车辆运动数据的定位处理714的交互图。车辆运动数据表示工业车辆移动,其可能使得由EKF710确定的位置预测失真。例如,在从传感器装置获取传感器输入消息时(例如,在激光扫描期间),工业车辆可能正在移动。这些传感器输入消息包括不准确的传感器数据,不准确的传感器数据最终导致失真的位置预测和对下一个车辆状态的不准确的估计。可以通过传感器阵列108上的传感器(例如来自车轮的里程计和/或IMU等)测量车辆运动数据。
[0062]传感器数据校正702是定位处理714中的步骤,其中根据一些实施例,在车辆位置预测之前从传感器数据去除时间和/或运动伪影。传感器数据校正702处理从各种传感器数据确定的车辆运动数据,然后传送到接口 704。例如,传感器数据校正702使用车轮直径和里程计数据计算速度测量值并且校正数据获取时间。通过接口 704将车辆运动数据传输到EKF710。EKF710响应于车辆运动数据执行位置预测,以基于车辆运动数据估计当前位置数据和位置不确定性。经由接口 704将校正后的当前位置数据传送回到车辆。
[0063]图8为示出根据一个或更多个实施例的传感器输入消息处理800的时序图。在一些实施例中,传感器阵列(例如,图1的传感器阵列108)中的各种传感器装置,例如激光扫描器802、激光扫描器804、和里程计806,将传感器输入消息传送到基于环境的导航模块808。激光扫描器802和激光扫描器804可表不具有不同发布速率和/或不同供应商的两个不同的平面激光装置。
[0064]为了缓解或校正由时间和运动失真导致的误差,基于环境的导航模块808响应于传感器输入消息的每个获取时间确定位置测量值。传感器通常在装置中的内部数据获取时提供信息、或者在来自传感器的数据变得可用时创建时间戳。随后,这样的数据被传送到形成基于环境的导航模块808的软件模块以进行处理,其中由于各种数据共享技术(例如,串行链接、以太网或软件处理),该数据与其它传感器数据相比没有按照时间顺序到达。
[0065]T8tl2、T804和T8tl6分别是激光扫描器802、激光扫描器804和里程计806的广播时间段。δ8(ι2、3_和δ 8(16是用于处理传感器输入消息并将传感器输入消息传送到基于环境的导航模块808的系统延迟。由于不同的采样周期和不同的系统延迟,通过传感器装置获取传感器数据的顺序与消息变得对于基于环境的导航模块808可用的顺序不相同。例如,来自激光扫描器802的第一传感器输入消息包括关于最早时间的车辆状态的观测到的环境特征。然而,该消息在来自激光扫描器804和/或里程计806的至少一个后续传感器输入消息之后到达,至少一个后续传感器输入消息包括关于稍后时刻的车辆状态的观测到的环境特征和/或运动估计。当第一传感器输入消息最后变得对于EBN 808可用时,来自里程计装置806的两个传感器输入消息已经变得可用。
[0066]在一些实施例中,发布速率(T)和/或系统延迟(δ )不是固定的。基于环境的导航(EBN)模块808使用优先级队列(例如,图3的优先级队列310)来寻址传感器输入消息。EBN在处理最慢的传感器输入消息广播之后(也在先前预测更新处理之后)执行预测更新处理。响应于与每个消息关联的获取时间,EBN模块808使用传感器数据来修改观测到的环境特征测量值。在检查每个传感器输入消息之后,EBN模块808校正用于工业车辆的位置预测。
[0067]因此,每个未来预测更新处理是一组滤波器位置预测和更新步骤,其中按照获取时间戳(例如,图3的获取时间戳314)的顺序处理优先级队列中的每个传感器输入消息。在更新步骤期间,EBN模块808校正位置预测/估计。替选地,EBN模块808结合传感器数据以确定准确的位置测量值。例如,EBN模块808在时间上结合里程计数据(即,航迹推算)。
[0068]如图所示,来自里程计806的消息具有传感器装置中最小的系统延迟以及最高的采样频率。当将里程计806消息插入到优先级队列中时,EBN模块808执行一个或更多个位置预测步骤,并且连续更新车辆位置(例如,当前或历史位置)估计。然后,EBN模块808延迟执行EBN模块808结合里程计数据的更新步骤,但是不校正车辆位置估计,直到触发更新步骤为止。在一些实施例中,来自特定类型的传感器装置(例如激光扫描器802)的消息构成启动更新步骤的触发消息。
[0069]作为预测更新处理的结果,EBN模块808更新车辆位置估计。在一些实施例中,EBN模块808校正关于车辆位置的二维x、y坐标和前进方向。这些坐标表示与共享使用的物理环境关联的地图数据。在一些实施例中,当来自触发消息的传感器数据变得对于EBN模块808可用时卿,广播时间),更新车辆位置。在触发消息可用的情况下,EBN模块808按照获取时间的顺序处理优先级队列中的每个传感器输入消息。更新的车辆位置将反映当获取触发消息时的观测到的位置测量值。
[0070]在一些实施例中,在航迹推算误差超出预定义的阈值前触发更新步骤。EBN模块808确定在哪种情况下,航迹推算误差过大。例如,如果优先级队列超过特定长度(即,传感器输入消息的个数),则传感器输入消息处理要求延长的时间量。EBN模块808将更新步骤延迟足够的时间量,以确保没有消息不是按照获取时间的顺序被处理的。在一些实施例中,延迟更新步骤,直到来自与最长系统延迟关联的数据源的传感器输入消息变得可用为止。如果未接收到这样的数据,则EBN模块808基于每个可用的传感器输入消息的获取时间执行更新步骤。在一些实施例中,如果当前车辆位置估计具有高置信度,并且/或者为了减少资源工作负荷,EBN模块808删除一个或更多个传感器输入消息。
[0071]图9示出根据一个或更多个实施例的传感器输入消息处理900的一部分。具体地,传感器输入消息处理900的一部分对应于激光扫描器902的接收时间(T9tl2)和时间校正(C918)。将来自各个传感器装置的读数910作为传感器输入消息进行处理、校正并存储到队列912中,其中标记指不源传感器装置。来自激光扫描器902和激光扫描器904的传感器输入消息分别包括标记“激光器A”和“激光器B”。类似地,具有里程计数据的传感器输入消息标记有“里程计”,以指示里程计906是源。另外,队列912中的传感器输入消息根据获取时间而不是接收时间进行排序。
[0072]在时间t=0.5从激光扫描器902接收第一读数,然后作为根据获取时间t=0.1的传感器输入消息存储在队列912中,从而实现上述时间校正918。在一些实施例中,将队列912重排列,使得传感器输入消息是下一个要处理的消息而不是较早变得可用但是在迟于第一读数的传感器装置处获取的消息。在一些实施例中,EKF 914使用存储在具有较早获取时间的传感器输入消息中的里程计数据,确定针对时间t=0.1的位置预测。由于激光扫描器902是触发数据源,所以传感器输入消息是使得EKF 914更新位置预测并确定历史位置的触发消息。触发消息之后的存储在队列912中的里程计数据被融合,并且用来根据历史位置预测在时间t=0.4的当前位置。
[0073]里程计906发布在时间t=0.7并且利用到给定获取时间t=0.6的里程计获取延迟920校正的里程计数据的第二读数。一旦第二读数作为传感器输入消息变得对于EBN 908可用,则EKF 914预测在时间t=0.6的车辆位置。然后,EBN 908在队列912的末端存储与第三读数关联的传感器输入消息。接下来,来自激光扫描器904的第三读数到达EBN 908,并根据利用获取延迟922的获取时间存储在队列912中。由于激光扫描器904不是触发数据源,所以第三读数未被处理。随后,接收、校正并使用来自里程计906的第四读数来估计在时间t=0.8的车辆位置。EBN 908结合与第四读数关联的里程计数据和与第二读数关联的里程计数据。
[0074]最后,来自激光扫描器902的第五读数被处理并且根据获取时间被存储为队列912中的传感器输入消息。由于第五读数具有获取时间t=0.5,从而将该传感器输入消息插入在具有稍后获取时间(即,从时间t=0.6到0.8)的消息之前并且在具有先前获取时间(即,从时间t=0.1到0.4)的消息之后的位置。由于传感器输入消息是触发消息,所以将来自具有先前获取时间的消息的传感器数据与同第五读数关联的激光扫描器数据组合。
[0075]然后,使用激光扫描器数据确定时间t=0.5的位置测量值,以更新时间t=0.1的车辆状态,其包括最近已知车辆状态。根据一些实施例,利用来自第四读数的里程计数据,EKF914校正基于最近已知车辆状态的时间t=0.4的位置预测。最后,EBN 908使用具有稍后获取时间的消息来前向预测(forward prediction)在时间t=0.8的当前车辆位置。在一些实施例中,EBN908融合存储在这些消息中的里程计数据,并将融合的里程计数据结合到当前车辆位置预测中。
[0076]图10为示出根据一个或更多个实施例的用于在物理环境中定位工业车辆的定位和地图绘制系统1000的功能框图。诸如平面激光扫描器装置的多个传感器装置提供关于环境特征的信息。来自诸如里程计和/或IMU的多个传感器装置中的一部分的读数提供描述各个数据中的相对变化的车辆运动数据,各个数据例如为位置、速度、加速度和/或其它车辆运动数据。
[0077]根据一些实施例,当传送各种传感器数据时,时间和运动失真校正处理1002可以去除时间中的或来自由于运动导致的失真的任何计算误差,指示处理1004从校正后的传感器数据(例如平面激光扫描器数据)提取环境特征,并且将排序的传感器数据存储在优先级队列1006中。提取环境特征处理1004在滤波器1010中检查排序的传感器数据并识别标准环境特征,以确定车辆位置,其中标准环境特征与包括已知静态和/或动态环境特征的已知特征列表1008相比较。提取环境特征处理1004确定关于这些环境特征(例如线、角、弧、或标记)的信息,其中以标准格式提供这些环境特征以用在滤波器1010中。如以下进一步所述的,利用排序的传感器数据,滤波器1010基于观测到的提取环境特征更新对工业车辆的当前位置预测。
[0078]在一些实施例中,时间和运动失真校正处理1002还使用对应于激光扫描的车辆运动数据,根据由运动伪影导致的不准确性校正作为结果的激光扫描器数据(例如,测量点的范围和方位)。例如,基于在激光扫描器数据的获取时间处或附近(例如,紧前或紧后)测量的速度参数,时间和运动失真校正处理1002调整关于环境特征的观测。
[0079]通常,滤波器1010提供用于自动型工业车辆或手动驱动车辆的实时定位信息。滤波器1010还可以提供指示与车辆位置测量值相关联的不确定性的数据。因此,如果工业车辆暂时在空的空间中行进而没有可用的环境特征或标记,则滤波器1010通过与确定不确定性的标记一起利用车辆运动数据更新车辆位置来连续提供准确定位。滤波器1010从优先级队列(例如,具有最早获取时间的消息)提取下一个传感器输入消息,并检查关于提取的标准环境特征的信息。已知特征列表1008包括与物理环境的地图关联的静态和/或动态环境特征。滤波器810将从已知特征列表1008选择的特征与提取的标准特征进行比较,以便估计车辆位置。
[0080]根据安全性要求,在误差触发警报1014之前,工业车辆可以在关于车辆状态的限定的不确定性程度内操作。如果处理1012确定不确定性超出预定义的阈值,则警报1014将误差消息传送到计算机,计算机例如为与工业车辆耦合的移动计算机或用于监视物理环境的中央计算机。另一方面,如果处理1012确定不确定性超出预定义的阈值,则前向预测处理1016如以下进一步所述地估计当前车辆状态,并且发布车辆状态处理1018更新发布的车辆状态。
[0081]在时间和运动失真校正处理1002期间,从每个传感器装置传送读数(B卩,观测)。这些读数可通过平面激光器和/或三维激光器和/或相机或用于提取环境特征的任何其它类型的传感器装置来提供。时间和运动失真校正处理1002还校正可能由于有限的测量时间和/或工业车辆的行进速度导致的任何失真。该失真在工业车辆和传感器移动时(例如,在扫描期间)出现,这将时间特性与从读数提取的数据相关联。
[0082]在一些实施例中,车辆状态包括与地图中的车辆位置关联的位置(X、y坐标和取向)。在一些实施例中,车辆状态包括各种速度测量值。里程计数据提供线性速度和旋转速度。线性速度指的是安装有编码器或其它速度测量装置的车轮的平均线性速度。旋转速度与相对车轮的线性速度之差成比例,并且指示车辆的前进方向相对于全局坐标系改变了多少。滤波器1010通过比较建模的运动处理噪声与来自环境观测的噪声(例如来自平面激光范围测量值的观测)校正处理噪声(例如,诸如车轮滑动和角滑动的里程计噪声),并在统计上确定更准确的位置估计。
[0083]因为滤波器1010根据获取时间处理传感器输入消息,所以滤波器1010可以更新车辆状态以包括在当前时间之前的时刻的车辆位置。如上所述,滤波器1010响应于触发消息更新车辆状态。可将更新的车辆状态表示为历史车辆状态。根据一些可选实施例,在更新车辆状态之后,前向预测处理1016使用来自里程计队列1022的对应于触发消息的获取时间之后的时间的里程计数据,进一步更新历史车辆状态,以通过结合里程计数据来包括当前车辆位置。根据一些实施例,在前向预测处理1016之前,将来自里程计的传感器输入消息传送到里程计队列1022。里程计数据可用来执行前向预测处理1016。
[0084]滤波器1010可使得将在已知特征列表1008中未出现的提取环境特征1004添加到已知动态环境特征的列表中,或者在负面观测的情况下从已知动态环境特征的列表中去除,其中,已知动态环境特征的列表与诸如图4中的地图406的地图关联,然后在下次访问已知特征列表1008时用作已知特征列表1008的一部分。
[0085]图11为根据一个或更多个实施例的用于提供对工业车辆的准确定位的方法1100的流程图。在一些实施例中,基于环境的导航模块(例如,图4的基于环境的导航模块420)执行方法1100的每个步骤。在其它实施例中,省略或跳过一些步骤。方法1100在步骤1102开始并前进到步骤1104。
[0086]在步骤1104,方法1100初始化各种传感器装置。例如,方法1100初始化一个或更多个平面激光扫描器和/或相机、和/或里程计等。在步骤1106,方法1100确定传感器装置中的任一个是否传送传感器输入消息。如果从传感器装置之一接收到传感器输入,则方法1100前进到步骤1110。否则,在步骤1108,方法1100等待传感器输入消息的广播。一旦传感器输入消息变得可用(例如,对于基于环境的导航模块),则方法1100前进到步骤1110。
[0087]在步骤1110,方法1100处理传感器输入消息。在步骤1112,方法1100从传感器输入消息提取标准特征(即,环境特征)。在步骤1114,方法1100将获取时间戳附加到传感器输入消息。
[0088]在步骤1116,方法1100将传感器输入消息存储在优先级队列中。方法1100根据获取时间而不是接收时间重排列优先级队列中的传感器输入消息。因此,每个传感器输入消息的获取时间构成用于排序传感器输入消息的优先级(即,值)。方法1100通过检查优先级队列中的具有最早获取时间的下一个传感器输入消息,响应于与每个传感器输入消息关联的获取时间来确定位置测量值。在一些实施例中,方法1100基于通过传感器装置观测到的位置测量值来校正位置预测。
[0089]在步骤1118,方法1100确定优先级队列中的下一个队列条目是否包括里程计数据。如果队列条目是里程计数据,则方法1100前进到步骤1120。在步骤1120,方法1100结合优先级队列中的里程计数据,并更新车辆位置。另一方面,如果下一个队列条目测量值不包括里程计数据,则方法1100前进到步骤1122。在步骤1122,方法1100确定是否通过触发数据源生成并传送传感器输入消息。如果传感器输入消息来自触发数据源,则方法1100前进到步骤1124。另一方面,如果传感器输入消息不是来自触发数据源,则方法1100返回到步骤1106。在步骤1124,方法1100执行滤波器更新处理,以确定准确的位置测量值并且更新车辆状态。在一些实施例中,方法1100校正利用传感器数据和先前车辆状态确定的位置预测。
[0090]在步骤1126,方法1100将校正的车辆位置存储在车辆状态信息(例如,图3的车辆状态信息318)中。在步骤1128,方法1100确定是否终止定位处理。如果要终止定位处理,则方法1100前进到步骤1130。如果不终止定位处理,则方法1100返回到步骤1106。在步骤1130,方法1100结束。
[0091]图12为根据一个或更多个实施例的用于利用滤波器更新工业车辆的车辆状态的方法1200的流程图。在一些实施例中,基于环境的导航模块执行方法1200的每个步骤。在其它实施例中,省略或跳过一些步骤。在一些实施例中,方法1200实施图11所示的方法1100的步骤924。因此,在来自触发数据源的传感器输入消息(即,触发器消息)被接收到或变得可用时执行方法1200。在执行车辆状态的滤波器更新处理之前,滤波器(例如,诸如扩展卡尔曼滤波器的处理滤波器)基于先前车辆状态(例如,先前车辆位置)确定当前位置预测。方法1200在步骤1202开始并前进到步骤1204。
[0092]在步骤1204,方法1200处理下一个传感器输入消息。在一些实施例中,方法1200从队列(例如,按照获取时间排序的优先级队列)提取下一个传感器输入消息。在一些实施例中,方法1200检查具有最早获取时间的下一个传感器输入消息,并从激光扫描器数据提取关于标准静态和/或动态环境特征的信息。方法1200还结合任何可用的里程计数据,并预测当前车辆位置。可以理解,根据一些实施例,方法1200生成关于来自其它传感器装置(例如编码器)的环境特征的附加信息。
[0093]在步骤1206,方法1200确定下一个传感器输入消息是否是触发消息。如本公开内容中所述,根据一些实施例,通过触发数据源(例如,特定传感器装置)传送触发消息。如果下一个传感器输入消息也是触发消息,则方法1200前进到步骤1208,在步骤1208,检查与下一个传感器输入消息关联的位置测量数据。在一些实施例中,方法1200利用在触发消息之前获取的并且包括触发消息的激光扫描器数据和里程计数据来更新位置预测。
[0094]在步骤1210,方法1200结合剩余的里程计数据,以在给定最近车辆移动的情况下预测当前位置并更新车辆状态(例如,图3的车辆状态信息318)。步骤1210可表示本公开内容中的前向预测处理。如果传感器输入消息不是触发消息,则方法1200返回到步骤1204,并按照获取时间的顺序从队列提取另一个传感器输入消息。在步骤1212,方法1200结束。[0095]上文联合各自的功能描述了各个元件、装置和模块。这些元件、装置和模块被认为是用于执行如本文中所述的各自的功能的装置。
[0096]尽管上文涉及本发明的实施例,但是在不偏离本发明的基本范围的情况下,可以设计本发明的其它和另外的实施例,并且本发明的范围由下面的权利要求书来确定。
【权利要求】
1.一种用于准确定位工业车辆的方法,包括: 处理来自多个传感器装置的至少一个传感器输入消息,其中所述至少一个传感器输入消息包括关于观测到的环境特征的信息; 响应于至少一个传感器输入消息确定与所述工业车辆相关联的位置测量值,其中所述多个传感器装置包括二维激光扫描器和从里程计、超声波传感器、指南针、加速度计、陀螺仪、惯性测量单元(MU)或成像传感器中选择的至少一个其它传感器装置;以及 利用所述位置测量值更新车辆状态。
2.根据权利要求1所述的方法,还包括:基于更新的车辆状态导航所述工业车辆。
3.根据权利要求1所述的方法,其中确定所述位置测量值还包括:响应于工业车辆移动来校正关于所述环境特征的信息。
4.根据权利要求1所述的方法,其中确定所述车辆位置还包括:根据每个获取时间重排列所述至少一个传感器输入消息。
5.根据权利要求1所述的方法,其中确定所述车辆位置还包括:按照获取时间的顺序检查所述至少一个传感器输入消息。
6.根据权利要求1所述的方法,其中确定所述位置测量值还包括:响应于触发消息,在确定位置测量值时结合车辆运动数据。
7.根据权利要求1所述的方法,其中更新所述车辆状态还包括:利用提取的环境特征更新位置预测。
8.根据权利要求1所述的方法,其中更新所述车辆状态还包括:响应于所述至少一个传感器输入消息延迟所述更新的步骤。
9.根据权利要求1所述的方法,还包括:利用车辆运动数据和更新的车辆状态预测当前车辆状态。
10.根据权利要求9所述的方法,其中所述车辆运动数据对应于在触发消息的获取时间之后的获取时间。
11.根据权利要求1所述的方法,还包括:确定与所述车辆位置相关联的不确定性。
12.一种用于对工业车辆提供准确定位的设备,包括: 与所述工业车辆和多个传感器耦合的计算机,包括: 基于环境的导航模块,用于处理来自多个传感器的至少一个传感器输入消息,其中所述至少一个传感器输入消息包括关于环境特征的信息,响应于所述至少一个传感器输入消息的每个获取时间确定与所述工业车辆相关联的位置测量值,以及利用确定的位置测量值更新车辆状态。
13.根据权利要求12所述的设备,其中所述基于环境的导航模块根据所述每个获取时间重排列所述至少一个传感器输入消息。
14.根据权利要求12所述的设备,其中所述基于环境的导航模块响应于工业车辆移动来校正关于所述环境特征的信息。
15.一种计算机可读存储介质,包括一个或更多个处理器可执行指令,所述指令当被至少一个处理器执行时使得所述至少一个处理器: 处理来自多个传感器装置的至少一个传感器输入消息,其中所述至少一个传感器输入消息包括关于环境特征的信息;响应于所述至少一个传感器输入消息的每个获取时间确定与所述工业车辆相关联的位置测量值;以及 根据所述获取时间重排列所述至少一个传感器输入消息,响应于工业车辆移动来校正关于所述环境特征的信息,根据所述每个获取时间将所述至少一个传感器输入消息存储在队列中,按照获取时间的顺序检查所述至少一个传感器输入消息,或者响应于触发消息,在确定所述位置测量值时 结合车辆运动数据。
【文档编号】G01S5/02GK103733084SQ201280036678
【公开日】2014年4月16日 申请日期:2012年5月22日 优先权日:2011年5月26日
【发明者】A·E·格莱姆, C·W·古德, L·王 申请人:克朗设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1