CN117850426A - 一种载具行驶控制方法、装置、控制器、车辆及介质 - Google Patents
一种载具行驶控制方法、装置、控制器、车辆及介质 Download PDFInfo
- Publication number
- CN117850426A CN117850426A CN202410031155.5A CN202410031155A CN117850426A CN 117850426 A CN117850426 A CN 117850426A CN 202410031155 A CN202410031155 A CN 202410031155A CN 117850426 A CN117850426 A CN 117850426A
- Authority
- CN
- China
- Prior art keywords
- control module
- transverse
- carrier
- transverse control
- road
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000033001 locomotion Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Steering Control In Accordance With Driving Conditions (AREA)
Abstract
本申请提供一种载具行驶控制方法、装置、控制器、车辆及介质,该方法包括:将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;使用所述目标横向控制指令对载具进行横向控制。本申请能够在不同道路曲率的情况下使用误差更小的横向控制模块对载具进行横向控制,从而提高了横向控制的整体准确性。
Description
技术领域
本申请涉及载具控制领域,尤其涉及一种载具行驶控制方法、装置、控制器、车辆及介质。
背景技术
现今,很多载具(如车辆、自动充电车等)都具有自动驾驶功能。自动驾驶控制分为横向控制和纵向控制。
车辆横向控制指垂直于运动方向上的控制,对于汽车也就是转向控制。目标是控制汽车自动保持期望的行车路线,并在不同的车速、载荷、风阻、路况下有很好的乘坐舒适性和稳定性。
车辆纵向控制是在行车速度方向上的控制,即车速以及本车与前后车或障碍物距离的自动控制。巡航控制和紧急制动控制都是典型的自动驾驶纵向控制。
现在有的载具都是通过一个横向控制算法/模块对进行横向控制的时候,例如使用LQR(Linear Quadratic Regulator线性二次型调节器)对载具进行横向控制。LQR的优点在于,通过与转向前馈进行有效结合,使得能够很好的解决曲线行驶时的稳态跟踪误差,在中等速度曲线行驶时其稳态误差趋近于零,但在高速和低速的曲线行驶时,且稳态误差会相应增大,从而降低了驾驶体验的同时也存在一定的风险性。进一步的,若在使用过程中LQR状态异常或崩溃,只能通过修复或重启等方法使其回复正常工作,但修复或重启需要一定的耗时,在这个期间自动驾驶功能无法对车辆完成横向控制,从而产生极大的安全隐患。
发明内容
有鉴于此,本申请提供一种载具行驶控制方法、装置、控制器、车辆及介质,至少部分解决现有技术中存在的问题。
在本申请的一方面,提供一种载具行驶控制方法,包括:
将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;
在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;
使用所述目标横向控制指令对载具进行横向控制。
在本申请的一种示例性实施例中,所述方法还包括:
在仅第一横向控制模块和第二横向控制模块的其中之一输出了横向控制指令的情况下,将获得的横向控制指令确定为目标横向控制指令。
在本申请的一种示例性实施例中,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差;
所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;否则,将所述第二横向控制模块输出的控制指令确定为目标横向控制指令。
在本申请的一种示例性实施例中,所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令。
在本申请的一种示例性实施例中,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差;
所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度大于速度阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;
在载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度小于速度阈值的情况下,将第二横向控制模块输出的横向控制指令确定为目标横向控制指令。
在本申请的一种示例性实施例中,所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,还包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度小于速度阈值,或载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度大于速度阈值的情况下,将上次执行的目标横向控制指令对应的第一横向控制模块或第二横向控制模块确定为目标控制模块;
将所述目标控制模块输出的横向控制指令,确定为目标横向控制指令。
在本申请的一种示例性实施例中,所述方法还包括:
获取载具的纵向位置误差和纵向速度误差;
在所述纵向位置误差和纵向速度误差均有效的情况下,将纵向速度误差输入纵向控制模块,以使得所述纵向控制模块对载具进行纵向控制。
在本申请的一种示例性实施例中,在所述纵向位置误差和纵向速度误差仅其中之一有效的情况下,将有效的纵向位置误差或纵向速度误差输入所述纵向控制模块。
在本申请的另一方面,提供一种载具行驶控制装置,包括:
输入模块,用于将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;
决策模块,用于在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;
控制模块,用于使用所述目标横向控制指令对载具进行横向控制。
在本申请的另一方面,提供一种载具行驶控制器,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一项所述方法的步骤。
在本申请的另一方面,提供一种车辆,所述车辆内设有上述的载具行驶控制器。
在本申请的另一方面,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一项所述方法的步骤。
有益效果:
本申请提供的载具行驶控制方法,将第一载具状态数据分别输入第一横向控制模块和第二横向控制模块,以使得第一横向控制模块和第二横向控制模块根据同一第一载具状态数据各自输出自身处理后得到的横向控制指令。同时,由于在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同,故而在第一横向控制模块和第二横向控制模块均根据第一载具状态数据输出了横向控制指令的情况下,可以通过载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令(即用其对当前的载具进行横向控制可以使得横向运动误差更小的横向控制指令),以此实现了在不同道路曲率的情况下使用误差更小的横向控制模块对载具进行横向控制,从而提高了横向控制的整体准确性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种载具行驶控制方法的流程图;
图2为本发明实施例中第一横向控制模块的工作原理示意图;
图3为本发明实施例中第二横向控制模块的工作原理示意图;
图4为本发明另一实施例中提供的一种载具行驶控制方法的流程图;
图5为本发明实施例中纵向位置误差和纵向速度误差的确定原理示意图;
图6为本发明实施例提供的一种载具行驶控制装置的结构框图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
请参考图1所示,在本申请的一方面,提供一种载具行驶控制方法,可以应用于车辆的智驾域系统内,具体的,可以应用于智驾域系统内的自动驾驶控制模块或自动驾驶控制器内。
实施例提供的载具行驶控制方法,包括以下步骤:
S100,将载具状态数据分别输入第一横向控制模块和第二横向控制模块。在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同。
具体的,载具状态数据可以包括载具自身状态数据和载具周围环境数据;其中,载具自身状态数据可以包括载具的当前位置、载具的当前姿态、载具的当前速度、载具方向盘的当前转动角。载具周围环境数据可以包括多路摄像头采集的不同视角(前方、后方、左侧方、右侧方等)的视频/图像数据、多路雷达采集的不同方向的雷达数据、多路深度传感器采集的不同障碍物的距离数据等。在一些情况下,载具周围环境数据也可以为使用视频/图像数据、雷达数据和距离数据的其中至少之一得到的栅格数据。在另一些情况下,载具周围环境数据还可以包括载具当前所在道路的道路曲率等。在具体实施时,本领域技术人员可以根据第一横向控制模块和第二横向控制模块的具体选择和输入需求确定载具状态数据的具体内容。
进一步的,第一横向控制模块和第二横向控制模块可以是软件模块也可以是硬件模块。当第一横向控制模块和第二横向控制模块为软件模块时,第一横向控制模块和第二横向控制模块可以理解为两个不同的横向控制算法模型或实现不同的横向控制算法的程序代码等。当第一横向控制模块和第二横向控制模块为硬件模块时,第一横向控制模块和第二横向控制模块可以理解为两个搭载了不同的横向控制算法模型或实现不同的横向控制算法的程序代码的具有运算能力的硬件装置(如处理器等)。
可以选的,横向控制算法可以包括MPC(Model PredictIve Control模型预测控制)算法、LQR算法、纯追踪算法(Pure persuit)、PID(Proportion(比例)、Integral(积分)、Differential(微分))算法、Stanley算法和Rear wheel feedback算法。
其中,纯追踪算法对外界干扰的鲁棒性较好,且对路径曲率、连续性均没有要求,其在低速场景下的跟踪性能良好,其控制的关键在于对最佳前向预瞄距离的确定,增大前向距离将提高车辆控制的稳定性,但会导致跟踪性能下降。
MPC和LQR适用于路径平滑的中高速城市场景的路径跟踪,要求跟踪路径曲率连续,与前述基于运动学模型的几种算法相比,LQR参数调节更加复杂,其不仅需要获取车辆自身的模型参数,还需要调节LQR目标函数的Q,R矩阵以获得较优的跟踪性能。LQR算法的优点在于,通过与转向前馈进行有效结合,LQR能够很好的解决曲线行驶时的稳态跟踪误差,在中等速度曲线行驶时其稳态误差趋近于零,从而极大提升跟踪性能。
相较于LQR,MPC算法的在同一时间周期内进行多次优化迭代,跟踪性能更好。
PID算法和Stanley算法适用于中低速曲率较小的跟踪场景,且PID算法抗干扰鲁棒性差,属于无模型控制算法,相比于Pure Pursuit算法,Stanley前轮反馈算法还额外考虑了横摆角偏差,因此在大多数场景下,跟踪性能更佳。然而,由于没有设置前向预瞄,Stanley算法会出现转向过度的情况。
最后,Rear wheel feedback算法要求跟踪路径曲率二阶连续,适用于路径平滑的低速泊车跟踪场景,在中等速度下的跟踪性能及鲁棒性与Stanley方法近似,然而在速度较大时,稳态误差也会变大,从而导致控制效果不佳。
本实施例中考虑到车辆行驶过程中,既存在高速驾驶的场景,也存在转弯等低速驾驶场景。第一横向控制模块和第二横向控制模块分别使用MPC算法和纯追踪算法,以实现在不同的曲率下均能够有对应的较优算法进行选择。
S200,在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令。
具体的,横向控制指令可以为方向盘转动偏移角,即命令方向盘的转动控制器将方向盘向左或向右转动相应的角度。
本实施例中,目标横向控制指令是当前情况下两个横向控制指令中相对较优的指令,即用其对当前的载具进行横向控制可以使得横向运动误差更小的横向控制指令。具体的,目标横向控制指令可以由本领域技术人员根据第一横向控制模块和第二横向控制模块各自的特点进行针对性的设置。
S300,使用所述目标横向控制指令对载具进行横向控制。
本实施例提供的载具行驶控制方法,将第一载具状态数据分别输入第一横向控制模块和第二横向控制模块,以使得第一横向控制模块和第二横向控制模块根据同一第一载具状态数据各自输出自身处理后得到的横向控制指令。同时,由于在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同,故而在第一横向控制模块和第二横向控制模块均根据第一载具状态数据输出了横向控制指令的情况下,可以通过载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令(即用其对当前的载具进行横向控制可以使得横向运动误差更小的横向控制指令),以此实现了在不同道路曲率的情况下使用误差更小的横向控制模块对载具进行横向控制,从而提高了横向控制的整体准确性。
在本申请的一种示例性实施例中,所述方法还包括:
S400,在仅第一横向控制模块和第二横向控制模块的其中之一输出了横向控制指令的情况下,将获得的横向控制指令确定为目标横向控制指令。
具体的,在具体实施时,步骤S300和步骤S400可以为并列的实施步骤。即在第一横向控制模块和第二横向控制模块输出的横向控制指令的情况不同时,根据实际情况确定执行步骤S300还是步骤S400。进一步的,在第一横向控制模块和第二横向控制模块均未输出横向控制指令的情况下,对第一横向控制模块和第二横向控制模块进行修复和处理,并重新进入步骤S100,以尽可能快的恢复对载具的横向控制。
任何机器或软件在实际实施时都可能会因为各种原因导致出现卡顿、死机或崩溃等情况。在一些实施方式中,仅采用一种算法或模块进行横向控制,当其出现问题时,只能等待其恢复正常,安全隐患极大。在本实施例中,通过设置第一横向控制模块和第二横向控制模块,且在仅第一横向控制模块和第二横向控制模块的其中之一输出了横向控制指令的情况下,会将获得的横向控制指令确定为目标横向控制指令。如此,即使第一横向控制模块和第二横向控制模块的其中之一因为导致出现卡顿、死机或崩溃等情况无法正常输出横向控制指令时,也可以直接将另一模块输出的横向控制指令直接作为目标横向控制指令,已完成对载具的横向控制。如此,能够实现即使第一横向控制模块和第二横向控制模块的其中之一出现问题,也能够正常的对载具进行横向控制,从而实现了能够在保证不同道路曲率下均能位置较小横向控制误差的同时,还能够极大的减小因突发错误导致的安全隐患,从而大大的提高了横向控制的稳定性和安全性。
在本申请的一种示例性实施例中,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差。具体的,本实施例中,第一横向控制模块采用MPC算法,第二横向控制模块采用纯跟踪算法。
所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;否则,将所述第二横向控制模块输出的控制指令确定为目标横向控制指令。
本实施例中,在载具当前所在道路的道路曲率小于所述曲率阈值的情况下,会将第一横向控制模块输出的横向控制指令确定为目标横向控制指令,否则,将第二横向控制模块输出的控制指令确定为目标横向控制指令。从而使得本实施例提供的载具行驶控制方法能够根据载具当前所在道路的道路曲率确定出更优的横向控制指令,以提高整体的控制准确度,同时对不同场景的适应性更强。
在本申请的一种示例性实施例中,所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令。
周知的,在载具过弯时,需要根据道路曲率的不同适应性的调整车速。例如,在速度较大时,仅能通过曲率较小的道路(如直行道或高速公路上的弯道)。而在十字路口等曲率较大的位置,则需要较慢的车速。
本实施例中,在确定目标横向控制指令时,同时考虑道路曲率和载具的当前速度两个影响因素,从而实现更加精准的横向控制指令选择,进一步提高整体控制的准确性。
在本申请的一种示例性实施例中,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差;
所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度大于速度阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;
在载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度小于速度阈值的情况下,将第二横向控制模块输出的横向控制指令确定为目标横向控制指令。
具体的,通过实验测试,第一横向控制模块对高速道路行驶时的横向控制误差更小,而第二横向控制模块对市内道路行驶时的横向控制误差更小。故而,本申请通过设置曲率阈值和速度阈值使得可以通过两个阈值快速区分不同的行驶道路,而不需要通过图像处理等算力要求更高的方法区分不同的行驶道路。从而在保证了横向控制准确度的情况下,减小了算力需求。在实际实施时,具体的曲率阈值和速度阈值可以由本领域技术人员根据实际需求进行确定,本实施例中,曲率阈值的取值范围可以为1%-10%,速度阈值的取值范围可以为60KM/h到100KM/h。
在本申请的一种示例性实施例中,所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,还包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度小于速度阈值,或载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度大于速度阈值的情况下,将上次执行的目标横向控制指令对应的第一横向控制模块或第二横向控制模块确定为目标控制模块;
将所述目标控制模块输出的横向控制指令,确定为目标横向控制指令。
由于本实施例中同时设置了曲率阈值和速度阈值,故而,能够出现的情况为4种,即:
A情况,载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度小于速度阈值;
B情况,载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度大于速度阈值;
C情况,载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度小于速度阈值;
D情况,载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度大于速度阈值。
但由于载具在行驶时,道路情况是多变的,且不同的驾驶者的驾驶习惯不同,故而在实际应用过程中,若为上述4种情况均设置对应的选择方案,会导致载具在行驶中频繁的当前使用的横向控制模块进行切换,如此,一方面会导致驾驶者在驾驶过程中,会由于横向控制模块频繁的进行切换导致体感不断变换导致降低用户体验。另一方面,频繁的进行切换也会导致整体的系统稳定性较低。故而,本实施例中,仅在A和C两种情况下才会对横向控制模块进行切换,在从A变为B、从A变为D、从C变为B、从C变为D以及从B变为D时,不会对使用的横向控制模块进行切换,而是沿用上以此横向控制时采用的横向控制模块作为目标控制模块。从而降低了切换的频率,以提供用户体验和整体系统稳定性。
进一步的,纯追踪算法的具体处理原理如下:
请参考图2所示,车辆转向模型通常为阿克曼转向,可以将其简化为两轮自行车模型,其位置表示在惯性坐标系下。后轮中心在惯性坐标系下表示为(xr,yr),跟踪路径上的预瞄点记为(xg,yg),车辆转弯半径记为R,前轮转角记为δ,车辆纵轴与惯性坐标系X轴夹角记为θ,预瞄点到车辆后轮中心距离记为ld,车辆坐标系下预瞄点的朝向角记为α,车身轴距为L。
假设车辆前后轮均为刚体,只能沿车轮滚动方向前进,无侧向滑动,则可得到基于运动学模型的微分方程为:
上式中,为车辆线速度在X,Y轴上的速度分量,/>为车身横摆角速度,/>为前轮转角的转动角速度。根据图2中的几何关系,可以得到前轮转角为:
车轮转角和方向盘转角之间存在一固定数值的传动比i,因此,方向盘转角Anglestr表示为:
Anglestr=i·δ (3)
通过输出方向盘转角,即可完成低速状态下的车辆横向控制。
进一步的,MPC算法的具体处理原理如下:
请参考图3所示,其中,ey为横向误差;为偏航角误差;δ为前轮转角;θf、θr分别为前后轮侧偏角;lf、lr质心到前后轮距离。
在该动力学模型中,状态量选择控制量u=δ,其状态方程表示为:
上式中,a1=Cf+Cr;a2=-(lfCf-rCr);a3=-(lf 2Cf+lf 2Cr);Cf、Cr为前后轮的偏侧刚度;Iz为绕Z轴的转动惯量;m为车辆质量;CR为路径曲率;vx车辆纵向速度。
将式4写成:
其中,
对于MPC控制器,通过求解满足目标函数以及各种约束的优化问题,在预测时域内求解最优控制序列,并将控制序列的第一个元素作为被控对象的实际控制量,重复上述求解过程,实现被空对象的连续控制。将式5进行离散化处理。
Xd(k+1)=A1Xd(k)+B1u(k)+D1w(k) (6)
上式中,T为系统采样时间。在MPC控制器中控制变量的变化速度对实际的被控系统有较大影响,需要对控制量的增量进行约束,对式6做如下变换:
得到新的状态空间表达式:
X(k+1)=AX(k)+BΔu(k)+Dw(k) (8)
式中,n为状态量维度,m为控制量维度。
将系统状态量偏差和控制量大小作为优化目标,构建目标函数。目标函数形式如下所示:
式中,Q,R为权重矩阵;Np,Nc分别为MPC的预测时域和控制时域。因为车轮转角过大会影响行车安全,所以本发明考虑对控制量和控制量增量进行约束,控制量极限约束为:
umin(t+k)≤u(t+k)≤umax(t+k),k=0,1,...,Nc-1 (10)
控制增量约束为:
Δumin(t+k)≤Δu(t+k)≤Δumax(t+k),k=0,1,...,Nc-1 (11)
二次优化问题通过二次规划求解器求解,计算出最优转向角后,仅第一个输出作为系统作为下一次采样时间的控制,优化问题在每个步骤内递归求解。
请参考图4所示,在本申请的一种示例性实施例中,所述方法还包括:
S500,获取载具的纵向位置误差和纵向速度误差。
具体的,载具的纵向位置误差和纵向速度误差可以通过对驾驶控制算法对车辆的当前速度和纵向位置进行处理后得到。
S600,在所述纵向位置误差和纵向速度误差均有效的情况下,将纵向速度误差输入纵向控制模块,以使得所述纵向控制模块对载具进行纵向控制。具体的,本实施例中,“有效”的概念可以理解为值不为0或能够获取到相应的值或获取到的值的有效性标签为有效等。
S700,在所述纵向位置误差和纵向速度误差仅其中之一有效的情况下,将有效的纵向位置误差或纵向速度误差输入所述纵向控制模块。具体的,纵向控制模块可以为PID控制器。同时,该PID控制器能够支持两种单输入处理。即仅需要输入纵向位置误差和纵向速度误差即执行对载具行驶的纵向控制。
在获取纵向速度误差时,可以直接通过载具上的速度传感器获取到准确的当前速度并根据计算得到的期望速度确定出纵向速度误差。在获取纵向位置误差时,需要通过GSP定位或图像处理等方式进行计算出当前位置,并根据计算得到的期望位置确定出纵向位置误差。而由于通过GSP进行定位的误差波动较大,而通过图像处理方式进行定位一方面计算耗时较大,另一方面也会受图像拍摄效果导致误差波动较大。故而,本实施例中,在所述纵向位置误差和纵向速度误差均有效的情况下,将纵向速度误差输入纵向控制模块,以使得所述纵向控制模块对载具进行纵向控制,从而提高纵向控制的准确度。
在一些实施例中,会将PID控制器设置为双输入控制器,即需要同时输入有效的纵向位置误差和纵向速度误差才能完成对载具的纵向控制。但在实际应用中,由于软件的卡顿等情况的发生,会导致无法同时获取到有效的纵向位置误差和纵向速度误差,这样就会导致双输入控制器无法完成对载具的纵向控制,从而产生安全隐患。本实施例中,PID控制器能够支持两种单输入处理,同时在所述纵向位置误差和纵向速度误差仅其中之一有效的情况下,会将有效的纵向位置误差或纵向速度误差输入所述纵向控制模块,以完成对载具的纵向控制。这样,可以使得即使纵向位置误差和纵向速度误差中的任一无效,也能够正常完成对载具的纵向控制。
具体的,本实施例中,纵向位置误差和纵向速度误差可以通过以下方法得到:
本实施例在原规划轨迹上建立Frenet坐标系,如图5所示。将车辆真实位置投影到Frenet坐标系B上,投影后B点处切线方向的速度大小设为vdes,在图中,C点为下一个目标点,设es为车辆位置误差,并假设从投影点到目标点这段距离的曲率保持不变。
由图5可得:
式中:τm为目标点切向单位矢量,ηm为目标点法向单位矢量。
d=X-Xm=(x-xm,y-ym) (13)
式中:X为车辆位置矢量,Xm为目标点位置矢量,d为两矢量之差。纵向位置误差环中的误差量:
es=dτm (14)
纵向速度误差环中的误差量:
ev=vref-vdes (15)
式中:vref为车辆跟踪的目标速度,vdes为车辆投影到Frenet坐标系上的速度。
请参考图6所示,提供一种优选实施例,旨在提供一种结合横向控制和纵向控制的整体方法。在本实施例中,以设定间隔获取载具的当前位置(即x和y)、车速(即Vcar)、方向盘的当前转动角(即θ)。获取后,路径识别模块(即Path)能够根据上述信息确定出期望位置(即xg和yg)和期望速度(即Vref),并有曲率计算模块确定出当前所在道路的曲率(即γ)。如此,可以将θ、γ、x和y分别同时输入第一横向控制模块(即MPC控制器)和第二横向控制模块(即纯追踪控制器),然后分别获取两个横向控制模块的输出结果δ1和δ2。获得了δ1和δ2后,将二者输入横向控制冗余模块,在δ1和δ2均不为零(即均有效)的情况下,会将γ输入横向控制切换模块。横向控制切换模块在γ<γlimit(即曲率阈值)的情况下,将δ2输出,以通过δ2对载具进行横向控制。在δ1和δ2其中一个为零(即其中一个无效)的情况下,仅将有效的输出结果(δ1或δ2)输出,以对载具进行横向控制。
在上述过程的同时,会根据y和Vcar进行坐标转换,以在Frenet坐标系中得到投影到Frenet坐标系上的速度(即Vdes)和纵向位置误差(即es)。在得到Vdes后,会根据Vdes和Vref得到纵向速度误差(即ev)。最后将es和ev输入纵向控制冗余模块。纵向控制冗余模块在ev为零(即ev无效)的情况下会将es输入PID控制器,以完成对载具的纵向控制;否则,将ev输入PID控制器,以完成对载具的纵向控制。
在本申请的另一方面,提供一种载具行驶控制装置,包括:
输入模块,用于将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;
决策模块,用于在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;
控制模块,用于使用所述目标横向控制指令对载具进行横向控制。
在本申请的另一方面,提供一种载具行驶控制器,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一项所述方法的步骤。
在本申请的另一方面,提供一种车辆,所述车辆内设有上述的载具行驶控制器。
在本申请的另一方面,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一项所述方法的步骤。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
根据本申请的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(RAM)和/或高速缓存储存器,还可以进一步包括只读储存器(ROM)。
储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种载具行驶控制方法,其特征在于,包括:
将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;
在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;
使用所述目标横向控制指令对载具进行横向控制。
2.根据权利要求1所述的载具行驶控制方法,其特征在于,所述方法还包括:
在仅第一横向控制模块和第二横向控制模块的其中之一输出了横向控制指令的情况下,将获得的横向控制指令确定为目标横向控制指令。
3.根据权利要求1所述的载具行驶控制方法,其特征在于,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差;
所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;否则,将所述第二横向控制模块输出的控制指令确定为目标横向控制指令。
4.根据权利要求1所述的载具行驶控制方法,其特征在于,所述根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令,包括:
根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令。
5.根据权利要求4所述的载具行驶控制方法,其特征在于,在所述道路曲率大于预设的曲率阈值情况下,使用所述第一横向控制模块对载具进行横向控制的横向运动误差小于使用所述第二横向控制模块对载具进行横向控制的横向运动误差;
所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度大于速度阈值的情况下,将第一横向控制模块输出的横向控制指令确定为目标横向控制指令;
在载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度小于速度阈值的情况下,将第二横向控制模块输出的横向控制指令确定为目标横向控制指令。
6.根据权利要求4或5所述的载具行驶控制方法,其特征在于,所述根据载具当前所在道路的道路曲率和载具的当前速度,从两个横向控制指令中确定出目标横向控制指令,还包括:
在载具当前所在道路的道路曲率小于所述曲率阈值且所述当前速度小于速度阈值,或载具当前所在道路的道路曲率大于所述曲率阈值且所述当前速度大于速度阈值的情况下,将上次执行的目标横向控制指令对应的第一横向控制模块或第二横向控制模块确定为目标控制模块;
将所述目标控制模块输出的横向控制指令,确定为目标横向控制指令。
7.根据权利要求1-6任一项所述的载具行驶控制方法,其特征在于,所述方法还包括:
获取载具的纵向位置误差和纵向速度误差;
在所述纵向位置误差和纵向速度误差均有效的情况下,将纵向速度误差输入纵向控制模块,以使得所述纵向控制模块对载具进行纵向控制。
8.根据权利要求7所述的载具行驶控制方法,其特征在于,在获取载具的纵向位置误差和纵向速度误差之后,所述方法还包括:
在所述纵向位置误差和纵向速度误差仅其中之一有效的情况下,将有效的纵向位置误差或纵向速度误差输入所述纵向控制模块。
9.一种载具行驶控制装置,其特征在于,包括:
输入模块,用于将载具状态数据分别输入第一横向控制模块和第二横向控制模块;在载具所在道路的道路曲率相同时,第一横向控制模块和第二横向控制模块对载具进行横向控制的横向运动误差不同;
决策模块,用于在第一横向控制模块和第二横向控制模块均根据载具状态数据输出了横向控制指令的情况下,根据载具当前所在道路的道路曲率从两个横向控制指令中确定出目标横向控制指令;
控制模块,用于使用所述目标横向控制指令对载具进行横向控制。
10.一种载具行驶控制器,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至8任一项所述方法的步骤。
11.一种车辆,其特征在于,所述车辆内设有如权利要求10所述的载具行驶控制器。
12.一种非瞬时性计算机可读存储介质,其特征在于,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410031155.5A CN117850426A (zh) | 2024-01-09 | 2024-01-09 | 一种载具行驶控制方法、装置、控制器、车辆及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410031155.5A CN117850426A (zh) | 2024-01-09 | 2024-01-09 | 一种载具行驶控制方法、装置、控制器、车辆及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850426A true CN117850426A (zh) | 2024-04-09 |
Family
ID=90534239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410031155.5A Pending CN117850426A (zh) | 2024-01-09 | 2024-01-09 | 一种载具行驶控制方法、装置、控制器、车辆及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850426A (zh) |
-
2024
- 2024-01-09 CN CN202410031155.5A patent/CN117850426A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531750B (zh) | 一种用于操作自动驾驶车辆的计算机实施的方法、可读介质及系统 | |
WO2021259000A1 (zh) | 跟车控制方法、装置、车辆及存储介质 | |
CN110533943B (zh) | 确定自动驾驶车辆的车道改变轨迹的方法 | |
EP3517893B1 (en) | Path and speed optimization fallback mechanism for autonomous vehicles | |
CN108255171B (zh) | 用于提高自主驾驶车辆的稳定性的方法和系统 | |
US11235757B2 (en) | Collision avoidance apparatus | |
EP3629121B1 (en) | A curvature corrected path sampling system for autonomous driving vehicles | |
US8190330B2 (en) | Model based predictive control for automated lane centering/changing control systems | |
US8170739B2 (en) | Path generation algorithm for automated lane centering and lane changing control system | |
JP7208959B2 (ja) | 自律運転システムの支援を伴う自律運転モードから手動運転モードへの安全な移行 | |
US11708069B2 (en) | Obstacle avoidance apparatus and obstacle avoidance route generating apparatus | |
WO2019043833A1 (ja) | 運転支援車両の位置誤差補正方法及び位置誤差補正装置 | |
US11353878B2 (en) | Soft-boundary based path optimization for complex scenes for autonomous driving vehicles | |
CN113619574A (zh) | 一种车辆避让方法、装置、计算机设备和存储介质 | |
WO2022216641A1 (en) | Counter-steering penalization during vehicle turns | |
US11891059B2 (en) | System and methods of integrating vehicle kinematics and dynamics for lateral control feature at autonomous driving | |
CN112849152B (zh) | 一种车辆后轮的控制方法、控制系统及车辆 | |
CN117850426A (zh) | 一种载具行驶控制方法、装置、控制器、车辆及介质 | |
CN115447615A (zh) | 基于车辆运动学模型预测控制的轨迹优化方法 | |
CN114620127A (zh) | 一种车辆转向避障方法、装置、电子设备及存储介质 | |
CN114670815A (zh) | 车辆控制方法、装置、电子设备和存储介质 | |
CN110654458B (zh) | 车辆方向盘控制方法、装置、计算机设备及车辆 | |
CN112590815A (zh) | 基于act-r的自动驾驶预测节能认知模型的构建方法 | |
CN115716502B (zh) | 一种基于自动驾驶的转向控制方法和设备 | |
CN112477876B (zh) | 车辆弯道行驶的控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |