一种基于视觉的AGV巡线导航和定位方法与流程

文档序号:11406393阅读:818来源:国知局
一种基于视觉的AGV巡线导航和定位方法与流程

本发明涉及一种agv导航和定位方法,尤其是涉及一种基于视觉的agv巡线导航和定位方法。



背景技术:

传统的巡线导航方法中,基于磁导引、电磁感应等的导引方式,这些方法涉及到磁条或导引线的铺设,需要对现有环境进行改造,且维护成本大。另外,基于激光的无轨导航方法中,激光传感器通常十分昂贵,无法实现普遍应用推广,并且在周围环境发生大范围变化时易引起定位丢失进而使导航失败。

传统的定位方法采用里程计定位,随着可移动设备行程的增加,可移动设备侧滑、脚轮打滑等原因都会导致里程计偏差逐渐累积,造成可移动设备位姿反馈不准确。由于技术和成本限制,对机器人轨迹巡线导航和定位,目前还没有低成本的、稳定的解决方案。

随着视觉识别技术在移动机器人领域得到了快速发展和广泛应用,低成本的usb相机更能满足可移动设备导航的实时性和经济性等要求,已经越来越多的用于可移动设备的自主导航和定位。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于视觉的agv巡线导航和定位方法。

本发明的目的是通过已经技术方案来实现的:一种基于视觉的agv巡线导航和定位方法,该方法包括:

获得当前航向前方的图像;

根据导航标线的第一预设特征,从所述图像中识别出符合所述第一预设特征的导航标线对象;

获取agv与导航标线的相对位置关系,并利用所述相对位置关系修正agv的位置与航向,所述相对位置关系包括agv与导航标线的距离、agv当前航向与导航标线的夹角。

进一步地,所述第一预设特征为导航标线的颜色属性。

进一步地,所述导航标线设置于agv行走路径的一侧或两侧。

进一步地,若识别到位于agv两侧的导航标线,则确定跟踪路径为两侧的导航标线的中线;

若识别到位于agv一侧的导航标线,则确定跟踪路径为一与导航标线平行且相距设定距离的直线;若未识别到导航标线,agv根据里程计信息移动一段距离,若仍未检测到导航标线则停止移动;其中,所述跟踪路径为预设的agv的行走路径。

进一步地,还包括利用导航标线与位置修正标记对agv里程计信息进行修正,所述里程计信息包括里程计航向角信息和里程计位置信息。

进一步地,在对里程计信息进行修正前,从图像中识别出符合第二预设特征的位置修正标记对象,根据位置修正标记提供的位置信息修正里程计位置信息,所述第二预设特征区别于所述第一预设特征。

进一步地,所述第二预设特征为区别于导航标线颜色的颜色属性。

进一步地,计算agv航向与导航标线之间的角度获得当前航向角信息,将里程计航向角信息修正为当前航向角信息。

进一步地,从所述图像中识别出符合所述第一预设特征的导航标线对象的步骤包括:

对图像进行预处理,包括图像去畸变和滤波处理;

利用直线提取算法提取预处理后的图像中的线段,融合线段,得到若干待筛选直线段;

采用基于高斯模型的直线筛选算法,从待筛选直线中筛选出目标直线,所述目标直线即为识别出的导航标线。

一种移动机器人,包括驱动装置、处理器、以及用于存储处理器可执行的指令的存储器;

所述处理器被配置为:

获得当前航向前方的图像;

根据导航标线的第一预设特征,从所述图像中识别出符合所述第一预设特征的导航标线对象;

获取agv与导航标线的相对位置关系,

控制驱动装置根据所述相对位置关系修正agv的位置与航向,

所述相对位置关系包括agv与导航标线的距离、agv当前航向与导航标线的夹角。

本发明的有益效果是:

1.本发明采用图像采集设备替代磁导引传感器,采用彩色胶带铺设辅助路径,极大的降低了导航路径改造和维护成本。针对图像采集设备感知视野小的缺点,通过融合视觉特征和里程计信息,准确的跟踪agv的实时位姿。同时,针对可移动设备侧滑、脚轮打滑等原因导致的里程计累计误差,通过设置全局坐标已知的位置修正标记修正agv的里程计信息,从而实现agv高精度、稳定的定位和导航。

2.本发明通过观测到的地面路径信息,自动控制agv与路径的距离和偏差角,实时路径跟踪。针对agv工作环境对路径铺设的柔性具有较高要求,agv的定位导航能力可应付不同路况,包括实现对双侧路径、单侧路径的定位和导航、对无路径状态下突发情况具有自主判断能力。

附图说明

图1是全局坐标系下agv的位置坐标和图像坐标系下agv的位置坐标转换关系;

图2是紫色标记点的全局坐标与agv车体坐标的转换关系。

具体实施方式

实施例1

一种基于视觉的agv巡线导航和定位方法,包括步骤:

步骤101:获得当前航向前方的图像;

在本实施例中,通过固定在agv上的相机获取图像,相机光轴平行agv的纵轴线,agv的纵轴线方向与agv航向的方向一致,相机经过内外部参数标定,所述内外参数包括相机焦距、畸变系数、相机高度、俯仰角、相机与agv车体中心的相对位置关系等,以获得图像与全局坐标系的转换关系,相机坐标与agv车体坐标的转换关系等。其中,所述agv车体中心作为用于描述agv轨迹运动的特征点。

其中,在获得当前航向前方的图像前构建工作环境的拓扑地图,设置拓扑节点,agv在工作环境中可基于a*算法规划行走路径,行走路径由两个或若干个节点组成,相邻节点间可直线到达。需要说明的是,本发明的方法根据拓扑地图建立全局坐标系,设置拓扑节点,从而可获得节点的全局坐标。

在本实施例中,所述导航标线设置于行走路径的一侧或两侧。所述导航标线具有颜色属性,例如采用黄色胶带铺设在工作环境中,导航标线设置方式具有极大柔性,所述导航标线设置于行走路径的一侧或两侧,并且可采用局部无路径方式即间隔一定距离设置。导航标线上设置有若干紫色的修正标记。

步骤102:根据导航标线的第一预设特征,从所述图像中识别出符合所述第一预设特征的导航标线对象;所述第一预设特征根据现有的识别图像中的直线的技术而定,例如根据直线的颜色属性识别直线,根据图像中直线的梯度直方图特征识别直线等;

本实施例中,所述第一预设特征为导航标线的颜色属性,即导航标线具有特定的颜色,例如黄色,用于区别图像背景的颜色。具体过程为:

(1)对图像进行预处理,包括图像去畸变和滤波处理;

其中,图像中的导航标线具有特定颜色属性,对图像进行预处理,包括图像去畸变和滤波处理;并定义图像坐标系,以图像左上角的点为坐标原点,以像素为坐标单位:

(2)利用直线提取算法提取预处理后的图像中的线段,融合线段,得到若干待筛选直线段;所述融合是将处于同一条直线上或者近似同一条直线上的线段合并成一条直线段。

(3)采用基于高斯模型的直线筛选算法,从待筛选直线中筛选出目标直线,所述目标直线即为识别出的导航标线;

步骤103:获取agv与导航标线的相对位置关系,并利用所述相对位置关系修正agv的位置与航向。

其中,相对位置关系包括agv与导航标线的距离、agv当前航向与导航标线的夹角。在本实施例中,具体地,计算获得agv与导航标线的距离,判断距离与跟踪路径的偏差,将agv调整至跟踪路径上,所述跟踪路径为预设的agv的行走路径;同时计算agv航向与预设航向的偏差,将agv航向调整至预设航向上。在本实施例中,采用凑试法确定pid控制器参数调整agv航向角,并控制agv与左右导航标线的距离,实现路径跟踪;

所述跟踪路径包括如下三种:

1、若识别到位于agv两侧的导航标线,则确定跟踪路径为两侧的导航标线的中线;

2、若识别到位于agv一侧的导航标线,则确定跟踪路径为一与导航标线平行且相距设定距离的直线;

通过现有技术从相邻时刻采集的两帧rgb图像判断当前导航标线位于agv左侧或者右侧,控制agv保持安全距离跟踪导航标线,所述安全距离即跟踪路径与导航标线的距离,该距离预先设置;

3、若未识别到导航标线,agv根据里程计信息移动一段设定的距离,若仍未检测到导航标线则急停。

实施例2

在本实施例中,对步骤102的具体过程包括:

步骤201:使用直线提取算法提取预处理后的图像中的线段;

其中,所述线段包括如下属性:包含线段的起始点、终止点和线段长度。其中,所述线段包含起始点与终止点,并且起始点与终止点均在图像区域,或者以图像区域与线段的交点为终止点。

步骤202:选定两条线段分别作为母直线和子直线,并利用设定阈值判定母直线和子直线是否可以融合;若小于设定阈值则判定线段处于一条直线上可以融合;

具体地,选定一条线段作为母直线,子直线可以为除选定母直线外的任意线段,在一实施例中,通过线段长度的降序排列,有顺序地选择母直线和子直线,也可通过任意随机方式选择或者根据线段长度升序排列,再顺序选择母直线和子直线;

步骤203:对步骤s202中判定能融合的线段进行融合,得到融合后的直线段;

步骤204:重复步骤s202、s203,直到剩余直线段不能融合,得到若干待筛选直线段;

在本实施例中,将融合后的直线段与图像边缘的交点加入到各自的线段属性;所述线段属性包括线段的起始点、终止点和线段长,即将所述交点作为线段属性中线段的起始点、终止点;度。该步骤在每次步骤s203得到融合后的直线段后进行或者步骤s204直到剩余直线段不能融合后进行。

步骤205:对步骤s204中待筛选直线段进行评分,根据评分筛选出的目标直线即为导航标线;

实施例3,步骤102、步骤201中所述直线提取算法中优先选用lsd线段提取算法,

所述lsd线段提取算法包括以下子步骤:

步骤s301:计算每个像素点的梯度,并定义水平线方向为与梯度垂直的方向;

步骤s302:使用区域增长算法将图像分割为若干个连通域,每个连通域内允许两两像素之间水平线方向的最大差值为τ;

步骤s303:对于每一个连通域选取一个最小矩形包围该区域,则矩形的长轴方向为线段的方向,并返回线段的两个端点;用直线方程ax+by+c=0表示步骤s201以及本发明中得到的每条线段,其中a,b,c为直线一般式的三个参数。该线段包括如下属性:线段的起始点、终止点和线段长度。

实施例4,

步骤202中选定母直线和子直线具体方式如下:

步骤s401:根据线段属性中的线段长度,对步骤201中得到的n条线段进行排序,长度依次递减;并设置直线融合标志,初始为0;

步骤s402:根据线段长度的排序选取母直线与子直线,以第i条直线为母直线,以第j条直线为子直线;

其中,选取母直线的步骤具体包括:

①初始取i的数值为1;

②若j大于n,i的值加一;

③若i大于n,判断直线融合标志是否为1,如果为1则重复步骤s301、s302、s303,否则计算直线与图像边缘的交点;

所述直线与图像边缘的交点表示为(xs,ys),(xe,ye),将两个交点加入到直线属性,即将两个交点作为线段属性中线段的起始点、终止点;

也可以在得到剩余的若干不能再融合的直线之后计算每条剩余直线与图像边缘的交点,并将两个交点加入各自的直线属性;

其中,选取子直线的步骤具体包括:

①初始取j的数值为i+1;

②若直线可以融合,融合后删除用于融合的子直线,设置直线融合标志为1,j的值不变,用第j+1条直线至第n条直线分别代替第j条直线至第n-1条直线,或者当直线不可融合时,j的值直接加1;

③若j大于n,则重复步骤s402;

实施例5

步骤202中选取母直线和子直线后,利用设定阈值判断母直线和子直线是否可以融合,所述设定阈值包括距离和阈值、角度差阈值和截距误差阈值,若小于设定阈值则可以融合;

具体过程如下:

(1)当子直线只包含一个线段:计算子直线的两个端点到母直线的距离和,若小于距离和阈值,则可以融合;

具体地,当子直线第j条直线只包含一个线段:使用如下公式判定两个线段端点(x1,y1),(x2,y2)与母直线第i条直线的距离和errdist;

errdist=d(x1,y1)+d(x2,y2)

其中:

ai、bi、ci为母直线第i条直线的一般式参数,d(x,y)表示点(x,y)到母直线第i条直线的距离。

若errdist小于设定阈值,则判定母直线第i条直线与子直线第j条直线可以融合。

(2)当子直线包含多个线段:计算子直线与母直线角度差和截距误差同时小于设定的角度差阈值和截距误差阈值时,则判定子直线与母直线可以融合。

当第j条直线包含多个线段:子直线第j条直线的参数为aj,bj,cj,则两条直线的角度差阈值为errangle:

截距误差为errc:

当errangle与errc同时小于设定的阈值时,则判定母直线第i条直线与子直线第j条直线可以融合;

实施例6

步骤s203对判定能融合的线段进行融合的方法为:对母直线与子直线中的每个线段采样;将所有采样点经过最小二乘拟合可以得到新的直线。

在本实施例中,对于母直线与子直线可能包含多个被融合的线段,分别对母直线第i条直线与子直线第j条直线中的每个线段采样;每个线段采样点的数目为线段长度值,此处以像素为单位,即如果线段长度占了100个像素点,则采样的点数为100,最终得到采样点数目为li+lj,其中s为直线中的线段数目,lm为第m条线段的长度;使用li+lj个采样点,经过最小二乘拟合可以得到新的直线,一般式参数为af、bf、cf,使用af、bf、cf更新母直线第i条直线中的一般式参数ai、bi、ci,设置li为li+lj,将子直线第j条直线中的线段加入到母直线第i条直线中;

实施例7,步骤204采用基于高斯模型的直线筛选算法,从待筛选直线中筛选出目标直线的具体过程为:

步骤s701:选取描述特征,所述描述特征为沿垂直于直线的方向所有对称的采样点颜色值差值的均值;

本实施例具体提取特征的方法如下:

设点为直线上的一点,其中t表示从(xs,ys)到(xe,ye)的第t个采样点;沿垂直于直线的方向,以为中心向两侧分别采样m个点,则所有采样点数目为2m,第k次采样得到的两个点表示为则定义:

其中rgb(x)表示x位置处的颜色值,f(x)为用于描述像素x的描述特征,为3×1特征向量;

步骤s702:训练高斯模型:选取位于目标直线上的点,提取步骤s701中的所述特征,提取高斯模型,得均值特征向量以及协方差矩阵;

具体地,选取位于目标直线上的点,提取步骤s701中的特征,得到包含n个特征的集合f={f1,f2...fn},为3×n矩阵;提取高斯模型,得均值特征向量为3×1特征向量,以及协方差矩阵cov,为3×3矩阵;

f中的每一列减去得到矩阵

将训练完毕的高斯模型保存为文件,方便步骤s703中筛选直线操作;如果需要筛选多种颜色特性的直线,则可以经过多次训练保存为多个高斯模型。

步骤s703:筛选直线:对于经过融合后的任意一条直线,对每一点提取步骤s701中所述特征;使用马氏距离度量每一点特征与步骤s702得到的高斯模型之间的距离计算得分,得到目标直线;所述目标直线即为识别出的导航标线。

具体地,对于经过融合后的任意一条直线,从起始点(xs,ys)到终止点(xe,ye),对每一点提取步骤s701中所述特征;对于点p得到的特征为f(p);使用马氏距离d(p)度量p点特征与步骤s702得到的高斯模型之间的距离:

从起始点(xs,ys)到终止点(xe,ye)采样点总数为z,则该直线的得分s为:

s越小,则越接近需要的直线;若s小于设置阈值,则当前直线为目标直线,否则,当前直线不是目标直线。

实施例8

对于步骤103获取agv与导航标线的相对位置关系,并利用所述相对位置关系修正agv的位置与航向的具体过程为:

具体地,在全局坐标系下,获取agv的位置坐标,以及导航标线的坐标,通过agv的坐标与导航标线的坐标,计算得到agv车体中心与左右导航标线的距离l1、l2,以及agv航向与导航标线的夹角θ,具体地,如图1,根据标定结果获取相机的坐标,计算相机与左右导航标线的垂直距离l1、l2;根据相机标定的结果中相机与agv车体中心的相对距离d计算图像坐标系下agv的位置坐标;相机安装时光轴平行agv纵轴线,相机与agv车体中心的连线在agv的航向上,因此当相机光轴的投影与导航标线的夹角θ时,agv纵轴线与导航标线方向矢量的夹角为θ,根据公式(1)计算获得agv与左右导航标线的直线距离l1、l2,公式(1)如下:

实施例9,对里程计信息进行修正

里程计信息包括里程计航向角信息和里程计位置信息,所述里程计航向角信息用于估计当前agv航向,所述里程计位置信息用于估计agv当前位置,会有累计误差,

本实施例中,计算agv航向与导航标线之间的角度获得当前航向角信息,将里程计信息修正为当前航向角信息,即用当前航向角代替里程计航向角信息,图2中,路径中每条线段在拓扑地图中的角度已知,当前航向角β为航向与导航标线的夹角;在将里程计信息修正为当前航向角信息前比较当前航向角信息与里程计航向角信息的偏差值,超过阈值,则保持里程计航向角信息,也就是当前航向角信息与前一刻航向角信息的偏差太大,则认为定位失败,不对里程计的航向角信息进行修正。

本实施例中还用位置修正标记提供的位置修正信息代替里程计位置信息,具体地,从图像中识别出符合第二预设特征的修正标记对象,根据位置修正标记提供的位置信息修正里程计位置信息,本实施例中,采用粘贴在导航标线上的紫色标记作为位置修正标记,所述第二预设特征为区别于导航标线颜色属性的颜色,能够被相机识别,每个紫色标记对应一个坐标位置,设置紫色标记的全局坐标(a,b),利用公式(3)标定里程计全局坐标信息(x,y),即将里程计位置信息修正为里程计全局坐标信息。其中,还可以利用公式(2)将紫色标记在图像坐标系坐标(x,y)转换为agv车体坐标系坐标(u,v)。

x=v

y=-u(2)

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1