一种无人车运动状态规划方法及装置
技术领域
本申请涉及无人驾驶技术领域,尤其涉及一种无人车运动状态规划方法以及装置。
背景技术
目前,无人驾驶技术领域中无人车控制方法主要需要解决的问题是无人车如何避障,使无人车在沿规划出的路径行驶时,通过预测障碍物的行驶轨迹,确定可以避让障碍物的运动轨迹,再根据运动轨迹控制无人车运动,包括无人车速度、行驶方向等运动状态,以使无人车安全的达到目的地。
但是,在现有无人车控制方法中,并没有考虑到路面本身状态,例如路面是否有破损,路面是否有减速带,路面是否有侧向倾斜等等。而路面本身状态又会对车辆行驶造成的影响,例如,损坏的路面会使无人车行驶时出现颠簸、侧倾等现象,导致现有技术存在安全问题。
发明内容
本说明书实施例提供的一种无人车运动状态规划方法及装置,用于部分解决现有技术中存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的无人车控制方法,包括:
获取为无人车规划的行驶轨迹以及待定运动状态;
获取所述行驶轨迹所在道路的路面属性;
根据所述路面属性、所述行驶轨迹以及所述无人车的车辆参数,确定所述无人车各车轮的实际车轮轨迹;
根据各实际车轮轨迹,确定所述无人车按照所述待定运动状态沿所述行驶轨迹行驶时各时刻的车辆姿态;
若确定出的各时刻的车辆姿态中是否存在不符合预设姿态的车辆姿态,则调整所述待定运动状态,并根据调整后的待定运动状态以及各实际车轮轨迹,重新确定所述无人车各时刻的车辆姿态,直至各时刻的车辆姿态均符合所述预设姿态为止,将调整后的待定运动状态作为规划的最终运动状态。
可选地,获取所述行驶轨迹所在道路的路面属性,具体包括:
根据所述行驶轨迹,通过电子地图确定所述行驶轨迹所在道路的几何信息;
根据所述无人车上传感器采集的所述道路的路面信息以及几何信息,确定路面属性。
可选地,根据所述路面属性、所述行驶轨迹以及所述无人车的车辆参数,确定所述无人车各车轮的实际车轮轨迹,具体包括:
根据所述路面属性,对所述道路的路面进行建模,确定三维路面模型;
根据所述无人车的车辆参数,确定所述无人车各轮胎的位置关系;
根据所述行驶轨迹、所述位置关系以及所述三维路面模型,确定各车轮的实际车轮轨迹。
可选地,根据各实际车轮轨迹,确定所述无人车按照所述待定运动状态沿所述行驶轨迹行驶时各时刻的车辆姿态,具体包括:
根据所述无人车的车辆参数,从预设的各车辆动力学模型中,确定与所述无人车的车辆参数对应的车辆动力学模型;
将各实际车轮轨迹以及所述待定运动状态作为输入,输入所述车辆动力学模型,得到所述无人车的车身姿态轨迹;
在所述车身姿态轨迹上确定指定数量的检测点;
针对每个检测点,根据所述车身姿态轨迹,确定该检测点对应的车身姿态。
可选地,将各实际车轮轨迹以及所述待定运动状态作为输入,具体包括:
根据所述无人车执行任务的任务信息,确定所述无人车的负载;
将所述负载、各实际车轮轨迹以及所述待定运动状态作为输入。
可选地,确定出的各时刻的车辆姿态中存在不符合预设姿态的车辆姿态之前,所述方法还包括:
根据所述无人车执行任务的任务信息,确定当前所述无人车所载物品的类型;
根据预设的各物品的类型与姿态阈值的对应关系,确定若干姿态阈值;
根据确定出的若干姿态阈值,确定所述预设姿态。
可选地,调整所述待定运动状态,具体包括:
从各检测点中,确定车身姿态不符合所述预设姿态的检测点,作为待调整的检测点;
针对每个待调整的检测点,根据所述行驶轨迹,确定所述无人车在该检测点的转向角度;
根据该检测点的车身姿态、预设姿态以及所述转向角度,调整所述待定运动状态;
其中,差值越大调整量越大,转向角度越大调整量越大。
本说明书提供的无人车运动状态规划装置,包括:
第一获取模块,确定规划得到的无人车的行驶轨迹以及待定运动状态;
第二获取模块,获取所述行驶轨迹所在道路的路面属性;
车轮轨迹确定模块,根据所述路面属性、所述行驶轨迹以及所述无人车的车辆参数,确定所述无人车各车轮的实际车轮轨迹;
姿态确定模块,根据各实际车轮轨迹,确定所述无人车按照所述待定运动状态沿所述行驶轨迹行驶时各时刻的车辆姿态;
调整模块,若确定出的各时刻的车辆姿态中存在不符合预设姿态的车辆姿态,则调整所述待定运动状态,并根据调整后的待定运动状态以及各实际车轮轨迹,重新确定所述无人车各时刻的车辆姿态,直至各时刻的车辆姿态均符合所述预设姿态为止,将调整后的待定运动状态作为规划的最终运动状态。
本说明书提供的计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法。
本说明书提供的无人车,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一所述的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
首先,可根据规划得到的无人车的行驶轨迹,基于路面属性确定各车轮的实际车轮轨迹,再根据车轮轨迹以及规划的待定运动状态,确定无人车按照行驶轨迹行驶时各时刻的车辆姿态,当存在不符合预设姿态的车辆姿态时,通过调整待定运动状态,使各时刻的车辆姿态均符合所述预设姿态,调整后的待定运动状态作为规划的最终运动状态。通过路面属性,确定各轮胎实际轮胎轨迹,以确定按照规划的待定运动状态行驶时的车辆姿态,使得当车辆姿态较为危险时,即不符合预设姿态时,可以通过调整待定运动状态避免危险情况出现,提高无人车的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的无人车运动状态规划流程示意图;
图2为本说明书实施例提供的无人车控制过程示意图;
图3为本说明书实施例提供的道路的几何信息变化示意图;
图4为本说明书实施例提供的车身姿态示意图;
图5为本说明书实施例提供的无人车运动状态规划装置的结构示意图;
图6为本说明书实施例提供的实现无人车运动状态规划方法的无人车示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例提供的无人车运动状态规划流程示意图,包括:
S100:获取为无人车规划的行驶轨迹以及待定运动状态。
在本说明书一个或多个实施例中,该无人车运动状态规划过程具体可以是无人车控制过程中的一环,如图2所示。图2为无人车控制过程示意图,无人车根据出发地点以及目的地点进行路径规划,确定要行驶的路径。在行驶过程中根据采集的环境信息,通过预测模块预测各障碍物的运动轨迹,以及根据电子地图以及定位芯片的数据,确定自身位置以及道路信息,再根据路径、障碍物的轨迹、自身位置以及道路信息,确定行驶决策,例如,变道、跟随、超车等。之后,根据行驶决策、障碍物的轨迹、自身位置以及道路信息,确定行驶轨迹以及运动状态。最后,根据行驶轨迹以及运动状态,确定具体的控制指令下发至移动装置,控制无人车行驶。而本说明书中的运动状态规划过程,为确定出无人车的行驶轨迹后,如何调整运动状态的过程,即对图2中粗线框对应的步骤。
具体的,该过程可由控制无人车的设备执行,本说明书不作限制,可根据需要设置。为方便描述,以无人车上的处理器,如车机,执行该运动状态规划过程为例进行后续说明。
该处理器可获取为该无人车规划的行驶轨迹,以及在该行驶轨迹上行驶时该无人车的待定运动状态。由于行驶轨迹的规划需要考虑的因素很多,如规避障碍物等,并且通常并不考虑道路的路面属性,因此可能出现由于路面倾斜、破损等情况,导致无人车行驶时出现危险的情况。而改变行驶轨迹,又有可能导致发生其他危险情况,例如,与其他障碍物发生碰撞。为了在不改变行驶轨迹的情况下,减少危险情况的出现,该处理器可根据待定运动状态以及路面属性,在确定需要调整待定运动状态时,对待定运动状态进行调整。
需要说明的是,在本说明书中所述的运动状态为无人车的运动状态,可包括无人车的速度、加速度等。本说明书中所述的规划是指,在向移动设备发送控制指令之前,对运动状态进行进一步调整的过程,这一对运动状态的规划过程可视为与路径规划、行驶轨迹规划等类似的规划过程。最后当得到最终运动状态后,可使后续根据最终运动状态向移动设备发送控制指令。
S102:获取所述行驶轨迹所在道路的路面属性。
在本说明书中,该处理器获取的行驶轨迹为将该无人车视为一个整体时,该无人车的行驶轨迹,通常是指无人车指定位置在地面投影的轨迹。例如,无人车质心位置在无人车移动时,在地面投影的轨迹,指定位置通常为质心位置,当然也可根据需要设置,例如前轴中心点等。
可见,规划该行驶轨迹并没有考虑到路面属性对车身姿态带来的影响,而影响车身姿态的主要是车辆结构(如,轮胎、悬挂、底盘等)以及路面属性,因此该处理器还可获取该行驶轨迹所在道路的路面属性,以便后续确定车身姿态,并判断是否需要调整该待定运动状态。
具体的,在本说明书中,该处理器可根据该行驶轨迹,通过电子地图确定该行驶轨迹所在道路的几何信息。其中,道路的几何信息包括道路形状,如俯仰角度、侧倾角度、道路宽度等等,该道路的几何信息为可预先获取的信息,例如上述这些在道路建成时便可获取的信息。在本说明书中,该几何信息可以是该处理器从服务器获取的。
需要说明的是,该道路的几何信息,有可能是由于其他道路的建设而改变的,例如,某条道路建设时是平整没有侧倾以及俯仰的,但是在路侧新建了一家酒店,为了出入方便在路侧的路肩新建了一个斜坡,如图3所示,图3为本说明书提供的道路的几何信息变化示意图,图3为道路的截面图包括车辆行驶的路面、行人行走的人行道以及路肩,当在路侧路肩新建斜坡后,即图3中灰色部分,此时该道路的几何信息就产生了变化,出现了侧倾以及俯仰。而由于该道路的几何信息是预先获取的,因此时效性较低。
于是,该处理器还可获取通过该无人车上传感器采集的路面信息,并根据路面信息以及该几何信息,确定路面属性。具体的,该传感器可以是激光雷达。则通过激光雷达扫描所在道路行进方向的路面,可以确定路面信息。当路面出现凹陷或者凸起时,例如,路面出现坑洞、出现减速带时,通过激光雷达扫描得到的数据,可以确定这些信息。
最后,该处理器可根据路面信息以及该几何信息,即预先获取的以及实时获取的信息,确定该道路的路面属性。
S104:根据所述路面属性、所述行驶轨迹以及所述无人车的车辆参数,确定所述无人车各车轮的实际车轮轨迹。
在本说明书中,该处理器在获取路面属性以及行驶轨迹后,便可基于该无人车的车辆参数,确定该无人车各车轮的实际车轮轨迹。以便后续根据各车轮的轨迹,确定车辆姿态。
具体的,在本说明书中,首先该处理器可根据路面属性,对该道路的路面进行建模,确定三维路面模型。此时该三维路面模型相当于该道路的实际路面情况,包括了路面本身的倾斜、俯仰、宽度等信息,以及路面上的凸起、凹陷。并且,由于无人车可以确定自身所在的位置,因此还可确定该三维路面模型对应的坐标。即,三维路面模型上任一点的实际坐标。
然后,根据该无人车的车辆参数,确定该无人车各轮胎的位置关系,其中车辆参数可包括车辆轴距、轴宽等参数。根据该车辆参数,处理器可确定该无人车上任意位置与各轮胎的位置关系。因此该处理器可以确定各轮胎与该指定位置的位置关系,该指定位置为无人车上对应行驶轨迹的位置,例如质心位置。
之后,根据该行驶轨迹、该位置关系以及该三维路面模型,确定各车轮的实际车轮轨迹。具体的,该处理器可根据该位置关系,根据行驶轨迹在该三维路面模型上,确定无人车案行驶轨迹行驶时各车轮贴合路面滚动形成的轨迹,并根据魏三路面模型对应的坐标,确定各车轮的实际车轮轨迹。
由于路面会出现凹陷或凸起,或者路面存在侧倾、俯仰,因此在基于车辆参数确定出各车轮的实际车轮轨迹并不完全一致。并且,行驶轨迹也会影响实际车轮轨迹,例如,拐弯时外侧车轮的轨迹长度要长于内测车轮等。
S106:根据各实际车轮轨迹,确定所述无人车按照所述待定运动状态沿所述行驶轨迹行驶时各时刻的车辆姿态。
在本说明书中,在确定出个车轮的实际车轮轨迹后,如在步骤S102中所述的无人车是通过轮胎、悬挂、底盘等一系列结构支撑在地面上的,因此而这些都会影响车身姿态。于是,该处理器可将各实际车轮轨迹以及待定运动状态输入车辆动力学模型,确定该模型输出的车身姿态轨迹,以确定各时刻无人车的车身姿态。
具体的,首先,由于不同型号的无人车的结构不同,车辆参数不同,同样的实际车轮轨迹对应的车身姿态不完全相同,因此该处理器需要根据该无人车的车辆参数,从预设的各车辆动力学模型中,确定与该无人车的车辆参数对应的车辆动力学模型。需要说明的是,此时该车辆的车辆参数可以包括车辆型号,例如,不同型号的车辆对应不同的车辆动力学模型,或者根据车辆参数,确定适用于该无人车的车辆参数的车辆动力学模型,例如,车辆参数包括:车辆轴距、轴宽、底盘结构参数、车身结构参数、载重标准、移动装置的参数等。即使两台车辆型号不同,但是若车辆参数一致,也可视为其动力学特征相似,可以确定相同的车辆动力学模型。其中,在步骤S104中使用的车辆参数与步骤S106中使用的车辆参数的种类可不完全相同。例如,假设在步骤S104中仅需要车辆参数中的车辆轴距以及轴宽即可,而在步骤S106中不同的底盘结构和车身结构,也会影响到车辆动力学特征,因此步骤S106中的车辆参数还可包含底盘结构和车身结构。当然,在步骤S106中具体需要根据哪些车辆参数确定对应的车辆动力学模型,以及在步骤S104中具体需要根据哪些车辆参数确定各轮胎与该指定位置的位置关系,均可根据需要设置,本说明书不做限制。
其中,目前车辆设计研发过程中,常采用车辆动力学模型,在仿真环境中模拟设计出的车辆的性能。对于这种较为成熟的模型的相关内容,本说明书不再进行赘述。当然,该车辆动力学模型可以是根据人工经验设置的模型,或者通过机器学习训练的到的模型,具体该车辆动力学模型是如何得到的,本说明书不做限制。
之后,由于车辆在不同运动状态下,按相同轨迹行驶时,车辆的车身姿态也可能不同,例如快速通过坡道可能车辆会飞起,而慢速通过则车轮不会悬空,因此该车辆动力学模型的输入包括:各实际车轮轨迹以及待定运动状态。该处理器可将各实际车轮轨迹以及待定运动状态作为输入,输入确定出的车辆动力学模型,得到该车辆动力学模型输出的该无人车按该待定运动状态沿行驶轨迹行驶时,车辆的车身姿态变化的轨迹,即车身姿态轨迹。
然后,该终端可根据预设的指定数量,在该车身姿态轨迹确定指定数量的检测点。需要说明的是,该车身姿态轨迹是通过模型确定出的一个模拟车辆姿态变化的轨迹,非通过采集实际车辆姿态变化确定出来的,而该检测点为在车身姿态轨迹上确定的点,因此检测点并非实际存在的点,也不是通过传感器确定的点。
最后,确定在各检测点位置的车身姿态,如图4所示。
图4为本说明书提供的车身姿态示意图,该图4为车身侧视的示意图,图中虚线车身为车身姿态轨迹。假设指定数量为3,则该处理器可确定3个检测点的车身姿态,即图4中实线的车身。
当然,该检测点的数量越多,则确定出的车身姿态越多,改运动状态规划过程得到的结果更准确,行驶过程中的安全问题越小。于是,在本说明书一个或多个实施例中,该检测点的数量可以与行驶轨迹的长短成正比关系。
S108:若确定出的各时刻的车辆姿态中存在不符合预设姿态的车辆姿态,则调整所述待定运动状态,并根据调整后的待定运动状态以及各实际车轮轨迹,重新确定所述无人车各时刻的车辆姿态,直至各时刻的车辆姿态均符合所述预设姿态为止,将调整后的待定运动状态作为规划的最终运动状态。
在本说明书中,当确定出各时刻的车辆姿态后,便可判断是否存在不符合预姿态的车辆姿态,若不存在,则确定无人车按照该待定运动状态行驶不会出现安全问题,将该待定运动状态作为规划的最终运动状态,若存在,则需要对待定运动状态进行调整,并重新确定车辆姿态,直至各时刻的车辆姿态均符合预设姿态为止,将调整后的待定运动状态作为规划的最终运动状态。
具体的,在本说明书中,该预设姿态可以是预设的车辆最大倾斜角限值、最大翻滚角限值等姿态阈值。或者,也可以是根据车辆负载情况,预先确定出姿态阈值。前一种情况,该预设姿态可根据需要设置,后一种情况,该处理器可先获取无人车执行任务的任务信息,并根据任务信息,确定当前该无人车所载物品的类型,根据预设的各物品的类型与姿态阈值的对应关系,确定若干姿态阈值,根据确定出的若干姿态阈值,确定该预设姿态。
其中,不同类型的物品,对运输的要求可能不完全相同,例如,盛有液体的物品相较于易碎品,允许的倾斜角度更小,等等。因此可预先确定不同类型的物品对应的姿态阈值。姿态阈值对应的是一个数值范围。
根据预设的各物品的类型与姿态阈值的对应关系,确定当前无人车所载物品的各类型分别对应的姿态阈值,再根据确定出的若干姿态阈值,确定所述预设姿态。其中姿态阈值可以对应多个维度的姿态的阈值,例如,俯仰、倾斜等等,因此可针对各姿态阈值,确定各维度的姿态的最小阈值,作为预设的姿态阈值。
例如表1为确定出的各预设姿态。
则该处理器可确定预设姿态为:俯仰阈值0°~±10°以及倾斜阈值0°~±5°。当然,上述确定预设姿态的过程也可在确定出无人车需要执行的任务之后,由服务器执行,并发送至该处理器,本说明书对于具体由哪个设备在哪端执行不做限定。
在本说明书中,预设姿态为无人车安全行驶时车身姿态的限制范围,也就是说当车身姿态不符合预设姿态时,无人车容易出现危险情况。该危险情况可以指该无人车自身出现危险,例如出现倾覆、侧翻等情况,或者也可以指该无人车运载的物品出现危险,例如运载的液体洒落、易碎物破碎等等。
因此当确定预设姿态后,该无人车可针对步骤S104确定出的各车身姿态,判断是否存在不符合预设姿态的车身姿态,若确定各车身姿态中存在至少一个车身姿态不符合该预设姿态,则该处理器可对该待定运动状态进行调整。
该处理器可以按照预设的调整步长,对该待定运动状态进行调整。或者,该处理器也可根据车身姿态与预设姿态的差异的大小,无人车的转向角度,动态的确定待定运动状态的调整量。
具体的,该处理器可从检测点中,确定车身姿态不符合预设姿态的检测点,作为待调整的检测点。在针对每个待调整的检测点,根据该行驶轨迹,确定该无人车在该检测点的转向角度,然后根据该检测点的车身姿态以及预设姿态,确定车身姿态与预设姿态的差值,根据确定出的差值以及转向角度,确定调整量,根据确定出的调整量调整待定运动状态。并且,车身姿态与预设姿态的差异越大调整量越大,转向角度越大调整量越大。
基于图1所示的无人车运动状态规划方法,首先,可根据规划得到的无人车的行驶轨迹,基于路面属性确定各车轮的实际车轮轨迹,再根据车轮轨迹以及规划的待定运动状态,确定无人车按照行驶轨迹行驶时各时刻的车辆姿态,当存在不符合预设姿态的车辆姿态时,通过调整待定运动状态,使各时刻的车辆姿态均符合所述预设姿态,调整后的待定运动状态作为规划的最终运动状态。通过路面属性,确定各轮胎实际轮胎轨迹,以确定按照规划的待定运动状态行驶时的车辆姿态,使得当车辆姿态较为危险时,即不符合预设姿态时,可以通过调整待定运动状态避免危险情况出现,提高无人车的安全性。
另外,在本说明书中该无人车可为用于无人配送,本说明书提供的上述运动状态规划方法具体可应用于使用无人车进行配送的领域中,当无人车进行配送时,通过该运动状态规划方法,控制无人车行动,如,使用无人车进行快递、外卖等配送的场景。
进一步地,在本说明书中,并不限制该无人车运动状态规划过程的主体,有移动功能的机器人在移动过程中,也可通过执行该运动状态规划过程进行运动状态的规划,或者具有无人驾驶功能的车辆,在实现无人驾驶功能时,也可通过执行该运动状态规划过程进行运动状态的规划,或者,智能车辆在控制车辆运动状态时,也可通过该过程进行运动状态的规划,例如,利用车辆在使用自适应巡航控制(Adaptive Cruise Control,ACC)功能时,通过该运动状态规划过程控制车辆的运动状态,等等。也就是说,本说明书提供的无人车运动状态规划过程为:对自身运动状态可自主控制的设备,如何对运动状态进行规划的过程。因此,在本说明书中执行该运动状态规划过程的主体,既可以是无人车、也可以是机器人、智能车辆或者具有无人假设功能的车辆等,本说明书对此不做限制。
基于图1所示的无人车运动状态规划过程,本说明书实施例还对应提供无人车运动状态规划装置的结构示意图,如图5所示。
图5为本说明书实施例提供的无人车运动状态规划装置的结构示意图,所述装置包括:
第一获取模块200,确定规划得到的无人车的行驶轨迹以及待定运动状态;
第二获取模块202,获取所述行驶轨迹所在道路的路面属性;
车轮轨迹确定模块204,根据所述路面属性、所述行驶轨迹以及所述无人车的车辆参数,确定所述无人车各车轮的实际车轮轨迹;
姿态确定模块206,根据各实际车轮轨迹,确定所述无人车按照所述待定运动状态沿所述行驶轨迹行驶时各时刻的车辆姿态;
调整模块208,若确定出的各时刻的车辆姿态中是否存在不符合预设姿态的车辆姿态,则调整所述待定运动状态,并根据调整后的待定运动状态以及各实际车轮轨迹,重新确定所述无人车各时刻的车辆姿态,直至各时刻的车辆姿态均符合所述预设姿态为止,将调整后的待定运动状态作为规划的最终运动状态。
可选地,所述第二获取模块202,根据所述行驶轨迹,通过电子地图确定所述行驶轨迹所在道路的几何信息,根据所述无人车上传感器采集的所述道路的路面信息以及几何信息,确定路面属性。
可选地,所述车轮轨迹确定模块204,根据所述路面属性,对所述道路的路面进行建模,确定三维路面模型,根据所述无人车的车辆参数,确定所述无人车各轮胎的位置关系,根据所述行驶轨迹、所述位置关系以及所述三维路面模型,确定各车轮的实际车轮轨迹。
可选地,所述姿态确定模块206,根据所述无人车的车辆参数,从预设的各车辆动力学模型中,确定与所述无人车的车辆参数对应的车辆动力学模型,将各实际车轮轨迹以及所述待定运动状态作为输入,输入所述车辆动力学模型,得到所述无人车的车身姿态轨迹,在所述车身姿态轨迹上确定指定数量的检测点,针对每个检测点,根据所述车身姿态轨迹,确定该检测点对应的车身姿态。
可选地,所述姿态确定模块206,根据所述无人车执行任务的任务信息,确定所述无人车的负载,将所述负载、各实际车轮轨迹以及所述待定运动状态作为输入。
可选地,所述调整模块208,根据所述无人车执行任务的任务信息,确定当前所述无人车所载物品的类型,根据预设的各物品的类型与姿态阈值的对应关系,确定若干姿态阈值,根据确定出的若干姿态阈值,确定所述预设姿态。
可选地,所述调整模块208,从各检测点中,确定车身姿态不符合所述预设姿态的检测点,作为待调整的检测点,针对每个待调整的检测点,根据所述行驶轨迹,确定所述无人车在该检测点的转向角度,根据该检测点的车身姿态、预设姿态以及所述转向角度,调整所述待定运动状态,其中,车身姿态与预设姿态的差异越大调整量越大,转向角度越大调整量越大。
本说明书实施例还提供了计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述无人车运动状态规划方法中的任一个。
基于图1提供的无人车运动状态规划过程,本说明书实施例还提出了图6所示的无人车的示意结构图。如图6,在硬件层面,该无人车包括处理器、内部总线、网络接口、内存以及非易失性存储器,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述无人车运动状态规划方法中的任一个。当然,该无人车中还可包括实现无人车其他功能所需要的硬件。例如,无人车移动所需的移动装置、进行通信所需的通信装置、采集周围环境信息的电子设备等等。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。