车辆局部运动规划

未命名 08-06 阅读:69 评论:0


1.本公开涉及用于自主或半自主车辆的局部运动规划的系统和技术。


背景技术:

2.一些车辆被配备为自主或半自主地操作。车辆上的计算机被编程为部分或完全独立于人类操作员的干预来操作车辆。计算机被编程为操作推进装置、制动系统、转向系统和/或其他车辆系统。自主操作意指计算机在没有来自人类操作员的输入的情况下控制推进装置、制动系统和转向系统;半自主操作意指计算机控制推进装置、制动系统和转向系统中的一者或两者,且人类操作员控制其余部分;并且非自主操作意指人类操作员控制推进装置、制动系统和转向系统。


技术实现要素:

3.本文的系统和技术以计算高效的方式为自主或半自主车辆提供局部运动规划。所述系统可例如从全局运动规划算法接收路点,生成所述车辆从起点到所述路点的路径,生成所述车辆在沿着所述路径行驶时要遵循的速度计划,以及致动所述车辆的推进装置转向系统以根据所述速度计划沿着所述路径导航所述车辆。所述路径由预设数量的参数表征。例如,所述路径可表示为分段函数,并且所述参数可将所述函数定义为例如所述分段函数的段的路径长度、所述函数的公式的项的系数等。确定由预设数量的参数表征的路径可比确定由例如所述起点与所述路点之间的密集排列的中间路点序列表征的路径在计算上更有效。此外,车辆可更快地将路径传输到其他车辆,因为包含参数的消息可能比包含中间路点的消息小得多。因此,如本文所述生成的路径可为多个车辆之间的协调运动规划提供基础。
4.一种计算机包括处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以进行以下操作:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。
5.所述指令还可包括用于进行以下操作的指令:在生成所述路径之后,生成所述车辆在沿着所述路径行驶时要遵循的速度计划。所述路径可被表示为分段函数,并且生成所述速度计划可包括确定所述路径的分段恒定加速度。所述参数可以是第一参数,所述速度计划可由预设数量的第二参数表征,并且所述第二参数可定义形成所述分段恒定加速度的多个恒定加速度。
6.生成所述速度计划可包括以恒定加加速度对所述分段恒定加速度进行插值。
7.所述参数可以是第一参数,并且所述速度计划可由预设数量的第二参数表征。
8.所述路径可以是二次连续可微的。
9.所述路径可包括至少一个回旋曲线函数。所述路径可包括三个回旋曲线函数。所述三个回旋曲线函数可包括从所述起点延伸到第一点的第一回旋曲线函数、从所述第一点
延伸到第二点的第二回旋曲线函数以及从第三点延伸到所述路点的第三回旋曲线函数。所述第一回旋曲线函数在所述第一点处的曲率可等于所述第二回旋曲线函数在所述第一点处的曲率,并且所述第二回旋曲线函数在所述第二点处的曲率可等于所述第三回旋曲线函数在所述第二点处的曲率。
10.所述参数可定义所述回旋曲线函数的路径长度。
11.所述参数可定义所述回旋曲线函数的曲率变化率。
12.所述参数可定义所述起点和所述路点。
13.所述指令还可包括用于进行以下操作的指令:向远程接收器传输消息,所述消息包括所述参数。所述参数可以是第一参数;所述指令还可包括用于进行以下操作的指令:在生成所述路径之后,生成所述车辆在沿着所述路径行驶时要遵循的速度计划;所述速度计划由预设数量的第二参数表征;并且所述消息包括所述第二参数。
14.所述指令还可包括用于进行以下操作的指令:确定生成所述路径的可行性,并且生成所述路径可包括在确定生成所路径可行时生成所述路径。所述指令还可包括用于进行以下操作的指令:在确定生成所述路径不可行时请求替换路点。
15.所述指令还可包括用于进行以下操作的指令:基于所述路径确定所述车辆的扫掠体积以及在确定对象在所述扫掠体积中时请求替换路点。
16.一种方法包括:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。
附图说明
17.图1是示例性车辆的框图。
18.图2是为车辆规划的示例性全局路径的图示。
19.图3是车辆的图解顶视图。
20.图4是为车辆规划的示例性局部路径的曲线图。
21.图5是局部路径的曲率的曲线图。
22.图6是不可行局部路径与可行局部路径之间的示例性边界的曲线图。
23.图7是车辆的扫掠体积的图示。
24.图8a是车辆的示例性速度计划的速度对路径长度的曲线图。
25.图8b是速度计划的加速度对路径长度的曲线图。
26.图9是用于规划局部路径的示例性过程的流程图。
具体实施方式
27.参考附图,其中贯穿若干视图,相同的数字指示相同的部分,计算机102包括处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以进行以下操作:接收路点104;生成车辆100从起点108到路点104的路径106,路径106由预设数量的参数表征;以及指示车辆100的推进装置110和转向系统112致动以沿着路径106导航车辆100。
28.参考图1,车辆100可以是任何乘用或商用汽车,诸如轿车、卡车、运动型多功能车、跨界车、货车、小型货车、出租车、公共汽车等。
29.车辆100可以是自主车辆。计算机102可被编程为完全地或在较小程度上独立于人类操作者的干预而操作车辆100。计算机102可被编程为操作推进装置110、制动系统116、转向系统112和/或其他车辆系统。出于本公开的目的,自主操作意指计算机102在没有来自人类操作者的输入的情况下控制推进装置110、制动系统116和转向系统112;半自主操作意指计算机102控制推进装置110、制动系统116和转向系统112中的一者或两者,而人类操作者控制其余部分;并且非自主操作意指人类操作者控制推进装置110、制动系统116和转向系统112。
30.计算机102是基于微处理器的计算装置,例如,通用计算装置(其包括处理器和存储器)、电子控制器或类似装置、现场可编程门阵列(fpga)、专用集成电路(asic)、前述各者的组合等。通常,在电子设计自动化中使用诸如vhdl(超高速集成电路硬件描述语言)的硬件描述语言来描述诸如fpga和asic的数字和混合信号系统。例如,asic是基于制造前提供的vhdl编程而制造的,而fpga内部的逻辑部件可基于例如存储在电连接到fpga电路的存储器中的vhdl编程来配置。因此,计算机102可包括处理器、存储器等。计算机102的存储器可包括用于存储可由处理器执行的指令以及用于电子地存储数据和/或数据库的介质,和/或计算机102可包括诸如提供编程的前述结构的结构。计算机102可以是耦接在一起的多个计算机。计算机102可位于车辆100上。替代地,计算机102可位于车辆100的外部,例如,在基础设施部件中,并且计算机102可远程地指示推进装置110、制动系统116和转向系统112进行致动。
31.计算机102可通过通信网络114(诸如控制器局域网(can)总线、以太网、wifi、局域互连网(lin)、车载诊断连接器(obd-ii))和/或通过任何其他有线或无线通信网络传输和接收数据。计算机102可经由通信网络114通信地耦合到推进装置110、制动系统116、转向系统112、传感器118、收发器120和其他部件。
32.车辆100的推进装置110生成能量并将能量转换成车辆100的运动。推进装置110可为常规的车辆推进子系统,例如,常规的动力传动系统,其包括耦合到将旋转运动传递到车轮的变速器的内燃发动机;电动动力传动系统,其包括电池、电动马达和将旋转运动传递到车轮的变速器;混合动力传动系统,其包括常规的动力传动系统和电动动力传动系统的元件;或任何其他类型的推进装置。推进装置110可包括与计算机102和/或人类操作员通信并从其接收输入的电子控制单元(ecu)等。人类操作者可经由例如加速踏板和/或换挡杆来控制推进装置110。
33.制动系统116通常是常规的车辆制动子系统并且抵抗车辆100的运动,由此使车辆100减慢和/或停止。制动系统116可包括摩擦制动器,诸如盘式制动器、鼓式制动器、带式制动器等;再生制动器;任何其他合适类型的制动器;或者它们的组合。制动系统116可包括与计算机102和/或人类操作员通信并且从其接收输入的电子控制单元(ecu)等。人类操作者可经由例如制动踏板来控制制动系统116。
34.转向系统112通常是常规的车辆转向子系统并且控制车轮的转弯。转向系统112可以是具有电动助力转向的齿条与小齿轮系统、线控转向系统(这两者是已知的),或者任何其他合适的系统。转向系统112可包括与计算机102和/或人类操作者通信并从其接收输入的电子控制单元(ecu)等。人类操作者可经由例如方向盘来控制转向系统112。
35.传感器118可提供关于车辆100的操作的数据,例如,车轮速度、车轮取向以及发动
机和变速器数据(例如,温度、燃料消耗等)。传感器118可检测车辆100的位置和/或取向。例如,传感器118可包括全球定位系统(gps)传感器;加速度计,例如压电系统或微机电系统(mems);陀螺仪,例如速率陀螺仪、环形激光陀螺仪或光纤陀螺仪;惯性测量单元(imu);以及磁力计。传感器118可检测外部世界,例如车辆100周围环境的对象和/或特征,诸如其他车辆、道路车道标记、交通信号灯和/或标志、行人等。例如,传感器118可包括雷达传感器、扫掠激光测距仪、光探测和测距(lidar)装置以及图像处理传感器(诸如相机)。
36.收发器120可适于通过任何合适的无线通信协议(诸如蜂窝、低功耗(ble)、超宽带(uwb)、wifi、ieee802.11a/b/g/p、蜂窝-v2x(cv2x)、专用短程通信(dsrc)、其他rf(射频)通信等)无线地传输信号。收发器120可适于与远程服务器(即,与车辆100不同且间隔开的服务器)通信。远程接收器可位于车辆100的外部。例如,远程接收器可与另一车辆相关联(例如,v2v通信),与基础设施部件相关联(例如,v2i通信),与紧急响应者相关联,与和车辆100的所有者相关联的移动装置相关联等。收发器120可以是一个装置或可包括单独的发射器和接收器。
37.参考图2,计算机102可被编程为提供全局运动规划,并由此生成路点104。出于本公开的目的,“路点”是车辆100已计划通过的物理位置。路点104可例如在十字路口的不同侧间隔开,如图2所示。计算机102可使用适用于全局运动规划的任何算法,例如:基于增量搜索的规划器,诸如快速探索随机树(rrt);基于图的规划方法,其使用道路结构;基于采样线的方法,诸如概率路线图路径(prm)规划等。计算机102可一次一个地或成组地生成路点104。
38.计算机102被编程为例如从用于全局运动规划的算法接收路点104。路点104可根据以车辆100的起点108为中心的全局坐标系或局部坐标系来定义,例如,(δx,δy),如图4所示。出于本公开的目的,“起点”是车辆100在要生成到路点104的路径106开始时的位置。
39.参考图3,车辆100的运动可使用任何合适的运动学模型(例如,单轨或自行车模型)来描述。坐标系可在起点108处具有其原点。图3示出了车辆100在远离起点108(例如,沿着路径106的中途)之后的情况。车辆100的状态可包括位置(x,y)、横摆角ψ和纵向速度v,例如,x=[x,y,ψ,v]
t
。车辆100的位置(x,y)可以是车辆100的后车桥的中心的坐标。横摆角ψ是车辆100从沿着x轴笔直指向的取向围绕竖直轴线的旋转。纵向速度v是车辆100在车辆100所面对的方向上的速度。模型的输入(即,控制变量)可包括转向角γ和纵向加速度a,例如,u=[γ,a]
t
。运动可通过例如以下方程来建模:
[0040][0041][0042]
其中点运算符指示时间导数,并且l为轴距。
[0043]
对输入u的约束可包括最大转向角γ、最大转向角变化率γ以及最小和最大加速度a(所有这些都基于车辆100的物理约束),以及最大加加速度(基于乘员舒适度)例如,
这四个约束可通过以下相应方程来建模:
[0044]
|γ|≤γ
max
[0045][0046]amin
≤a≤a
max
[0047][0048]
根据模型,车辆100正在执行的转弯的曲率κ可由转向角γ例如根据模型的以下方程来决定:
[0049][0050]
设定转向角γ可等同于设定路径106的曲率κ。
[0051]
参考图4,模型可包括边界条件,例如,其中起点108在坐标系的原点处;起始横摆角为零;最终位置,即路点104,在时间t之后的(δx,δy)处;以及最终横摆角δψ。边界条件可由以下方程描述:
[0052]
x(0)=0,y(0)=0,ψ(0)=0,v(0)=vi,γ(0)=γi[0053]
x(t)=δx,y(t)=δy,ψ(t)=δψ,v(t)=vf,γ(t)=0
[0054]
其中t为从起点108行驶到路点104的时间,vi为初始纵向速度,γi为初始转向角,并且vf为最终速度。在生成路径106之前未设定行驶时间t。在生成路径106之前可设定或可不设定初始纵向速度vi、初始转向角γi和最终速度vf。如下面将描述的,这些值可通过生成路径106来确定。
[0055]
所述模型可通过将自变量从时间t切换为车辆100从起点108行驶的距离s来参数化,即,弧长参数化。参数化有助于作为单独的步骤生成路径106和生成速度计划。以弧长s参数化的模型可由以下方程表示:
[0056]
x

(s)=cosψ(s)
[0057]y′
(s)=sinψ(s)
[0058]
ψ

(s)=κ(s)
[0059]
其中撇号指示关于s的导数。边界条件可用以下方程参数化:
[0060][0061]
x(sf)=δx,y(sf)=δy,ψ(sf)=δψ,κ(sf)=0
[0062]
对于最大转向角γ的约束可用以下方程参数化:
[0063][0064]
参考图4,计算机102被编程为生成车辆100从起点108到路点104的路径106。路径106可表示为分段函数,即,多个段122、124、126连接在一起,每个段由函数定义。每个段122、124、126的函数可用数学公式表示,这意味着函数不仅仅是坐标的有序列表。路径106可具有少量段122、124、126,例如三个段122、124、126。三个段122、124、126可包括从起点108延伸到第一点128的第一段122、从第一点128延伸到第二点130的第二段124以及从第二点130延伸到路点104的第三段126。三个段122、124、126可以是能够确保路径106存在的最
小数量(如果可行,如下所述)。
[0065]
路径106可以是例如相对于沿着路径106的弧长s二次连续可微的,即,是连续的并且具有连续的一阶导数和二阶导数,即是g2平滑的。二次连续可微可防止车辆100的乘员感到不舒服的颠簸或方向改变。路径106可以是从起点108到路点104二次连续可微的,包括在连接段122、124、126的第一点128和第二点130处。
[0066]
参考图4和图5,路径106可包括至少一个回旋曲线函数,例如,三个回旋曲线函数,段122、124、126中的每一者各一个。回旋曲线函数是其曲率κ随其弧长s线性变化的函数。图4示出了通过由三个相应段122、124、126的三个回旋曲线函数定义的空间的路径106,并且图5示出了相同的三个回旋曲线函数的相对于弧长s的曲率κ。分段函数可以是第一段122的第一回旋曲线函数、第二段124的第二回旋曲线函数以及第三段126的第三回旋曲线段。如图5中可见,每个段122、124、126的曲率κ的斜率为恒定值,例如分别为κ
′0、κ
′1和κ
′2,换句话说,曲率κ相对于弧长s的线性变化。第一回旋曲线函数在第一点128处的曲率可等于第二回旋曲线函数在第一点128处的曲率,并且第二回旋曲线函数在第二点130处的曲率可等于第三回旋曲线函数在第二点130处的曲率,如图5中相交的三个线段所示。第一点128和第二点130处的曲率匹配可保证分段函数从起点108到路点104是二次连续可微的。
[0067]
计算机102可被编程为求解由边界条件和分段函数在第一点128和第二点130处的连续性定义的方程组。方程组可使用菲涅耳积分来编写,菲涅耳积分由以下方程定义:
[0068][0069]
以下是示例性方程组:
[0070][0071]
其中s0、s1和s2为相应段122、124、126的长度;x1、y1和ψ1指示第二段124的中点132的位置和取向;κi为初始曲率,即,第一段122在起点108处的曲率;并且κ1=κ(s0+s1/2)为第二段124的中点132处的曲率。
[0072]
求解方程组可包括为未知数中的至少一者设定值。上述方程组具有八个方程和十个未知数(s0,s1,s2,x1,y1,ψ1,κ1,κ
′0,κ
′1,κ
′2),因此计算机102可为未知数中的两个未知数设定值,例如第一段122的长度s0和第三段126的长度s2,使得剩余未知数的数量等于方程的数量。例如,长度s0、s2可被选择为彼此相等并且基于从当前点到路点104的直线距离。求解方程组可包括在设定至少一个未知数(例如,两个未知数)的值之后,减少方程的数量和/或使用牛顿法。另外或替代地,计算机102可被编程为针对要设定值的每个未知数设定多个值,例如长度s0、s2,然后生成对应于那些未知数的不同值的多个路径106。
[0073]
对方程组(即,路径106)求解的结果可以是曲率作为弧长(即,κ(s))的函数的表达式,其可根据通过求解方程组确定的未知数的值来构造。计算机102可被编程为指示转向系统112基于路径106来设定转向角γ,例如,使用上面针对转向角求解的曲率方程,即,γ=arctan(lκ(s))。由于路径106被表达为弧长s而非时间t的函数,因此路径106不需要任何特定的速度表达式,这意味着速度计划可作为如下所述的单独步骤来确定。
[0074]
参考图6,计算机102可被编程为确定生成路径106的可行性。出于本公开的目的,“可行性”被定义为是否有可能在不违反约束或边界条件的情况下生成从起点108到路点
104的路径106。如果给定约束和边界条件是可能的,则生成路径106是可行的,并且如果给定约束或边界条件是不可能的,则生成路径106是不可行的。由于对转向角γ的约束,车辆100可能无法利用如上所述生成的路径106到达所有路点104。如果方程组存在解,则计算机102可确定生成路径106是可行的,并且如果方程组不存在解,则计算机102可确定生成路径106是不可行的。计算机102可被编程为在确定生成路点104不可行时,例如从用于全局运动规划的算法请求替换路点104。
[0075]
例如,计算机102可被编程为通过确定路点104、初始转向角γi(或等效地初始曲率κi)和/或未知数s0和s2的设定值是否在预设区134内来确定生成路径106的可行性。预设区134可由这些变量(例如,δx、δy、δψ、κi、s0和s2)的空间中的边界136定义。如上所述,在s0和s2设定为相等时,预设区134处于五维空间中。边界136可将五维空间划分为预设区134和不可行区138。图6示出了预设区134与不可行区138之间的边界136,其中设定了除路点104的位置之外的尺寸,从而将预设区134和不可行区138缩小为两个尺寸以供说明。边界136可存储在计算机102的存储器中。预设区134的边界136可通过求解上述方程组来确定,而无需设定未知数的值,并且具有由对转向角γ的约束决定的最大曲率的附加约束。方程组和附加约束可例如通过使用二等分法来求解,从而在四维空间中产生三维边界136。一旦确定,预设区134的边界136就可存储在计算机102上,从而快速确定车辆100上的可行性。
[0076]
参考图7,计算机102可被编程为基于路径106(例如,基于路径106的分段函数)来确定车辆100的扫掠体积140。出于本公开的目的,“扫掠体积”被定义为在沿着路径106从起点108行进到路点104时由车辆100占用的空间的并集。计算机102可通过模拟车辆100遵循路径106时车辆100上的一个或多个点(例如,在给定路径106的曲率的情况下具有最大和最小曲率半径的点)在空间中的移动来确定扫掠体积140,例如,车辆100的前保险杠的拐角142和后车桥的侧端144。前保险杠拐角142和后车桥端部144可用作车辆100上的点,因为对于路径106上的任何点,这些点中的一个将具有最大曲率半径,并且那些点中的一个将具有最小曲率半径,从而这些点中的一个位于扫掠体积140的外侧。使用前保险杠拐角142和后车桥端部144的扫掠体积140可用以下方程来描述:
[0077][0078]
其中下标ra指示后车桥点,下标fb指示前保险杠点,并且d1指示从车辆100的后车桥到前保险杠的纵向距离。
[0079]
计算机102可被编程为确定对象是否位于扫掠体积140中。例如,计算机102可例如使用二等分方法来确定如传感器118所检测到的环境中对象的边界与描述上述扫掠体积140的曲线之间是否存在交点。对象可以是静止对象。对于另一示例,计算机102可确定例如
另一车辆的第二扫掠体积与上述扫掠体积140之间是否存在交点。计算机102可例如经由收发器120接收从另一车辆传输的消息,所述消息包括表征另一车辆的路径的第一参数,如下面将针对车辆100描述的。计算机102可通过与确定车辆100的扫掠体积140相同的方式来确定另一车辆的第二扫掠体积。对于另一示例,计算机102可确定扫掠体积140与第二扫掠体积之间是否存在交点。
[0080]
计算机102可被编程为在确定对象位于扫掠体140中时,从用于全局运动规划的算法请求替换路点104。替代地或另外,如果计算机102确定了多个路径106,则计算机102可被编程为在确定对象位于扫掠体积140中时,确定多个路径106中的另一路径的新扫掠体积,并且确定对象是否位于新扫掠体积中。计算机102可被编程为在确定一个或多个对象位于所有多个路径106的扫掠体积140中时,请求替换路点104。
[0081]
参考图8a至图8b,计算机102可被编程为在生成路径106之后生成车辆100在沿着路径106行驶时要遵循的速度计划。速度计划可为沿着路径106的每个点指定纵向速度v,例如,v(s),如图8a所示,或v(t)。速度计划可等效地表示为沿着路径106的每个点的加速度a,例如,a(s),如图8b所示,或a(t)。生成速度计划可包括确定路径106的分段恒定加速度并以恒定加加速度对分段恒定加速度进行插值,如下面将各自进一步描述的。
[0082]
速度计划可能受到约束和/或边界条件的影响。约束可包括基于车辆100的物理约束的最小和最大加速度a,以及基于乘员舒适度的最大加加速度和最大纵向速度v。约束可用以下方程描述:
[0083]amin
≤a≤a
max
[0084][0085][0086]
最大纵向速度可随弧长s变化,并且可被选择以确保最大横向加速度,例如,
[0087]
|κ(s)|v(s)2≤a
lat,max
[0088]
根据该方程施加最大横向加速度可用最大纵向速度v作为弧长s的函数的以下方程来描述:
[0089][0090]
图8a至图8b中的实线146示出了约束。
[0091]
边界条件可包括起始弧长和最终弧长s以及纵向速度v,例如,使用以下方程:
[0092]
s(0)=0,v(0)=vi,s(t)=sf,v(t)=vf[0093]
其中t为从起点108行驶到路点104的时间,vi为初始纵向速度,sf为路点104处的弧长值,并且vf为最终纵向速度。在生成路径106之前未设定行驶时间t。在生成路径106之前可设定或可不设定初始纵向速度vi和最终速度vf。根据路径106的生成,最终弧长sf是已知的。
[0094]
生成速度计划可包括确定路径106的分段恒定加速度。例如,计算机102可例如根据以下方程为路径106的每个段生成恒定加速度值:
[0095][0096]
可根据以下表达式给出路段122、124、126的加速度的恒定值:
[0097][0098]
其中i为段122、124、126从0到2的索引。图8a至图8b中的长虚线148示出了在以恒定加加速度对分段恒定加速度进行插值之前分段恒定加速度的速度计划。
[0099]
生成速度计划可包括以恒定加加速度对分段恒定加速度进行插值。插值可防止速度计划超过恒定加加速度。以恒定加加速度对分段恒定加速度进行插值可包括对于每对连续段122、124、126,确定以恒定加加速度从较早段的恒定加速度切换到较晚段的恒定加速度的时间,以及确定车辆100在切换时间内将行驶的距离。例如,计算机102可用以下方程确定切换时间:
[0100][0101]
其中i为成对连续段122、124、126中的较晚段从1到2的索引,并且jc为恒定加加速度。如果较早段的恒定加速度大于较晚段的恒定加速度,则计算机102可用以下方程确定切换内的行驶距离:
[0102][0103]
否则,如果较早段的恒定加速度小于较晚段的恒定加速度,则计算机102可用以下方程确定切换内的行驶距离:
[0104][0105]
所述时间和距离可应用于如图8b所示的加速度曲线图。图8a至图8b中的短虚线150示出以恒定加加速度对分段恒定加速度进行插值之后的速度计划。
[0106]
路径106可由预设数量的第一参数表征。第一参数可定义(例如,完全定义)定义路径106的分段函数。例如,第一参数可定义:初始转向角γi;回旋曲线函数的路径长度s0、s1、s2;回旋曲线函数的曲率变化率κ
′0、κ
′1、κ
′2;车辆100在第二段124的中点132处的状态,例如,x1、y1、ψ1、κ1;起点108,例如,以全局坐标表示;路点104,δx、δy;以及横摆角的变化δψ。第一参数可以是标量数。
[0107]
速度可由预设数量的第二参数表征。第二参数可定义(例如,完全定义)定义速度计划的分段函数。例如,第二参数可定义形成分段恒定加速度a0、a1、a2的恒定加速度;以及恒定加加速度jc。第二参数可以是标量数。
[0108]
计算机102可被编程为向远程接收器(例如,另一车辆)传输消息。所述消息可包括第一参数和/或第二参数。由于第一参数和第二参数包括预设数量的标量数,因此所述消息可始终紧凑,同时仍完全定义车辆100将遵循的路径106和速度计划,从而允许与其他车辆进行协调。
[0109]
图9是示出用于规划局部路径106的示例性过程900的过程流程图。计算机102的存储器存储用于执行过程900的步骤的可执行指令和/或可以诸如上述的结构来实现编程。计算机102可针对从起点108到路点104的每次遍历执行过程900。然后,计算机102可再次执行过程900,其中先前路点104用作当前起点108,并且沿着由全局运动规划算法生成的路点104以此类推。
[0110]
作为过程900的总体概述,计算机102接收路点104、来自传感器118的指示环境中的对象的数据以及来自其他车辆的任何消息。如果计算机102确定路点104不可行,则计算机102请求新的路点104。如果计算机102确定路点104可行,则计算机102生成路径106并确定扫掠体积140。如果对象位于扫掠体积140中,则计算机102请求新的路点104。如果否,则计算机102生成速度计划,传输包括表征路径106和速度计划的参数的消息,并且指示推进装置110、转向系统112和制动系统116致动以遵循路径106和速度计划。
[0111]
过程900开始于框905,在框905中,计算机102接收路点104,如上所述。
[0112]
接下来,在框910中,计算机102从传感器118接收关于环境中的对象的数据。计算机102还从其他车辆(如果有的话)接收消息。消息可包括表征传输消息的另一车辆将遵循的路径和速度计划的第一参数和第二参数,如上所述。
[0113]
接下来,在判定框915中,计算机102确定生成路径106的可行性,如上所述。在确定生成路径106不可行时,过程900前进到框920。在确定生成路径106可行时,过程900前进到框925。
[0114]
在框920中,计算机102请求替换路点104,如上所述。在框920之后,过程900结束。
[0115]
在框925中,计算机102生成车辆100从起点108到路点104的路径106,如上所述。如上所述,计算机102可生成多个路径106。
[0116]
接下来,在框930中,计算机102确定一个路径106或多个路径106的扫掠体积140,如上所述。
[0117]
接下来,在判定框935中,计算机102确定对象是否位于扫掠体积140中,如上所述。如果计算机102生成多个路径106,则计算机102可确定对象是否位于所有路径106的扫掠体积140中。在确定对象位于扫掠体积140(或所有扫掠体积140)中时,过程900前进到框920以请求替换路点104。在确定扫掠体积140中不存在对象(或者在扫掠体积140中的至少一者中不存在对象)时,过程900前进到框940。
[0118]
在框940中,计算机102生成车辆100在沿着路径106行驶时要遵循的速度计划,如上所述。如果计算机102生成了多个路径106,则计算机102可针对在其扫掠体积140中没有对象的每个路径106生成速度计划。
[0119]
接下来,在框945中,计算机102选择多个路径106中的一个。计算机102可从路径106中选择在其扫掠体积140中没有对象的路径106中的一个。计算机102可根据哪个路径106具有标准的最佳值,例如,最大转向角变化率的最低值、路径106上的最低转向角变化量、加加速度的最低最大值、从起点108行驶到路点104的最短时间等来选择路径106中的一个。如果计算机102生成了单个路径106,则计算机102选择该路径106。
[0120]
接下来,在框950中,计算机102向远程接收器传输包括第一参数和第二参数的消息,如上所述。
[0121]
接下来,在框955中,计算机102指示车辆100的推进装置110、转向系统112和/或制
动系统116致动以根据速度计划来沿着路径106导航车辆100。计算机102可经由通信网络114指示推进装置110、制动系统116和转向系统112致动。替代地,如果计算机102远离车辆100,则计算机102可通过向车辆100传输包括第一参数和第二参数的消息来指示推进装置110、制动系统116和转向系统112致动。在由弧长s的值定义的路径106的每个点处,计算机102可基于定义路径106的函数来确定转向系统112的转向角γ,如上所述。在由弧长s的值定义的路径106的每个点处,计算机102可基于速度计划来确定推进装置110(如果加速度a为负,则为制动系统116)的加速度a,如上所述。在框955之后,过程900结束。
[0122]
一般来讲,所描述的计算系统和/或装置可采用多种计算机操作系统中的任一种,包括但决不限于以下版本和/或种类:ford 应用;applink/smart device link中间件;microsoft 操作系统;microsoft 操作系统;unix操作系统(例如,由加利福尼亚州红杉海岸的oracle公司发布的操作系统);由纽约州阿蒙克市的international business machines公司发布的aix unix操作系统;linux操作系统;由加利福尼亚州库比蒂诺市的苹果公司发布的mac osx和ios操作系统;由加拿大滑铁卢的黑莓有限公司发布的黑莓操作系统;以及由谷歌公司和开放手机联盟开发的安卓操作系统;或由qnx软件系统公司提供的car信息娱乐平台。计算装置的示例包括但不限于车载计算机、计算机工作站、服务器、台式机、笔记本、膝上型计算机或手持计算机、或某一其他计算系统和/或装置。
[0123]
计算装置通常包括计算机可执行指令,其中所述指令可由诸如以上列出的那些的一个或多个计算装置执行。可从使用多种编程语言和/或技术创建的计算机程序编译或解译计算机可执行指令,所述编程语言和/或技术单独地或者组合地包括但不限于java
tm
、c、c++、matlab、simulink、stateflow、visual basic、java script、python、perl、html等。这些应用程序中的一些可在诸如java虚拟机、dalvik虚拟机等虚拟机上编译和执行。通常,处理器(例如,微处理器)接收例如来自存储器、计算机可读介质等的指令,并且执行这些指令,从而执行一个或多个过程(包括本文所述过程中的一者或多者)。此类指令和其他数据可使用各种计算机可读介质来存储和传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。
[0124]
计算机可读介质(也称为处理器可读介质)包括参与提供可由计算机(例如,由计算机的处理器)读取的数据(例如,指令)的任何非暂时性(例如,有形)介质。此类介质可采用许多形式,包括但不限于非易失性介质和易失性介质。指令可通过一种或多种传输介质来传输,所述一种或多种传输介质包括光纤、线、无线通信,包括构成耦合到计算机的处理器的系统总线的内部件。常见形式的计算机可读介质包括例如ram、prom、eprom、flash-eeprom、任何其他存储器芯片或盒式磁带、或计算机可从中读取的任何其他介质。
[0125]
本文所述的数据库、数据存储库或其他数据存储可包括用于存储、存取/访问和检索各种数据的各种机制,包括分层数据库、文件系统中的文件集、专用格式的应用程序数据库、关系型数据库管理系统(rdbms)、非关系数据库(nosql)、图形数据库(gdb)等。每个这样的数据存储通常被包括在采用诸如以上提及中的一种的计算机操作系统的计算装置内,并且以各种方式中的任何一种或多种来经由网络进行访问。文件系统可从计算机操作系统访问,并且可包括以各种格式存储的文件。除了用于创建、存储、编辑和执行已存储的程序的
语言(诸如上述pl/sql语言)之外,rdbms通常还采用结构化查询语言(sql)。
[0126]
在一些示例中,系统元件可被实施为一个或多个计算装置(例如,服务器、个人计算机等)上、存储在与其相关联的计算机可读介质(例如,磁盘、存储器等)上的计算机可读指令(例如,软件)。计算机程序产品可包括存储在计算机可读介质上的用于实施本文描述的功能的此类指令。
[0127]
在附图中,相同的附图标记指示相同的元素。另外,可改变这些元素中的一些或全部。关于本文描述的介质、过程、系统、方法、启发等,应理解,虽然此类过程等的步骤已被描述为按照某一有序的顺序发生,但是可通过以与本文所述顺序不同的顺序执行所述步骤来实践此类过程。还应理解,可同时执行某些步骤,可添加其他步骤,或者可省略本文所述的某些步骤。
[0128]
除非本文作出相反的明确指示,否则权利要求中使用的所有术语意图给出如本领域技术人员所理解的普通和通常的含义。特别地,除非权利要求叙述相反的明确限制,否则使用诸如“一个”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。“响应于”和“在确定
……
时”的使用指示因果关系,而不仅是时间关系。形容词“第一”、“第二”和“第三”贯穿本文档用作标识符,并且不意图表示重要性、次序或量。
[0129]
已以说明性方式描述了本公开,并且应理解,已使用的术语意图具有描述性词语而非限制性词语的性质。鉴于以上教导,本公开的许多修改和变化是可能的,并且本公开可不同于具体描述的其他方式来实践。
[0130]
根据本发明,提供了一种计算机,所述计算机具有处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以进行以下操作:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。
[0131]
根据实施例,所述指令还包括用于进行以下操作的指令:在生成所述路径之后,生成所述车辆在沿着所述路径行驶时要遵循的速度计划。
[0132]
根据实施例,所述路径被表示为分段函数,并且生成所述速度计划包括确定所述路径的分段恒定加速度。
[0133]
根据实施例,所述参数是第一参数,所述速度计划由预设数量的第二参数表征,并且所述第二参数定义形成所述分段恒定加速度的多个恒定加速度。
[0134]
根据实施例,生成所述速度计划包括以恒定加加速度对所述分段恒定加速度进行插值。
[0135]
根据实施例,所述参数是第一参数,并且所述速度计划由预设数量的第二参数表征。
[0136]
根据实施例,所述路径是二次连续可微的。
[0137]
根据实施例,所述路径包括至少一个回旋曲线函数。
[0138]
根据实施例,所述路径包括三个回旋曲线函数。
[0139]
根据实施例,所述三个回旋曲线函数包括从所述起点延伸到第一点的第一回旋曲线函数、从所述第一点延伸到第二点的第二回旋曲线函数以及从第三点延伸到所述路点的第三回旋曲线函数。
[0140]
根据实施例,所述第一回旋曲线函数在所述第一点处的曲率等于所述第二回旋曲
线函数在所述第一点处的曲率,并且所述第二回旋曲线函数在所述第二点处的曲率等于所述第三回旋曲线函数在所述第二点处的曲率。
[0141]
根据实施例,所述参数定义所述回旋曲线函数的路径长度。
[0142]
根据实施例,所述参数定义所述回旋曲线函数的曲率变化率。
[0143]
根据实施例,所述参数定义所述起点和所述路点。
[0144]
根据实施例,所述指令还包括用于进行以下操作的指令:向远程接收器传输消息,所述消息包括所述参数。
[0145]
根据实施例,所述参数是第一参数;所述指令还包括用于进行以下操作的指令:在生成所述路径之后,生成所述车辆在沿着所述路径行驶时要遵循的速度计划;所述速度计划由预设数量的第二参数表征;并且所述消息包括所述第二参数。
[0146]
根据实施例,所述指令还包括用于进行以下操作的指令:确定生成所述路径的可行性,并且生成所述路径包括在确定生成所路径可行时生成所述路径。
[0147]
根据实施例,所述指令还包括用于进行以下操作的指令:在确定生成所述路径不可行时请求替换路点。
[0148]
根据实施例,所述指令还包括用于进行以下操作的指令:基于所述路径确定所述车辆的扫掠体积以及在确定对象在所述扫掠体积中时请求替换路点。
[0149]
根据本发明,一种方法包括:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。

技术特征:
1.一种车辆局部运动规划的方法,其包括:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。2.如权利要求1所述的方法,其还包括在生成所述路径之后,生成所述车辆在沿着所述路径行驶时要遵循的速度计划。3.如权利要求2所述的方法,其中所述路径被表示为分段函数,并且生成所述速度计划包括确定所述路径的分段恒定加速度。4.如权利要求3所述的方法,其中所述参数是第一参数,所述速度计划由预设数量的第二参数表征,并且所述第二参数定义形成所述分段恒定加速度的多个恒定加速度。5.如权利要求3所述的方法,其中生成所述速度计划包括以恒定加加速度对所述分段恒定加速度进行插值。6.如权利要求1所述的方法,其中所述路径是二次连续可微的。7.如权利要求1所述的方法,其中所述路径包括三个回旋曲线函数。8.如权利要求7所述的方法,其中所述三个回旋曲线函数包括从所述起点延伸到第一点的第一回旋曲线函数、从所述第一点延伸到第二点的第二回旋曲线函数以及从第三点延伸到所述路点的第三回旋曲线函数。9.如权利要求8所述的方法,其中所述第一回旋曲线函数在所述第一点处的曲率等于所述第二回旋曲线函数在所述第一点处的曲率,并且所述第二回旋曲线函数在所述第二点处的曲率等于所述第三回旋曲线函数在所述第二点处的曲率。10.如权利要求8所述的方法,其中所述参数定义所述回旋曲线函数的路径长度。11.如权利要求8所述的方法,其中所述参数定义所述回旋曲线函数的曲率变化率。12.如权利要求1所述的方法,其中所述指令还包括用于进行以下操作的指令:向远程接收器传输消息,所述消息包括所述参数。13.如权利要求1所述的方法,其中所述指令还包括用于进行以下操作的指令:确定生成所述路径的可行性,生成所述路径包括在确定生成所路径可行时生成所述路径,以及在确定生成路径不可行时请求替换路点。14.如权利要求1所述的方法,其中所述指令还包括用于进行以下操作的指令:基于所述路径确定所述车辆的扫掠体积以及在确定对象在所述扫掠体积中时请求替换路点。15.一种计算机,其包括处理器和存储器,所述存储器存储指令,所述指令能够由所述处理器执行以执行如权利要求1至14中的一项所述的方法。

技术总结
本公开提供了“车辆局部运动规划”。一种计算机包括处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以进行以下操作:接收路点;生成车辆从起点到所述路点的路径,所述路径由预设数量的参数表征;以及指示所述车辆的推进装置和转向系统致动以沿着所述路径导航所述车辆。述路径导航所述车辆。述路径导航所述车辆。


技术研发人员:G
受保护的技术使用者:密歇根大学董事会
技术研发日:2023.01.28
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐