公开/公告号CN112223278A
专利类型发明专利
公开/公告日2021-01-15
原文格式PDF
申请/专利权人 山东省科学院自动化研究所;
申请/专利号CN202010943502.3
申请日2020-09-09
分类号B25J9/16(20060101);G06F17/16(20060101);G06T7/50(20170101);G06T7/70(20170101);G06T7/90(20170101);
代理机构37221 济南圣达知识产权代理有限公司;
代理人赵敏玲
地址 250014 山东省济南市历下区科院路19号
入库时间 2023-06-19 09:33:52
技术领域
本公开属于移动探测机器人应用技术领域,具体是涉及一种基于深度视觉信息的探测机器人跟随方法及系统。
背景技术
这里的陈述仅提供与本公开相关的背景技术,而不必然地构成现有技术。
探测机器人属于特种机器人的一种,具有感知、决策和运动能力,探测机器人技术涉及到人工智能、自动控制、信息处理、图像处理、模式识别等多门专业技术,跨计算机、自动化、通信、机械、电子等多门学科,体现了信息技术与人工智能技术的最新发展水平。
近年来,随着计算机技术和人工智能技术的发展,探测机器人不仅在工业制造方面,而且在军事制导、民用、海洋勘探、月球/火星探测等方面得到了广泛地应用。探测机器人的研究已成为一个热点问题。探测机器人在现代人类社会的生产中的作用越来越大,已经渗透到了很多重要的领域。代替人前往高危、有毒的恶劣环境进行现场勘查和检测,如井下巷道探测机器人、火灾探测机器人、危险化工巡检机器人以及水下探测机器人等。
探测机器人一个重要工作就是进行目标探测与跟踪跟随。可视目标的跟踪跟随也是目前机器视觉研究的热最重要的热点之一。当前主要的目标跟随技术包括基于图像处理的跟随技术、基于红外的跟随技术和基于超声波的跟随技术。其中基于视觉图像的跟随技术具有可视化跟踪和跟随、远程操控选择或更换跟踪目标等特点,是目前研究的最主要机器人跟随方法。
但是基于视觉的机器人跟随方法涉及技术领域广泛,实时性要求较高,算法复杂,有一定难度。
发明内容
针对现有技术存在的技术问题,本公开提供了一种基于深度视觉信息的探测机器人跟随系统及方法。
本公开至少一实施例提出了一种基于深度视觉信息的探测机器人跟随方法,该方法包括如下步骤:
步骤1:获取深度图像信息、RGB图像信息以及二者的同步信息;
步骤2:显示获取的RGB图像,以RGB图像为基准,选择跟随目标并标记跟随目标矩形区域;
步骤3:选取跟随目标后,通过KCF跟踪算法进行实时目标位置跟踪;
步骤4:根据KCF算法实时跟踪RGB图像矩形位置,在深度图像中计算跟随目标的深度位置信息,从而确定探测机器人相对于跟随目标的距离和方位;
步骤5:在步骤4中计算出跟随目标的相对距离和方位后,发布驱动探测机器人移动的运动控制指令,探测机器人根据运动控制指令进行目标的跟随。
进一步地,在步骤1中获取深度图像信息和RGB图像信息具体实现包括以下子步骤:
步骤1.1:启动采集与发布深度相机的ROS节点;
步骤1.2;订阅并获取ROS节点发布的深度图像信息和RGB图像信息包;
步骤1.3:进行深度图像信息和RGB图像信息同步处理;
步骤1.4;显示RGB图像信息。
进一步地,在步骤2中选择跟随目标具体实现包括以下子步骤:
步骤2.1:在获取的RGB图像中确定要跟随的目标;
步骤2.2:根据跟随目标在RGB图像中的位置,选取所在矩形区域;
步骤2.3:画出包含跟随目标的矩形框,作为目标的显式标记,此时跟随目标等价为跟随该矩形框内图像区域。
进一步地,所述步骤3具体分为以下步骤:
步骤3.1:将步骤2所述获取的目标RGB图像矩形区域作为模板,进行KCF 算法的初始化;
步骤3.2:通过KCF算法计算选取目标矩形区域后RGB图像帧中的跟踪矩形区域;
步骤3.3:实时显示KCF跟踪矩形区域。
进一步地,所述步骤4中在深度图像中计算跟随目标的深度位置信息,具体分为以下子步骤:
步骤4.1、根据KCF算法实时跟踪RGB图像中的跟踪矩形区域;以此矩形区域获取跟随目标矩形像素坐标作为跟随目标的等效矩形像素坐标;
步骤4.2、根据目标等效矩形像素坐标,在深度图像中计算矩形区域的深度质心,即矩形区域深度信息的平均值,并以深度质心作为目标深度信息;
步骤4.3、根据目标深度位置信息和目标矩形区域中心位置在RGB图像中相对位置作为机器人相对于跟随目标的距离和方位。
进一步地,所述步骤5具体分为以下子步骤:
步骤5.1:根据预设的探测机器人与跟随目标之间的安全距离、视野中心位置和当前跟随目标相对于探测机器人的距离和方位,计算出机器人前进速度和偏转角度;
步骤5.2:通过ROS系统发布机器人运动指令,所述运动指令包括机器人前进速度和偏转角度。
进一步地,在所述步骤5中探测机器人接收发布的机器人运动指令,包括机器人前进速度和偏转角度;根据机器人线速度和角速度以及机器人机械构造模型,通过机器人两轮差速运动模型,计算出机器人两轮转速;机器人将两轮转速通过CAN通信协议下达给驱动器,驱动器驱动电机执行目标跟随运动。
本公开至少一实施例还提出了一种基于深度视觉信息的探测机器人跟随系统,该系统包括机器人移动平台和远程操作端;所述机器人移动平台上设有图像采集模块和运动控制模块;所述远程操作端设有图像处理模块;
所述图像采集装置将用于获取目标深度图像信息和RGB图像信息并发送给远程操作端的图像处理模块;图像处理模块接收发送的深度图像和RGB图像信息进行图像显示并确定跟踪目标;根据目标深度图像数据,计算机器人距离目标点距离,发出运动控制信号给移动平台。
进一步地,所述系统还包括设置在机器人移动平台上的ROS系统;所述ROS 系统用于深度图像和RGB图像采集与发布;同时ROS系统还用于将机器人线速度和角速度根据两轮差速运动模型转换为两轮转速并发送给运动控制模块执行;所述动控制软件模块用将左右轮速度通过CAN通信发送机器人的驱动器执行。
进一步地,所述远程操作终端上设有远程操作模块用于旋转跟随目标。
本公开的有益效果如下:
(1)、本公开的机器人跟随方法将目标跟踪与深度信息融合,确定目标方位,实现探测机器人目标跟随,该方法实时性好,性能稳定、可以灵活方便地准确跟随指定目标。
(2)、本公开的跟随方法采用深度相机获取深度信息,并采用KCF实现实时跟踪,车载计算机没有没有特殊要求,常规标准即可满足实时性要求。
(3)、本公开的跟随方法目标平均深度信息作为相当于机器人位置信息,准确性高,运行速度快。
(4)、本公开的跟随系统运动控制部分和图像获取部分采用ROS系统,具有分布计算的特点,使得系统整个稳定可靠,便于维护和扩展。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例提供的探测机器人跟随系统硬件系统结构图;
图2为本发明实施例提供的探测机器人跟随系统软件系统结构图;
图3为本发明实施例提供的跟随方法流程图;
图4为本发明实施例提供的跟随软件流程图;
图5为本发明实施例提供的差速运动示意图;
图6为本发明实施例提供的目标质心算法示意图;
图7为本发明实施例提供的ROS分布结构示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
在本公开的描述中,需要理解的是,术语“上”、“下”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。
如图1和图2所示,本公开实施例提供的机器人跟随系统包括硬件系统和软件系统,其中硬件系统包括深度相机、机器人移动平台、车载计算机、远程操作端四大硬件模块组成,其中深度相机与车载计算机均安装在机器人移动平台上,所述深度相机主要用于获得目标深度图像信息和RGB图像信息,所述车载计算机上安装有ROS系统、运动控制软件模块;所述远程操作端通过无线网络WLAN与车载计算机通信,完成指令传递;所述远程操作端安装图像处理软件模块用于接收深度相机传递过来的目标深度图像信息和RGB图像信息,根据目标深度图像数据,计算机器人距离目标点距离,并通过ROS发布运动控制信号;所述机器人移动平台用于接收车载计算机发出的运动控制信号,并做出机器人移动响应进行目标跟随。
进一步地,本实施例中的软件系统包括ROS系统、运动控制软件模块、图像处理软件模块和远程操作软件模块。所述的ROS系统安装在车载计算机上,用于深度图像和RGB图像采集与发布,同时ROS系统还用于将机器人线速度和角速度根据两轮差速运动模型转换为两轮转速并发送给运动控制软件模块执行;所述运动控制软件模块用将左右轮速度通过CAN通信发送探测机器人的驱动器执行;所述的图像处理软件模块用于接收探测机器人发送的深度图像和 RGB图像信息并进行图像显示、目标跟踪和处理,并通过远程操作模块来指定跟踪目标,然后图像处理软件模块根据目标深度图像数据,计算机器人距离目标点距离,并通过ROS网络系统发布运动控制信号给探测机器人平台。
本公开另外一些实施例还提供了一种基于深度视觉信息的探测机器人跟随方法,该方法主要包括如下六大步步骤:
步骤1:获取深度图像信息和RGB图像信息;
步骤2:手工选择跟随目标;
步骤3:跟随目标实时跟踪;
步骤4:跟随目标深度位置信息计算;
步骤5:驱动机器人运动指令发布;
步骤6:运动指令的执行。
下面具体说明一下这些步骤见图3:
步骤1:获取图像信息,包括深度图像信息、RGB图像信息以及二者同步信息。具体包括四个子步骤:
步骤1.1:在车载机器人中,启动安装在探测机器人上深度相机的ROS节点,通过该节点采集图像信息,并发布图像话题;
步骤1.2:远程操控端ROS节点订阅深度图像信息和RGB图像信息话题;
步骤1.3、远程操控端上的图像处理软件模块从订阅话题中获取深度图像数据和RGB图像数据,并进行进行深度图像和RGB图像数据同步;
步骤1.4、图像处理软件模块在远程操控端计算机屏幕显示RGB图像信息。
步骤2:操作员在远程操控端计算机屏幕显示RGB图像中,手工用鼠标选择标记跟随目标,就是以RGB图像为基准标记跟随目标矩形区域。具体实现包括以下三个子步骤:
步骤2.1:操作员在远程操控端计算机屏幕RGB图像中确定要跟随的目标;
步骤2.2:根据跟随目标在图像中的位置,选取所在矩形区域;
步骤2.3:画出包含目标的矩形框,作为目标的显式标记,跟随目标等价为跟随该矩形框内图像区域。
步骤3:操作员在远程操控端取跟随目标后,通过KCF跟踪算法进行实时目标位置跟踪,具体分为以下三个子步骤:
步骤3.1:将步骤2所述获取的目标RGB图像矩形区域作为模板,进行KCF 跟踪算法的初始化。
步骤3.2:通过KCF算法计算跟踪矩形区域;
步骤3.3:在远程操控端的计算机屏幕上实时显示KCF跟踪矩形区域。
步骤4:根据根据KCF算法实时跟踪RGB图像矩形位置,在深度图像中计算跟随目标的深度位置信息,从而确定探测机器人相对于跟随目标的距离和方位;在深度图像中计算跟随目标的深度位置信息,具体分为以下三个子步骤:
步骤4.1、根据KCF算法实时跟踪RGB图像矩形位置,以此矩形位置获取跟随目标矩形像素坐标作为跟随目标的等效矩形像素坐标;
步骤4.2、根据目标等效矩形像素坐标,在深度图像中计算矩形区域的深度质心,即矩形区域深度信息的平均值,并以深度质心作为目标深度信息;
步骤4.3、根据目标深度位置信息和目标矩形区域中心位置在RGB图像中相对位置作为机器人相对于目标的距离和方位。
步骤5:在步骤4中计算出跟随目标的相对距离和方位后,通过ROS系统发布驱动机器人移动的运动控制指令话题,进行目标的跟随,具体包括以下两子步骤:
步骤5.1:根据预设的探测机器人与目标之间的安全距离、视野中心位置和当前目标相对于机器人的距离和方位,解算出机器人前进速度(即机器人线性速度)和偏转角度(即机器人角速度);
步骤5.2:操控端通过ROS发布机器人运动指令话题(cmd_vel),包括机器人前进速度(即机器人线性速度)和偏转角度(即机器人角速度)
步骤6:车载计算机上安装的运动控制软件订阅机器人运动指令话题,通过两轮差速模型计算出两轮转速,实现对目标的实时跟随,具体包括以下三个子步骤:
步骤6.1:车载计算机通过运动控制软件接收操控端发布的机器人运动指令(cmd_vel);
步骤6.2:按照机器人两轮差速运动模型,计算出机器人两轮转速;
步骤6.3:车载计算机的机器人运动控制软件模块将两轮转速通过CAN通信协议下达给机器人的驱动器,机器人的驱动器驱动电机执行目标跟随运动。
如图4所示,本公开实施例采用软件流程,步骤包括:
步骤1:深度相机节点进行深度图像和RGB图像采集;
步骤2:深度相机节点进行深度图像和RGB图像发布;
步骤3:操控节点进行深度图像和RGB图像订阅;
步骤4:操控节点RGB图像的显示;
步骤5:操作员进行目标选择;
步骤6:通过KCF算法进行目标跟踪;
步骤7:通过质心算法进行目标位置计算;
步骤8:操控节点运动指令发布;
步骤9:车载计算机节点订阅运动指令;
步骤10:两轮差速计算;
步骤11:运动指令下达给电机驱动器;
如图5所示,本公开实施例提供的两轮差速运动模型,在此模型中将ROS 运动指令话题cmd_vel中的线速度和角速度转化为两轮转速。全局坐标系 {XOY},局部坐标系{X’O’Y’},局部坐标Y’与两轮的中轴线重合,从右轮指向左轮,X’向机器人的正前方。假设机器人质心C位于两驱动轮轴线的中点,与坐标系原点O’重合。局部坐标系相当于全局坐标系的旋转角为θ,为机器人的方向角。
局部坐标系到全局坐标系统的映射正交旋转矩阵:
两驱动轮轴线的长度为l,左右驱动轮半径都为r,机器人的位姿向量为 P=(x,y,θ)
其中,v为机器人质心处的线速度;w为机器人的转向角速度;v
机器人中心点线速度为:
角速度为:
转换公式为:
v
v
在驱动电机时,将驱动电机线速度v
v
v
则有:
n
n
为差速运动左右轮转速值,即运动指令下达给电机驱动器的左右轮转速值。
如图6所示,本公开实施例计算目标矩形框中深度图像的质心作为目标位置参考信息的步骤包括:
步骤1:计算每个相对应水平和垂直弧度;
假设水平视野角度α,垂直视野角度β,图像宽度和高度为image_width、 image_height,图6中,AB长度为image_width,AD的长度为image_height,那么每个像素水平和垂直弧度为:
x_radians_per_pixel=α*M_Pl/180/image_width;
y_radians_per_pixel=β*M_Pl/180/image_height;
其中M_Pl为圆周率。
步骤2:计算每个像素水平方向(X),垂直方向(Y)比例。
图像像素p的水平和垂直比例,就是正弦值:
sin_pixel_x[p_x]=sin((p_x-image_width/2)*x_radians_per_pixel)
sin_pixel_y[p_y]=sin((p_y-image_height/2)* y_radians_per_pixel)
其中p_x、p_y分别为像素p的x、y坐标,
p_x=TP
p_y=OT
θ=(p_x-image_width/2)*x_radians_per_pixel(弧度值)
步骤3:分别计算目标矩形区域中每个像素x、y深度比例值x_val、y_val;
假设某个深度图像像素p值为depth,那么:
x_val=sin_pixel_x[p_x]*depth
y_val=sin_pixel_y[p_y]*depth
步骤4:分别计算目标矩形区域中所有像素x、y方向深度比例值合计 x_sum、y_sum;
x_sum+=x_val
y_sum+=y_val
步骤5:计算目标矩形区域中所有像素x、y方向深度比例平均值x_avg, y_avg,就是质心;
x_avg=x_sum/n
y_avg=y_sum/n
其中n为目标矩形区域中所有像素个数。
步骤6:根据目标区域相对位置计算机器人移动速度linear_speed和 rotation_speed,相对位置用最小深度值z和目标矩形区域深度比例平均值x_avg;
linear_speed=(min(z)-goal_z)*z_scale
rotation_speed=-x_avg*x_scale
其中min(z)目标矩形区域内最小深度值,goal_z为设置的机器人与目标间安全距离,z_scale、x_scale为速度比例值。
最后还需要说明的就是,如图7所示,本公开实施例使用的是基于ROS系 统的网络通信架构,ROS节点包括深度相机节点、操控端节点和机器人移动平 台节点。订阅和发布的主要ROS话题包括深度图像话题(/image_depth)、RGB 图像话题(/image_color)、相机信息话题(/camera_info)以及机器人运动指令 话题(/cmd_vel)。
最后说明的是,以上实施例仅用以说明本公开的技术方案而非限制,尽管参照较佳实施例对本公开进行了详细说明,本领域的普通技术人员应当理解,可以对本公开的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本公开的权利要求范围当中。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
机译: 一种基于指针的对象获取方法,用于对计算机系统的信息进行有形处理,该方法基于一种自然语言,并且该机器人或机器人的人工智能系统对该计算机系统的接收信号作出反应,该计算机系统具有相应的关联机器人或机器人的人工智能,该机器人或机器人的人工智能计算机系统的相应思想得到证实
机译: 一种具有视觉传感器能力的移动机器人的归巢导航方法,该视觉信息具有一个视觉传感器,能够计算从移动机器人到地标的距离
机译: 移动机器人致动器,用于操纵跟随操作者手指运动的物体,例如:工业机器人系统,具有确定单元,该确定单元基于压力和/或分离距离确定致动器的拧紧操作