一种语音召唤智能居家康护机器人的方法与流程

文档序号:16503748发布日期:2019-01-05 08:54阅读:436来源:国知局
一种语音召唤智能居家康护机器人的方法与流程

本发明涉及机器视觉领域,特别是一种语音召唤智能家居康护机器人的方法。



背景技术:

现有的机器人召唤系统大多是借助第三方设备对人进行定位,例如手机、手环、智能手表等,这不仅携带不便,且不能对人进行精确定位,且误差较大,从而导致机器人不能准确的移动召唤人的面前进行人机交互。只能在室外进行定位,在室内没有信号,要想能在室内进行定位,必须购买价格昂贵的定位设备,且定位精度也不高。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术不足,提供一种语音召唤智能家居康护机器人的方法。

为解决上述技术问题,本发明所采用的技术方案是:一种语音召唤智能家居康护机器人的方法,包括以下步骤:

1)在机器人上体安装rgb-d相机及头部安装多个语音传感器;

2)获取rgb-d相机正前方视野范围内的深度图像和彩色图像;

3)识别rgb-d相机深度图像和彩色图像是否有人体轮廓;若有,进入步骤3);否则,结束;

4)获得人体轮廓中心位置相对于rgb-d相机的位置关系;

5)计算人体轮廓中心在map坐标系中的位置,所述map为机器人导航所构建的地图;

6)发布所述人体轮廓中心在map坐标系中的位置到机器人导航模块,导航模块对该位置进行判断,判断该位置是否有效,若有效则导航到该点,并在导航的过程中寻找一条最优路径去导航点,并在机器人到达导航点的时候退出语音传感器召唤状态;若无效则判定导航失败,返回步骤2),重新进行语音传感器召唤。

所述语音传感器数量为16个,该16个语音传感器均匀安装在机器人头部,且16个语音传感器的中点均在圆形的周边上,相邻两个语音传感器的中心点到圆心连线的夹角为22.5°。

步骤2)中,若检测到rgb-d相机深度图像和彩色图像中有骨骼数据,则认为所述rgb-d相机深度图像和彩色图像中有人体轮廓。

利用骨骼识别库nite提供的usertracker进行骨骼数据检测和识别。

计算人体轮廓中心到map坐标系中的位置的公式为:

其中为人体轮廓中心在相机坐标中的位置,为旋转矩阵,r00,r01,...,r22为旋转矩阵的内部参数(相机坐标系到map坐标系的变换分为相机坐标到机器人坐标变换,机器人坐标到map坐标变换两个部分,其中相机坐标到机器人坐标变换旋转平移参数可以根据相机安装在机器人的上位置直接获取,是固定的。机器人坐标到map坐标变换旋转平移参数可以通过机器人马盘实时获取,是时刻变化的,再把这两部分参数合起来就可以得到相机到map旋转平移参数);为平移矩阵,tx,ty,tz分别为x,y,z方向的相机坐标系到map坐标系的平移值,为人在map坐标系中的位置。

步骤6)中,导航模块对该位置进行判断,判断该位置是否有效的方法为:先对导航的场景进行建图,对每个场景建好的图进行封闭,当要导航的位置在该封闭范围内,则判定该位置有效,若不在该封闭范围内,则判定为无效。

与现有技术相比,本发明所具有的有益效果为:本发明无需借助第三方设备进行召唤,操作和携带方便;能准确地把机器人召唤到用户面前,定位精度高;在室内和室外均可进行召唤操作,使用范围广。

附图说明

图1为本发明视觉检测流程图;

图2为本发明方法流程图。

具体实施方式

本发明提出了一种基于rgb-d相机的机器人语音智能召唤系统,其过程是召唤人通过特定词汇唤醒机器人,这时机器人上的头部的传感器会获得一个召唤人相对于机器人的角度信息,在获得角度信息后,机器人会旋转到正对着召唤人的方向,开始视觉检测召唤人的算法,获得召唤人的位置信息,然后控制机器人导航到召唤人的位置,完成召唤。整个系统共分为以下几个模块:语音模块、视觉模块,导航模块及控制模块。语音模块主要是通过装在机器人头部的六麦传感器,可以远距离的识别特定词汇,例如“小安、小安”,可以唤醒语音麦克并对声源进行方向定位,获得声源相对于机器人正面的角度信息,其误差在5-20度以内;视觉模块主要是通过rgb-d首先对召唤人进行识别,计算出人在图像中的位置,结合rgb-d相机提供的深度信息从而计算出人相对于相机的准备位置,再转换为导航人在map(地图)位置。导航模块具有两个功能:1.对召唤场景进行绘制地图(map);2.根据视觉模块提供的位置是机器人导航到该点。控制模块主要是控制机器人召唤的整个流程。

语音模块是用来识别召唤词并获得召唤人相对于机器人的角度,在获得角度后会通过串口发送给控制模块;视觉模块主要是对人的识别,当只要识别到人,就会计算人的位置,并在指定的ros的topic(话题)发布出位置;导航模块主要是实现机器人对点的导航,当导航模块接受到一个位置时,首先会判断该点是否有效,如有效导航到该点,如无效取消导航;控制模块主要是对各个模块的数据进行处理,并控制机器人做相应的工作。例如在召唤过程中,控制模块会一直来监测语音模块是否发角度过来,一旦监测到有角度信息,就会控制机器人旋转到该角度,然后在指定的topic上订阅视觉模块发布的人位置信息,当订阅到人的位置消息,就会把位置发送给导航模块,导航模块接受的位置就会导航到该点,完成召唤。

语音模块:安装在机器人头部的六麦传感器,识别召唤词并获取召唤人相对于机器人的角度信息,六麦传感器工作原理为:将六麦传感器的声音分为六个区域,每个区域为60度,当有声音来时,先判断是在这六个区域的某个区域,然后在这个区域根据声音的来源进一步判断声音的来源方向。设置有16语音识别传感器,相邻两个之间的角度为22.5度,正下方的语音传感器的位置为0度,然后每个传感器的角度位置以22.5度递增,当逆时针旋转的正下方的声音传感器的位置刚好为360度。因此六麦传感器能够识别来之16个不同方向的声音,其误差在12度以内。

视觉模块:订阅rgb-d相机的深度图像和彩色图像,利用彩色图像来检测图像中是否有人,若有人计算出人的中心在图像中的位置,再订阅该位置的深度信息,再结合相机模型计算出人的中心在相机坐标系中的位置,再结合导航发布的相机到map坐标系的转换关系,把相机坐标系中人的位置转换为在map中的位置,在通过ros消息发布出去。

视觉模块主要是实现对人的识别,并获取人的位置信息:

首先获取rgb-d相机深度和彩色图像序列,然后通过人体骨骼识别技术来实现对人的检测并获得人相机坐标系的位置,将获得的位置通过一系列的坐标转换将人在相机坐标系位置转换到导航模块能识别的map坐标系位置,并将位置信息通过ros消息发布出去,其具体实现过程如下:

(1)订阅rgb-d相机深度和彩色图像:现今的rgb-d深度相机生产商都会发布ros驱动包,在用ros包驱动深度相机,会获得关于深度图像和彩色图像topic(话题),要想获取深度和彩色图像数据,只需要订阅这项topic,例如:/camera/rgb/image_rec_color(彩色图像),/camera/depth/image_image_rect(深度信息)。在订阅彩色和深度图像数据是,需要注意是由于rgb-d相机发布的消息不是同步的,所以必须对topic的时间戳进行分析,进行同步。

(2)检测图像中是否有人:主要是用nite(骨骼识别)库提供的usertracker,这个可以对人的骨架进行进行识别和跟踪,最多同时可以对六个人进行跟踪,且对不同的人都会有不同的id(标签),方便管理和对数据的处理,当识别到图像中有骨骼数据,则认为在图像中检测到有人出现。

(3)获得人体轮廓中心位置相对于rgb-d相机的位置关系:由于nite库可以检测出人体20个骨骼点的数据,取位置相对在人体中的骨骼点作为人体的中心,然后读取这个骨骼点数据,既可以获得人体轮廓中心在相机坐标系中的位置。

(4)计算人体轮廓中心在map坐标系中位置:要想通过导航让机器人到目标点,其目标点必须为map坐标系下的位置,其中map是机器人导航时所构建的地图。要把相机坐标系中的一个点转化为map坐标系的中一个点,必须要知道相机坐标系到map坐标系转换关系,而相机坐标系到map坐标系转换关系不能直接得到,要先得到相机坐标系到机器人坐标系转换关系,再得到机器人坐标到map坐标系到转换关系。其中相机坐标系和机器人坐标系是可以根据相机安装在机器人上位置可以直接得到的,是固定不变的。而机器人坐标系和map坐标系的转换关系,是时刻在变化的,需要同读取机器人码盘数据获得,通过这两个步骤可以获得相机坐标系到map坐标系的转换关系。假设pc(xc,yc,zc)为相机坐标的一点,r和t为相机坐标系到map坐标系旋转矩阵和平移矩阵,则可以得到pc转换到map坐标系的一个点m(x,y,z):

其中为人在相机坐标中的位置,为旋转矩阵,r00,r01,...,r22位旋转矩阵的内部参数,平移矩阵,tx,ty,tz分别为x,y,z方向的平移值,为人在map坐标系中的位置。

(5)发布位置消息:利用ros发布消息的机制,发布位置信息到指定的topic,方便主控模块在该topic上订阅位置消息。

导航模块根据视觉模块计算出的人在map中的位置,对该位置进行判断,判断该位置是否有效,若有效则导航到该点,并在导航的过程中能够实时避障,寻找一条最优路径去导航点,若无效侧判定导航失败。

控制模块,控制机器人召唤的整个流程,其具体流程如下:首先判定是否有人召唤,若有人召唤,获取召唤人角度信息,并控制机器人旋转到该角度,如果召唤人发现该角度不对可以重新召唤。在机器人调整角度后,开始检测机器人正前方的召唤人,若检测到人,将位置发送给导航,没有则语音提醒召唤人换个位置重新召唤。在导航接收数据后,会对位置进行判断,判断无效语音播报“你在的位置我去不了”,判断有效则语音播报“我这就过来了”,当机器人导航到该位置后,退出召唤状态。

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