一种控制车辆运动的方法及装置
技术领域
本申请涉及智能汽车技术领域,尤其涉及一种控制车辆运动的方法及装置。
背景技术
近年来,随着自动驾驶技术的不断发展,将二维码技术应用到自动导引车导航技术(AGV Navigation Technology,AGV),即将包含坐标信息的二维码间隔一定距离粘贴到对应的位置,然后,车辆在运行过程中通过车载相机捕捉二维码图像,返回二维码包含的AGV位置坐标并提取二维码特征点在图像坐标系中的坐标,通过坐标转换得到AGV位置偏差和角度偏差,进而对AGV两轮速度进行调整以实现纠偏,以使得在车体结构不对称、运动场地不平整等因素的影响下,车辆也能够到达目标位置。
目前,在二维码导航技术中控制车辆到达目标位置的方法主要是根据起点和终点的位置在起点和终点之间规划一条圆弧轨迹,并通过比例-积分-微分PID算法对车辆的运动进行纠偏,以使得车辆沿着规划的轨迹进行运动,从而到达终点。但是,该方法不适用起点和终点不在圆弧上的情况,导致不能适合起点和终点在自由曲线上的情况,适用性较差。
发明内容
本申请提供一种控制车辆运动的方法及装置,用以解决现有技术的适用性较差的技术问题。
第一方面,本申请实施例提供一种控制车辆运动的方法,该方法包括:
获取当前车辆的实际位置的坐标,并根据所述实际位置的坐标和车辆运动的终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标;其中,所述车辆运动轨迹曲线是在第一坐标系下根据车辆运动的起点的位置参数和终点的位置参数,采用艾尔米特Hermite插值法计算得到的;所述第一坐标系是指以所述终点为坐标原点,所述起点指向所述终点的方向表示横轴正方向的坐标系,所述位置参数包括坐标和斜率;
根据所述实际位置的坐标和所述目标位置的坐标,计算实际位置和目标位置之间的位置偏移量,并根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,基于所述角速度的补偿量调整所述车辆运动的角速度,直到检测到所述车辆运动到所述终点位置为止。
本申请实施例提供的方案中,通过Hermite插值法计算车辆运动轨迹曲线,并根据车辆的实际位置和车辆运动轨迹曲线上与实际位置对应的目标位置之间的位置偏移量,来确定车辆运动的角速度的补偿量,基于所述补偿量调整所述车辆运动的角速度,使得车辆能够追踪所述车辆运动轨迹曲线运动。因此,本申请实施例所提供的方案中,通过Hermite插值法计算车辆运动轨迹曲线,不仅适用于起点和终点在圆弧上的情况,还适用于起点和终点不在圆弧上的情况,提高了方案的适用性。
可选地,所述车辆运动轨迹曲线的具体计算方法,包括:
确定所述终点的横坐标和所述起点的横坐标之差的倒数,将所述倒数作为横向压缩比例;
基于所述横向压缩比例将所述起点的横坐标和所述终点的横坐标进行压缩,并根据所述横向压缩比例重新计算所述起点以及所述终点所对应的斜率;
根据所述起点的纵坐标、所述终点的纵坐标、以及重新计算的所述起点以及所述终点所对应的斜率,采用Hermite插值法计算出所述车辆运动轨迹曲线。
可选地,根据所述实际位置的坐标和所述终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标,包括:
根据所述横向压缩比例对所述实际位置的横坐标进行压缩,得到所述目标位置的横坐标;
将所述目标位置的横坐标代入所述车辆运动轨迹曲线的表达式,得到所述目标位置的纵坐标。
可选地,根据所述实际位置的坐标和所述目标位置的坐标计算实际位置和目标位置之间的位置偏移量,包括:
根据所述实际位置的坐标确定所述实际位置与坐标原点之间的第一连线,计算所述第一连线与所述第一坐标系的横轴正方向的第一夹角,以及根据所述目标位置的坐标确定所述目标位置与坐标原点之间的第二连线,计算所述第二连线与所述横轴正方向的第二夹角;
计算所述实际位置的坐标与所述目标位置的坐标之间的坐标偏差,以及计算所述第一夹角与所述第二夹角之间的角度偏差;
将所述坐标偏差和所述角度偏差进行加权处理,得到所述位置偏移量。
可选地,根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,包括:
根据下式计算角速度的变化量:
pidout=kp*(ek-ek-1)+ki*ek+kd*(ek-2*ek-1+ek-2)
其中,pidout表示补偿角速度的增量;kp、ki、kd表示权重因子,ek表示当前实际位置所对应的位置偏移量;ek-1表示上一次采集的实际位置所对应的位置偏移量;ek-2表示上上一次采集的实际位置所对应的位置偏移量;
根据下式计算当前所述车辆运动的角速度的补偿量:
outk=min(log(outk-1+min((pidout,1)+1),20)
其中,outk表示当前所述车辆运动的角速度的补偿量,outk-1上一次所述车辆运动的角速度的补偿量。
可选地,基于所述角速度的补偿量调整所述车辆运动的角速度,包括:
根据所述轨迹曲线确定所述目标位置对应的一阶导数和二阶导数,根据所述目标位置对应的一阶导数和二阶导数确定所述实际位置对应的一阶导数和二阶导数;
所述实际位置对应的一阶导数和二阶导数确定所述实际位置对应的曲率半径;
获取所述车辆运动的线速度,根据所述曲率半径以及所述线速度确定所述车辆运动的角速度,基于所述角速度的补偿量调整所述车辆运动的角速度。
可选地,获取当前所述车辆的实际位置的坐标之后,还包括:
判断所述实际位置的坐标与所述终点位置的坐标是否相同;
若相同,则生成第一指示信息,所述第一指示信息用于提示用户所述车辆到达所述终点位置。
可选地,在第一坐标系下确定车辆运动的起点位置参数和终点位置参数之前,还包括:
获取世界坐标系下起点坐标和终点坐标,确定起点坐标和终点坐标的连线与横轴正方向的夹角;
将所述世界坐标系沿顺时针方向旋转所述夹角的角度,并沿着所述起点指向所述终点的方向将所述世界坐标系原点平移到所述终点,得到所述第一坐标系。
第二方面,本申请实施例提供一种控制车辆运动的装置,该装置包括:
确定单元,用于获取当前车辆的实际位置的坐标,并根据所述实际位置的坐标和车辆运动的终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标;其中,所述车辆运动轨迹曲线是在第一坐标系下根据车辆运动的起点的位置参数和终点的位置参数,采用艾尔米特Hermite插值法计算得到的;所述第一坐标系是指以所述终点为坐标原点,所述起点指向所述终点的方向表示横轴正方向的坐标系,所述位置参数包括坐标和斜率;
处理单元,用于根据所述实际位置的坐标和所述目标位置的坐标,计算实际位置和目标位置之间的位置偏移量,并根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,基于所述角速度的补偿量调整所述车辆运动的角速度,直到检测到所述车辆运动到所述终点位置为止。
可选地,所述确定单元,具体用于:
确定所述终点的横坐标和所述起点的横坐标之差的倒数,将所述倒数作为横向压缩比例;
基于所述横向压缩比例将所述起点的横坐标和所述终点的横坐标进行压缩,并根据所述横向压缩比例重新计算所述起点以及所述终点所对应的斜率;
根据所述起点的纵坐标、所述终点的纵坐标、以及重新计算的所述起点以及所述终点所对应的斜率,采用Hermite插值法计算出所述车辆运动轨迹曲线。
可选地,所述确定单元,具体用于:
根据所述横向压缩比例对所述实际位置的横坐标进行压缩,得到所述目标位置的横坐标;
将所述目标位置的横坐标代入所述车辆运动轨迹曲线的表达式,得到所述目标位置的纵坐标。
可选地,所述处理单元,具体用于:
根据所述实际位置的坐标确定所述实际位置与坐标原点之间的第一连线,计算所述第一连线与所述第一坐标系的横轴正方向的第一夹角,以及根据所述目标位置的坐标确定所述目标位置与坐标原点之间的第二连线,计算所述第二连线与所述横轴正方向的第二夹角;
计算所述实际位置的坐标与所述目标位置的坐标之间的坐标偏差,以及计算所述第一夹角与所述第二夹角之间的角度偏差;
将所述坐标偏差和所述角度偏差进行加权处理,得到所述位置偏移量。
可选地,所述处理单元,具体用于:
根据下式计算角速度的变化量:
pidout=kp*(ek-ek-1)+ki*ek+kd*(ek-2*ek-1+ek-2)
其中,pidout表示角速度的增量;kp、ki、kd表示权重因子,ek表示当前实际位置所对应的位置偏移量;ek-1表示上一次采集的实际位置所对应的位置偏移量;ek-2表示上上一次采集的实际位置所对应的位置偏移量;
根据下式计算当前所述车辆运动的角速度的补偿量:
outk=min(log(outk-1+min((pidout,1)+1),20)
其中,outk表示当前所述车辆运动的角速度的补偿量,outk-1上一次所述车辆运动的角速度的补偿量。
可选地,所述处理单元,具体用于:
根据所述轨迹曲线确定所述目标位置对应的一阶导数和二阶导数,根据所述目标位置对应的一阶导数和二阶导数确定所述实际位置对应的一阶导数和二阶导数;
所述实际位置对应的一阶导数和二阶导数确定所述实际位置对应的曲率半径;
获取所述车辆运动的线速度,根据所述曲率半径以及所述线速度确定所述车辆运动的角速度,基于所述角速度的补偿量调整所述车辆运动的角速度。
可选地,所述装置还包括判断单元,所述判断单元具体用于:
判断所述实际位置的坐标与所述终点位置的坐标是否相同;
若相同,则生成第一指示信息,所述第一指示信息用于提示用户所述车辆到达所述终点位置。
可选地,所述处理单元,还具体用于:
获取世界坐标系下起点坐标和终点坐标,确定起点坐标和终点坐标的连线与横轴正方向的夹角;
将所述世界坐标系沿顺时针方向旋转所述夹角的角度,并沿着所述起点指向所述终点的方向将所述世界坐标系原点平移到所述终点,得到所述第一坐标系。
第三方面,本申请提供一种计算设备,该计算设备,包括:
存储器,用于存储至少一个处理器所执行的指令;
处理器,用于执行存储器中存储的指令执行第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。
附图说明
图1为本申请实施例所提供的一种控制车辆运动的方法的流程图;
图2为本申请实施例所提供的一种坐标系转换的示意图;
图3为本申请实施例所提供的一种控制车辆运动的装置的结构示意图;
图4为本申请实施例所提供的一种控制车辆运动的装置的结构示意图;
图5为本申请实施例所提供的一种计算设备的结构示意图。
具体实施方式
本申请实施例提供的方案中,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
实施例一
以下结合说明书附图对本申请实施例所提供的一种控制车辆运动的方法做进一步详细的说明,该方法具体实现方式可以包括以下步骤(方法流程如图1所示):
步骤101,获取当前车辆的实际位置的坐标,并根据所述实际位置的坐标和车辆运动的终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标;其中,所述车辆运动轨迹曲线是在第一坐标系下根据车辆运动的起点的位置参数和终点的位置参数,采用艾尔米特Hermite插值法计算得到的;所述第一坐标系是指以所述终点为坐标原点,所述起点指向所述终点的方向表示横轴正方向的坐标系,所述位置参数包括坐标和斜率。
具体的,在获取当前车辆的实际位置的坐标之前,建立第一坐标系;其中,建立第一坐标系的方法有多种,下面以一种较佳的方式为例进行说明。
建立第一坐标系,包括:获取世界坐标系下起点坐标和终点坐标,确定起点坐标和终点坐标的连线与横轴正方向的夹角;将所述世界坐标系沿顺时针方向旋转所述夹角的角度,并沿着所述起点指向所述终点的方向将所述世界坐标系原点平移到所述终点,得到所述第一坐标系。
例如,图2所示,在世界坐标系下车辆运动的起点为A(1,1,90°),终点为B(2,2,0°),根据A和B点的坐标计算线段AB与横轴正方向的夹角为45度,将世界坐标系沿顺时针旋转45度,使得横轴正与线段AB重合,然后,沿着A指向B的方向平移世界坐标系,直到坐标系的原点与B点重合为止,得到以终点B为坐标原点,起点A指向终点B的方向表示横轴正方向的第一坐标系。
然后,在建立第一坐标系之后,确定该第一坐标系中起点的位置参数和终点的位置参数,其中,位置参数包括坐标和斜率,然后,采用Hermite插值法计算车辆运动轨迹曲线。
具体的,所述车辆运动轨迹曲线的计算方法,包括:
确定所述终点的横坐标和所述起点的横坐标之差的倒数,将所述倒数作为横向压缩比例;
基于所述横向压缩比例将所述起点的横坐标和所述终点的横坐标进行压缩,并根据所述横向压缩比例重新计算所述起点以及所述终点所对应的斜率;
根据所述起点的纵坐标、所述终点的纵坐标、以及重新计算的所述起点以及所述终点所对应的斜率,采用Hermite插值法计算出所述车辆运动轨迹曲线。
例如,若车辆运动的起始点A的坐标为(x
s,y
s),终点B的坐标为(x
e,y
e),A点处切线的斜率为
B点处切线的斜率为
首先,提取A点的横坐标x
s,B点的横坐标x
e,确定A点和B点的横坐标之差的倒数为K,K=1/(x
e-x
s),并将K作为横向压缩比例,然后,根据K的值对A点的横坐标以及B点的横坐标进行压缩,得到压缩后的A点的横坐标为x
e*K,压缩后的B点的横坐标为x
s*K,再根据K值重新计算A点的切线的斜率为y′
s/K,B点的切线的斜率为y′
e/K,最后,根据y
s、y
e、y′
s/K以及y′
e/K,计算轨迹曲线。
具体的,计算轨迹曲线的过程如下:
采用Hermite插值法确定轨迹曲线的几何形式为:
Q(t)=at3+bt2+ct+dt∈[0,1]
其中,a、b、c、d为每一项的系数,t为自变量。
将轨迹曲线的几何形式转换为矩阵形式:
令
其中,M
h表示Hermite矩阵,
G
h表示Hermite几何矢量,G
h=[y
1 y
2 y′
1 y′
2]
T,y
1表示起点坐标,y
2表示终点的坐标,y′
1表示起点处切线的斜率,y′
2表示终点处切线的斜率。
将计算得到的ys、ye、y′′/K以及y′e/K带入Hermite几何矢量,即可计算出轨迹曲线的表达式中每一项的系数,进而确定出轨迹曲线。
进一步,在计算出车辆运动轨迹曲线之后,在第一坐标系下,获取当前车辆的实际位置的坐标;具体的,获取当前车辆的实际位置的坐标的方式有多种,下面以两种较佳的方式为例进行说明。
方式1、将车辆运行的区域划分为多个网格的形式,在每一网格中铺设二维码,其中,二维码包括坐标位置信息,在车辆运行过程中,车载相机采集当前的二维码图像,基于所述二维码图像解析出当前车辆的实际位置的坐标。
方式2,在车辆运行过程中通过GPS定位装置获取当前车辆的实际位置,将该实际位置映射到第一坐标系中得到当前车辆的实际位置的坐标。
在获取当前车辆的实际位置的坐标之后,根据所述实际位置的坐标和车辆运动的终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标。具体的,确定出目标位置的坐标的方式有多种,下面以一种较佳的方式为例进行说明。
根据所述实际位置的坐标和所述终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标,包括:
根据所述横向压缩比例对所述实际位置的横坐标进行压缩,得到所述目标位置的横坐标;
将所述目标位置的横坐标代入所述车辆运动轨迹曲线的表达式,得到所述目标位置的纵坐标。
步骤102,根据所述实际位置的坐标和所述目标位置的坐标,计算实际位置和目标位置之间的位置偏移量,并根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,基于所述角速度的补偿量调整所述车辆运动的角速度,直到检测到所述车辆运动到所述终点位置为止。
在确定出车辆运动轨迹上与所述实际位置对应的目标位置的坐标之后,根据实际位置的坐标和目标位置的坐标计算实际位置和目标位置之间的偏移量。具体的,根据实际位置的坐标和目标位置的坐标计算实际位置和目标位置之间的偏移量的方式有多种,下面以一种较佳的方式为例进行说明。
根据所述实际位置的坐标和所述目标位置的坐标计算实际位置和目标位置之间的位置偏移量,包括:
根据所述实际位置的坐标确定所述实际位置与坐标原点之间的第一连线,计算所述第一连线与所述第一坐标系的横轴正方向的第一夹角,以及根据所述目标位置的坐标确定所述目标位置与坐标原点之间的第二连线,计算所述第二连线与所述横轴正方向的第二夹角;
计算所述实际位置的坐标与所述目标位置的坐标之间的坐标偏差,以及计算所述第一夹角与所述第二夹角之间的角度偏差;
将所述坐标偏差和所述角度偏差进行加权处理,得到所述位置偏移量。
具体的,假设实际位置的坐标为(x3,y3),目标位置的坐标为(x4,y4),,实际位置处的切线的斜率y′3,以及目标位置处的切线的斜率y′4。将y′3和y′4带入角度公式angle=tan-1y′中,得到实际位置所对应的角度angle1=tan-1y′3,目标位置所对应的角度angle2=tan-1y′4,然后,计算实际位置的坐y3与y4之间的差值,以及angle1和angle2之间的差值,得到坐标偏差erry=y3-y4,角度偏差errangle=angle1-angle2。
然后,再根据如下公式对坐标偏差和角度偏差进行加权处理,得到位置偏移量:
err=α*kp*erry+(1-α)*ka*errangle
其中,err表示位置偏移量;α、kp、ka为权重因子。
在本申请实施例中,权重因子α、kp、ka可以是默认的,例如,默认设置α=0.2,kp=25,ka=7.162,也可以用户自定义,在此并不做限定。
进一步,在通过上述公式对坐标偏差和角度偏差进行加权处理之前,还可以对坐标偏差erry和角度偏差errangle进行归一化处理。
进一步,为了避免车辆的车体左右摇摆带来的偏差,在计算当前车辆的位置偏移量之后,还包括:
通过如下公式将与当前实际位置所对应的位置偏移量与相邻二次计算的位置偏移量进行加权处理,得到加权后的位置偏移量:
ek=(errk+γerrk+1+γ2errk+2)
其中,ek表示加权后的位置偏移量;γ表示权重因子;errk表示当前实际位置所对应的位置偏移量;errk+1表示下一次实际位置所对应的位置偏移量;errk+2表示下下一次实际位置所对应的位置偏移量。
具体的,为了对当前实际位置的偏移量进行加权处理,得到加权后的位置偏移量,需要以当前时刻为参考点,预测下一次实际位置的所对应的位置偏移量errk+1以及下下一次实际位置所对应的位置偏移量errk+2。为了便于理解,下面对预测下一次实际位置的所对应的位置偏移量errk+1以及下下一次实际位置所对应的位置偏移量errk+2的过程进行详述。
具体的,本申请实施例所提供的方案中,计算设备周期性的采集车辆的位置信息以及速度信息,例如,计算设备每隔40秒获取一次车辆的位置信息以及速度信息,其中,速度信息包括角速度以及线速度信息。应理解,本申请实施例提供的计算设备可以是计算机或者服务器等具有计算功能的设备。
计算设备首先确定当前时刻车辆运动的线速度和角速度的比值rk,其中,
rk=vk/ωk
其中,vk表示当前时刻车辆运动的线速度,ωk表示当前时刻车辆运动的角速度;
然后,根据如下公式预测下一次车辆运动所到达的位置坐标:
xk+1=xk-rk*sin(thk)+rk*sin(thk+ωk*deltaT)
yk+1=yk-rk*cos(thk)+rk*cos(thk+ωk*deltaT)
其中,xk+1表示下一次车辆运动所到达的位置的横坐标;yk+1表示下一次车辆运动所到达的位置的纵坐标;deltaT表示采集周期时长。
同理,通过同样的方式预测得到下下一次车辆运动所到达的位置坐标(xk+2,yk+2)。
然后,在确定下一次车辆的位置坐标和下下一次车辆的位置坐标之后,根据前述方法计算下一次车辆的实际位置偏移量errk+1,以及下下一次车辆的实际位置偏移量errk+2,再根据权重因子γ的值,将与当前实际位置所对应的位置偏移量与相邻二次计算的位置偏移量进行加权处理,得到加权后的位置偏移量。
本申请实施例中,γ为位置偏移量的权重因子,用户可以预先自定义,例如,γ设置为0.9;也可以通过其它的方式获得,在此并不做限制。
进一步,在确定出实际位置和目标位置之间的位置偏移量之后,根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量。具体的,根据位置偏移量确定当前所述车辆运动的角速度的补偿量的方式有多种,下面以一种较佳的方式为例进行说明。
根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,包括:
根据下式计算角速度的变化量:
pidout=kp*(ek-ek-1)+ki*ek+kd*(ek-2*ek-1+ek-2)
其中,pidout表示角速度的增量;kp、ki、kd表示权重因子,ek表示当前实际位置所对应的位置偏移量;ek-1表示上一次采集的实际位置所对应的位置偏移量;ek-2表示上上一次采集的实际位置所对应的位置偏移量;
根据下式计算当前所述车辆运动的角速度的补偿量:
outk=min(log(outk-1+min((pidout,1)+1),20)
其中,outk表示当前所述车辆运动的角速度的补偿量,outk-1上一次所述车辆运动的角速度的补偿量。
进一步,在确定当前所述车辆运动的角速度的补偿量之后,基于所述角速度的补偿量调整所述车辆运动的角速度。基于所述角速度的补偿量调整所述车辆运动的角速度的方式有多种,下面以一种较佳的方式为例进行说明。
基于所述角速度的补偿量调整所述车辆运动的角速度,包括:
根据所述轨迹曲线确定所述目标位置对应的一阶导数和二阶导数,根据所述目标位置对应的一阶导数和二阶导数确定所述实际位置对应的一阶导数和二阶导数;
所述实际位置对应的一阶导数和二阶导数确定所述实际位置对应的曲率半径;
获取所述车辆运动的线速度,根据所述曲率半径以及所述线速度确定所述车辆运动的角速度,基于所述角速度的补偿量调整所述车辆运动的角速度。
具体的,根据车辆运动轨迹曲线表达式确定目标位置所对应的一阶导数表达式Q(t)′和二阶导数表达式Q(t)″,根据目标位置和实际位置之间的关系,确定实际位置所对应的一阶导数表达式为y′=K*Q(t)′,二阶导数表达式为y″=K
2*Q(t)″,然后,根据曲率计算公式
计算实际位置所对应的曲率。
然后,获取车辆运动的线速度,根据所述曲率半径以及所述线速度确定所述车辆运动的角速度,基于所述角速度的补偿量调整所述车辆运动的角速度。
具体的,根据如下公式调整车辆运动的角速度:
Va=V1*ρ+outk
其中,Va表示调整后的车辆运动的角速度;V1表示车辆运动的线速度。
本申请实施例提供的方案中,通过Hermite插值法计算车辆运动轨迹曲线,并根据车辆的实际位置和车辆运动轨迹曲线上与实际位置对应的目标位置之间的位置偏移量,来确定车辆运动的角速度的补偿量,基于所述补偿量调整所述车辆运动的角速度,使得车辆能够追踪所述车辆运动轨迹曲线运动。因此,本申请实施例所提供的方案中,通过Hermite插值法计算车辆运动轨迹曲线,不仅适用于起点和终点在圆弧上的情况,还适用于起点和终点不在圆弧上的情况,提高了方案的适用性。
进一步,为了检测车辆是否到达终点,在获取当前所述车辆的实际位置的坐标之后,还包括:
判断所述实际位置的坐标与所述终点位置的坐标是否相同;
若相同,则生成第一指示信息,所述第一指示信息用于提示用户所述车辆到达所述终点位置。
实施例二
本申请实施例提供一种控制车辆运动的装置,参见图3,该装置包括:
确定单元301,用于获取当前车辆的实际位置的坐标,并根据所述实际位置的坐标和车辆运动的终点的坐标,确定出位于车辆运动轨迹曲线上与所述实际位置对应的目标位置的坐标;其中,所述车辆运动轨迹曲线是在第一坐标系下根据车辆运动的起点的位置参数和终点的位置参数,采用艾尔米特Hermite插值法计算得到的;所述第一坐标系是指以所述终点为坐标原点,所述起点指向所述终点的方向表示横轴正方向的坐标系,所述位置参数包括坐标和斜率;
处理单元302,用于根据所述实际位置的坐标和所述目标位置的坐标,计算实际位置和目标位置之间的位置偏移量,并根据所述位置偏移量确定当前所述车辆运动的角速度的补偿量,基于所述角速度的补偿量调整所述车辆运动的角速度,直到检测到所述车辆运动到所述终点位置为止。
可选地,所述确定单元301,具体用于:
确定所述终点的横坐标和所述起点的横坐标之差的倒数,将所述倒数作为横向压缩比例;
基于所述横向压缩比例将所述起点的横坐标和所述终点的横坐标进行压缩,并根据所述横向压缩比例重新计算所述起点以及所述终点所对应的斜率;
根据所述起点的纵坐标、所述终点的纵坐标、以及重新计算的所述起点以及所述终点所对应的斜率,采用Hermite插值法计算出所述车辆运动轨迹曲线。
可选地,所述确定单元301,具体用于:
根据所述横向压缩比例对所述实际位置的横坐标进行压缩,得到所述目标位置的横坐标;
将所述目标位置的横坐标代入所述车辆运动轨迹曲线的表达式,得到所述目标位置的纵坐标。
可选地,所述处理单元302,具体用于:
根据所述实际位置的坐标确定所述实际位置与坐标原点之间的第一连线,计算所述第一连线与所述第一坐标系的横轴正方向的第一夹角,以及根据所述目标位置的坐标确定所述目标位置与坐标原点之间的第二连线,计算所述第二连线与所述横轴正方向的第二夹角;
计算所述实际位置的坐标与所述目标位置的坐标之间的坐标偏差,以及计算所述第一夹角与所述第二夹角之间的角度偏差;
将所述坐标偏差和所述角度偏差进行加权处理,得到所述位置偏移量。
可选地,所述处理单元302,具体用于:
根据下式计算角速度的变化量:
pidout=kp*(ek-ek-1)+ki*ek+kd*(ek-2*ek-1+ek-2)
其中,pidout表示角速度的增量;kp、ki、kd表示权重因子,ek表示当前实际位置所对应的位置偏移量;ek-1表示上一次采集的实际位置所对应的位置偏移量;ek-2表示上上一次采集的实际位置所对应的位置偏移量;
根据下式计算当前所述车辆运动的角速度的补偿量:
outk=min(log(outk-1+min((pidout,1)+1),20)
其中,outk表示当前所述车辆运动的角速度的补偿量,outk-1上一次所述车辆运动的角速度的补偿量。
可选地,所述处理单元302,具体用于:
根据所述轨迹曲线确定所述目标位置对应的曲率半径;
获取所述车辆运动的线速度,根据所述曲率半径以及所述线速度确定所述车辆运动的角速度;
基于所述角速度的补偿量调整所述车辆运动的角速度。
可选地,参见图4,所述装置还包括判断单元303,所述判断单元303具体用于:
判断所述实际位置的坐标与所述终点位置的坐标是否相同;
若相同,则生成第一指示信息,所述第一指示信息用于提示用户所述车辆到达所述终点位置。
可选地,所述处理单元302,还具体用于:
获取世界坐标系下起点坐标和终点坐标,确定起点坐标和终点坐标的连线与横轴正方向的夹角;
将所述世界坐标系沿顺时针方向旋转所述夹角的角度,并沿着所述起点指向所述终点的方向将所述世界坐标系原点平移到所述终点,得到所述第一坐标系。
实施例三
本申请提供一种计算设备,参见图5,该计算设备,包括:
存储器501,用于存储至少一个处理器所执行的指令;
处理器502,用于执行存储器中存储的指令执行实施例一所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行实施例一所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。