CN109551476B - 结合云服务系统的机器人系统 - Google Patents
结合云服务系统的机器人系统 Download PDFInfo
- Publication number
- CN109551476B CN109551476B CN201811124009.8A CN201811124009A CN109551476B CN 109551476 B CN109551476 B CN 109551476B CN 201811124009 A CN201811124009 A CN 201811124009A CN 109551476 B CN109551476 B CN 109551476B
- Authority
- CN
- China
- Prior art keywords
- robot
- computing device
- cloud service
- service system
- locally deployed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000005259 measurement Methods 0.000 claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 57
- 238000012545 processing Methods 0.000 description 23
- 238000001514 detection method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 8
- CDBYLPFSWZWCQE-UHFFFAOYSA-L Sodium Carbonate Chemical compound [Na+].[Na+].[O-]C([O-])=O CDBYLPFSWZWCQE-UHFFFAOYSA-L 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- OJIJEKBXJYRIBZ-UHFFFAOYSA-N cadmium nickel Chemical compound [Ni].[Cd] OJIJEKBXJYRIBZ-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000032297 kinesis Effects 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1689—Teleoperation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1605—Simulation of manipulator lay-out, design, modelling of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0003—Home robots, i.e. small robots for domestic use
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Manipulator (AREA)
- Image Processing (AREA)
Abstract
本发明公开了结合云服务系统的机器人系统。机器人系统包括机器人、本地部署的计算设备和云服务系统。本地部署的计算设备包括处理器和存储机器可读指令的非瞬态存储器设备,当指令由处理器执行时,使得处理器从机器人接收原始传感器数据,预处理传感器数据以从传感器数据中移除不必要的信息并获得经预处理的数据,向云服务系统发送经预处理的数据,从云服务系统接收与经预处理的数据对应的物体的物体类型、物体姿势和物体位置,并基于物体的物体类型、物体姿势和物体位置中的至少一个向机器人发送信号。
Description
相关申请的交叉引用
本申请要求于2017年9月26日提交的标题为“ROBOT SYSTEMS INCORPORATINGCLOUD SERVICES SYSTEMS”的美国临时专利申请序列No.62/563,424的优先权,该申请通过引用整体上并入本文。
技术领域
本文描述的实施例一般而言涉及机器人,并且更具体地,涉及使用对象识别来辅助环境中的人类的机器人。
背景技术
机器人可以部署在环境中以辅助人类完成任务。例如,可以部署医疗机器人以辅助残疾人、病人或老年人进行日常任务。机器人可以从用户接收执行某些任务的指令。例如,用户可以请求机器人检索某个对象。机器人可以使用计算机视觉来定位物体、导航环境,并将物体拿给用户。
当前,机器人使用位于机器人内的本地处理设备来处理接收到的输入、处理从传感器获得的数据等等。执行上面提到的任务所需的处理功率的量可能对机器人的功能有害,因为它会快速耗尽电池、减慢机器人的响应时间等等。照此,需要最小化机器人完成的处理功率的量。
发明内容
在一个实施例中,本地部署的计算设备包括处理器和存储机器可读指令的非瞬态存储器设备,当指令由处理器执行时,使得处理器从机器人接收原始传感器数据,预处理传感器数据以从传感器数据中移除不必要的信息并获得经预处理的数据,向云服务系统发送经预处理的数据,从云服务系统接收与经预处理的数据对应的物体的物体类型、物体姿势和物体位置,并基于物体的物体类型、物体姿势和物体位置中的至少一个向机器人发送信号。
在另一个实施例中,一种云服务系统包括处理器和存储机器可读指令的非瞬态存储器设备,当指令由处理器执行时,使得处理器从本地部署的计算设备接收经预处理的数据,根据经预处理的数据确定物体的物体类型、物体姿势和物体位置,并向本地部署的计算设备发送物体类型、物体姿势和物体位置。经预处理的数据是已经由本地部署的计算设备从源自机器人的原始传感器数据提取的数据。
在又一个实施例中,一种控制机器人的方法包括在本地部署的计算设备处从机器人接收原始传感器数据,由本地部署的计算设备缩减传感器数据的尺寸以生成经处理的传感器数据,由本地部署的计算设备向云服务系统发送经处理的传感器数据,由本地部署的计算设备从云服务系统接收物体类型、物体姿势和物体位置,以及由本地部署的计算设备基于物体的物体类型、物体姿势和物体位置中的至少一个向机器人发送信号。物体类型、物体姿势和物体位置由云服务系统根据经处理的传感器数据确定。
鉴于以下详细描述并结合附图,将更全面地理解由本公开的实施例提供的这些和附加特征。
附图说明
附图中阐述的实施例本质上是说明性和示例性的,并且不旨在限制本公开。当结合以下附图阅读时,可以理解说明性实施例的以下详细描述,附图中相同的结构用相同的标号指示,并且其中:
图1示意性地描绘了根据本文描述和图示的一个或多个实施例的在环境中操作的说明性机器人系统;
图2示意性地描绘了根据本文描述和图示的一个或多个实施例的机器人系统的说明性部件;
图3以图形方式描绘了根据本文描述和图示的一个或多个实施例的机器人、本地部署的计算设备和云服务系统之间的工作流程的说明性过程的流程图;
图4示意性地描绘了根据本文描述和图示的一个或多个实施例的说明性物体及其在点云环境内的位置的图形表示;
图5示意性地描绘了根据本文描述和图示的一个或多个实施例的由机器人检测到的物体的说明性测量;
图6示意性地描绘了根据本文描述和图示的一个或多个实施例的由区域检测气泡围绕的说明性物体;
图7示意性地描绘了根据本文描述和图示的一个或多个实施例的机器人的说明性部件;以及
图8示意性地描绘了根据本文描述和图示的一个或多个实施例的本地部署的计算设备的说明性部件。
具体实施方式
本文公开的实施例针对被配置为在远程计算设备中执行机器人服务(诸如例如物体识别和定位)的机器人系统,使得减少对机器人的处理要求,并且从一群机器人获得的信息可以由机器人系统中的其它机器人共享和使用。将由一群机器人检测到的信息存储在单个远程位置允许增强的机器学习,由此导致增强的机器人特征。换句话说,使用本文描述的机器人系统的机器人可以使机器人能够从彼此学习。另外,通过从机器人卸载计算上昂贵的任务(诸如物体识别),机器人可以具有降低的功率需求并因此以单次电池充电操作更长时间。本文描述的实施例提供用于各种远程机器人服务的处理任务,诸如但不限于物体去重复、掌握计划轨迹、物体特点(例如,物体维度)、用户认证、物体位置、用户自然语音处理、行为开发等等。
如下面更详细描述的,在一些实施例中,机器人系统包括通信耦合到本地部署的计算设备的机器人,该本地部署的计算设备执行诸如物体识别之类的一些计算任务,由此将机器人从这种计算任务中释放出来。本地部署的计算设备还通信耦合到远程云服务系统,远程云服务系统还被配置为执行计算任务,并经由本地部署的计算设备向机器人提供数据。
特别地,可以部署机器人以辅助人类完成各种任务。在一个示例中,工厂机器人被部署在工厂中,以执行商品制造中的重复任务。作为另一个示例,机器人可以被部署在人类占用的空间中,诸如家、特殊护理设施和医院。这些机器人可以与人共享相同的空间,用于诸如一般辅助和陪伴之类的目的。例如,机器人可以被部署在需要身体辅助的人的家中,诸如老年人、残疾人或受伤的人。例如,机器人可以是移动的并且具有能够为人检索物体的致动器。这种机器人可以使人感觉更加独立,因为他或她可以不太依赖其他人来获得支持。
现在参考图1,根据实施例的说明性机器人100可以被部署在人类专用的空间中,诸如家10。机器人100一般具有支撑在能够在整个家10中移动机器人100的一个或多个机动轮106(或者其它移动部件,诸如螺旋桨、机翼、滑雪板、连续轨道等等)上的主体101。机器人100还具有一个或多个臂104,每个臂104具有能够操纵物体的末端执行器(例如,抓爪、机器人手等等)。此外,机器人100具有多个传感器102,其能够产生辅助机器人100检测物体、操纵物体和/或导航环境的传感器数据。多个传感器102可以包括但不限于相机(例如,CCD相机)、红外传感器、深度传感器、接近传感器、触觉传感器、激光雷达传感器、雷达传感器、飞行时间传感器等等。应当理解的是,图1中示出的机器人100仅出于说明性目的而提供,并且机器人的配置不受本公开的限制。
如上所述,机器人100可以被配置为例如辅助居住在家10中的用户。即,用户可以指示机器人100执行某些任务,诸如检索物体、把物体拿给用户、将物体移动到不同的位置、改变物体的定位等等。用户可以以各种方式指示机器人100。在一个示例中,用户可以说“机器人,请找到纸巾盒并把它拿给我”,这句话由与机器人100相关联的麦克风接收。在另一个示例中,用户可以使用计算设备(诸如个人计算机、平板电脑、智能电话、专用计算设备等等)来控制机器人。例如,计算设备可以具有图示家10的房间130内的物体的显示器,并且用户可以选择物体的图形表示并且还选择任务,诸如请求机器人100把物体拿给用户。作为另一个示例,计算设备的显示器可以以图形方式图示与机器人100相关联的成像设备感测到什么,使得用户可以控制机器人100在环境中的移动,并且显示器在物体被机器人100成像时示出物体的位置。然后,用户可以选择一个或多个物体并请求完成一个或多个任务。
仍然参考图1,环境中可以存在许多物体。在图示的示例中,存在窗户131、门132、桌子133、桌子133上的汽水罐134和一串钥匙135,以及家10的地板上的纸巾盒136。本文描述的机器人系统20能够检测每个物体的类型、每个物体的位置以及每个物体的姿势。以这种方式,机器人100具有与每个物体在家10中的位置有关的信息,并且能够在接收到请求时检索物体或以其它方式执行物体的操纵。
因此,机器人100能够使用由一个或多个传感器102提供的数据进行物体识别。例如,机器人系统20可以使用一个或多个物体检测算法来确定特定物体的类型、姿势和位置。可以使用任何已知或尚待开发的物体识别算法。非限制性物体识别算法包括边缘检测算法、角落检测算法、斑点(blob)检测算法、特征描述算法等等。也可以使用检测物体类型和姿势的任何计算机视觉方法。
因为机器人100具有与其自身以及环境(例如,图1中描绘的家10)中的其它机器人和/或传感器的位置有关的信息,所以机器人系统20可以使用来自传感器102的数据来确定环境中特定物体的位置。例如,可以利用深度信息和与(一个或多个)特定传感器瞄准的方向有关的信息来确定特定物体的位置。
在一些实施例中,一个或多个附加传感器也可以部署在环境中,其中这种附加传感器没有物理地附连到机器人100。这种附加传感器可以例如向机器人系统20提供附加的传感器数据。参考图1,第一附加传感器117A在第一墙壁118A上提供,并且第二附加传感器117B在第二墙壁118B上提供。应当理解的是,可以提供任何数量的附加传感器,并且附加传感器可以是能够向机器人系统20提供附加数据的任何类型的传感器。例如,附加传感器可以是但不限于图像捕获设备、激光雷达系统、运动感测设备、光感测设备等等。
如上所述,机器人100完成所请求的任务所需的各种计算过程在计算上是昂贵的。因此,这种任务可以要求显著量的计算功率和/或显著量的电能。因此,这些计算过程会快速耗尽存储在机器人100的一个或多个电池内的电能,由此要求机器人100频繁地再充电或系在电源插座上,这显著降低了机器人100的移动性。
本文描述的各种实施例将这些计算过程中的一些从机器人100卸载到机器人系统20内的其它部件上。仍然参考图1,说明性机器人系统20包括在家10内通信耦合到机器人100(或者,在一些情况下,多个机器人)的至少一个本地部署的计算设备120。本地部署的计算设备120可以通过有线或无线连接与机器人100通信,如由机器人100和本地部署的计算设备120之间的第一通信连接A所指示的。如本文所使用的,术语“本地部署的(on-premise)”意味着计算设备位于机器人100的大致附近(即,机器人100是共同定位的机器人)。例如,本地部署的计算设备120可以位于相同的房间130中、相同的建筑物中、相同的综合设施(complex)中、相同的院落(compound)中、在特定的距离内(例如,在100英尺、100码内等等)。应当理解的是,“本地部署的”具体地排除了不在机器人100的相同附近的远程服务器。
在图示的实施例中,本地部署的计算设备120通过通信网络140(诸如例如互联网、内联网、虚拟专用网络等等)与远程云服务系统150通信。本地部署的计算设备120可以经由任何方法(诸如经由蜂窝网络或互联网服务提供商)与通信网络140通信。本地部署的计算设备120和远程云服务系统150之间的通信由本地部署的计算设备120和通信网络140之间的第二通信连接B以及通信网络140和远程云服务系统150之间的第三通信连接C来指示。
本地部署的计算设备120电耦合到外部电源(诸如电网)。例如,如图1中所示,本地部署的计算设备120具有电线121,其插入AC插座122以接收电力。因此,本地部署的计算设备120不是电池供电的,因此不需要再充电。因此,本地部署的计算设备120可以通过从电网或某种其它外部电源汲取电力来执行密集的图形处理。
在一些实施例中,被执行以实现机器人100的控制以执行所请求的任务(例如,检索物体等等)的计算过程可以分布在机器人100、本地部署的计算设备120和远程云服务系统150之间。应当理解的是,可以在机器人100、本地部署的计算设备120和/或远程云服务系统150上执行任何计算过程。在一些实施例中,计算过程可以基于机器人100、本地部署的计算设备120和远程云服务系统150处理过程的相应可用性被分配给机器人100、本地部署的计算设备120和/或远程云服务系统150中的一个或多个。即,如果机器人100、本地部署的计算设备120和远程云服务系统150中的一个或多个过载或以其它方式不能处理特定过程,那么这种过程可以根据需要被卸载到机器人100、本地部署的计算设备120和远程云服务系统150中的另一个上。照此,机器人100、本地部署的计算设备120和远程云服务系统150可以根据需要共享处理能力。
还参考图2,示意性地图示了机器人系统20的说明性远程云服务系统150的附加部件。环境(例如,家10)中的一个或多个机器人100通信耦合到本地部署的计算设备120。可以在本地配置或以其它方式控制本地部署的计算设备120,诸如通过如图2中示出的浏览器129。应当理解的是,本地部署的计算设备120可以通过其它手段(诸如通过特殊的计算机程序)本地控制。
如本文所述,本地部署的计算设备120通信耦合到通信网络140。通信网络140将本地部署的计算设备120通信耦合到远程云服务系统150。远程云服务系统150可以包括从本地部署的计算设备120接收原始数据的一个或多个数据库152。远程云服务系统150还可以包括一个或多个计算设备154,这些计算设备154能够访问一个或多个数据库152内的原始数据以执行上述各种计算过程,以提供一个或多个云机器人服务(诸如例如物体数据库、物体搜索、面部识别、人物识别、行为构建、轨迹规划、物体识别、物体跟踪以及物体去重复)。在一些实施例中,机器智能156和/或模拟158过程可以被用于执行本文描述的功能和计算过程中的一个或多个。在一些实施例中,云机器人服务计算设备154可以由一个或多个浏览器160、特定的计算机程序、应用编程接口等等被管理或以其它方式访问。
在一个示例中,机器人100将来自多个传感器102的原始传感器数据传送到本地部署的计算设备120。来自一个或多个附加传感器(例如,图1中示出的第一附加传感器117A和第二附加传感器117B)的原始传感器数据也可以被提供给本地部署的计算设备120。在这个示例中,本地部署的计算设备120执行与物体识别、姿势识别和物体位置检测有关的大多数计算过程。例如,原始传感器数据可以包括本地部署的计算设备120处理以执行期望功能(诸如检测在环境中物体的类型、物体的姿势以及物体的位置)的多个图像。在确定物体的类型、物体的姿势和物体的位置之后,将这种信息发送到远程云服务系统150。还可以将原始传感器数据中的至少一些发送到远程云服务系统150进行处理,诸如用于机器学习和/或验证目的。本地部署的计算设备120还可以执行附加的机器人服务(诸如本文更详细描述的去重复过程)。
在另一个示例中,大多数计算过程由远程云服务系统150而不是本地部署的计算设备120执行。在又一个示例中,计算过程在本地部署的计算设备120和远程云服务系统150之间同等地共享。
图3以图形方式图示了可以由机器人系统20(图1)的各种部件中的一个或多个完成的数据通信和计算任务的非限制性示例工作流程。参考图1和3,在方框202处,机器人100的多个传感器102和/或一个或多个附加传感器(例如,图1中示出的第一附加传感器117A和第二附加传感器117B)获得原始传感器数据。例如,传感器可以被激活,以接收诸如图像、深度信息等等之类的信息。在方框204处,本地部署的计算设备120从机器人100的多个传感器102和/或一个或多个附加传感器接收原始传感器数据。在方框208处向远程云服务系统150发送经预处理的数据之前,在方框206处本地部署的计算设备120可以预处理原始传感器数据以获得经预处理的数据(在下文中进一步描述)。例如,本地部署的计算设备120可以在生成经预处理的数据时从原始传感器数据中移除不必要的信息。即,本地部署的计算设备120可以在向远程云服务系统150发送数据之前减少原始传感器数据的量,以避免不必要的大数据传输、避免使远程云服务系统150过载等等。在非限制性示例中,机器人100的相机可以记录物体(诸如例如人的面部)的多个图像。在其中一些图像中,人的面部可以被遮挡,使得其至少一部分(例如,人的眼睛)不在视野范围内。本地部署的计算设备120可以仅选择描绘人的眼睛的图像或帧,使得发送到远程云服务系统150的图像是用于面部识别算法的令人满意的图像。剩余的图像可以本地存储或丢弃。以这种方式,本地部署的计算设备120可以减少上传到远程云服务系统150的数据量。另外,仅高质量数据(即,最有可能被用于执行如本文所述的功能的数据)被上传到远程云服务系统150以进行处理。
在方框208处,本地部署的计算设备120将经处理的传感器数据发送到远程云服务系统150。例如,本地部署的计算设备120经由通信网络140使用第二通信连接B和第三通信连接C向远程云服务系统150发送数据。在方框210处,在从本地部署的计算设备120接收到数据之后,远程云服务系统150可以执行本文描述的各种计算过程(诸如物体识别、去重复等等)。在方框212处可以确定诸如物体类型、物体姿势和物体位置之类的信息,并且在方框214处将这种信息提供给本地部署的计算设备120。然后在方框216处可以通过本地部署的计算设备120将物体信息提供给机器人100。因此,大多数计算要求苛刻的过程由远程云服务系统150而不是机器人100执行。应当理解的是,实施例不限于图3中所示的计算分布,并且预期机器人100、本地部署的计算设备120和远程云服务系统150之间的其它计算分布。
无论计算分布如何,远程云服务系统150还被配置为开发和存储可以由机器人系统20内的机器人100引用的物体库。远程云服务系统150可以从来自一个或多个数据源的图像集合接收图像数据。例如,远程云服务系统150可以从任何源(例如,从互联网上的源)访问数百万个物体图像作为训练数据,以对物体的类型进行分类。可以由远程云服务系统150执行被监督或无监督的学习,以开发物体库。此外,由本地部署的计算设备120提供的数据也可以由远程云服务系统150用来开发物体库。
物体库内的每个物体具有与其相关联的多个属性。说明性属性包括但不限于维度信息(即,长度、宽度和高度)、重心、纹理、特征(例如,孔、边缘、突起,等等)、三维网格、最优抓握模式等等,这些属性可以在物体库内为每个物体存储。因此,机器人系统20内的所有机器人100可以利用由远程云服务系统150提供的物体库。当机器人100遇到环境中的物体时,远程云服务系统150和/或本地部署的计算设备120可以通过将关于该物体获得的数据与库数据进行比较来将物体确定为保存在库中的物体。可以将库中保存的物体的各种属性应用于检测到的物体。应用这些存储的属性(诸如维度属性等等)可以减少关于检测到的物体的感测数据中的噪声量和误差。因此,机器人100可以具有允许机器人100更准确地确定物体可以具有的各种属性的附加信息。
当机器人100穿过环境(诸如图1中描绘的家10)时,机器人100、本地部署的计算设备120和远程云服务系统150合作,以确定环境中存在的各种物体的位置和姿势。以这种方式,当从与寻找物体的请求对应的用户接收到输入时,机器人100利用编程来定位物体并执行最优抓握模式以基于物体的姿势来抓握物体。在一些实施例中,特定物体的位置可以由远程云服务系统150存储。因而,机器人100可以通过本地部署的计算设备120从远程云服务系统150接收物体的位置。然后,这种物体可以在环境中被跟踪。
在一些实施例中,由用户操作的计算设备可以显示感测到的物体所在位置以及环境内物体的姿势的图形表示。图4描绘了由机器人100(图1)确定的各种物体及其在环境中的相应位置的说明性图形表示。在一些实施例中,物体的图形表示可以覆盖在环境的图像的顶部。虽然仍参考图1,但是在图4的示例中,点线302表示如由一个或多个激光雷达传感器确定的点云。点云可以表示环境内的各种物体、特征等等。一个或多个图形表示304示出了如由机器人100、本地部署的计算设备120和远程云服务系统150确定的物体的位置。图形表示304可以是颜色编码的通用形状,或者可以是更贴近实际物体的形状。在一些实施例中,图形表示304还可以包括表示实际物体的图标。另外,还可以显示描述物体的细节(诸如物体的类型、物体的特征、物体的名称等等)的标签306。还可以显示其它信息,诸如对物体进行的最后一次测量的时间、物体的姿势的描述,和/或可以相关的任何其它信息。用户可以点击或以其它方式选择物体以显示物体的更多信息,以显示可以对物体执行的操作的菜单等等。说明性操作包括但不限于检索物体和将物体递送给用户、将物体从其当前位置移动到另一个位置、重新布置物体、移动靠近物体等等。
如本文所述,远程云服务系统150提供多个机器人服务。一个说明性的非限制性机器人服务是由机器人100检测到的物体的去重复。某些传感器可能不是百分之百(100%)准确,并且随着时间的推移会造成检测到的物体位置移位。例如,与使用相机传感器的物体位置对应的第一测量可以在第一位置,但是第二测量可以在相对于第一位置稍微移位的第二位置,尽管事实是该物体本身没有移动。这会使机器人100不正确地确定存在彼此非常接近的两个相似物体。或者,机器人100可以以这样一种方式确定仅存在一个物体,但移位的位置不正确,使得机器人100不能提供成功地抓握物体的命令。因此,本公开的实施例还针对用于在这种情况下对物体去重复的系统和方法。
在去重复过程的一个非限制性示例中,物体的历史测量被用于确定物体的位置和姿势连同置信度值,其中相对较新的测量被赋予比相对较旧的测量更大的权重。当机器人100第一次遇到物体时,以相对低的置信度值存储物体的图像数据(和其它数据)。作为非限制性示例,如果置信度值是从1到100的标度上的数字,那么初始置信度值可以是大约1。在第一次测量期间,确定物体的维度。例如,参考图1和5,可以确定物体(诸如纸巾盒136)的长度L、宽度W和高度H。可以将物体的测量与存储在库中的多个物体进行比较。例如,可以将检测到的物体的体积与存储在库中的物体的体积进行比较。可以选择存储在库中的、其体积与检测到的物体最紧密匹配的物体作为物体。在图5中,物体库内的纸巾盒的表示136'可以与由机器人100的传感器检测到的纸巾盒136的表示紧密匹配。虽然维度可能不完全匹配,但是纸巾盒的表示136'可以被选择,因为它与存储在库中的其它物体最紧密相关。作为示例而非限制,可以通过最近点方法来执行体积之间的比较。如上所述,当机器人100第一次遇到物体时,指派低置信度值。
在第二次遇到物体期间,执行类似的分析,以将该物体确定为存储在物体库内的物体。如果第一次遇到的物体和第二次遇到的物体相同并且它们的位置不同,那么系统确定两个位置的平均值并增加最近测量的置信度值。在第三次遇到物体期间,第三位置测量被用作连接中断器(tie breaker),以确定前两个读数中的哪一个更有可能是正确的。第三次测量的置信度值比前两次增加。因为物体可以随着时间的推移略微移动(例如,由于人走过房屋造成的振动),所以最近的测量被认为是最正确的。因此,先前的测量随着时间的推移降级。作为非限制性示例,先前的测量可以通过值(例如,0.9)缩减(dock),而当前读数被指派值1。在一些实施例中,还将测得的物体的姿势与先前的读数进行比较,以验证物体的姿势。因此,即使存在由一个或多个传感器102观察到的少量抖动,机器人100也可以确定仅存在一个物体。另外,机器人100对物体的测量是当机器人100在整个房间130中移动时从物体周围的各个点取得的(例如,在机器人100朝着另一个物体移动时获得)。因此,物体的位置可能看起来改变。但是,位置/姿势的微小改变不指示物体的移动,或者另一个物体被放置在略微不同的位置。
如果测得的物体的当前位置与先前测得的位置之间的差异相对大(例如,大于宽度的一半或大于物体尺寸的一半),那么机器人系统20访问所有保存的物体的角度和物体的各种姿势。执行这个操作,以确定检测到的物体是否会是位于先前检测到的物体旁边的第二物体。如果当前测得的物体基于与该物体相关联的体积或其它特点不能适合其旁边的第二物体,那么系统确定其中一个测量是不正确的。降低先前测量的置信度值并增加最近测量的置信度值。但是,两个测量都被保存。还对物体进行后续测量,以增加它是单个物体而不是重复物体的置信度,因为它们都占用相同的体积。
在一些情况下,机器人系统20可以意识到在环境中存在可以只有一个此类物品的独特物品。例如,可以只有用户的一串钥匙。即,不会在两个不同位置存在用户钥匙的两个不同实例。此外,用户的钥匙与任何其他人的钥匙不同。在这种情况下,用户可以将物体标记为独特物体,以便机器人系统20被编程为识别出该物体是独特的。然后可以对远程云服务系统150进行编程,使得只能存在独特物品的一个实例。在独特物品的情况下,机器人系统20(例如,远程云服务系统150和/或本地部署的计算设备120)可以不执行上述体积检查步骤。而是假设独特物体的最近位置测量是正确的位置。在一些实施例中,可以确定若干先前测量的平均位置。如果存在与先前测量大不相同的位置测量,那么将最近的位置测量视为真,并且旧位置测量无效。因此,最近的位置测量将具有最高得分。在一些实施例中可以保存所有历史测量值以用于长期处理。
本公开的实施例还可以提供检测到的物体周围的区域检测气泡。这些区域检测气泡可以由远程云服务系统150、本地部署的计算设备120和/或由机器人100本身在本地确定。区域检测气泡可以解释由机器人100的传感器102造成的误差的量。因此,机器人100可以被编程为识别在区域检测气泡中存在物体,即使在机器人100不能精确定位区域检测气泡内的物体的情况下也是如此。
来自机器人100的多个传感器102的一个或多个输出可以固有地有噪声。例如,可以知道位于机器人100的头部上的传感器102提供处于特定准确度水平的有噪声或不可靠的输出,特别是当机器人100正在移动并且传感器102可能由于机器人100的移动而振动时。照此,可以在传感器102提供输出之前确定多个传感器102的准确度。作为示例,可以知道特定传感器102在特定深度的某个距离内是准确的(例如,1米的准确度)。当使用特定传感器102在那个深度处检测到物体时,具有准确距离的半径r的球体可以被放置在物体的被测中心周围。区域检测气泡可以由该球体定义。因此,机器人100可以被编程为识别出在该球体内存在物体。
参考图6,由具有特定准确度的传感器102检测到纸巾盒136。传感器102可以在距离d内是准确的。因此,机器人系统20定位限定区域检测气泡139的球体,该球体具有等于距离d的半径r。
再次参考图1,远程云服务系统150还可以执行各种其它功能。作为非限制性示例,本地部署的计算设备120可以向远程云服务系统150发送表示用户的口头命令的语音数据。然后,远程云服务系统150可以使用一个或多个语音识别和/或自然语言处理算法将语音数据翻译成计算机可读指令。然后,远程云服务系统150可以执行计算机可读指令,并通过本地部署的计算设备120将动作的结果递送给机器人100。
此外,路径规划可以由远程云服务系统150执行。例如,用户可以向机器人100提供发送到远程云服务系统150的指令。远程云服务系统150可以接收指令,确定要由机器人100完成的任务,并且基于建模或为了执行所确定的任务而生成路径和抓握模式的任何其它方法来执行诸如路径规划和抓握模式规划之类的任务。然后,通过本地部署的计算设备120将与路径规划和/或抓握模式对应的指令发送到机器人100。在一些实施例中,本地部署的计算设备120执行路径规划和抓握模式规划。在一些实施例中,本地部署的计算设备120和远程云服务系统150可以共同执行路径规划和抓握模式规划。
在一些实施例中,出于隐私原因,可以限制发送到远程云服务系统150的信息。例如,可以不向远程云服务系统150发送实际图像。而是可以仅向远程云服务系统150发送表示图像的数据。作为由本地部署的计算设备120执行的图像处理的一部分,可以移除个人信息,使得不发送图像数据。作为示例,远程云服务系统150可以包含与家中特定位置处的汽水罐的证据有关的数据,但是它将不具有汽水罐或汽水罐周围的区域的实际图像。
此外,机器人系统20可以基于3D位置信息来认证用户。因此,如果用户站得紧密接近机器人100,那么用户一般只可以访问远程云服务系统150和机器人系统20的功能。紧密接近可以例如在距机器人100的特定距离内、在与机器人100相同的房间130中、在与机器人100相同的建筑物中等等。在另一个示例中,远程用户可以将家10中的已知物体描述给机器人系统20。例如,用户可以说“在桌子的左角处有一个汽水罐。”然后,机器人100可以获得信息,以确认这是真的,然后提供关于家10的附加信息,因为用户刚刚证明他或她知道关于家10特定的某个东西。用户可以使用例如移动设备和互联网来远程访问机器人系统20。
在一些实施例中,可以向用户支付或提供用于训练机器人100的一些补偿。例如,用户可以同意告诉机器人100“这是杯子”,然后向机器人100示出用户在家10中拥有的各种姿势的所有杯子。另外,用户可以标记环境内的物体。例如,用户可以说“这些是我的钥匙”或“这是我的计算机”。然后,机器人系统20可以将标签与对应于被标记物体的传感器数据相关联。机器人系统20可以被配置为从被标记的物体中提取背景图像。例如,机器人系统20可以从用户的手和手臂中提取一串钥匙。
现在参考图7,示意性地图示了能够执行本文所述的功能的说明性机器人100的部件。应当理解的是,机器人100可以包括比图7所示的部件更多的部件,并且图7仅用于说明目的提供。说明性机器人100一般包括处理器110、通信路径111、网络接口硬件112、多个传感器102、一个或多个存储器模块114、多个输入和输出设备115、多个致动器116和位置传感器113。
通信路径111可以由能够发送信号的任何介质形成,诸如例如导线、导电迹线、光波导等等。而且,通信路径111可以由能够发送信号的介质的组合形成。在一个实施例中,通信路径111包括导电迹线、导线、连接器和总线的组合,这些合作以允许电数据信号传输到诸如处理器、存储器、传感器、输入设备、输出设备和通信设备之类的部件,包括本文描述的各种部件。因而,在一些实施例中,通信路径111可以是总线。此外,要注意的是,术语“信号”是指能够通过介质行进的波形(例如,电、光、磁、机械或电磁),诸如DC、AC、正弦波、三角波、方波、振动等等。通信路径111通信耦合机器人100的各种部件。如本文所使用的,术语“通信耦合”是指所耦合的部件能够彼此交换数据信号(诸如例如经由导电介质的电信号、经由空气的电磁信号、经由光波导的光信号等等)。
机器人100的处理器110可以是能够执行机器可读指令(诸如用于执行本文描述的各种功能的机器可读指令)的任何设备。因而,处理器110可以是控制器、集成电路、微芯片、计算机或任何其它计算设备。处理器110通过通信路径111通信耦合到机器人100的其它部件。因而,通信路径111可以将任何数量的处理器彼此通信耦合,并且允许耦合到通信路径111的部件在分布式计算环境中操作。具体而言,每个部件可以作为可以发送和/或接收数据的节点操作。应当理解的是,虽然图7中描绘的实施例包括单个处理器110,但是其它实施例可以包括多于一个处理器。
网络接口硬件112耦合到通信路径111并且通信耦合到处理器110。网络接口硬件112可以是能够经由通信网络140发送和/或接收数据的任何设备。因而,网络接口硬件112可以包括被配置为用于发送和/或接收任何有线或无线通信的通信收发器的无线通信模块。例如,网络接口硬件112可以包括天线、调制解调器、LAN端口、Wi-Fi卡、WiMax卡、移动通信硬件、近场通信硬件、卫星通信硬件和/或用于与其它网络和/或设备通信的任何有线或无线硬件。在一个实施例中,网络接口硬件112包括被配置为根据诸如蓝牙、Zigbee、Z波、802.11标准等等之类的无线通信协议操作的硬件。在另一个实施例中,网络接口硬件112可以包括用于向便携式电子设备发送/从便携式电子设备接收蓝牙通信的蓝牙发送/接收模块。网络接口硬件112还可以包括被配置为询问和读取RFID标签的射频识别(“RFID”)读取器。网络接口硬件112被用于与本地部署的计算设备120通信。
多个传感器102可以通信耦合到处理器110。如本文前面所述,多个传感器102可以包括能够向机器人100提供关于环境的信息的任何类型的传感器。多个传感器102可以包括但不限于相机(例如,CCD相机)、红外传感器、深度传感器、接近传感器、触觉传感器、激光雷达传感器、雷达传感器、飞行时间传感器、惯性测量单元(例如,一个或多个加速度计和陀螺仪)等等。如本文所述,传感器数据被传送到本地部署的计算设备120。
机器人100的存储器模块114耦合到通信路径111并且通信耦合到处理器110。存储器模块114可以包括RAM、ROM、闪存、硬盘驱动器或能够存储机器可读指令的任何非瞬态存储器设备,使得机器可读指令可以由处理器110访问和执行。机器可读指令可以包括用任何代(例如,1GL、2GL、3GL、4GL或5GL)的任何编程语言编写的逻辑或(一个或多个)算法,其中编程语言诸如例如可以由处理器直接执行的机器语言,或者可以被编译或汇编成机器可读指令并存储在存储器模块114中的汇编语言、面向对象的编程(OOP)、脚本语言、微代码等等。可替代地,机器可读指令可以用硬件描述语言(HDL)编写,诸如经由或者现场可编程门阵列(FPGA)配置或专用集成电路(ASIC)或者其等同物实现的逻辑。因而,本文描述的功能可以以任何常规的计算机编程语言实现,被实现为预编程的硬件元件或者硬件和软件部件的组合。应当理解的是,虽然图7中描绘的实施例包括单个存储器模块114,但是其它实施例可以包括多于一个存储器模块。存储器模块114还可以存储如本文所述的传感器数据。
输入和输出设备115可以包括任何数量的输入设备和输出设备。说明性输入设备包括但不限于键盘、按钮、开关、旋钮、触摸板、触摸屏、麦克风、红外手势传感器、鼠标设备等等。示例输出设备包括但不限于扬声器、电子显示器、灯、发光二极管、蜂鸣器、触觉显示器等等。
多个致动器116可以包括使机器人100能够导航空间并操纵物体的任何机械致动器。致动器可以包括使机器人100在空间内移动的机动轮组件。致动器还可以包括被控制以移动机器人100的臂和末端执行器以抓握和操纵物体的马达。这种致动器116一般是理解的,并且在本文不再详细描述。
位置传感器113耦合到通信路径111并因此通信耦合到处理器110。位置传感器113可以是能够生成指示位置的输出的任何设备。在一些实施例中,位置传感器113包括全球定位系统(GPS)传感器,但是实施例不限于此。在一些实施例中,位置传感器113可以利用无线协议(诸如802.11标准、蓝牙等等)用于提供位置坐标。一些实施例可以不包括位置传感器113,诸如其中机器人100不确定机器人100的位置的实施例或者以其它方式(例如,基于从其它装备接收的信息)确定位置的实施例。位置传感器113还可以被配置为能够通过从一个或多个无线信号天线接收的无线信号对机器人100和用户的位置进行三角测量的无线信号传感器。
应当理解的是,机器人100可以包括图7中未描绘的其它部件。例如,机器人100可以由电池供电。电池可以是能够存储电能以供机器人100稍后使用的任何设备。在一些实施例中,电池是可再充电电池,诸如例如锂离子电池或镍镉电池。在电池是可再充电电池的实施例中,机器人100可以包括充电端口,该充电端口可以被用于对电池充电。
现在参考图8,示意性地图示了本地部署的计算设备120的部件。应当理解的是,本地部署的计算设备120可以包括比图8所示的部件更多的部件,并且图8仅用于说明目的提供。说明性本地部署的计算设备120一般包括处理器123、通信路径128、图形处理单元124、网络接口硬件125、一个或多个存储器模块126,以及多个输入和输出设备127。
通信路径128可以由能够发送信号的任何介质形成,诸如例如导线、导电迹线、光波导等等。而且,通信路径128可以由能够发送信号的介质的组合形成。在一个实施例中,通信路径128包括导电迹线、导线、连接器和总线的组合,这些合作以允许电数据信号传输到诸如处理器、存储器、传感器、输入设备、输出设备和通信设备之类的部件,包括本文描述的各种部件。因而,在一些实施例中,通信路径128可以是总线。另外,要注意的是,术语“信号”是指能够通过介质行进的波形(例如,电、光、磁、机械或电磁),诸如DC、AC、正弦波、三角波、方波、振动等等。通信路径128通信耦合机器人100的各种部件。如本文所使用的,术语“通信耦合”是指所耦合的部件能够彼此交换数据信号(诸如例如经由导电介质的电信号、经由空气的电磁信号、经由光波导的光信号等等)。
处理器123可以是能够执行机器可读指令以执行本文描述的各种功能的任何设备。因而,处理器123可以是控制器、集成电路、微芯片、计算机或任何其它计算设备。处理器123通过通信路径128通信耦合到本地部署的计算设备120的其它部件。因此,通信路径128可以通信地将任意数量的处理器彼此耦合,并且允许耦合到通信路径128的部件在分布式计算环境中操作。具体而言,每个部件可以作为可以发送和/或接收数据的节点操作。应当理解的是,虽然图8中描绘的实施例包括单个处理器123,但是其它实施例可以包括多于一个处理器123。
图形处理单元124是能够执行机器可读指令的任何设备,并且具体而言被配置用于执行图像处理任务(诸如物体识别)。图形处理单元124可以是控制器、集成电路、微芯片、计算机或任何其它计算设备。可以利用任何已知的或尚未开发的图形处理单元。在一些实施例中,不利用图形处理单元124。而是处理器123可以根据需要处理成像处理计算以及其它计算。
网络接口硬件125耦合到通信路径128并且通信耦合到处理器123。网络接口硬件125可以是能够经由通信网络140发送和/或接收数据的任何设备。因而,网络接口硬件125可以包括被配置为用于发送和/或接收任何有线或无线通信的通信收发器的无线通信模块。例如,网络接口硬件125可以包括天线、调制解调器、LAN端口、Wi-Fi卡、WiMax卡、移动通信硬件、近场通信硬件、卫星通信硬件和/或用于与其它网络和/或设备通信的任何有线或无线硬件。在一个实施例中,网络接口硬件125包括被配置为根据诸如蓝牙、Zigbee、Z波、802.11标准等等之类的无线通信协议操作的硬件。在另一个实施例中,网络接口硬件125可以包括用于向便携式电子设备发送/从便携式电子设备接收蓝牙通信的蓝牙发送/接收模块。网络接口硬件125还可以包括被配置为询问和读取RFID标签的射频识别(“RFID”)读取器。网络接口硬件125被用于与机器人100和远程云服务系统150通信。
本地部署的计算设备120的存储器模块126耦合到通信路径128并且通信耦合到处理器123。存储器模块126可以包括RAM、ROM、闪存、硬盘驱动器或能够存储机器可读指令的任何非瞬态存储器设备,使得机器可读指令可以由处理器123访问和执行。机器可读指令可以包括用任何代(例如,1GL、2GL、3GL、4GL或5GL)的任何编程语言编写的逻辑或(一个或多个)算法,其中编程语言诸如例如可以由处理器直接执行的机器语言,或者可以被编译或汇编成机器可读指令并存储在存储器模块126中的汇编语言、面向对象的编程(OOP)、脚本语言、微代码等等。可替代地,机器可读指令可以用硬件描述语言(HDL)编写,诸如经由或者现场可编程门阵列(FPGA)配置或专用集成电路(ASIC)或者其等同物实现的逻辑。因而,本文描述的功能可以以任何常规的计算机编程语言实现,被实现为预编程的硬件元件或者硬件和软件部件的组合。应当理解的是,虽然图8中描绘的实施例包括单个存储器模块126,但是可以提供任何数量的存储器模块。存储器模块126还可以存储如本文所述的传感器数据。
输入和输出设备127可以包括任何数量的输入设备和输出设备。说明性输入设备包括但不限于键盘、按钮、开关、旋钮、触摸板、触摸屏、麦克风、红外手势传感器、鼠标设备等等。示例输出设备包括但不限于扬声器、电子显示器、灯、发光二极管、蜂鸣器、触觉显示器等等。
除了提供本地机器人和人机接口之外,本地部署的计算设备120还可以充当环境内的其它系统的集线器,提供始终供电(与电池供电相对)的可以持续地将计量数据发送到云的web服务器,提供本地图形用户界面,并使得能够减少机器人上的计算和存储。许多智能任务可要求功率密集的图形处理单元(GPU)处理。另外,本地部署的计算设备120可以是到机器人100的高吞吐量管道,其可以在上传到云之前提供图像处理和各种其它任务。可以基于云服务系统150的需要将数据从机器人100选择性地发送(例如,流式传输)到本地部署的计算设备120。云服务系统150还可以控制到特定服务(诸如机器智能服务和各种数据存储服务)的流。
在一些实施例中,在机器人上提供机器人操作系统(ROS)。即,机器人具有被配置为发现本地部署的计算设备120的软件,使得机器人可以向本地部署的计算设备120注册,诸如但不限于使用多播域名系统(MDNS)发现和GRPC注册。当发生注册时,本地部署的计算设备可以成为在机器人内运行的ROS主设备的客户端(例如,经由网络套接字(当存在网桥时是GRPC))。然后,本地部署的计算设备120可以发现可用的服务、行为和主题,并在本地部署的服务图形用户界面上呈现这种可用的服务、行为和主题,和/或将该信息推送到云服务系统150(例如,经由GRPC)。
然后,云服务系统150可以请求所请求主题的集合,并且本地部署的计算设备120可以开始将数据流式传输到诸如但不限于Kinesis流中。然后,流式传输的数据可以由许多设备处理,并且数据可以被记录到存储设备的集合中。
现在应当理解的是,本文描述的实施例针对机器人系统,该系统包括机器人、与机器人通信的本地部署的计算设备,以及与本地部署的计算设备通信的云服务系统。本地部署的计算设备和云服务系统从机器人卸载处理需求,使得机器人可以更高效地运作、消耗更少的电能并且以单次电池充电操作更长的时间段。本地部署的计算设备可以从机器人接收传感器数据并将所选择的传感器数据提供给云服务系统。然后,云服务系统可以执行能量密集型物体识别和其它过程。然后将这些过程的结果从云服务系统发送到本地部署的计算设备,然后发送到机器人。云服务系统可以提供附加服务(诸如物体的去重复、路径规划、模拟、建模、机器学习等等)。
因此,实施例使机器人能够通过在云中发送和存储数据来彼此学习。例如,机器人可以围绕自生成的模型构建上下文。然后可以推送、索引和发布这些模型。其它数据(如遥测、图像和音频)也可以被推送到能够充分利用云来应用机器学习和/或人工智能功能的单个集合。这种学习可以创建可以在机器人上应用的模型,以使其在本地部署的交互中更高效和智能。此外,诸如面部、语音和物体识别之类的服务可以使用云中可用的计算能力。
虽然本文已经说明和描述了特定的实施例,但是应当理解的是,在不脱离要求保护的主题的精神和范围的情况下,可以进行各种其它改变和修改。而且,虽然本文已经描述了要求保护的主题的各个方面,但是这些方面不需要被组合利用。因此,所附权利要求旨在覆盖在要求保护的主题的范围内的所有此类改变和修改。
Claims (10)
1.一种本地部署的计算设备,包括处理器和存储机器可读指令的非瞬态存储器设备,当指令由处理器执行时,使得处理器:
从机器人接收原始传感器数据;
预处理原始传感器数据,以从原始传感器数据中移除不必要的信息并获得经预处理的数据;
向云服务系统发送经预处理的数据;
从云服务系统接收与经预处理的数据对应的物体的物体类型、物体姿势和物体位置;以及
基于物体的物体类型、物体姿势和物体位置中的至少一个向机器人发送信号,所述信号包括能由机器人使用以操纵物体的一个或多个指令。
2.如权利要求1所述的本地部署的计算设备,其中使处理器向机器人发送信号的机器可读指令还使得处理器向机器人提供用于操纵物体的指令。
3.一种云服务系统,包括处理器和存储机器可读指令的非瞬态存储器设备,当指令由处理器执行时,使得处理器:
从本地部署的计算设备接收经预处理的数据,其中经预处理的数据是由本地部署的计算设备从源自机器人的原始传感器数据已经提取的数据;
根据经预处理的数据确定物体的物体类型、物体姿势和物体位置;
向本地部署的计算设备发送物体类型、物体姿势和物体位置;
生成用于使得机器人操纵物体的指令;以及
将所述指令发送到所述本地部署的计算设备。
4.如权利要求3所述的云服务系统,其中经预处理的数据是图像数据,并且物体类型和物体姿势是通过对图像数据应用物体识别算法来确定的。
5.如权利要求3-4中任一项所述的云服务系统,其中机器可读指令还使得处理器执行去重复过程,该去重复过程评估物体的多个历史测量,以确定当前物体是:
与所述多个历史测量中的一个或多个历史测量相同的物体,还是与所述物体不同的第二物体。
6.如权利要求3-5中任一项所述的云服务系统,其中机器可读指令还使得处理器:
生成机器人路径计划,以及
向本地部署的计算设备发送该机器人路径计划。
7.如权利要求3-6中任一项所述的云服务系统,其中机器可读指令还使得处理器:
生成用于使得机器人操纵物体的指令;以及
向本地部署的计算设备发送该指令。
8.一种控制机器人的方法,该方法包括:
在本地部署的计算设备处从机器人接收原始传感器数据;
由本地部署的计算设备缩减原始传感器数据的尺寸,以生成经处理的传感器数据;
由本地部署的计算设备向云服务系统发送经处理的传感器数据;
由本地部署的计算设备从云服务系统接收物体类型、物体姿势和物体位置,其中物体类型、物体姿势和物体位置是由云服务系统根据经处理的传感器数据确定的;以及
由本地部署的计算设备基于物体的物体类型、物体姿势和物体位置中的至少一个向机器人发送信号,所述信号包括能由机器人使用以操纵物体的一个或多个指令。
9.如权利要求8所述的方法,其中接收物体类型、物体姿势和物体位置包括接收关于物体的信息,该信息是作为去重复过程的结果而生成的,其中去重复过程评估物体的多个历史测量,以确定当前物体是与所述多个历史测量中的一个或多个历史测量相同的物体还是不同的物体。
10.如权利要求8-9中任一项所述的方法,还包括在从机器人接收原始传感器数据之前经由用户界面接收命令,其中该命令与用于让机器人执行任务的指令对应。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762563424P | 2017-09-26 | 2017-09-26 | |
US62/563,424 | 2017-09-26 | ||
US16/053,165 US10723027B2 (en) | 2017-09-26 | 2018-08-02 | Robot systems incorporating cloud services systems |
US16/053,165 | 2018-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109551476A CN109551476A (zh) | 2019-04-02 |
CN109551476B true CN109551476B (zh) | 2023-04-28 |
Family
ID=65808683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811124009.8A Active CN109551476B (zh) | 2017-09-26 | 2018-09-26 | 结合云服务系统的机器人系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10723027B2 (zh) |
JP (1) | JP6927938B2 (zh) |
CN (1) | CN109551476B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733004B2 (en) * | 2017-04-26 | 2020-08-04 | At&T Intellectual Property I, L.P. | Intelligent service on-demand robot virtualization |
US10723027B2 (en) * | 2017-09-26 | 2020-07-28 | Toyota Research Institute, Inc. | Robot systems incorporating cloud services systems |
EP3691839A1 (en) * | 2017-10-04 | 2020-08-12 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement for determination of a trajectory for a robot device in a cloud |
US10572775B2 (en) * | 2017-12-05 | 2020-02-25 | X Development Llc | Learning and applying empirical knowledge of environments by robots |
US11185978B2 (en) * | 2019-01-08 | 2021-11-30 | Honda Motor Co., Ltd. | Depth perception modeling for grasping objects |
KR20190104483A (ko) * | 2019-08-21 | 2019-09-10 | 엘지전자 주식회사 | 로봇 시스템 및 그 제어 방법 |
KR102153360B1 (ko) * | 2019-11-26 | 2020-09-10 | 가천대학교 산학협력단 | 클라우드 컴퓨팅 기반 로봇의 상황 인지 시스템 및 그 처리 방법 |
KR102191160B1 (ko) * | 2019-11-26 | 2020-12-16 | 가천대학교 산학협력단 | 로봇 데이터의 인공 지능형 데이터 모델링 시스템 및 그 모델링 방법 |
CN111447599B (zh) * | 2020-03-26 | 2023-09-12 | 上海有个机器人有限公司 | 一种基于多链路复用的机器人通讯方法和系统 |
WO2021200743A1 (ja) * | 2020-04-02 | 2021-10-07 | ファナック株式会社 | ロボットの教示位置を修正するための装置、教示装置、ロボットシステム、教示位置修正方法、及びコンピュータプログラム |
WO2021211028A1 (en) * | 2020-04-17 | 2021-10-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Network node and method for handling operations in a communications network |
US11797192B2 (en) * | 2021-04-21 | 2023-10-24 | Micron Technology, Inc. | Data transmission management |
US12031814B2 (en) * | 2021-08-10 | 2024-07-09 | Xerox Corporation | System for interacting with machines using natural language input |
WO2023211899A1 (en) * | 2022-04-27 | 2023-11-02 | Viam Inc. | Device control system and method |
US12047369B2 (en) | 2022-07-22 | 2024-07-23 | Viam Inc. | Fleet management system and method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843381A (zh) * | 2016-03-18 | 2016-08-10 | 北京光年无限科技有限公司 | 用于实现多模态交互的数据处理方法及多模态交互系统 |
CN105930794A (zh) * | 2016-04-20 | 2016-09-07 | 东北大学 | 一种基于云计算的室内场景识别方法 |
CN105976259A (zh) * | 2016-04-26 | 2016-09-28 | 张敬敏 | 一种带云计算功能的电力处理设备 |
CN106182027A (zh) * | 2016-08-02 | 2016-12-07 | 西南科技大学 | 一种开放式服务机器人系统 |
CN107066507A (zh) * | 2017-01-10 | 2017-08-18 | 中国人民解放军国防科学技术大学 | 一种基于云机器人混合云架构的语义地图构建方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110025689A1 (en) * | 2009-07-29 | 2011-02-03 | Microsoft Corporation | Auto-Generating A Visual Representation |
CN101973031B (zh) * | 2010-08-24 | 2013-07-24 | 中国科学院深圳先进技术研究院 | 云机器人系统及实现方法 |
TW201227190A (en) * | 2010-12-28 | 2012-07-01 | Hon Hai Prec Ind Co Ltd | System and method for controlling robots via cloud computing |
US9205886B1 (en) * | 2011-05-06 | 2015-12-08 | Google Inc. | Systems and methods for inventorying objects |
US8965104B1 (en) * | 2012-02-10 | 2015-02-24 | Google Inc. | Machine vision calibration with cloud computing systems |
US9605952B2 (en) * | 2012-03-08 | 2017-03-28 | Quality Manufacturing Inc. | Touch sensitive robotic gripper |
US9355368B2 (en) * | 2013-03-14 | 2016-05-31 | Toyota Motor Engineering & Manufacturing North America, Inc. | Computer-based method and system for providing active and automatic personal assistance using a robotic device/platform |
US10462076B2 (en) * | 2014-05-06 | 2019-10-29 | Clearpath Robotics Inc. | System, apparatus and method for automatic environmental data collection and analysis |
US10011013B2 (en) * | 2015-03-30 | 2018-07-03 | X Development Llc | Cloud-based analysis of robotic system component usage |
US9751211B1 (en) * | 2015-10-08 | 2017-09-05 | Google Inc. | Smart robot part |
WO2017115385A2 (en) | 2015-12-28 | 2017-07-06 | Govindarajan Niranjan Chandrika | System and method for operating and controlling a hyper configurable humanoid robot to perform multiple applications in various work environments |
WO2018229548A2 (en) * | 2017-06-16 | 2018-12-20 | Nauto Global Limited | System and method for contextualized vehicle operation determination |
US10723027B2 (en) * | 2017-09-26 | 2020-07-28 | Toyota Research Institute, Inc. | Robot systems incorporating cloud services systems |
-
2018
- 2018-08-02 US US16/053,165 patent/US10723027B2/en not_active Expired - Fee Related
- 2018-09-26 CN CN201811124009.8A patent/CN109551476B/zh active Active
- 2018-09-26 JP JP2018181031A patent/JP6927938B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843381A (zh) * | 2016-03-18 | 2016-08-10 | 北京光年无限科技有限公司 | 用于实现多模态交互的数据处理方法及多模态交互系统 |
CN105930794A (zh) * | 2016-04-20 | 2016-09-07 | 东北大学 | 一种基于云计算的室内场景识别方法 |
CN105976259A (zh) * | 2016-04-26 | 2016-09-28 | 张敬敏 | 一种带云计算功能的电力处理设备 |
CN106182027A (zh) * | 2016-08-02 | 2016-12-07 | 西南科技大学 | 一种开放式服务机器人系统 |
CN107066507A (zh) * | 2017-01-10 | 2017-08-18 | 中国人民解放军国防科学技术大学 | 一种基于云机器人混合云架构的语义地图构建方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2019082999A (ja) | 2019-05-30 |
CN109551476A (zh) | 2019-04-02 |
US10723027B2 (en) | 2020-07-28 |
US20190091865A1 (en) | 2019-03-28 |
JP6927938B2 (ja) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109551476B (zh) | 结合云服务系统的机器人系统 | |
KR102567525B1 (ko) | 이동 로봇 시스템, 이동 로봇 및 이동 로봇 시스템의 제어 방법 | |
EP3839892A1 (en) | True positive transplant | |
JP3945279B2 (ja) | 障害物認識装置、障害物認識方法、及び障害物認識プログラム並びに移動型ロボット装置 | |
JP6439817B2 (ja) | 認識的アフォーダンスに基づくロボットから人間への物体ハンドオーバの適合 | |
CN106292657B (zh) | 可移动机器人及其巡逻路径设置方法 | |
JP6927937B2 (ja) | 三次元骨格表現を生成するためのシステム及び方法 | |
KR20140040094A (ko) | 이동형 원격현전 로봇과의 인터페이싱 | |
US11904470B2 (en) | Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions | |
JP2003271975A (ja) | 平面抽出方法、その装置、そのプログラム、その記録媒体及び平面抽出装置搭載型ロボット装置 | |
EP3585569A1 (en) | Systems, apparatus, and methods for robotic learning and execution of skills | |
Ahn et al. | PDA-based mobile robot system with remote monitoring for home environment | |
Grewal et al. | Autonomous wheelchair navigation in unmapped indoor environments | |
JP2003266349A (ja) | 位置認識方法、その装置、そのプログラム、その記録媒体及び位置認識装置搭載型ロボット装置 | |
US11654573B2 (en) | Methods and systems for enabling human robot interaction by sharing cognition | |
CN111630346A (zh) | 基于图像和无线电词语的移动设备的改进定位 | |
US10891755B2 (en) | Apparatus, system, and method for controlling an imaging device | |
Zhang et al. | An interactive control system for mobile robot based on cloud services | |
DE102018123543B4 (de) | Robotersysteme, die cloud-service-systeme enthalten | |
Li et al. | Development and demonstration of indoor three-dimensional localization using IR CMOS sensors for Mobile manipulators | |
Matsuhira et al. | Research and Development for Life Support Robots that Coexist in Harmony with People | |
US20240316762A1 (en) | Environmental feature-specific actions for robot navigation | |
Tofade | Toward an Affordable Design of an Indoor Autonomous Control and Navigation System of Wheelchairs | |
Al-Askari et al. | Design and Implement Services Robot Based on Intelligent Controller with IoT Techniques | |
Petrou et al. | RoboCup Rescue 2015-Robot League Team PANDORA (Greece) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240207 Address after: Aichi Prefecture, Japan Patentee after: Toyota Motor Corp. Country or region after: Japan Address before: California, USA Patentee before: Toyota Research Institute, Inc. Country or region before: U.S.A. |