著录项信息
专利名称 | 寻找被呼叫方 |
申请号 | CN201280038238.2 | 申请日期 | 2012-07-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-04-09 | 公开/公告号 | CN103718125A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05D1/12 | IPC分类号 | G;0;5;D;1;/;1;2;;;H;0;4;L;2;9;/;0;2;;;G;0;6;K;9;/;2;0查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | C·F·奥利维三世;J·S·弗伊莱德;M·沙拉比;N·T·克林顿;R·桑切斯;A·弗隆;G·惠勒;F·伯安那克 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 范玮 |
摘要
提供了一种使用机器人发起与个人的远程呈现会话的方法。该方法包括在机器人处接收对托管远程呈现会话的请求,并且接收机器人对远程呈现会话的目标个人的标识。机器人随后搜索当前位置以寻找个人。如果找到个人,则作出关于这个人是否是目标个人的确定。如果找到的这个人不是目标个人,则提示这个人以寻找目标个人的位置。机器人移动到这个人响应于该提示所给出的位置。
1.一种用于在环境中使用机器人与个人进行远程呈现会话的系统,包括:
电动机,其被配置成移动所述机器人通过所述环境;
传感器系统,包括:
相机;以及
话筒;以及
处理器,其被配置成实现机器人的各模块,其中所述模块包括:
导航模块,其被配置成移动所述机器人通过所述环境;
面部识别模块,其被配置成标识来自相机的图像中存在面部;以及
个人定位模块,其被配置成接受对目标个人的指定,并且使用来自所述面部识别模块、或所述导航模块、或其任何组合的数据来在所述环境中定位所述目标个人,其中所述个人定位模块被进一步配置成确定找到的人是否是所述目标个人,并且如果找到的这个人不是所述目标个人,则所述个人定位模块被进一步配置成提示这个人以寻找所述目标个人的位置并且将所述机器人移动到响应于该提示所给出的回答中提供的位置。
2.如权利要求1所述的系统,其特征在于,包括运动检测系统,被配置成定位由所述相机检测到的运动。
3.如权利要求1所述的系统,其特征在于,包括声源定位模块,其被配置成定位由所述话筒检测到的声音。
4.如权利要求1所述的系统,其特征在于,所述个人定位模块被配置成向远程用户提供搜索的状态。
5.一种用于使用自主机器人来发起与目标个人的远程呈现会话以定位所述目标个人的方法,包括:
在机器人处接收对托管远程呈现会话的请求;
接收机器人对所述远程呈现会话的目标个人的标识;
搜索当前位置以寻找个人;如果找到个人,
确定这个人是否是所述目标个人;以及如果找到的这个人不是所述目标个人,提示这个人以寻找所述目标个人的位置;以及
将所述机器人移动到响应于该提示所给出的回答中提供的位置。
6.如权利要求5所述的方法,其特征在于,包括使用面部识别软件来标识图像中的个人。
7.如权利要求5所述的方法,其特征在于,包括在移动到所述位置时扫描各面部、收听声音、或两者。
8.如权利要求5所述的方法,其特征在于,包括:
定位环境中的运动;
朝向所述运动的位置移动所述机器人;以及
在所述运动的位置处扫描面部。
9.如权利要求5所述的方法,其特征在于,包括:
定位声音的位置;
移动旋转台,以朝向所述声音来定向相机;以及
在所述声音的位置处扫描面部。
10.一种用于定位目标个人的方法,包括:
接收语音命令,所述语音命令指示机器人在特定位置处搜索个人;
将机器人移动到所述特定位置;
确认这个人的身份以确定这个人是否是所述目标个人,并且如果这个人不是所述目标个人,则提示这个人以寻找所述目标个人的位置;以及
将所述机器人移动到响应于该提示所给出的回答中提供的位置。
11.一种用于定位目标个人的系统,包括:
用于接收语音命令的装置,所述语音命令指示机器人在特定位置处搜索个人;
用于将机器人移动到所述特定位置的装置;
用于确认这个人的身份以确定这个人是否是所述目标个人,并且如果这个人不是所述目标个人,则提示这个人以寻找所述目标个人的位置的装置;以及
用于将所述机器人移动到响应于该提示所给出的回答中提供的位置的装置。
寻找被呼叫方\n[0001] 背景\n[0002] 如本文使用的“机器人”是包括允许该机器人自主执行功能的计算机硬件和软件的机电设备。机器人的一个示例是可被配置成飞行到特定目标而无需远程引导的巡航导弹。巡航导弹上的传感器可以输出数据,该数据与内部数据库相比较来允许巡航导弹调整其飞行模式以确保巡航导弹到达预期目标。\n[0003] 尽管巡航导弹是军用机器人,但消费级机器人已被引入市场。例如,真空吸尘器已配置有电动机和传感器,这些电动机和传感器允许真空吸尘器自主地对特定区域真空打扫并且返回充电站。在另一示例中,机器人剪草机已被引入,其中机器人剪草机的用户定义某一边界,并且机器人剪草机在所定义的边界内以自主方式前进来除草。\n[0004] 开发了各技术来允许从远程位置给予某些机器人指令。换言之,机器人可以例如通过网络与远离机器人的计算设备通信,并且机器人基于所提供的指令来执行动作。当远程用户参与机器人位于的环境时,这可被称为“机器人远程呈现”。在一种类型的机器人远程呈现中,远程用户可能希望在机器人的环境中与个人通信。\n[0005] 概述\n[0006] 下面呈现了本发明的简化概述,以便提供此处所描述的某些方面的基本概念。此发明内容不是所要求保护的主题的详尽的概述。既不是要指出所要求保护的主题的关键性元素,也不是要详细描述本发明的范围。唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。\n[0007] 本发明涉及用于在包含机器人的环境中定位个人并且通过机器人远程呈现发起通信的各系统和方法。一个实施例提供了一种用于在环境中使用机器人与个人进行远程呈现会话的系统。该系统包括电动机和传感器系统,电动机被配置成移动机器人通过该环境,传感器系统包括相机和话筒。处理器被配置成实现机器人的各模块,其中这些模块包括被配置成移动机器人通过环境的导航模块、被配置成检测环境中的运动的运动检测系统、以及被配置成定位话筒检测到的声音的声源定位模块。面部识别模块被配置成标识来自相机的图像中存在面部。个人定位模块被配置成接受对目标个人的指定,并且使用来自声源定位模块、面部识别模块、或导航模块、或其任何组合的数据来在环境中定位该目标个人。\n[0008] 另一实施例提供了一种用于使用自主机器人来发起与目标个人的远程呈现会话以定位该目标个人的方法。该方法包括在机器人处接收对托管远程呈现会话的请求,并且接收机器人对远程呈现会话的目标个人的标识。机器人搜索当前位置以寻找个人。如果找到个人,则机器人确定这个人是否是目标个人,如果否,则提示这个人以寻找目标个人的位置。机器人随后移动到响应于该提示所给出的回答中提供的位置。\n[0009] 另一个实施例提供了一种或多种用于存储计算机可读指令的非易失性计算机可读存储介质,当由一个或多个处理设备执行时所述计算机可读指令提供了一种用于定位目标个人的系统。这些计算机可读指令包括被配置成接收语音命令的代码,其中这些语音命令指示机器人在特定位置处搜索个人,以及被配置成将机器人移动到该特定位置的代码。\n[0010] 提供本概述是为了以简化的形式介绍一些概念;这些概念将在以下具体实施方式中被进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。\n附图说明\n[0011] 图1是机器人远程呈现会话中可以使用的机器人的示意图;\n[0012] 图2是本地用户和远程用户之间的机器人远程呈现会话的图示;\n[0013] 图3是一种用于在机器人的环境中定位个人并且建立机器人远程会话以供通信的方法的概览;\n[0014] 图4A和4B是提供一种用于在机器人的环境中定位个人并且请求机器人远程呈现会话以供通信的方法的更详细的示例的框图;以及\n[0015] 图5是示出可用于执行定位功能的模块的机器人的框图。\n[0016] 详细描述\n[0017] 现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出了各个已知的结构和设备以便于描述本发明。\n[0018] 如在此使用的,术语“组件”、“系统”、“客户机”等旨在指代计算机相关的实体,它们可以是硬件、(例如,执行中的)软件和/或固件、或其组合。例如,组件可以是,在处理器上运行的进程、对象、可执行码、程序、函数、库、子例程,和/或计算机或软件和硬件的组合。\n[0019] 作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程中,组件可以位于一个计算机内和/或分布在两个或更多计算机之间。术语“处理器”一般被理解为指硬件组件,诸如计算机系统的处理单元。\n[0020] 此外,所要求保护的主题可使用产生控制计算机以实现所公开的主题的软件、固件、硬件、或其任意组合的标准编程和/或工程技术来实现为方法、装置、或制品。如此处所使用的术语“制品”旨在涵盖可以从任何非瞬态计算机可读设备或介质访问的计算机程序。\n[0021] 非瞬态计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、以及磁带等等)、光盘(例如,紧致盘(CD)以及数字多功能盘(DVD)等等)、智能卡和闪存设备(例如,卡、棒和钥匙驱动器等等)。相反,计算机可读介质一般(即,不必需是存储介质)可附加地包括用于无线信号之类的通信介质,诸如传输介质。\n[0022] 当然,本领域的技术人员应当认识到,在不背离所要求保护的主题的范围或精神的情况下可对该配置作出许多修改。此外,本文所使用的词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。\n[0023] 如本文使用的,机器人远程呈现(telepresence)会话可以提供一种通信,其中远程用户使用具有通过机器人与目标个人进行通信的能力的远程计算设备上的应用来访问机器人的视频、音频和传感数据。如本文使用的,远程用户可以位于与机器人网络不同的(例如,由因特网分开的)网络上,或可以位于本地网络上。远程计算设备可以包括个人计算机、移动设备、或游戏控制台以及许多其他设备。应用可以是远程计算设备中的独立应用,或可以通过web浏览器来访问。\n[0024] 机器人远程呈现会话可以向远程用户提供机器人的环境(包括目标个人)的图像。\n这可以提升通信的真实性,且由此创建更高效和愉悦的通信体验。作为通信工具,机器人远程呈现会话可以提供一种对业务以及帮助远离家庭和朋友的个人(诸如宇航员、潜水员和士兵)感觉像是靠近家的有价值的技术。\n[0025] 然而,被呼叫方或目标个人可能无法回答远程呈现请求,因为该目标个人无法看见、听见、或访问该机器人。除非目标方临近机器人在场,否则可能要花宝贵时间来驱动机器人通过该环境以寻找目标个人。\n[0026] 另外,不允许呼叫方驱动机器人通过该环境可能是有用的。例如,在呼叫实际被接受之前,被呼叫方可能不希望呼叫者察看呼叫方的环境。例如,被呼叫方可能不希望呼叫方看到被呼叫方是否真实地可用于接受该呼叫。\n[0027] 为解决该问题,本文公开的各实施例阐述了一种用于在环境中自主定位个人的方式。在该方式中,机器人例如通过通告远程呈现请求、搜索其环境以寻找目标个人(特定或不特定)、以及向其环境中的各个人请求帮助,试图更接近被呼叫方。机器人使用自动环境导航结合传感器数据(诸如面部标识、面部识别、声音输入、以及语音查询)来标识环境中的各个人。远程呈现会话的发起者不必一直与机器人保持联系,而可以在机器人搜索这个人时执行其他活动。\n[0028] 一旦机器人找到了目标个人,机器人就可以通知发起者并且询问目标个人他们是否希望接受该通信,此时发起该通信的远程方被警告且通信信道被打开。如果机器人没有被要求定位特定个人,则机器人可以将目标个人指定为找到的第一个人,并且询问这个人他们是否希望接受通信会话。在任一种情况下,如果这个人拒绝接受通信,则机器人可以通知远程用户并且终止机器人远程呈现会话。\n[0029] 图1是机器人远程呈现会话中可以使用的机器人的示意图。机器人100包括头部\n102和身体104,其中头部102可相对于身体104移动。机器人100可包括头部旋转模块106,其可包括使头部102相对于身体104旋转的一个或多个电动机。例如,头部旋转模块106可以使头部102在任一角度方向上相对于身体104旋转多达45°。在另一示例中,头部旋转模块106可以使头部102相关于身体104旋转90°。在另一示例中,头部旋转模块106可以使头部102相对于身体104旋转180°。\n[0030] 头部102可以包括天线108,其被配置成接收和传输无线信号。例如,天线108可被配置成接收和传输Wi-Fi信号、蓝牙信号、红外(IR)信号、声纳信号、射频(RF)信号、或任何其他合适的信号。在又一示例中,天线108可被配置成接收和传输去往和来自蜂窝塔的数据。机器人100可以通过天线108发送和接收与位于远程的计算设备进行的通信。\n[0031] 机器人100的头部102还可以包括用于向机器人100附近的个体显示数据的显示器\n110。例如,显示器可被配置成显示机器人正试图定位的个人的名称或图片。在另一示例中,显示器110可被配置成在机器人远程呈现会话期间显示远程用户的图像。显示器还可以显示远程呈现会话的当前状态,诸如“会话已开始”或“会话已结束”等等。在一个实施例中,机器人100可以包括投影仪112,其被配置成投影远程用户的图像,从而为目标个人添加远程呈现会话的真实性。\n[0032] 机器人100的头部102可以包括相机114,其被配置成捕捉机器人环境的连续图像,例如在远程呈现会话期间目标个人的连续图像。取决于系统设计考虑,相机114可以是各种各样的相机类型中的任一个。可使用的相机的示例包括静态相机、摄像机、红外相机、立体相机或各种其他类型的光线传感器阵列。为了给远程用户增加远程呈现会话的真实性,相机114可以是便于捕捉视频数据(例如以720p格式、720i格式、1080p格式、1080i格式或其他合适的高清视频格式)的高清摄像机。头部102还可以包括捕捉相对低分辨率数据的相机\n114。这可以允许在诸如到移动电话的视频显示器的带宽更有限的连接上的视频连接。由于相机114被安装在机器人100的头部102,因此头部旋转模块106可以允许相机114捕捉机器人100环境的相对大的部分的视频数据,从而使得对目标个人的搜索更高效。\n[0033] 机器人100的头部102可以包括传感器116,传感器116可以在执行自主导航时辅助机器人100。传感器116可以是任何合适的类型。例如,传感器116可以包括被配置成确定机器人与对象之间的距离的深度传感器,红外传感器,相机,被配置成检测与机器人100邻近的海拔高度落差的峭壁传感器,GPS传感器,加速计,陀螺仪,或其他传感器类型。\n[0034] 机器人100的身体104可以包括用于向机器人100的其他模块提供电量的电池118。\n电池118例如可以是可再充电电池,诸如铅酸电池,胶体铅酸电池,锂离子电池,或镍镉电池等等。如果电池118可再充电,则机器人100可以包括允许机器人100被耦合到电源的接口,使得可以相对简单地向电池118提供电荷。\n[0035] 机器人100的身体104可以包括存储120和处理器122。存储120可以包括随机存取存储器(RAM)、可读存储器(ROM)、闪存、硬盘驱动器、闪存驱动器或光学驱动器。如参考图5更详细地描述的,存储120可以存储可由处理器122执行的多个模块,其中这些模块可以控制机器人100的操作。处理器122可以是单核处理器、多核处理器、或计算群集,例如被分配不同功能的不同核。处理器122可以通过任何合适的接口(诸如主板托管的总线)与机器人\n100的其他单元进行通信。利用处理器122来处理从远程计算机以及机器人100的其他单元接收到的数据,以使得机器人100按照机器人100的远程用户所需的方式来执行,例如,定位目标个人以及执行机器人远程呈现会话。在某些实施例中,用于实现机器人远程呈现的处理器和各模块可以位于通过无线网络与机器人接触的远程计算机中。\n[0036] 除了机器人100头部102中的传感器116,身体104还可以包括各传感器124,各传感器124可以与自主或半自主导航结合使用。例如,这些传感器124可以包括声纳传感器、位置传感器、红外传感器、相机、峭壁传感器和/或类似的传感器。传感器116和124捕捉到的数据可由处理器122用于例如自主地导航机器人100以定位目标个人并且执行机器人远程呈现会话。\n[0037] 机器人100的身体104可以包括用于驱动机器人100的一个或多个滚轮128和130的驱动电动机126。例如,大滚轮128可以是驱动轮,而小滚轮130可以是能改变机器人100的定向的转向轮。在某些实施例中,滚轮128和130中的每一个可以具有转向机制,并且可被一起用来改变机器人100的定向。此外,尽管单个驱动电动机126被示为驱动滚轮128和130两者,但另一驱动电动机可用于驱动滚轮130或128中的另一者。在从传感器116和124接收到数据或从远程计算设备接收到命令之后,处理器122可以将信号传输给头部旋转模块106来控制头部102相对于身体104的定向,以及将信号传输给驱动电动机126来控制机器人100的定向和位置。\n[0038] 机器人100的身体104可以包括扬声器132和话筒134。经由话筒134捕捉到的音频数据可以通过天线108传输到远程计算设备。因此,远程用户可以接收实时音频/视频馈入,并且可以在机器人远程呈现会话期间体验机器人100的环境。可以采用扬声器132来向与机器人100邻近的一个或多个个体输出音频数据。这一音频数据可以是对目标个人的位置的请求,对目标个人发起远程呈现会话的请求,在远程呈现会话期间来自远程用户的音频馈入,或任何数量的其他声音。\n[0039] 机器人100不限于以上讨论的配置和功能单元,但可以按各种不同的方式来配置。\n例如,头部旋转模块106可以包括倾转电动机,使得机器人100的头部102既可以相对于身体\n104旋转还可以在垂直方向上倾斜。在某些实施例中,机器人100可能不包括分开的头部102和身体104,而可能具有单个统一的身体。在这一实施例中,机器人身体可被转动,以允许通过相机114捕捉视频数据。在另一实施例中,机器人100可以具有统一身体结构,但相机114可以具有允许相机114获取环境的不同视图的相关联的电动机。此外,被示为位于图1的身体104中的各功能单元可置于机器人100的头部102中并且反之亦然。\n[0040] 图2是本地用户202和远程用户204之间的机器人远程呈现会话200的图示。相同的附图标记如同对图1中的描述。机器人100可以包括天线108,其被配置成无线地接收和传输数据206。在一个示例性实施例中,当机器人100通电时,机器人100可以与无线接入点208通信,以向接入点208建立它的存在。通过接入点208,机器人100可以连接例如在环境中的本地计算设备210。机器人100可以或是直接地或是通过本地计算设备210连接到网络212。例如,网络212可以是蜂窝网络、因特网、专用网络(诸如内联网或虚拟私有网络)或其他合适的网络。通信会话不限于使用本地计算设备210,因为机器人100自己可以执行所有功能。\n[0041] 远程用户204可以在远程计算设备214上开始远程呈现应用。对于更真实的体验,远程计算设备214可以是具有大屏幕监视器、虚拟现实显示器、或远程呈现房间等的计算机。在其他实施例中,远程计算设备214可以是更小的单元,诸如台式计算机、膝上型计算机、平板计算机、游戏系统、或移动电话等等。远程计算设备214通过网络212连接到本地计算设备210或直接连接到机器人100。远程计算设备214随后可以请求远程呈现会话。\n[0042] 控制远程呈现会话的这些模块可以被存储在机器人100的存储120中,例如当远程呈现会话被请求时由机器人上的处理器122加载并执行。在某些实施例中,这些模块可由本地计算设备210中的处理器216运行,处理器216可在本地计算设备210上执行来自存储设备\n218的代码。尽管未示出,远程计算设备214可以包括显示屏,除了提供对定位本地用户202(例如,远程呈现会话的目标个人)的状态报告以外,显示屏可以向远程用户204呈现与机器人100的导航有关的数据。例如,在搜索期间,机器人100可以通过网络212将实况音频/视频馈入传输到远程计算设备214。此外,远程用户204可以通过远程计算设备214经由网络212将导航和远程呈现命令传输给机器人100。\n[0043] 在一个实施例中,远程用户204可以利用机器人100来在机器人100的环境中为远程呈现会话自主地定位本地用户202。一旦本地用户202被定位并且接受通信,则可以开始远程呈现会话。可以通过各种动作(诸如握手、认证等)经由网络212在远程计算设备214和机器人100之间建立远程呈现会话的通信信道。在一个实施例中,视频电话连接使用标准协议(诸如H.264SVC(可伸缩视频编码)标准)来建立。在各实施例中可以使用任何数量的类似编码方案。远程用户204和本地用户202随后可以通过远程呈现会话来通信。\n[0044] 图3是一种用于在机器人的环境中定位个人并且建立机器人远程会话以供通信的方法300的概览。方法300不限于所示功能,因为附加功能可以被包括。当远程用户在远程计算设备上开始远程呈现应用时(例如,如参考图2所讨论的)该方法在框302开始。在框304,远程计算设备建立至机器人的连接。如所讨论的,连接可以直接与机器人建立,或者可以通过相对机器人环境为本地的例如用作基站的计算机来建立。一旦连接被建立,机器人就可以加载软件来执行远程呈现会话。在框306,远程呈现用户指示是否将特定个人作为目标、或者是否将机器人遇到的第一个人作为目标个人来运作。\n[0045] 在远程用户发起会话之后,机器人可以开始采取行动。在框308,机器人可以,例如,通过语音通告或音调可听地、或通过光线可视地、屏幕上的警告等等来通告远程呈现请求。对通告的选择可由本地用户控制,例如,设定对可起作用的警告进行限制的隐私设置或晚上设置。在某些实施例中,例如,在期待远程呈现会话的情况下,本地用户可以请求更响的或增强的警告。\n[0046] 在框310,机器人扫描该环境以寻找其环境中的个人。这既可以在视觉上也可以在听觉上执行。例如,机器人可以标识图像中的面部,或者可以听到语音命令(诸如“在那里”)。在框312,如果在临近环境中没有找到人,则流程前进至框314。在框314,机器人移动到新位置(例如,目的地),从而随其移动来扫描个人并且收听命令。如果当机器人从一个位置移动到下一个时对象在机器人前面移动,则机器人可以中断运动,并且通过扫描有效面部来确定非预期路径中断是由个人还是由对象造成的。如果中断由个人造成,则机器人可以使这个人参与。如果中断由对象造成,则机器人可以在对象周围移动并且继续至新位置。\n流程随后返回到框310,在那里机器人扫描新位置以寻找个人。\n[0047] 在框312,如果机器人在临近环境中找到个人,则过程流前进至框316。在框316,机器人确定找到的这个人是否是目标个人。该确定可以通过例如来自图像目录的面部识别、通过语音输入(诸如这个人是目标个人的确认)或两者来作出。在框316,如果找到的这个人被确定不是目标个人,则在框318,机器人可以向这个人提问以寻找目标个人的位置。机器人可以对响应进行解码,例如,分析诸如“他不在办公室”、“她在她的办公室”、“转角向左”之类的短语以及类似短语的音频流。还可使用更简单的短语,诸如“不在这里”、“办公室”、“厨房”等等。如果机器人接收位置短语(诸如“办公室”),则新位置可被设置成导航目标,且过程流返回到框314,在那里机器人移动到新位置或目的地,从而随其移动来扫描个人并且收听命令。机器人可以要求对输入的确认,以确保语音命令被正确地解释。\n[0048] 在框316,如果机器人确定找到的这个人是目标个人,或者目标已被设置成选择找到的第一个人,则过程流前进至框320。在框320,机器人请求发起远程呈现会话,例如,询问目标个人“您接受远程呈现会话吗?”。在框322,机器人确认本地用户是否接受了远程呈现会话。例如,本地用户可以陈述短语(诸如“机器人接受”、“机器人拒绝”等),可以按下机器人上的按钮,或者可以经由控制板或远程设备(诸如移动电话)来发送命令。在框322,如果机器人确认远程呈现会话已被接受,则在框324,机器人发起会话并且维护通信链路,直到一方例如通过按下按钮或给出诸如“机器人结束呼叫”之类的语音命令使该链路结束。\n[0049] 在框322,如果本地用户拒绝远程呈现会话,则过程流在框326结束,在那里机器人通知远程用户并且终止通信链路。随着机器人结束会话,它可以删除用来从RAM进行远程呈现会话的模块,例如依赖于存储在盘上的模块以供将来的远程呈现会话。\n[0050] 图4A和4B是提供一种用于在机器人的环境中定位个人并且请求机器人远程呈现会话以供通信的方法400的更详细的示例的框图。方法400被分成指示谁在执行该功能的三个部分,即图4A示出远程用户402和远程计算设备404执行的各功能,而图4B示出机器人406执行的各功能。\n[0051] 在框408,远程用户402在远程计算设备404(诸如个人计算机、平板计算机、移动电话或游戏系统以及类似设备)上执行远程呈现应用。在框410,远程用户402指示是否将特定个人作为目标。例如,远程用户402可以点击带有目标个人图片的图标,或者应用可以向远程用户询问远程用户是否正将特定个人或机器人406位置处的任何个人作为目标。\n[0052] 在框412,如上所述,远程计算设备404经由因特网、移动运营商网络、或任何其他电信网络来连接到机器人。在框414,可以在机器人406或本地计算机上加载并且开始远程呈现应用。在框416,远程计算设备404向机器人406指定机器人406是否应寻找特定目标个人、或者遇到的第一个人是否可接受远程呈现请求。\n[0053] 在框418,机器人406使用其输出设备(诸如扬声器、屏幕、投影仪、发光体、振动器等)来通告远程呈现请求。在框420,机器人406从其当前位置扫描其所在的房间,并且例如通过寻找移动、寻找面部、或收听特定语音命令(诸如“机器人接受”、“机器人拒绝”或“在那里”)来试图找到个人。有效人脸是通过机器人的面部检测算法检测到的人脸。\n[0054] 在框422,如果机器人406标识了与各个人相关联的声音或命令,则在框424机器人可以转动头部或旋转台(turret)以面朝声音并且扫描面部。在一个实施例中,机器人406可以朝向声音移动。过程流返回到框420以继续扫描房间。\n[0055] 在框422,如果机器人406在临近位置没有找到面部也没有找到声音,则过程流前进至框426。在框426,作出关于机器人406是否已完成扫描房间的确定。如果否,则该流程前进至框420以继续扫描有效面部或语音命令。\n[0056] 在框422,如果机器人406找到有效面部,则在框428,机器人406例如通过使用从RGB图像数据、深度数据导出的、或从语音或语音命令的声源定位(SSL)中导出的位置坐标来朝向该面部移动。此外,SSL可用于确定不同(例如,相邻)房间或其他位置中有人。对被呼叫的个人的搜索可前进至SSL指示的位置。机器人406通过面朝他或她来使这个人参与。在框430,如果确定机器人406不在寻找特定个人,即远程用户指示机器人406找到的第一个人被认为是目标个人,则过程流前进至框432。\n[0057] 在框432,机器人406询问这个人他们是否想要接受远程呈现会话。在框434,如果确定这个人接受了请求,则过程流前进至框436以开始远程呈现会话。如果否,则过程流前进至框438,并且远程呈现会话请求被终止。\n[0058] 在框430,如果确定机器人406正在寻找特定个人,则在框440,机器人406确定参与机器人406的个人是否是这个人。这可通过经由面部识别算法确认个人的身份来执行,面部识别算法将个人面部与有可能在环境中的个人的数据库作比较。如果目标个人被标识,则过程流前进至如上讨论的框432。如果在框440特定个人未被标识,则过程流前进至框442。\n[0059] 在框442,机器人406询问参与机器人406的个人以寻找目标个人的位置。在框444,如果机器人406确定新位置未被提供,则过程流前进至框446。如果在框426机器人406已完成扫描房间而没有标识面部,则过程流同样前进至框446。在框446,定义新搜索位置。\n[0060] 新搜索位置可以通过使用简单移动算法(诸如移动到列表中的下一个房间)或按邻近性(诸如移动到最近的房间)来定义。还可以使用更复杂的算法,诸如移动到目标个人的办公室,或者移动到基于一天中的该时间在特定位置处遇到个人的概率最高的位置。在后一种情况下,机器人将需要基于位置和一天中的时间来跟踪人们参与频率的数据库。机器人可以使用该数据库或其他信息源来确定遇到目标个人的最后位置,并且在该位置开始搜索。\n[0061] 另一种寻找被呼叫方的方式可以包括使用可能期望远程呈现会话或呼叫被发起的个人向机器人提供的信息。例如,某人可能明确地提前告诉机器人:如果任何个人呼叫,则他/她将在特定位置。如果对远程呈现会话的呼叫或请求被接收,则机器人随后可以开始在该位置搜索这个人。另一种寻找被呼叫方的方式可以采用遇到特定人的最有可能的地方的热图。关于在哪里搜索被呼叫方的决定可以包括来自该热图的数据。\n[0062] 从框446、或者如果在框444提供了新搜索位置,则过程流前进至框448。在框448,机器人406导航到新位置。如框450指示的,随着机器人移动至新位置,机器人406扫描各面部并且收听语音命令。如果有效面部或语音命令被感测,则机器人406停止且过程流前进至框422来处理新输入。在框452,机器人到达新位置,且该流程在框418继续以重复搜索过程。\n机器人重复搜索过程一预定时间量,或者重复搜索过程直到实际上找到个人。此外,如果目标个人不希望接受远程呈现会话、或者不是目标个人,则他们可以将机器人406重定向到另一位置、建议另一时间、或将机器人406发送给另一个人。\n[0063] 图5是示出可用于执行定位功能的模块的机器人100的框图。如参考图1描述的,机器人100包括存储120和处理器122。如参考图1描述的,存储120可包括非易失性存储设备,非易失性存储设备包括可由处理器122执行的各模块。存储120还可包括环境的地图502,诸如其中每一节点表示一个房间而每一边表示链接两个房间的边的有向图。地图502可以包括度量精确信息,诸如网格、三维点云、或任何数量的其他环境表示。地图502可由用户来生成,或者可由机器人100通过探索环境来自动生成,诸如通过同时定位和地图构建(SLAM)功能或通过用户对环境的有向行径导航。\n[0064] 导航模块504可以使用来自地图502的信息来定位机器人100,并且将机器人100定向到新位置。例如,目标位置可以从个人提供的语音命令中确定,并且导航模块504可以启动电动机以便将机器人100移动到目标位置。导航模块504可以将目标位置视作节点,并且可以计算从机器人100的当前位置到该节点的路径。例如,地图502可以被机器人100解释成多个不同的节点,并且位置方向组件304可以计算从机器人100的当前位置到该节点的路径,其中这样的路径通过多个节点。\n[0065] 在另一实施例中,导航模块504可以将目标位置与地图502作比较,并且在地图502包括平面图上的坐标的情况下,将对应于目标位置的坐标标识到对应于机器人100的环境的坐标。导航模块504随后可以使得机器人100行进到所选择的位置。例如,导航模块504可以从个人接收包括目标位置(地图502中被标记或未被标记的位置)的语音命令。导航模块\n504在由处理器120执行时,可以使得机器人100从环境中当前位置行进到环境中与地图502中所选择的位置对应的位置。\n[0066] 随着机器人100正朝向所选择的位置行进,机器人100与所选择的位置之间的路径中可能有一个或多个障碍。障碍可能是永久的或临时的,诸如当个人走出办公室到机器人前面时。障碍检测模块506可以围绕障碍操纵机器人100,例如,防止机器人100撞到人或撞到其他障碍、跌下楼梯等等。存储120可以包括障碍检测模块506,在由处理器122执行时其被配置成分析从传感器116或124接收到的数据并且检测障碍。在机器人100的当前位置与所选择的位置之间的机器人100的路径中检测到障碍之后,障碍检测模块506可以输出存在障碍的指示以及障碍相对于机器人100的当前位置的大致位置。例如,导航模块504中的定向修改组件随后可以更改机器人100的线路,以避开障碍。导航模块504由此可以例如与将机器人100自主驱动到环境中的某一位置结合地使用,以便为远程呈现会话定位目标个人。\n[0067] 存储120还可以包括被加载以支持远程呈现会话的多个模块,诸如远程呈现模块\n508。当与请求远程呈现会话的远程计算设备的通信被发起时,加载远程呈现模块508。远程呈现模块508管理远程呈现会话、以及机器人100与远程计算设备之间的通信。远程呈现模块508可以激活其他模块来执行特定功能,诸如参考图3和4所讨论的那些功能。\n[0068] 例如,远程呈现模块508可以激活个人定位模块510,以便在机器人100的环境中定位个人。个人定位模块510可以使用面部识别模块512在来自相机的图像中标识有效面部,并且通过将这些面部与数据库作比较来标识特定个人。可以使用任何数量的已知面部识别算法,这些算法包括将面部区别特征与数据库中存储的那些特征作比较的几何算法,以及使用统计算法将表示图像的数字或数字序列与数据库中的各个值作比较的光度算法。各实施例中可使用的各种识别算法包括主分量分析(PCA)、线性判别分析、弹性束图匹配、隐马尔可夫模型和神经网络、以及许多其他算法。\n[0069] 个人定位模块510可以调用声源定位(SSL)模块514来标识检测到的语音命令的方向或位置。在一个实施例中,SSL模块514使用机器人100中的多个话筒来对声音位置进行三角测量。在另一个实施例中,两个话筒与各种声音定向算法结合使用,包括这些话筒之间的时差、电平差(level difference)和相差,频谱信息,时序分析,相关分析,以及模式匹配等等。SSL模块514不限于这些算法,因为各实施例中可以使用任何数量的其他技术。\n[0070] 个人定位模块510可以调用语音命令模块516来标识向机器人讲出的命令。语音命令模块516可以使用任何数量的已知语音识别算法来标识命令。例如,语音命令模块516中可用的一种算法使用隐马尔可夫算法来识别命令。隐马尔可夫模型可用于基于短的声音段(例如,大约10ms)的频率分布来识别各个单词。隐马尔可夫模型可通过各种技术(诸如,上下文依赖关系等)来改进。可用于语音命令模块516的话音识别的另一算法基于动态时间扭曲,该动态时间扭曲测量两个序列之间的相似度。\n[0071] 在存储120中可以呈现任何数量的其他模块,以实现或扩充以上描述的功能。例如,可以包括了运动检测模块。运动检测模块可以使用相机馈入、声音馈入、或任何其他传感器馈入来标识环境中的运动。在这种情况下,机器人可以按同朝向声音或命令输入相同方式朝向运动的位置移动。在达到运动的位置之后,机器人可以扫描面部。可以呈现允许远程用户直接驱动机器人100的另一模块。\n[0072] 上文所描述的包括本发明的示例。当然,不可能出于描述所要求保护的主题的目的而描述组件或方法的每个可能的组合,但是,本领域技术人员可以认识到,本发明的许多进一步的组合和置换都是可以的。因此,所要求保护的主题旨在包含在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。\n[0073] 特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应认识到,本发明还包括了具有用于执行所要求保护的主题的各种方法的动作和/或事件的计算机可执行指令的系统以及计算机可读存储介质。\n[0074] 有多种实现本发明的方式,例如,使应用和服务能使用在此描述的技术的适当的API、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等。所要求保护的主题还构想从API(或其他软件对象)的观点来看,以及从根据在此描述的技术操作的软件或硬件对象的用途。如此,此处所描述的本发明的各种实现可以具有完全以硬件,部分以硬件而部分以软件,以及以软件来实现的方面。\n[0075] 如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。\n[0076] 另外,能够注意,一个或多个组件也可以合并到提供聚合功能的单一组件中,或者也可以分成多个单独的子组件,并且,可以提供诸如管理层之类的任何一个或更多中间层,以可通信地耦合到这样的子组件,以便提供集成的功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。\n[0077] 另外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。而且,就术语“包括”、“含有”、“具有”、“包含”、其变型以及其他类似单词在详细描述或权利要求书中的使用而言,这样的术语旨在以类似于术语“包括”作为开放的过渡词的方式为包含性的而不排除任何附加或其他元素。
法律信息
- 2017-01-18
- 2015-08-05
专利申请权的转移
登记生效日: 2015.07.17
申请人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2014-05-07
实质审查的生效
IPC(主分类): G05D 1/12
专利申请号: 201280038238.2
申请日: 2012.07.17
- 2014-04-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-03-31
|
2008-05-07
| | |
2
| |
2006-10-18
|
2005-12-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |