本发明涉及agv控制技术,特别涉及agv导航控制技术领域,具体的,其展示一种基于激光导航agv惯导航向角原点变换及误差补偿算法。
背景技术:
agv是(automatedguidedvehicle)的缩写,意即"自动导引运输车",是指装备有电磁或光学等自动导引装置,它能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车。
agv之所以能够实现无人驾驶,导航和导引对其起到了至关重要的作用;但现阶段的惯导器件累计误差大,经过复杂计算输出的航向角不能直接用于导航纠偏,导致程序开发复杂、不通用、可移植性差等的缺点。
因此,有必要提供一种基于激光导航agv惯导航向角原点变换及误差补偿算法来解决上述问题。
技术实现要素:
本发明的目的是提供一种基于激光导航agv惯导航向角原点变换及误差补偿算法。
技术方案如下:
一种基于激光导航agv惯导航向角原点变换及误差补偿算法,步骤如下:
1)在有激光slam检测数据时航向角为a,惯导器件航向角为b,那么零度角偏差c为a-b;
惯导航向角统一零度角后,数据输出将与激光slam输出一致。
2)通过对激光slam航向角变量a与惯导航向角变量b的积分,记录航向角累计旋转角度,根据陀螺仪角速度,对slam航向角及惯导航向角,分别进行逆时针、顺时针的积分计算:∑a、∑b;
3)假定激光slam航向角为绝对准确,那么通过比较顺逆时针两角积分,可以得出惯导航向角的累计误差值,进而得出惯导航向角的误差模型:
4)在机器人惯性导航期间对惯导航向角进行误差补偿,补偿后航向角为yaw,公式为:
yaw=b+(∑b)*b′
5)设定目标航向角dir与当前航向角的偏差值angle,基于步骤1)-步骤4)的零度角统一,惯导航向角误差补偿计算,得出更准确的偏差值:
angle=yaw-dir
floatvirtualangle(floatyaw,floatdir){
floatangle=0;
if(yaw>180)yaw-=360.0;
angle=yaw-dir;
if(angle>=180)angle-=360.0;
elseif(angle<=-180)angle+=360.0;
returnangle;}。
与现有技术相比,本发明将惯导器件航向角的零度角统一,并实时计算出惯导航向角累计误差模型,从而对惯导航向角进行误差补偿;通过导航目标航向角,计算出当前角度偏差;进一步降低当前惯导器件的累计误差,可以将惯导器件的输出数据统一化,保证导航的精确性,便于机器人控制程序开发。
具体实施方式
实施例:
本实施例展示一种基于激光导航agv惯导航向角原点变换及误差补偿算法,步骤如下:
1)在有激光slam检测数据时航向角为a,惯导器件航向角为b,那么零度角偏差c为a-b;
惯导航向角统一零度角后,数据输出将与激光slam输出一致。
2)通过对激光slam航向角变量a与惯导航向角变量b的积分,记录航向角累计旋转角度,根据陀螺仪角速度,对slam航向角及惯导航向角,分别进行逆时针、顺时针的积分计算:∑a、∑b;
3)假定激光slam航向角为绝对准确,那么通过比较顺逆时针两角积分,可以得出惯导航向角的累计误差值,进而得出惯导航向角的误差模型:
4)在机器人惯性导航期间对惯导航向角进行误差补偿,补偿后航向角为yaw,公式为:
yaw=b+(∑b)*b′
5)设定目标航向角dir与当前航向角的偏差值angle,基于步骤1)-步骤4)的零度角统一,惯导航向角误差补偿计算,得出更准确的偏差值:
angle=yaw-dir
floatvirtualangle(floatyaw,floatdir){
floatangle=0;
if(yaw>180)yaw-=360.0;
angle=yaw-dir;
if(angle>=180)angle-=360.0;
elseif(angle<=-180)angle+=360.0;
returnangle;}。
与现有技术相比,本发明将惯导器件航向角的零度角统一,并实时计算出惯导航向角累计误差模型,从而对惯导航向角进行误差补偿;通过导航目标航向角,计算出当前角度偏差;进一步降低当前惯导器件的累计误差,可以将惯导器件的输出数据统一化,保证导航的精确性,便于机器人控制程序开发。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。