CN112805673B - 提供远程机器人控制的方法和系统 - Google Patents
提供远程机器人控制的方法和系统 Download PDFInfo
- Publication number
- CN112805673B CN112805673B CN201980062164.8A CN201980062164A CN112805673B CN 112805673 B CN112805673 B CN 112805673B CN 201980062164 A CN201980062164 A CN 201980062164A CN 112805673 B CN112805673 B CN 112805673B
- Authority
- CN
- China
- Prior art keywords
- virtualized environment
- robot
- path
- location
- virtual
- 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 title claims description 111
- 230000033001 locomotion Effects 0.000 claims abstract description 105
- 239000003550 marker Substances 0.000 claims abstract description 55
- 239000000463 material Substances 0.000 claims abstract description 16
- 230000011218 segmentation Effects 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 33
- 230000007613 environmental effect Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 22
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000009877 rendering Methods 0.000 description 45
- 230000003993 interaction Effects 0.000 description 33
- 230000000007 visual effect Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 21
- 238000013459 approach Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000005266 casting Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000010365 information processing Effects 0.000 description 6
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004040 coloring Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 230000009194 climbing Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000010813 municipal solid waste Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000010399 physical interaction Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 206010047571 Visual impairment Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000001513 hot isostatic pressing Methods 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000008595 infiltration Effects 0.000 description 1
- 238000001764 infiltration Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 231100000331 toxic Toxicity 0.000 description 1
- 230000002588 toxic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/02—Hand grip control means
- B25J13/025—Hand grip control means comprising haptic means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/085—Force or torque sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0038—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with simple or augmented images from one or more cameras located onboard the vehicle, e.g. tele-operation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/005—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with signals other than visual, e.g. acoustic, haptic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
在与当前围绕机器人(102)的物理环境对应的虚拟化环境内显示虚拟指针对象(118)。根据从与机器人(102)并置的传感器(106)接收的流环境数据来生成并更新虚拟化环境。通过触觉使能输入设备(114)检测第一用户输入,所述第一用户输入使得虚拟指针对象(118)在虚拟化环境中沿着移动路径移动,其中,移动路径受到虚拟化环境中的模拟表面的限制。根据移动路径的模拟材料和/或结构特征通过触觉使能输入设备(114)生成触觉反馈。在沿着移动路径标记输入的位置处修改虚拟化环境,并影响在物理环境内的机器人(102)的路径规划。
Description
相关申请的交叉引用
本申请要求2018年10月10日提交的第16/156,969号美国专利申请的优先权,在此通过引用以其公开整体并入本说明书中。
技术领域
本发明通常涉及机器人控制,包括但不限于提供混合主动式的远程机器人控制。
背景技术
如今,机器人被用来执行或协助以前由人类执行的许多任务。在某些情况下,由于机器人的运动和控制精度以及机器人高度可定制的设计和操作模式,导致机器人比人类更适合于某些任务。受远程控制的机器人的一些合适任务包括在危险环境(例如,自然灾害地区,有毒环境,病毒或辐射污染的环境等)中的任务。在某些示例中,一些高度重复和乏味的任务和/或体力劳动的任务,例如执行家务劳动,整理仓库库存,为残疾人和/或老年人提供常规护理和辅助等,都可以从机器人的辅助中获益良多。
尽管远程操作和完全自动化是如今广泛使用的两种机器人控制模式,但使用这两种控制模式可以执行的任务种类有限。例如,通过远程操作,一名人类操作员通过实时执行相应的控制运动来精确控制机器人的每一个动作,同时观看机器人操作场景的流式视频。远程操作的控制模式要求高度熟练的人类操作员实时充分参与(例如,身体上和精神上)到整个任务的执行过程中,这严重限制了它的用途和应用(例如,由于加在人类操作员上的负担和要求的原因)。全自动化控制模式要求将人工智能内置到机器人控制程序中,这无法适应高度变化的操作场景,限制了其用途和应用。
在混合主动式机器人控制模式中,人类操作员提供高级任务导向指令,并依赖于机器人的预编程来确定要实现高级指令所执行的精确运动和操作。混合主动式机器人控制减轻了落在人类操作员上的一些负担和要求,并充分利用了机器人在精度、耐力、鲁棒性和相对抗危险方面的能力。
提供促进远程混合主动式机器人控制的直观和高效的人机界面是具有挑战性的。在网络上实时支持对机器人的操作(例如导航和/或对象操纵)进行间接和/或间歇性干预的良好技术是迫切需要的。
发明内容
因此,迫切需要混合主动式机器人控制的技术,其中控制机器人的操作员可以实时将机器人感知到的3D场景可视化,并在较高级别上使用间接和/或间歇的指令和输入来指导机器人的动作(而不是远程操作来控制机器人)。在为机器人提供远程混合主动式控制时,用户会使用混合现实环境感知3D场景并提供导航输入。混合现实环境是机器人感知的物理环境的虚拟化表示以及放置在物理环境的虚拟化表示中的虚拟标记和虚拟对象的结合。所述技术在通过机器人与物理环境进行交互的过程中为用户提供了更多的自由和信息,例如实时切换视点、检查环境的选定部分、接收视觉信息的增强(例如纹理信息、物理属性信息、动作和外观历史记录等)。
在本公开中,描述了触觉使能的混合现实系统的实施例,所述系统提供触觉界面以与物理环境的虚拟化表示进行交互并在执行高级任务时向移动机器人提供远程高级导航。所述系统包括一个具有配置了红绿蓝深度(RGBD)传感器的移动机器人的本地地点和一个由用户操作触觉使能输入/输出(I/O)设备的远程地点。三维虚拟现实世界场景是使用实时密集映射从流式RGBD数据生成的。用户可以使用触觉使能输入设备来“触摸”并体验场景中的表面和对象的物理特征,以标记场景以指示场景中机器人的虚拟路线、通道、障碍和/或目标,以及在场景中添加虚拟对象,虚拟对象从机器人的角度改变场景的组成,从而间接影响机器人按照预先编程的指令执行的准确操作。在一些实施例中,系统对虚拟对象与场景中其他对象的交互进行物理仿真,以帮助用户体验场景,更准确地确定虚拟对象在场景中的位置。在一些实施例中,执行实时的用户辅助对象分割。用户使用触觉使能输入设备标记场景中的位置,并通过区域增长方法从标记的位置将对象从场景中分割出来。在一些实施例中,用于触觉渲染的新处理流水线用于处理代理更新。所提出的力着色的代理更新方法可以反映摩擦和触觉纹理,因此更稳定,并且可以更实际地处理场景中不同平面的相交边界。在一些实施例中,根据预期的网络时延来预测机器人的实际位置,从而使得机器人在时延网络上的实时操作和控制更加平滑(例如,减少机器人的来回颠簸)。
在一个方面,在具有一个或多个处理器和存储器的计算设备上执行一种提供混合主动式机器人控制的方法,其中,所述计算设备可通信地耦合至机器人,并且被配置为根据第一组预编程的路径规划指令为所述机器人生成规划路径,并且所述机器人被配置为根据从所述计算设备接收的规划路径和本地存储的路径执行指令在物理环境中导航。所述方法包括:通过耦合到计算设备的显示生成组件来显示控制用户界面,包括显示与当前围绕所述机器人的第一物理环境相对应的虚拟化环境中的虚拟指针对象,其中所述虚拟化环境是根据从与所述机器人并置的第一组传感器接收的流环境数据来生成并更新的;在虚拟化环境中显示所述虚拟指针对象的同时,通过触觉使能输入设备检测第一用户输入,包括在所述虚拟化环境中沿所述虚拟指针对象的移动路径的一个或多个位置检测第一移动输入和一个或多个标记输入;响应于检测到所述第一用户输入:根据所述第一移动输入在虚拟化环境中沿着第一移动路径移动所述虚拟指针对象,其中,所述第一移动路径受到所述虚拟化环境中一个或多个模拟表面的约束;根据所述虚拟化环境中第一移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈;修改与虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,其中,修改后的虚拟化环境代替所述虚拟环境作为第一物理环境中所述机器人的路径规划的环境基础,所述第一物理环境由计算设备根据第一组预编程的路径规划指令执行。
在一个方面,在具有一个或多个处理器和存储器的计算设备处执行一种从流表面执行交互式对象分割的方法,其中,所述计算设备经由网络可通信地耦合到一组传感器和在第一物理环境中并置的一个机器人。所述方法包括:从所述传感器组接收环境数据流,所述环境数据流包括捕获所述第一物理环境的相关图像和深度数据;通过显示生成组件在用户界面区域中显示所述第一物理环境的虚拟化表示,其中,第一物理环境的虚拟化表示是根据所述环境数据流生成并更新的;在显示所述第一物理环境的虚拟化表示的同时,从触觉使能输入设备接收标记输入,其中,标记输入在第一物理环境的虚拟表示中的位置是根据标记输入确定的,并且所述位置受到第一物理环境的虚拟化表示中的第一虚拟化表面的约束;响应于接收到标记输入,在相关图像和深度数据上从标记输入的位置执行对象分割,包括针对相应时间步长,根据环境数据流更新第一物理环境的虚拟化表示:从图像数据中与标记输入的位置相对应的第一位置,对像素进行聚类以形成第一聚类;基于第一聚类和与所述第一聚类对应的深度数据,分割出所标记的第一对象;将所标记的第一对象和深度数据融合到与所述相应时间步长对应的所述第一物理环境的第一截断符号距离函数(TSDF)表示中;从与所述所标记的第一对象和与第一聚类相对应的深度数据相融合的第一TSDF表示中获取第一分割点云。
在一个方面,在具有一个或多个处理器和存储器的计算设备上执行一种提供一种混合主动式机器人控制的方法,其中,所述计算设备可通信地耦合至机器人,并且被配置为根据第一组预编程的路径规划指令为所述机器人生成规划路径,所述机器人被配置为根据从计算设备接收的规划路径和本地存储的路径执行指令在物理环境中导航。所述方法包括:通过耦合到计算设备的显示生成组件来显示控制用户界面,包括显示与当前围绕机器人的第一物理环境相对应的虚拟化环境,其中所述虚拟化环境是根据从与机器人并置的第一组传感器接收的流环境数据生成和更新的;在显示所述虚拟化环境的同时,检测在所述虚拟化环境中的第一位置插入第一虚拟对象的第一用户输入;响应于检测到所述第一用户输入,根据在所述第一位置插入所述第一虚拟对象来修改所述第一虚拟化环境,其中处于所述第一位置的所述第一虚拟对象使所述机器人在所述物理环境执行第一导航路径,所述第一导航路径是根据第一组预编程的路径规划指令生成的;在所述虚拟化环境中的所述第一位置显示所述第一虚拟对象以及所述机器人在物理环境中执行所述第一导航路径的同时,检测第二用户输入,包括检测通过触觉使能输入设备指向所述第一虚拟对象的第一移动输入;响应于检测到所述第二用户输入:根据所述第一移动输入在所述虚拟化环境中将第一虚拟对象沿着第一移动路径移动到第二位置,其中,所述第一移动路径收到所述虚拟化环境中一个或多个模拟表面的约束。其中,位于所述第二位置的所述第一虚拟对象使所述机器人在物理环境中执行根据所述第一组预编程路径规划指令生成的经修改的导航路径。
根据一些实施例,一个计算系统包括一个或多个处理器,存储器以及一个或多个程序;所述一个或多个程序被存储在所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述任何方法的操作的指令。根据一些实施例,一种非暂时性计算机可读存储介质在其中存储了指令,所述指令在由具有一个或多个处理器的计算系统执行时使所述计算系统执行上述任何方法的操作。根据一些实施例,一个计算系统包括用于执行上述任何方法的操作的装置。
本申请描述了所公开的系统和方法的其他优点,和/或根据本文提供的公开内容,对于本领域技术人员而言是明显的。
附图说明
为了更好地理解所描述的各种实施方式,应当结合以下附图参考以下具体实施方式,其中,在整个附图中,相同的附图标记指代对应的部分。
图1是根据一些实施方式的示例性混合主动式机器人控制环境。
图2是示出根据一些实施方式的包括混合主动式机器人控制环境的示例性结构框图。
图3示出了根据一些实施方式的用于在混合主动式机器人控制环境的远程地点上进行实时视觉和触觉渲染的示例性处理流水线。
图4示出了根据一些实施例的采用力着色的代理更新方法。
图5示出了根据一些实施例的针对摩擦的代理更新。
图6示出了根据一些实施例的交互式区域生长二维分割方法的示例性处理流水线。
图7A-7C示出了根据一些实施例的影响机器人路线规划和操作的触觉标记和虚拟对象的各种示例。
图8是根据一些实施例的提供混合主动式机器人控制方法的流程图。
图9是根据一些实施例的从流表面执行交互式对象分割的方法的流程图。
图10是根据一些实施例的提供混合主动式机器人控制的方法的流程图。
图11是示出根据一些实施例的示例性机器人的框图。
图12是示出根据一些实施方式的示例性服务器的框图。
图13是示出根据一些实施方式的示例性用户侧设备的框图。
在所有附图中,相同的附图标记代表相应的部分。
具体实施方式
本公开根据各种实施例提供了混合主动式机器人控制的系统和方法。
混合主动式机器人控制具有优于远程操作和使用预编程指令的全自动机器人控制的优势,这是由于它在远程人类操作员的间歇帮助下具有对新情况的灵活性和实时适应性。一方面,机器人被编程为根据通过车载传感器和/或通过网络收集的环境输入执行各种低级任务或中级任务,另一方面,根据场景的实际实时视觉和触觉渲染,人类用户可以基于从与机器人并置的传感器接收的流式RGBD数据,在合适的时间通过修改感知到的环境输入进行间接干预。通过触觉使能输入设备提供给用户的触觉反馈允许用户通过触觉光标探索、触摸和体验场景,或者通过用户控制的虚拟对象与场景之间的模拟物理交互来与场景进行交互。触觉使能混合主动式远程机器人控制的灵活性和适应性使得所述系统可以用于对人类用户而言过于繁琐、费力和/或危险的许多情况,和/或对于完全自动机器人来说过于复杂而迅速变化的情况。另外,可以根据实际情况实时调整用户干预的程度,从而进一步提高了系统的性能和适应性。
以下是一些示例场景,其中,触觉使能的混合主动式远程机器人控制系统和方法比传统的系统更具优势。
在一个示例中,在照顾偏远的流行病地区的现场医院中的患者时,机器人可以帮助照顾传染性很强的患者。简单的任务例如在病人之间移动以检查其生命体征,在预定的时间向病人送药物和水,清除脏的床单,清理地板或床头柜上的垃圾等。由于现场医院病房的条件各异,基于机器学习和预编程的自动机器人的人工智能在这种情况下可能无法很好地工作(例如,由于缺乏类似于现场医院病房的训练样本,并且缺乏足够的时间来训练和完善机器人的决策程序)。同时,普通医院的工作人员和医生忙于日常工作,可能没有足够的体力和/或注意力使用远程操作控制模式远程控制机器人。在这种情况下,带有触觉反馈的混合主动式远程机器人控制尤其有用。它依赖于机器人现有的程序来进行经过良好训练和编程的低级任务(例如,沿着无障碍路径导航到已识别到的目标,规划并执行一条路径以避免在其视野中已识别的障碍,并抓取并放下已识别的目标对象),这还可以从人类用户的帮助中获益,帮助他们确定场景中的哪些对象是目标、障碍、通道和/或接近目标和/或避免可能的障碍的最佳路线。
在另一个示例中,对于帮助老年人和管理家务的家用机器人,可以将相同的定制机器人运送并交付给不同的家庭,并且预编程的操作和导航指令可以很好地用于标准化的任务和房间布局,例如扫地,擦拭工作台面,从垃圾桶中取出垃圾等。但是,当聚会结束后房间有乱扔的垃圾时,或者家庭成员在房子周围随机留下各种物品时,或者当有孩子或宠物进出房间时,标准的预编程指令所提供的有限的图像处理和决策能力将不足以正确表征和处理这些高度变化的环境输入。此外,将相同的未定制机器人运送到不同的房屋(例如,具有不同外观和布局,不同程度的组织和清洁要求以及对意外错误和机器人与环境之间的碰撞具有不同敏感性的房屋),触觉使能的混合主动式远程机器人控制允许人类用户定制提供给未定制机器人的控制和干预的数量和类型,以使机器人在其实际定制环境中执行定制任务。在一些实施例中,人类指导历史是随时间收集的,这使得未定制的机器人可以利用历史来通过机器学习和其他人工智能训练方法进行自我训练,从而在每个家庭中变得越来越自动。
在另一个示例中,在工业制造环境中,体力劳动很大程度上被计算机控制的机器和自动机器人取代。然而,由于任务不频繁和/或对机器误差和事故的高度敏感性,某些任务仍然是手动驱动的。对于不常见的任务,将机器人设计和编程为专门执行这些任务在经济上是不可行的,并且由于每个任务的需求何时出现是不可预测的,因此很难知道何时应部署那些特别设计的机器人。此外,由于操作环境中有昂贵的设备、危险的化学药品和/或操作环境中的高度敏感的机械或测量设备,因此完全自动化的机器人在没有人工监督的情况下太不可靠,因此无法部署和使用。在这种情况下,触觉使能的混合主动式远程机器人控制系统会利用人类用户实时提供高级指导,并构建和指导机器人的低级导航和操作功能,从而使机器人能够在高度敏感的环境中执行这些极罕见和/或多样化的任务时,有足够的指导原则和足够的余量来解决机器误差。
在无数示例场景中,例如在设计、制造和维护成本、易于编程、灵活性和适应性以及易用性方面,触觉使能的混合主动式远程机器人控制将优于传统的远程操作或全自动机器人。当人类操作员直接(例如,使用虚拟指针)或通过虚拟对象与虚拟化环境交互时通过触觉使能输入设备提供给人类操作员的触觉反馈允许用户更准确地评估机器人的物理场景,并且更准确地通过更改、标记或增加其环境输入为机器人提供指导。
在各种实施例中,如本文所述,触觉使能的混合主动式远程机器人控制系统的各个特征或特征的组合将进一步实现上述优点和/或提供将被更详细地阐述或将被阐述的附加优点,并且这些优点对于本领域技术人员明显的。
现在将详细参考本发明的实施方式,其示例在附图中示出。在下面的详细描述中,阐述了许多具体细节以便提供对所描述的各种实施方式的全面理解。然而,对于本领域的普通技术人员来说,显然可以在没有这些具体细节的情况下实践各种所描述的实施方式。在其他情况下,没有详细描述公知的方法,过程,组件,电路和网络,以免使实施方式的各方面有不必要的不清楚。
还应理解,尽管在某些情况下,术语“第一”,“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离各种所描述的实现方式的范围的情况下,第一用户界面可以被称为第二用户界面,类似地,第二用户界面可以被称为第一用户界面。第一用户界面和第二用户界面都是用户界面,但是它们不是同一个用户界面。
在本文中对各种所描述的实施方式的描述中使用的术语仅是出于描述特定实施方式的目的,并不旨在进行限制。如在各种所描述的实施方式和所附权利要求的描述中所使用的,单数形式“一”,“一个”和“所述”也旨在包括复数形式,除非上下文另外明确指出。还应理解,本文所用的术语“和/或”是指并涵盖一个或多个相关联所列项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”规定了所述特征,整数,步骤,操作,元件和组件的存在,但不排除存在或增加一个或多个其他特征,整数,步骤,操作,元件,组件和/或其组。
如本文中所使用的,术语“如果”解释为意指“何时”或“在……时”或“响应于确定”或“响应于检测到”或“根据确定”中的某一个取决于上下文。类似地,“如果确定”或“如果检测到[所陈述的条件或事件]”被解释为意指“在确定时”或“响应于确定”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[陈述的条件或事件]”或“根据确定检测到[陈述的条件或事件]”中的某一个具体取决于上下文。
应当理解,“远程控制”可以指的是对诸如因特网或组织或家庭网络内的内联网之类的有线或无线网络的控制,人类用户提供输入所在的确切距离或位置没有特别的限制,并且本申请的范围也不受此限制。
还应理解,尽管术语“用户”,“人类操作员”,“管理员”,“技术员”,“人”等可用于指代在本文所述的某些特定情况下执行动作的一个或多个人,但是这些指代是指相对于执行这种动作的一个人或多个人,本申请的范围不限于此。
图1是根据一些实施方式的一个示例性混合主动式机器人控制环境100。
在环境100中,机器人102位于第一个位置(例如本地地点104)。所述机器人102或所述本地地点配备了一组传感器106,用于捕获本地地点的视觉和深度数据(例如光探测和测距(LIDAR),或捕捉场景中的RGB彩色图像数据和相应深度数据的RGBD相机)。可视区域是所述一组传感器的视场内的区域。在一些实施例中,所述传感器106相对于整个场景的位置是固定的。在一些实施例中,所述传感器106被固定在所述机器人上,并且当所述机器人在本地地点的物理环境内移动时,所述传感器的视场将改变。所述机器人具有机载处理能力,可以执行低级功能,例如移动、抓取、平移和旋转被抓取的物体,以及在移动过程中可以选择地避开障碍物。在一些实施例中,机器人具有机载处理能力以执行中间级别的任务,例如折叠、清扫、擦拭、按压、开/关门、摇动、搅拌、轻敲、装载/卸载、分类等。机器人102被设计和预编程为独立执行(无需人工干预)的任务类型是针对特定应用场景量身定制的。例如,家用机器人被编程为具有如下能力:在机器人明确识别目标区域时对目标区域执行扫地和拖地,并在机器人明确识别出垃圾物品以及通往垃圾箱的路线是畅通无阻的并且未被其他未识别的物体阻挡时拾起垃圾并将其送到垃圾箱。所述机器人102和所述一组传感器106进一步配备了具有足够带宽的网络通信功能,以传输在本地地点收集的RBGD数据,并从远程操作员108和/或服务器110处接收控制指令。
在本地地点,各种物理对象、物理边界、物理表面、物理路径和物理通道存在于不同位置。不同的物理对象、物理表面、边界、路径、通道也可能在外观、形状、位置和状态上发生变化。例如,窗帘可能是打开的或关闭的,或者在一阵风中摇摆;门可能是打开的或关闭的,液体溅洒可能会逐渐散布在地板上,患者可能会改变姿势,宠物可能会四处走动等。物体、边界、表面、路径和通道的物理特征包括形状、大小、表面纹理、重量、摩擦力、柔韧性、弹性、可塑性、对触摸或冲击的响应(例如,断裂、移动、有或没有恢复能力的变形,或固定不动)等。被识别为目标(例如,正在运送的物品的接收者或容器、要拾取和/或移动的物品、要清洁的区域等),障碍(例如,家具、宠物、墙壁等),要绕开的东西(例如水坑,地板上的玩具、电线、敏感设备、昂贵的家庭装饰品等),或者在机器人正常导航运动过程中可以被打翻,推开,打开或穿过的东西(例如,窗帘、门、球、地毯等),和/或仅能承受某些动作,而不能承受其他动作的物品(例如可以扫过地毯并用吸尘器吸尘,但不能擦拭)等。
在远程地点105处,诸如显示器、投影仪、平视显示器之类的显示生成组件112用于显示由所述传感器组106捕获的物理环境的虚拟版本。从传感器组106流传输的图像和深度数据用于生成点云或物理环境的其他三维表示形式(例如,包括虚拟表面和对象的表示的模型)的物理环境的虚拟版本。这样,通过显示生成组件112在远程地点105上视觉呈现的物理环境的虚拟版本基本同时对应于本地地点的物理环境的状态。
除了显示生成组件112之外,一个或多个输入设备(例如,触敏表面,诸如触敏遥控器,同时也是显示生成组件的触摸屏显示器,诸如鼠标、操纵杆、操纵杆控制器和/或跟踪用户的一个或多个特征(例如用户的手)位置的相机)被人类操作员108用来提供输入和指令,这些输入和指令将被用于控制机器人102。一个或多个输入设备包括触觉使能输入设备114(例如,三维触觉使能指向设备、触觉使能手套等),所述触觉使能输入设备根据在虚拟化环境中的与通过输入设备提供的当前移动和位置输入对应的位置处发生的模拟物理特性和物理交互,来生成力、运动和/或反馈到人操作员的手中的纹理。例如,当经由输入设备114提供的移动和位置输入对应于沿着虚拟化环境(所述虚拟表面对应于本地地点104处的地板)中的模拟表面的运动时,在触觉使能输入设备114上生成触觉反馈将会在用户手中引起与物理地板的摩擦、质感和硬度相对应的触觉。当经由输入设备114提供的移动和位置输入对应于移动至地板边缘并爬上邻接墙壁时,在输入设备上提供的力反馈将告知用户地板和墙壁之间的物理结构关系。当经由输入设备114提供的移动和位置输入对应于在砾石路径上的运动时,在输入设备114上生成的触觉反馈将允许用户获得机器人是否将能够在砾石路径上导航或由于砾石路径的不平坦而摔倒的感觉。实时触觉反馈与本地地点的虚拟化环境的视觉呈现相结合,使人类操作员可以准确地体验和评估场景,并为机器人的导航和操作提供更准确、更谨慎的指导。物理世界的虚拟表示与场景交互过程中提供的触觉反馈相结合,产生了一种“混合现实”的感觉,因为场景在传统的“虚拟现实”意义上既不是纯粹的“虚拟”(例如,它紧密地反映了物理环境的物理特征(例如,在几何形状和材料属性方面),也没有反映传统的“增强现实”意义上的“现实”(例如,因为它不是物理环境的视觉图像,而是结合了RGB图像数据和相应深度数据的计算表示形式。
在一些实施例中,远程地点处的输入设备还可选地支持远程操作,并且人工操作可以在任何时候针对特定的困难或复杂任务临时地切换到远程操作模式。在其他时候,人类操作员可以通过不提供任何导航输入或对由机器人程序逻辑处理的虚拟化环境输入的更改来允许机器人完全自动运行。
在一些实施例中,人类操作员108使用触觉使能输入设备114来与虚拟化环境中的虚拟化表面和/或对象进行交互,并接收相应的触觉反馈。基于所述触觉反馈,用户可以选择所述虚拟化环境中的位置作为对象分割的起始位置。借助于用户输入的分割更加准确并且更不容易出错。在一些实施例中,虚拟化环境中的一些视觉特征是照明和阴影的伪像和/或表面上的装饰图案。在没有实时人工协助的情况下,对于纯粹的基于计算机的对象分割方法,这些很容易转移注意力,从而导致结果不准确。借助实时人工指导,这些三维视觉干扰不太可能干扰三维对象分割,因为对象分割将锚定在操作员识别的兴趣点周围并辅以相应的深度数据。
在一些实施例中,人类操作员108使用触觉使能输入设备将一个或多个虚拟对象(例如,虚拟对象116)插入到虚拟化环境中。人类的操作可以通过操纵虚拟化环境中的虚拟对象来与虚拟化环境交互,例如沿着表面移动虚拟对象和/或将虚拟对象推向虚拟化环境中的另一个表面或对象。当在虚拟化环境中虚拟对象沿着表面或物体移动或推向表面或物体(虚拟物理对象和虚拟对象)时,虚拟对象可以被赋予特定的形状、大小和表面特性,从而导致在触觉使能输入设备114上向人类操作员提供不同的模拟触觉反馈。触觉反馈是根据虚拟化环境在交互位置的物理特性基于物理模拟产生的。
在一些实施例中,虚拟对象可以承担不同类型的角色,这些角色以不同的方式改变虚拟化环境,从而以不同的方式影响机器人的导航和操作决策。在一些实施例中,第一类虚拟对象可以充当在场景中静止或移动的虚拟化物理对象上的保护罩。例如,将保护性圆顶放置在小孩或宠物的位置,并在虚拟化环境中与小孩或宠物一起移动。在一些实施例中,第二类虚拟对象可以用作覆盖物理对象存在的指示符,所述指示符通常被机器人视为障碍或障碍物。例如,机器人将把挡住门道的窗帘视为障碍,并在窗帘位置放置一个作为通道的虚拟对象,使机器人可以忽略窗帘的存在并在导航中推动窗帘通过。在一些实施例中,第三类虚拟对象可以用作在虚拟化环境中测量虚拟化的物理对象的测量辅助和/或提供更精确的路线引导。例如,用户可以将虚拟对象的第一锚点放置在地板与两个相邻墙相接的第一转角处(例如,用户将通过触觉使能输入设备114触摸场景和接收触觉反馈了解到转角的位置),然后沿着地板和其中一面墙之间的边缘延伸虚拟对象,直到到达另一转角为止。虚拟物体的尺寸将告知用户房间沿墙的尺寸。在另一个示例中,用户需要确定场景中的两个物理对象之间是否有足够的空间供机器人以足够的安全距离通过。由于很难在视觉上准确地做出此确定,因此用户可以放置一个与机器人尺寸相同并加上附加间隙的虚拟对象,并且用户可以尝试在虚拟化环境中的两个物理对象之间拖动虚拟对象,此交互的物理模拟将通过触觉使能输入设备向用户产生触觉反馈,即虚拟对象是否已被场景中的两个对象阻挡。用户可以根据触觉反馈确定一条替代路线或规划其他任务(例如,请求机器人先移动一个对象)。在另一个示例中,如果在烤箱和机器人之间需要一米的距离,则用户可以放置一个1x1m2的虚拟立方体(在靠近烤箱的地板上),然后推动虚拟立方体,直到将其推向虚拟烤箱为止(例如,当虚拟场景中虚拟立方体与虚拟烤箱接触时,用户会感觉到虚拟立方体的阻力,并且当机器人规划其路线时,虚拟立方体将用作烤箱和机器人之间的虚拟墙)。在一些实施例中,第四类虚拟对象可以是机器人在到达选定目标(例如,场景中的指定虚拟对象或虚拟物理对象)之前应到达的一系列路标。当用户沿着场景中的一个或多个虚拟表面移动指针对象118并通过触觉使能输入设备114进行模拟触觉反馈时,用户可以选择沿移动路径标记一个或多个点,作为机器人102遵循的导航。根据环境的实际物理特征(例如,结构,大小,纹理等)生成的带有触觉反馈的路线导航在大多数情况下对于机器人来说更准确且更易执行。例如,当用户将他/她的手指或手向场景中的目标对象拖动时,用户将遵循阻力最小的路径,并且机器人将容易遵循所述路径。在没有这种触觉反馈的其他类型的界面中,用户可能必须仅根据视觉信息绘制线条,并且不考虑路径的表面纹理、坡度等。
除了与机器人102并置的设备和与人类操作员108并置的设备之外,触觉使能的混合主动式机器人控制系统还包括中央计算设备120(例如服务器110),所述中央计算设备120处理与视觉和触觉数据处理和渲染相关的大量计算任务,以及生成中间指令和工作流,以缩小从操作员108接收的高级指令和环境输入与可由机器人102执行的低级指令之间的差距。中央计算设备120通过一个或多个网络连接到本地地点设备和/或远程地点设备。在一些实施例中,中央计算设备120与机器人102并置(例如,在工业制造应用程序设置中,操作员位于远离机器人和工厂服务器的位置)。在一些实施例中,中央计算设备120与人类操作员108并置(例如,在现场医院应用程序场景中,机器人位于远离医生和医院服务器的位置)。在一些实施例中,中央计算设备120不与机器人102或人类操作员108并置(例如,在家庭辅助场景中,服务器位于远离机器人和操作员的位置)。
在一些实施例中,中央计算设备120使用诸如KinectFusion之类的实时密集表面映射和跟踪技术来处理实时同步定位与地图构建(SLAM)有关的计算。在一些实施例中,基于从本地地点104收集的流图像和深度数据,使用其他实时三维建模方法来生成物理环境的虚拟三维或伪三维表示。中央计算设备120使用KinectFusion进行视觉渲染时,在流式RGBD数据的每个时间步长期间生成点云。在一些实施例中,根据需要,实时的用户导向的对象分割被合并到KinectFusion数据处理流水线中。中央计算设备120还为用户108与虚拟化环境之间的交互执行触觉渲染和物理模拟,例如通过虚拟指针或通过在虚拟化环境中操控虚拟对象。在一些实施例中,虚拟化环境由三维点云表示。在一些实施例中,虚拟化环境由三维网格表示,所述三维网格包括与在物理环境中检测到的物理表面相对应的模拟表面。
在一些实施例中,中央计算设备120包括路径规划器,所述路径规划器基于用户的标记或用户插入的虚拟对象来生成路径。所述路径规划器考虑虚拟化物理环境的特性以及用户对虚拟化物理环境的修改和/或扩充,并根据预编程的路径规划指令生成路径。在一些实施例中,所述路径规划器在机器人上实现。在一些实施例中,所述路径规划器生成预测位置和命令以供机器人遵循。
图2是根据一些实施方式的包括混合主动式机器人控制环境的示例性结构框图。
如本文所述,需要以相当的准确度实时执行机器人操作的三维物理空间表示的重建,以便用户提供适当和及时的干预。为了促进实时三维探索、分割、标记以及与环境的交互,需要结合环境的可视化实时执行触觉渲染和物理模拟。由于本质上需要传输和处理的视觉和深度数据非常庞大,因此需要对网络延迟进行管理,以便基于这些通过不同延迟的网络通信数据提供平滑、实时的操作和控制。
为了解决以上技术要求,提出了用于混合主动式控制的实时有效且鲁棒的混合现实平台,以实现与流数据的触觉交互。提出了一种基于截断符号距离函数(TSDF)的流表面的触觉渲染方法,以确保与虚拟静态场景的平滑且鲁棒的触觉交互。提出了一种交互式的对象分割方法,可以快速,准确地进行对象分割。在混合现实平台中引入了不同类型的触觉交互,并提出了一种机器人状态预测方法来补偿网络时延。
在一些实施例中,基于融合的方法(例如,KinectFusion)用于执行流视觉和深度数据的定位与地图创建。根据KinctFusion,来自三维相机的流RGBD数据将被融合并保存为截断符号距离函数(TSDF)。KinectFusion可以提供全场景的密集几何体,以实现混合现实。本公开描述了使用包括碰撞检测、代理更新和力计算在内的改进的触觉渲染流水线的KinectFusion生成流表面的视觉和触觉渲染。这种改进的方法在计算上非常有效,并且可以与KinectFusion框架很好地集成。改进的方法对于两个或更多平面的相交边界也可以很好地工作,从而减轻了先前公开的用于这种计算的方法的不稳定性。这在处理包含具有许多相交边界的复杂几何图形的真实场景时尤其重要。当执行对象分割时,改进的方法允许用户与场景中的重建对象表面进行交互,并实时执行分割,而不是通过离线语义分类。在本公开中,使用触觉交互来选择目标对象,使用交互式区域生长方法被用于使用彩色图像和深度图像进行对象分割,并且将得到的标记图像融合到TSDF数据结构中。
如图2所示,示例性的混合现实系统体系结构200包括三层:机器人层202,用户层204和执行层206。
在一些实施例中,机器人层202对应于移动机器人(例如,机器人102)和放置在机器人顶部的一组RGBD 3D传感器(例如,3D相机106)。所述机器人层负责实时收集颜色和深度图像,并将数据发送到执行层206以进行场景重建以及视觉和触觉渲染。所述机器人层中的低级任务执行器执行由执行层206中的控制器发送的控制命令,以执行导航和对象操纵任务。
在一些实施例中,执行层206接收RGBD图像(例如,通过网络从机器人102顶部的RGBD传感器流式传输),并使用KinectFusion模块执行同时定位和地图创建(SLAM)。所述KinectFusio模块在每个时间步长生成一个点云,以在显示监视器上进行视觉渲染。执行层206根据用户要求将对象分割模块与KinectFusion模块相结合,在场景中分割并标记对象。执行层206还包括与触觉渲染(例如,点云的生成)并行执行的用于触觉渲染的单独线程。物理模拟模块处理触觉交互界面用于与场景中的虚拟对象进行交互和/或通过操纵场景中的虚拟对象与场景进行交互的情况。触觉渲染和物理模拟产生触觉反馈数据,所述触觉反馈数据控制由用户(例如,用户108)持有的触觉使能输入设备(例如,输入设备114)。触觉反馈包括位置、运动、力(例如,反作用力、抗压力、抗冲击以及摩擦力)、纹理、振动等,经由触觉使能输入设备(例如,输入设备114)输出到用户的手中。在一些实施例中,执行层206包括路径规划器,除了从图像和深度数据(例如用TSDF或点云表示)推导的虚拟化环境的特征之外,所述路径规划器还基于用户的标记输入和/或放置在场景内的虚拟对象来生成路径。在一些实施例中,执行层206包括控制器模块,所述控制器模块用于生成预测位置和命令以供机器人遵循。在一些实施例中,路径规划器和控制器可选地在机器人层202中实现,并从执行层206接收用户输入数据和环境数据。在一些实施例中,执行层206在中央计算系统120上(例如服务器110)实现。
在一些实施例中,用户层204向用户(例如,用户108)提供所有交互界面并输出。用户可以使用远程操作界面直接操作机器人(例如,直接提供低级命令和指令),也可以使用触觉界面与虚拟化的三维环境互动。在一些实施例中,触觉指导对象分割界面被提供给用户并且仅用于分割。触觉交互界面使用户能够使用触觉输入来体验和实现场景中虚拟对象的放置和移动,并为虚拟对象分配各种类型的角色(例如,目标、通道、障碍物、遮罩、引导、测量等)。触觉标记被用来在场景中的表面上定义路径,或者标记一个或多个路标(例如,虚拟对象和/或虚拟物理对象),以供机器人跟随、接近和/或跟踪。在一些实施例中,虚拟对象的标记和移动在虚拟场景中被实时处理,并且随后机器人在物理场景中被实时处理。虚拟障碍物界面使用户可以将任何形式的几何形状的虚拟对象添加到场景中,然后路径规划器将结合场景的特征并根据虚拟对象的位置和分配的角色以及虚拟对象来搜索新路径。除了触觉反馈之外,视觉渲染还直接或通过虚拟指针或者通过与场景中虚拟对象的交互来间接反映用户与场景的交互。
图3示出了根据一些实施方式的用于在混合主动式机器人控制环境的远程地点上进行实时视觉和触觉渲染的示例性处理流水线。
如图3所示,从与机器人(例如,机器人102)并置的传感器(例如,相机106)接收的RGBD数据302通过网络流传输并提供给中央计算系统120(例如,服务器110)上的图形处理单元302(GPU)。由于KinectFusion应用于密集的映射和定位,则将密集的几何体生成为3D虚拟化环境的流表面。在GPU302中,执行TSDF更新,然后进行碰撞检测,然后进行带有力着色和光线投射的代理更新。所得数据包括点云306和所有触觉交互点(HIP)的代理值308。点云306和代理值308用于显示器(例如,显示器112)上的视觉渲染,代理值308用于触觉使能输入设备(例如,输入设备114)上的力着色。
在本公开中,提出了一种具有力着色的新代理更新方法,所述方法更有效并且保证了在不同平面的相交边界处的稳定渲染。此外,所述方法允许在触觉渲染中添加诸如摩擦和触觉纹理之类的表面特性。
代理更新是基于约束的触觉渲染的关键部分,因为代理不仅用于计算交互点处的作用力,而且还在视觉上呈现给观看者。如果代理更新不稳定且不平滑,则力渲染和视觉渲染将不平滑。之前,已公开的代理更新方法使用基于梯度的方法来查找最近的表面点。如图4所示,左侧的图4(1)显示了触觉交互发生在一个方向急剧变化的表面上的场景(例如,交互作用围绕表面的一个角或两个相交平面的边界进行)。在这种情况下,用户根据先前公开的触觉渲染方法,将触觉交互点(HIP)从hi-1移到hi,并且代理位置从pi-1变为pi。由于在先前公开的方法中,根据HIP,代理始终是最接近的表面点,所以代理经历的位置突然发生了改变。就用户体验而言,用户的手指好像突然“跳”到了表面的另一侧,并且计算出的力急剧改变为几乎相反的方向,这使用户分心,不切实际且令人困惑。
力着色是用于平滑触觉渲染的算法。在本公开中,提出了一种具有力着色的基于TSDF的新代理更新方法。与先前的力着色方法不同,当前公开的方法着重于TSDF数据结构,所述结构可用于所有基于融合的3D重建中。改进的代理更新方法处理了两种情况:
a.如果HIP是交互中与表面的第一个接触,则代理将找到最近的表面点。与之前公开的方法中提出的基于梯度的迭代方法不同,在KinectFusion中将找到最近的表面点的任务集成到光线投射步骤中。这种变化的原因是未考虑表面的可变形性,因此光线投射是在触觉渲染之后执行的。TSDF中逐像素进行射线行进,以生成整个表面的点云。在此过程中,将计算并保存HIP与表面上每个点之间的距离。现在,最接近的表面点查找问题变成了一个在距离数组中找到最小值的并行问题,所述问题可以通过并行缩减来解决,如“SC07,MarkHarris的CUDA高性能计算(2007)”中所公开。在一些实施例中,在光线投射中寻找最接近的表面点需要以下条件:给定起点h:1.平行线:每个像素的对应射线;2.从最小深度出发,过零时停止以获得表面点;3.计算距离d=|s-h|;4.平行缩小以获取最小距离,然后将对应的表面点作为最近的点返回。
b.HIP渗透到表面后,由于HIP会进一步渗透到体积中,因此需要更新后续的代理位置。如图4所示,最近的表面点不适用于这种情况,一种更正确的方法是约束后续代理。在当前公开的方法中,先前的时间步长法线ni-1用于定义切线平面(如图4(2)所示),代理的法线将在每个时间步长中计算。跟踪所述法线就像在物理上跟踪表面上的切线滑行平面。如图4(2)所示,切平面Ti-1被新的代理位置hi“拖动”而附着在表面上。因此,可以将切线平面视为代理的约束平面。首先,将垂直线从hi放到所述约束平面以获得目标位置gi,所述目标位置gi是代理的第一近似值。然后,将使用光线投射步骤中最接近的表面发现(请参见上文第a节中的描述)来找到新的代理pi。所述方法的核心是使用切线平面以物理上可行的方式约束新代理,然后将其细化为最接近的表面点。在一些实施例中,用于具有力着色的后续代理更新的整个过程包括:1.基于法线ni-1,得到切平面Ti-1;2.将垂直线从当前HIP hi放到Ti-1以获得gi;3.使用上述光线投射算法中最接近的表面点查找,并以gi作为第一个点,以计算最终的代理pi。
在一些实施例中,本文描述的改进方法模拟表面特性以产生模拟摩擦力以及纹理表面的不同触觉。在一些实施例中,可以使用已知的摩擦圆锥通过简单的改变来模拟摩擦力。如图5所示,角度α定义了一个从当前HIP hi开始的圆锥。摩擦圆锥与从上一个代理点pi-1切平面形成一个相互作用的圆。在一些实施例中,α=arctan(μ),其中μ是用户定义的摩擦系数。如果前一时间步长代理pi-1在交互圈内(例如,如图5(1)所示),则新代理将直接设置为与以前相同的值:pi-=pi-1。如果先前的时间步长代理pi-1在交互圈之外(例如,如图5(2)所示),则目标位置(近似代理)gi=ci,其中ci是互动圈上最接近pi-1的点。这两种情况分别对应于模拟静摩擦和模拟动摩擦。在一些实施例中,通过使用凸起纹理方法来实现触觉纹理,所述凸起纹理方法可以针对表面上的每个点生成约束以改变法线。
在一些实施例中,交互区域增长2D分割方法用于在触觉使能的用户指导下执行对象分割。为了从重构的三维场景中分割三维对象,提供了触觉使能的分割界面。这样的界面可以实现更灵活的触觉交互,例如触觉纹理、不同对象的材料属性,还可以为机器人抓取任务提供对象位置和方向。先前的许多研究将对象检测和语义分类结合到密集映射中。当前公开的系统旨在为混合主动式控件构建触觉使能的界面,因此,不需要高级语义分割。当前公开的交互式3D对象分割方法不仅高效,而且兼容流行的高级对象语义算法作为输入。
在某些情况下,执行对象分割的直接方法是从3D点云中分割3D对象。也可以使用KD树加快邻居搜索点的速度。但是,这些常规方法花费额外的处理时间。一种替代方法是基于TSDF数据执行分割,并将分割信息保存到TSDF中。
在当前提出的KinectFusion流水线(如图3所示)中,融合深度图像以在每个时间步长进行表面重建。因此,如图6所示,可以提出如下的两阶段算法。在第一阶段,对深度图像和彩色图像进行2D分割。在2D分割之后,生成标签图像Li。在第二阶段,将分割后的图像与深度图像融合到TSDF中(例如,在图3中的TSDF更新步骤中)。通过这种方式,可以将分割无缝地集成到KinectFusion处理中,并减少了总体计算时间成本。此外,分割信息将按权重融合,从而生成可靠的分割结果。
在一些实施例中,在改进方法的第一阶段期间,用户使用触觉化身(例如,虚拟指示器)来“触摸”并标记3D场景中的关注对象。然后,将3D标记(例如其3D坐标)转换为当前彩色图像中的坐标。在下一个时间步骤中,从图像中的标记点开始,通过区域增长方法对像素进行聚类,直到没有像素要添加到标记点的区域为止。所述区域被视为一个聚类,然后将相邻像素与聚类中心之间的距离计算为两个欧式距离的组合,如下式1所示:
d(xi,S)=||I(xi)-I(S)||2+β||P(xi)-P(S)||2 (1)
其中,xi是相邻像素的位置,S是区域的中心。I是彩色图像中像素的CIELAB颜色空间值,被广泛认为对于小的颜色距离感知均匀。P是根据深度图像计算出的3D坐标。聚类中心的值:I(S)和P(S)计算为为所述聚类中所有像素值的平均值。β=m/g是控制区域紧凑性的参数。m是控制紧密度的变量,g是网格间隔。与RGB数据相比,RGBD数据增长的区域提供了更好的对象边界。m的值越大,越强调空间邻近性,集群越紧凑。所述值的取值范围为[1,20],例如,常用的值为10。距离阈值可以由用户根据分割时场景的特征和/或场景中感兴趣的对象来选择。
图7A-7C示出了根据一些实施例的影响机器人路线规划和操作的触觉标记和虚拟对象的各种示例。
在大多数之前的工作中,触觉力反馈用于生成路径导航力、防碰撞力或环境力,以改善高级任务操作的性能。然而,当前公开的系统以不同的方式使用触觉设备。触觉设备被用作远程触摸的3D化身,探索虚拟现实环境并与之交互。触觉界面提供了更灵活的操作,类似于使用“虚拟手”。触觉界面可以干预机器人控制过程,并添加新路径或更改目的地。这些界面不会影响机器人的速度,而只会影响路径和目标点。
在一些实施例中,提供了用于向机器人提供路径导航的触觉标记界面(例如,用户界面700),因为场景中的表面的触觉渲染是实时执行的,并且计算效率高。通过触觉标记界面,用户可以使用HIP触摸场景中的表面(例如地板)以标记机器人要遵循的路径。然后,执行层中的控制管理器将此标记的路径作为输入来调用路径规划。在一些实施例中,标记被保存为订购点集,并且被单独保存在远程服务器中。在一些实施例中,导航被提供给路径规划器作为选项,以供路径规划器根据场景中可用的其他选项来考虑。在某些实施例中,当路径规划器有多个选项可用时,用户的标记相对于路径规划器可用的其他选项被赋予更多的权重或主导权重。通过这种方式,可以在有或没有用户干预的情况下正常使用预编程的路径规划指令,并且机器人控件可以在完全自动的远程操作之间或任何时候的任何时间之间滑动,从而提高了机器人的灵活性和有效性控制。
在一些实施例中,当前公开的系统提供触觉标记界面(例如,用户界面700),所述触觉标记界面还允许用户将一个或多个虚拟对象添加到3D虚拟场景中以间接影响机器人的路径和/或操作。由于触觉反馈可以在不同位置传达场景的绝对物理特征(例如尺寸,纹理、坡度等)以及相对于虚拟物体或机器人的特征,因此更容易使用触觉使能的设备将虚拟对象放置在场景中的所需位置。这使用户可以快速、准确地为虚拟对象找到合适的3D位置或引导用户放置用于向机器人提供路径导航的标记。
如图7A所示,示例触觉标记界面700包括视觉渲染区域702,其显示机器人前面的物理环境的虚拟表示。可视化渲染区域702中表示的虚拟化物理环境可选为点云,所述点云利用从与机器人并置的传感器接收的流图像和深度数据实时动态更新。在一些实施例中,可视化渲染区域702中显示的点已经被分割(例如,使用本文公开的用户辅助区域生长方法),并且与点云中与物理对象相关联的表面和边界已经被标记并且以这种形式直观表示出来。例如,在用户使用触觉使能输入设备探索图像中的地板区域之后,地板从用户指定的点805分割出来。
如图7A所示,一个立方体框已从点云中分割出来,并且在框周围显示了框的轮廓704。用户通过选择轮廓线704并为轮廓线选择“目标”的对象类型,将所述框标记为机器人的下一个任务的目标。例如,通过在选中框的情况下调用上下文菜单,然后从上下文菜单中选择“目标”对象类型。当使用触觉使能输入设备在框的表面上移动虚拟指针705时,触觉使能输入设备提供的触觉反馈传达了框的几何形状(例如,绕过框的邻接平面的交点)。
如图7A所示,用户还在视觉渲染区域702中所示的地板的表面上放置了一系列路标708。例如,用户可以从对象类型选择区域706中选择对象类型“路标”(例如,各种虚拟对象类型的下拉菜单,包括路标、目标、障碍、遮罩、通道、度量等)。然后,用户可以沿着地板表面移动虚拟指针,并且沿着虚拟指针的移动路径选择性地放下一系列路标。触觉使能输入设备上提供的触觉反馈沿着虚拟指针的移动路径传递地板的摩擦和表面几何形状,并且还约束指针的移动路径(例如,指针无法穿过地板,指针移动的平整度和速度受地板的粗糙度限制)。
在一个示例中,所提出的系统提供触觉使能的界面(700),用户可以从该界面选择或指定一个或多个虚拟对象(例如,具有预设尺寸或形状的虚拟对象,例如不同尺寸的球形、圆顶、立方体、圆锥、线条、墙壁、桌子、椅子等),用户可以将其拖动到虚拟场景的3D渲染(例如,视觉渲染区域702)。在一些实施例中,具有机器人的形状和大小和/或其他物理特性的虚拟对象在界面中也是可用的,以供用户拖动到3D场景中。在一些实施例中,用户可以通过在虚拟对象的一侧上设置锚点并在3D场景内的虚拟对象的另一侧上拖动另一个锚点以对其调整大小来选择虚拟对象并在场景内调整其大小。
如图7A所示,用户可以从对象类型选择区域706中选择虚拟对象的对象类型。用户还可以从对象形状选择区域710中选择对象形状。对象形状选择区域显示各种形状的列表,以及供用户绘制自定义形状的选项。在一些实施例中,对象形状选择区域包括用于指定指定形状是实心形状还是空心壳体的选项支持(例如,选择框)。
如图7A所示,用户还可以在表面材料选择区域712和表面纹理选择区域714中指定虚拟对象的表面材料和表面纹理。当用户与虚拟对象交互时或当用户通过操纵虚拟对象与环境交互时,使用表面材料和表面纹理信息来产生提供给触觉使能输入设备的力反馈。在一些实施例中,用户还可以为虚拟对象指定影响涉及虚拟对象的触觉渲染的权重(例如,质量)。在一些实施例中,虚拟对象可以是具有分别对应于不同形状,材料,纹理和/或重量的不同部分的复合对象。
在一些实施例中,如图7A所示,用户界面700还包括暂存区域(staging region)716。用户可以将默认形状拖到暂存区域716中,并调整形状的尺寸和方向。用户还可以通过将多个对象形状拖到暂存区域中并调整形状的相对大小、位置和方向来组成复合对象。一旦用户对暂存区域716中的对象的大小、形状和方向感到满意,则用户可以将其拖放到视觉渲染区域702中(例如,放到场景中的地板上)。
在一些实施例中,用户选择虚拟对象放到3D场景中后,用户可以将虚拟对象放到场景中的特定位置的场景中之前,通过触觉使能输入设备来探索3D场景。例如,在用户选择将圆顶放入场景中之后,圆顶的轮廓就会显示在3D场景中,围绕着用户的3D化身(如虚拟指针)。用户可以通过触觉使能输入设备在场景中的各个表面周围拖动3D化身,以体验场景的坡度、纹理和尺寸。当用户标识了合适的位置时,用户可以提供输入以将虚拟圆顶放置在所述位置。如图7B所示,虚拟圆顶718已放入用户界面700的可视化渲染区域702中所示的虚拟化环境中。
在一些实施例中,如果用户已经移动到不能容纳虚拟圆顶的区域中(例如,对于虚拟圆顶的尺寸而言空间太窄),或者如果所述位置已经被一个物体所占据,如果所述物体太大而无法放置在虚拟圆顶下,则在3D场景的视觉渲染上和/或通过触觉使能输入设备上的触觉,在视觉上向用户提供警告反馈(例如,视觉警报)。在一些实施例中,不同类型的虚拟对象关联着不同类型的限制,即哪些类型的空间或空间的物理特征与虚拟对象的放置兼容。例如,一个实心对象只能放置在一个大于所述实心对象尺寸的空白区域内。而壳对象可以放置在大于壳对象尺寸的空白空间内,或者放置在小于壳对象内部尺寸的物理对象所占据的空间内。同样,用户可以在将虚拟对象放置到场景中之前对其方向进行调整。例如,当用户尝试在3D场景中将虚拟沙发拖过门廊时,虚拟沙发将被阻挡,直到用户将虚拟沙发旋转到其侧面为止。当用户想要确定机器人可以在提供正确的指令(例如,先旋转再推)的情况下制作一个相同尺寸的沙发时,这是很有用的。
在一些实施例中,除了在虚拟对象的位置处的触觉渲染之外,还可以执行物理模拟。用户可以将虚拟机器人拖动到3D场景中的斜坡上,并体验表面的坡度、表面摩擦以及机器人重量的某些表示形式(例如,机器人在爬坡时的电力使用情况的可视指示)。将虚拟机器人放置在表面上时,物理模拟可能会显示机器人停留在原地、或沿着斜坡下滑、或根据斜坡的陡峭程度而摔倒。
在一些实施例中,当将虚拟对象放置在与真实世界中的物理表面相对应的3D场景中的模拟的物理表面上时,在前几个时间步长中定位并保存地平面。可以为虚拟对象分配一个或多个角色,例如障碍,遮罩、墙壁、目标、通道、安全垫等。路径规划器将重新生成新路径,以通过添加虚拟对象来适应虚拟场景的更改。例如,障碍类型虚拟对象的插入可能导致路径规划器弯曲原始路径,以使机器人绕过障碍物。在3D场景中,插入一个遮罩类型的虚拟对象,将其放置在物理对象上并随所述物理对象一起移动,路径规划器可确保机器人始终位于遮罩外部。墙壁插入意味着路径规划器将允许机器人在墙壁的任一侧,但不能越过墙壁移动。目标类型虚拟对象的插入使路径规划器修改路径以接近目标虚拟对象。在一些实施例中,当多个虚拟对象被指定为目标对象时,用户可选地经由触觉标记界面来分配目标对象的顺序,使得路径规划器以指定的顺序接近目标对象。在一些实施例中,当没有明确指定顺序时,路径规划器根据在预编程的路径规划指令中设置的预定义标准来规划路径(例如,基于将虚拟对象插入场景的顺序,基于到达所有目标对象的最短路径,基于虚拟对象大小的增加/减少等)。在一些实施例中,将目标类型的虚拟对象放置在3D场景中的物理对象或物理对象的一部分上,使得当指示机器人操纵虚拟对象(例如,抓取并举起、抓取并旋转)时,物理对象或虚拟物体所在位置的物理对象的一部分将由机器人进行相应的操作。在更具体的示例中,将目标虚拟对象放置在旋转门的边缘上,当机器人接近旋转门的边缘,并根据从路径规划器和控制器接收的指令推动目标虚拟对象时,旋转门将打开。如果没有将此类虚拟对象放置在旋转门的边缘或将虚拟对象放置在旋转门的中间,则机器人将不会接近旋转门(例如,将其视为障碍物)或撞到旋转门(例如,由于无法通过推入旋转门的中部而不是旋转门的边缘而无法将其打开)。在上面的示例中,用于生成路径规划和对象操作指令的预编程算法和逻辑保持不变,并且由于机器人接收到的环境信息的差异(例如,虚拟对象的存在/位置带来的差异),发送给机器人的结果指令也有所不同。在某些实施例中,在3D场景中一个虚拟物理对象的位置插入一个通道类型的虚拟对象,会导致路径规划器忽略物理对象作为路径规划中的障碍。例如,路径规划者将按照其预先设置的避障指令,避免穿过被窗帘遮盖的门道;然而,当用户通过触觉标记界面将通道型虚拟物体放置在窗帘上时,路径规划器在规划通往门的另一侧的目标物体的路径时将不再将窗帘视为障碍物。如果窗帘碰巧部分地挡住了机器人,则机器人将在执行路径时推动窗帘穿过门道(例如,将闭合的或半开的窗帘推开以使其通过机器人)。在一些实施例中,放置在物理对象上的通道型虚拟对象的插入与3D场景中的物理对象一起移动,使得无论物理对象的位置变化,路径规划器都不会将物理对象视为障碍。例如,路径规划器将按照预先编程的避障指令避开放在地板上的小橡胶球;然而,当用户通过触觉标记界面将通道型虚拟物体放置并附着在虚拟橡胶球上时,路径规划器在规划朝向场景中通往目标物体的路径时,将不再将橡胶球视为障碍物。如果橡胶球恰好在所述路径上,机器人在执行路径时将靠近并推动橡胶球(橡胶球将滚开或被推着前进)。
在一些实施例中,触觉标记界面允许用户操纵已经放置在虚拟化的3D场景中的虚拟对象,并通过触觉使能输入设备向用户提供触觉反馈,所述输入设备通过虚拟对象模拟3D环境的反应。
在一些实施例中,在将虚拟对象放置在虚拟化物理环境中的表面上或紧贴表面之后,用户可以与虚拟对象进行交互,并根据用户与虚拟对象进行交互的方式来体验不同的触觉反馈,虚拟对象与虚拟化物理环境之间的空间关系,以及虚拟对象与虚拟化物理环境的物理特征。例如,可以在虚拟化的物理环境中将虚拟对象放置在地板表面上,并在地板表面上推动或拖动虚拟对象;触觉使能输入设备提供触觉反馈,模拟虚拟对象与地板表面之间的静态和动态摩擦。在另一个例子中,虚拟物体可以被推到一个表面上(例如,侧侧身贴着墙或其他物体,或向下贴着地板等),触觉使能输入设备提供模拟表面对虚拟物体的反作用力的触觉反馈。
在图7B中,提供了一些示例来说明通过将各种类型的虚拟对象(例如,圆顶718)放置到虚拟化的物理环境中对路径规划的影响。图7B(a)示出了机器人102到达目标物体704所要采取的路径720-1(例如,阻力和距离最小的路径)。路径720-1是由实现在机器人或服务器上的路径规划器根据提供给路径规划器的环境信息预编的路径规划指令生成的。图7B(b)示出了在虚拟化环境的地板上放置一系列路标708时机器人102的路径720-2。路径720-2首先经过一系列路标,然后转向目标对象704。提供给路径规划器的环境信息从图7B(a)中的场景更改,并导致规划的路径发生更改。图7B(c)示出了圆顶形状的虚拟对象718-1被放置在场景中,并且圆顶为“障碍”对象类型。在向目标704移动时,生成路径720-3以避开障碍718-1。即使在物理环境中不存在虚拟圆顶,也可以修改提供给路径规划器的环境信息以包括圆顶的存在,因此,路径规划器生成了一条围绕圆顶的路径。图7B(d)示出了圆顶形的遮罩718-2被放置在围绕房间移动的宠物上方。圆顶形遮罩718-2实时跟随宠物的运动,并且路径规划器根据圆顶遮罩718-2的位置来调整路径。环境信息不断随着宠物的位置更新(例如,宠物的几何中心),但是实时性大大简化了,因为即使宠物的形状不断变化(例如,移动、奔跑、滚动等),宠物的形状细节也会被替换为圆顶遮挡罩的形状,路径规划器将规划一条避开圆顶的路径,而不是宠物。图7B(e)示出,在地板上存在裂缝722,这似乎是路径规划器的障碍,因为地板的连续性在所述裂缝处被破坏。然而,当将通道圆顶对象718-3放置在裂缝722的一部分上时,提供给路径规划器的环境信息被修改,并且地板表面中的间隙被缩小,路径720-5穿过裂缝上方的圆顶,并直接朝目标704前进。图7B(f)示出,在通往目标的途中存在一些障碍物724。用户使用圆顶形状的测量对象718-4来穿过障碍物之间的间隙。如果任务是将目标移动到其他位置,则选择机器人和目标中的较大作为者测量对象718-4的尺寸。在一个位置,测量对象718-4被卡住(例如,用户将无法穿过),而在另一位置,测量对象可以毫无问题地通过。因此,在通过将圆顶测量对象718-4推向两个开口来尝试两个位置之后,用户可以将狭窄开口处的对象类型重置为障碍物,或者将宽开口处的对象类型重置为通道,使机器人通过宽口移动到目标。路径720-6是基于提供给路径规划器的修改后的环境信息生成的。
图7C示出了根据一些实施例的虚拟对象(例如,立方体726)在虚拟化物理环境中的移动。如图7C所示,在虚拟化的物理环境中,虚拟对象沿着地板被推动,并最终紧靠盒子704。当用户推动虚拟对象时,虚拟对象的移动受到虚拟化环境中地板表面的几何形状的限制,并且当将虚拟对象推向场景中的物理盒子时,虚拟对象的移动停止。触觉使能输入设备提供的力反馈与虚拟物体沿着地板表面被推时虚拟物体与地板表面之间的摩擦力相对应,以及与虚拟物体被推向物理盒子704时物理盒子产生的反作用力相对应。
在一些实施例中,当前提出的混合主动式远程机器人控制系统包括在执行视觉和触觉渲染,路径规划和/或物理模拟时考虑网络时延的机制。在一些实施例中,基于延迟的调整是由检测到超过阈值量的延迟(例如,连续监视网络时延)或当用户在看到网络时延的影响后提出调整延迟的请求时自动触发的(例如,意外的和/或不可预测的机器人运动,或机器人的抖动运动)或通过其他时延监视系统的网络时延的指示值(例如100ms或200ms)。
在混合主动式远程机器人控制的机器人的路径规划和操作控制中,延迟是重要考虑因素,其原因包括:(1)需要通过网络传输的图像和深度数据量非常大;(2)用户干预不是连续的,而是间歇性的和不定期的,并且机器人有很多时间执行自动运动。为了适应这些特性,系统的控制体系结构将分布在机器人层和执行层中。
在一些实施例中,执行层(例如,执行层206)包括任务计规划器,路径管理器,路径规划器和原始管理器。机器人层(例如,机器人层204)包括轨迹规划器,控制器和机器人。用户使用触觉界面来调用高级任务,包括在3D场景中虚拟对象的触觉标记位置或插入,以及与虚拟对象的触觉交互。这些操作将传递给任务规划器。任务规划器是与规划管理器进行沟通的高级经理。它可以将任务解析为微动作规划,并接收重新规划请求。规划管理器可以从路径规划器请求并接收两点之间的路径。在目前公开的框架中,在一些实施例中,路径生成基于快速探索随机树算法。在混合主动式控制方案中,人与人之间的交互在原始管理器模块中发生。低级原始管理器从规划管理器接收路径信息,例如路标和微动作。它将接收规划的路径以及触觉标记路径,并为机器人运动生成目标位置。在机器人层中,轨迹规划器监视并控制朝向目标位置的轨迹。触觉标记路径提供标记点xm,规划路径提供了路径点xp。通过选择所述点与当前机器人位置之间的最大距离,从这两点中选择目标位置xg。
网络延迟可能会影响KinectFusion的同步定位和地图构建。为了补偿延迟,提出了一种生成预测目标位置的方法。假设机器人在第i个时间步长的当前速度为vi=(ai,bi,ci),则预测下一个速度的一种方法是计算最后几帧的速度和加速度。大多数卡尔曼滤波器都基于这种线性形式的经验模型。用于预测下一个速度vi+1的通用线性模型为公式2:
ai+1=α0ai+α1ai-1+…αmat-m
bi+1=β0bi+β1bi-1+…βmbt-m
ci+1=γ0ci+γ1ci-1+…γmct-m (2)
对于路径点的给定时间序列,将矩阵V定义为公式3:
令v为预测位置(vm+1,vm+2,…vi+m+1,…)T。现在的问题是求解并获得三个参数向量α,β和γ。这些线性问题的一般解决方案如公式4所示:
α=(VTV)VTa
β=(VTV)VTb
γ=(VTV)VTc (4)
所述线性预测模型在每个时间步长,都会生成新参数,然后预测下一个目标位置xg i+1=xg i+vi+1t,,其中t是回合时间延迟。所述目标位置将被发送到轨迹规划器,以进行机器人的低层自动控制。
图8是根据一些实施方式提供混合主动式机器人控制的方法800的流程图。提供混合启动机器人控制的方法800在具有一个或多个处理器和存储器的计算设备处执行(802)。所述计算设备可通信地耦合到机器人,并且被配置为根据第一组预编程的路径规划指令为机器人生成规划的路径。所述机器人被配置为根据从计算设备接收的规划路径和本地存储的路径执行指令在物理环境中导航。在一些实施例中,计算设备是与机器人并置的服务器(例如,使用相同的局域网或在相同的房间中)。在一些实施例中,计算设备是服务器,其远离机器人,并且通过广域网与机器人通信,并且在通过网络与机器人通信时可能会遇到网络时延。在一些实施例中,计算设备是与操作员并置的计算机,其促进了用户与机器人之间的远程交互。
根据方法800,计算设备显示(804)控制用户界面(例如,控制界面700,其包括虚拟化场景的图形渲染702(例如,显示基于从机器人位置的传感器收集的图像和深度数据识别的点云或表面,例如,以与实质上实时更新相对应的帧率)和用于标记虚拟化场景并将虚拟对象插入虚拟化场景的各种用户界面控件(例如,图7A中用户界面700中的706、710、712、714和716中的控件),经由显示生成组件(例如,显示器、平视显示器、投影仪、触摸屏显示器等)耦合到计算设备。控制用户界面在与当前围绕机器人的第一物理环境相对应的虚拟化环境中显示根据用户的移动输入(例如,由鼠标、操纵杆、触摸板、支持触觉的指向设备等提供)在虚拟场景中移动的虚拟指针对象(例如,虚拟指针705)(例如,虚拟手、光标、箭头形位置指示符等),其中虚拟化环境是根据从与机器人(例如,机器人102)并置的第一组传感器(例如,RGBD相机106)接收的流环境数据(例如,具有每秒的视频帧速率(例如,每秒10、12、24帧)的流RGB图像数据和相应的深度数据)生成和更新的(例如,第一组传感器可以固定在机器人上(例如,在机器人的顶部,或者在机器人的“眼睛”水平面上或机器人所在房间的天花板上))。
当在虚拟化环境中显示虚拟指针对象时,计算设备经由触觉使能输入设备检测(806)第一用户输入。第一用户输入包括第一移动输入和在虚拟化环境中沿着虚拟指针对象的移动路径的一个或多个位置处的一个或多个标记输入。例如,用户可以通过在3D中移动输入设备的定位部分来操作触觉使能输入设备(例如,触觉使能的3D鼠标114),并引起虚拟化环境中虚拟指针对象(例如,指针705)的相应移动。基于虚拟指针对象在虚拟化环境中的位置(例如,如控制用户界面700的可视渲染区域702所示),并基于通过触觉使能输入设备提供给用户的触觉反馈(例如,触觉反馈使用户体验模拟反作用力的力和/或振动(例如,来自冲击,对推/拉/压等的抵抗力),在物理环境中,用户手指与表面之间的动态和/或静态摩擦,表面的纹理,表面的坡度,表面的其它物理几何特征等),用户可以确定何时将所述位置标记为路标或目的地点或其他类型的标记点(例如,用于对象操纵的手柄,通过物理障碍物的通道等),并通过触觉使能输入设备(例如触觉使能输入设备114)提供所需的标记输入(例如,单击按钮,在触摸表面上双击,在控件用户界面中激活标记控件等等)。
响应于检测到第一用户输入(810):计算设备根据第一移动输入在虚拟化环境中沿着虚拟移动环境中的第一移动路径移动(812)虚拟指针对象,其中所述第一移动路径受到所述虚拟化环境中的一个或多个模拟表面的约束。例如,虚拟指针对象只能在地板的表面上移动,而沿着虚拟化环境中表示的地板移动时不能穿透地板。
响应于检测到第一用户输入(810):计算设备根据虚拟化环境中所述第一移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成(814)触觉反馈。计算设备修改(816)虚拟化环境的至少一部分(例如,标记点云,保存为有序点集),所述至少一部分与一个或多个标记输入在虚拟化环境中的位置相对应。修改的虚拟化环境代替虚拟化环境,作为用于在第一物理环境内对机器人进行路径规划的环境基础,所述第一物理环境由计算设备根据第一组预编程的路径规划指令执行。
在一些实施例中,为了根据虚拟化环境中第一移动路径的模拟材料和/或结构特征经由触觉使能输入设备生成触觉反馈,计算设备执行以下操作。根据所述第一指针对象在虚拟化环境中从第一位置到第二位置的移动,计算设备更新代理位置,以在第一指针对象的移动期间生成力反馈。更新所述代理位置包括:根据确定所述第一位置对应于沿着所述第一移动路径与所述虚拟化环境的初始接触,更新所述代理位置以定位距所述第一位置最近的表面点;并根据确定所述第一位置不是沿所述第一移动路径与所述虚拟化环境的初始接触,更新所述代理位置以从与所述第一位置对应的切线约束平面与第一位置下降到切线约束平面的法线的交点定位最近的表面点。图4及其附带的描述对此进行了说明。在一些实施例中,更新代理位置以定位距第一位置最近的表面点时,利用为光线投射而计算的中间结果,以用于一个或多个表面的视觉渲染,并且平行于光线投射实现一个或多个表面的视觉渲染。
在一些实施例中,修改与虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,包括标记机器人要遵循的路径(例如,标记308),并且根据第一组预编程的路径规划指令生成的规划路径是标记的路径(例如图7B(b)所示)。
在一些实施例中,修改与虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,包括标记防止机器人越过的边界以及根据第一组预编程的路径规划指令所生成的规划路径不会越界。
在一些实施例中,修改与虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,包括放置被机器人避开的一个或多个虚拟障碍(例如,障碍718-1),并且根据第一组预编程的路径规划指令生成的规划路径可避免所述机器人与一个或多个虚拟障碍接触(例如,如图7B(c)所示)。
在一些实施例中,修改与所述虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,包括在与第一物理环境中的物理对象相对应的位置处放置一个或多个虚拟通道(例如718-3),其中,当不存在一个或多个虚拟通道时,根据第一组预编程路径规划指令生成的路径阻止机器人与物理对象接触,当存在一个或多个虚拟通道时,根据第一组预编程的路径规划指令生成的路径,并不阻止机器人在导航期间与物理对象的接触(例如,如图7B(e)所示)。
在一些实施例中,修改与所述虚拟化环境中的一个或多个标记输入的位置相对应的虚拟化环境的至少一部分,包括从所述虚拟化环境中的一个或多个标记输入的位置分割虚拟化环境,以及根据第一组预编程的路径规划指令,将与分割结果相对应的一个或多个物理对象标记为导航的目标(例如,如图7A所示,框704被标记为目标)。在一些实施例中,计算设备根据第二组预编程的对象操纵指令提供关于操纵一个或多个物理对象的高级指令,其中,机器人根据高级指令和本地存储的任务执行指令来操纵一个或多个物理对象。例如,高级指令是“旋转盒子”,并且机器人根据本地存储的任务执行指令来旋转盒子,其中所述任务执行指令包括接近盒子,识别盒子表面,识别盒子表面牢固位置的指令,用于推动盒子,并推动确定的位置,以将盒子旋转到所需的数量。
应所述理解的是,已经描述了方法800中的操作的特定顺序仅是示例,并且并不旨在指示所描述的顺序是可以执行操作的唯一顺序。本领域普通技术人员将认识到重新排序本文描述的操作的各种方式。另外,应注意,关于本文中描述的其他方法(例如,方法900和1000)的本文中描述的其他过程的细节也可以类似于上文关于图8所述的方法800的方式应用。这里不再赘述。
上述信息处理方法中的操作可选地通过运行信息处理设备中的一个或多个功能模块(例如,通用处理器或专用芯片)来实现。
图9是根据一些实施方式从流表面执行交互式对象分割方法900的流程图。在具有一个或多个处理器和存储器的计算设备处执行(902)从流表面执行交互式对象分割的方法900。所述计算设备通过网络被通信地耦合到并置在第一物理环境中的一组传感器和机器人。所述计算设备可通信地耦合到机器人,并且被配置为根据第一组预编程的路径规划指令为机器人生成规划路径。机器人被配置为根据从计算设备接收的规划路径和本地存储的路径执行指令在物理环境中导航。在一些实施例中,计算设备是与机器人并置的服务器(例如,使用同一局域网或在同一房间)。在一些实施例中,计算设备是远离机器人的服务器,并且通过广域网与机器人通信,并且当通过网络与机器人通信时可能经历网络延迟。在一些实施例中,计算设备是与人类操作员并置的计算机,其促进了用户与机器人之间的远程交互。
在方法900中,计算设备从传感器组接收(904)环境数据流,所述环境数据流包括捕获第一物理环境的相关图像和深度数据。计算设备经由显示生成组件(例如,显示器112)在用户界面区域(例如,图7A-7C中的用户界面区域702)中显示(906)第一物理环境的虚拟化表示。其中第一物理环境的虚拟化表示时根据环境数据流生成并更新的。在显示第一物理环境的虚拟化表示的同时,计算设备从触觉使能输入设备接收(908)标记输入。标记输入在第一物理环境的虚拟化表示中的位置由标记输入确定,并且所述位置受第一物理环境的虚拟化表示中的第一虚拟表面所约束。响应于接收到标记输入(910),计算设备从标记输入在相关图像和深度数据上的位置执行(912)对象分割,包括根据环境数据流更新第一物理环境的虚拟化表示的相应时间步长:从图像数据中与标记输入的位置相对应的第一位置开始对像素进行聚类(912)以形成第一聚类;基于所述第一聚类和与所述第一聚类相对应的深度数据,分割出所标记的第一对象;将所标记的第一对象和深度数据融合到对应于各个时间步长的第一物理环境的第一截断符号距离函数(TSDF)表示中;从第一TSDF表示中获取第一分割点云,所述第一TSDF表示与所标记的第一对象和与第一聚类相对应的深度数据相融合。这在图6和附带的说明中进行了说明。
在一些实施例中,根据预编程的指令,提供包括所述所标记的第一对象的第一分割点云作为输入,以用于由所述所标记的第一对象对应的第一物理对象的机器人根据预编程指令执行路径规划和/或任务执行。
在一些实施例中,计算设备响应于标记输入,通过触觉使能输入设备生成触觉反馈,包括:根据确定标记输入的位置对应于与虚拟化环境的初始接触,更新代理位置以定位距标记输入位置最近的表面点;并根据确定标记输入的位置是沿着移动路径与虚拟化环境接触的连续位置,更新所述代理位置以从与所述第一位置对应的切线约束平面与第一位置下降到切线约束平面的法线的交点定位最近的表面点。这在图4和附带的说明中进行了说明。在一些实施例中,使用对应于相应时间步长的第一物理环境的第一TSDF表示来执行更新代理位置以定位距第一位置最近的表面点。
在一些实施例中,计算设备根据标记输入将所标记的第一对象标记为障碍,其中,机器人在根据第一组预编程指令生成的路径上导航时,避开所标记的第一对象(如图7B(c)所示)。
在一些实施例中,所述计算设备根据标记输入将所标记的第一对象标记为目标,其中,机器人在根据第一组预编程路径规划指令生成的路径上导航期间接近所标记的第一对象(如图7B(a)-7B(f)所示)。
在一些实施例中,所述计算设备根据标记输入将所标记的第一对象标记为通道,其中,当没有将所标记的第一对象标记为通道时,机器人在根据第一组预编程路径规划生成的路径上导航期间避开所标记的第一对象,并且在将第一个标记的对象标记为通道时,在根据第一组预编程路径规划指令生成的路径上导航时,机器人将不会避开所述所标记的第一对象(如图7B(e)所示)。
在一些实施例中,所述计算设备根据标记输入将所标记的第一对象标记为操纵对象。所述计算设备向机器人提供关于操纵所标记的第一对象的高级指令,其中,所述机器人按照与根据第二组预编程对象操作指令生成的高级指令来操纵所标记的第一对象相对应的物理对象。
应当理解,已经描述了方法900中的操作的特定顺序仅是示例,并不旨在指示所描述的顺序是可以执行操作的唯一顺序。本领域普通技术人员将认识到重新排序本文描述的操作的各种方式。另外,应当注意,关于本文中描述的其他过程的细节与本文中描述的其他方法(例如,方法800和1000)相比也同样适用于图8所述的方法900。这里不再赘述。
可选地,可以通过运行信息处理设备中的一个或多个功能模块(例如通用处理器或专用芯片)来实现上述信息处理方法中的操作。
图10是根据一些实施方式提供混合主动式机器人控制方法的流程图。在具有一个或多个处理器和存储器的计算设备处执行(1002)提供混合启动机器人控制的方法1000。计算设备(例如,服务器110)可通信地耦合到机器人,并且被配置为根据第一组预编程的路径规划指令为机器人生成规划的路径。机器人(例如,机器人102)被配置为根据从计算设备接收的规划路径和本地存储的路径执行指令在物理环境中导航。
在方法1000中,所述计算设备经由耦合到计算设备的显示生成组件来显示(1004)控制用户界面(例如,控制用户界面700),包括显示对应于当前围绕机器人(例如机器人102)的第一物理环境的虚拟化环境(例如,在区域702中),其中所述虚拟化环境根据从与机器人并置的第一组传感器(例如3D相机106)接收的流环境数据生成和更新。在显示虚拟化环境时,计算设备检测(1006)在虚拟化环境中的第一位置处插入第一虚拟对象的第一用户输入(例如,经由控制用户界面700)。响应于检测到第一用户输入,计算设备根据在第一位置处的第一虚拟对象的插入来修改(1008)第一虚拟化环境,其中,在第一位置处的第一虚拟对象使机器人在物理环境中执行第一导航路径,所述第一导航路径根据第一组预编程的路径规划指令生成。当在虚拟化环境中的第一位置处显示第一虚拟对象并且机器人在物理环境中执行第一导航路径时,计算设备检测(1010)第二用户输入,包括通过触觉使能输入设备检测指向所述第一虚拟对象的第一移动输入。响应于检测到第二用户输入,计算设备根据第一移动输入将第一虚拟对象沿着第一移动路径移动(1012)到虚拟化环境中的第二位置,其中第一移动路径受到所述虚拟化环境中一个或多个模拟表面的约束,其中,位于第二位置的第一虚拟对象使机器人在物理环境中执行根据第一组预编程路径规划指令生成的修改后的导航路径。这在图7B-7C和附带的说明中示出。
在一些实施例中,在第一虚拟对象沿着第一移动路径移动到虚拟化环境中的第二位置的过程中,计算设备根据在第一虚拟物体的当前位置处的第一虚拟物体和模拟表面之间的模拟摩擦力,通过触觉使能输入设备(例如,输入设备114)来提供触觉反馈。
在一些实施例中,第一虚拟对象具有预定义的尺寸和形状。在所述第一虚拟对象在所述虚拟化环境中沿着第一移动路径移动到的第二位置期间,计算设备检测所述第一虚拟对象已经沿所述第一虚拟对象的当前移动方向与第一模拟表面接触。响应于检测到第一虚拟对象已经沿所述第一虚拟对象的当前移动方向与所述第一模拟表面接触,计算设备根据所述第一模拟表面到所述第一个虚拟对象的模拟反作用力,通过触觉使能输入设备来提供触觉反馈。例如,在图4中对此进行了说明。
在一些实施例中,第一虚拟对象具有预定义的尺寸和形状。在所述第一虚拟对象在所述虚拟化环境中沿着所述第一移动路径移动到所述第二位置期间,计算设备检测所述第一虚拟对象已经与第二虚拟对象接触,所述第二虚拟对象已预先放置在所述模拟环境中的第一虚拟对象的当前移动方向上;响应于检测到所述第一虚拟对象已经在所述第一虚拟对象的当前移动方向上与所述第二虚拟对象接触,计算设备根据第所述二虚拟对象到所述第一虚拟对象的模拟反作用力,通过触觉使能输入设备提供触觉反馈。例如,在图5中对此进行了说明。
在一些实施例中,所述第一虚拟对象被标记为障碍,并且所述机器人在根据所述第一组预编程指令生成的路径上导航期间避开所述第一虚拟对象(例如,如图7B(c))所示。
在一些实施例中,所述第一虚拟对象被标记为目标,并且所述机器人在根据所述第一组预编程指令生成的路径上导航期间机器人接近所述所标记的第一对象(例如,如图7B(a)-(f)所示)。
在一些实施例中,所述第一虚拟对象被标记为通道,并且所述机器人在根据第一组预编程路径规划指令生成的路径上导航期间,所述第一虚拟对象的存在覆盖物理障碍的存在(例如,如图7B(e)所示)。
在一些实施例中,为了检测在虚拟化环境中的第一位置处插入第一虚拟对象的第一用户输入,计算设备执行以下操作:检测指向与第一模拟表面相对应的虚拟化环境中的第一位置的第一输入;响应于检测到指向所述第一位置的第一输入,经由触觉使能设备提供第一触觉反馈,以指示第一位置在第一模拟表面上;检测第二输入,所述第二输入将所述虚拟化环境中的所述第一位置标记为第一虚拟对象的第一边界的一部分;在所述虚拟化环境中检测指向与第二模拟表面对应的第二位置的第三输入;响应于检测到指向第二位置的第二输入,经由所述触觉使能设备提供第二触觉反馈,以指示第二位置在第二模拟表面上;检测第四输入,所述第四输入将所述虚拟化环境中的第二位置标记为第一虚拟对象的第二边界的一部分;以及根据所述第一位置和所述第二位置生成所述第一虚拟对象。
在一些实施例中,所述计算设备根据标记输入将所标记的第一对象标记为操纵对象。计算设备向机器人提供关于操纵所标记的第一对象的高级指令,其中,所述机器人操纵与根据第二组预编程对象操作指令生成的所标记的第一对象高级指令相对应的物理对象。
应当理解,已经描述了方法1000中的操作的特定顺序仅是示例,并不旨在指示所描述的顺序是可以执行操作的唯一顺序。本领域普通技术人员将认识到重新排序本文描述的操作的各种方式。另外,应当注意,关于本文中描述的其他过程的细节与本文中描述的其他方法(例如,方法800和900)相比页同样适用于图8所述的方法1000。这里不再赘述。
可选地,可以通过运行信息处理设备中的一个或多个功能模块(例如通用处理器或专用芯片)来实现上述信息处理方法中的操作。
图11是根据一些实施例示出的示例性机器人102的框图。
所述机器人102包括一个或多个处理单元(CPU)1102,一个或多个网络接口1104(例如,包括到服务器110的I/O接口),存储器1106和一个或多个用于连接这些组件(有时称为芯片组)的通信总线1108。存储器1106包括高速随机存取存储器,例如DRAM,SRAM,DDRRAM或其他随机存取固态存储器设备;可选地,包括非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光盘存储设备,一个或多个闪存设备或一个或多个其他非易失性固态存储设备。可选地,存储器1106包括一个或多个存储设备,其远离一个或多个处理单元1102。存储器1106或存储器1106内的非易失性存储器包括非易失性计算机可读存储介质。在一些实施方式中,存储器1106或存储器1106的非暂时性计算机可读存储介质存储以下程序,模块和数据结构或其子集或超集:
·操作系统1116,包括处理各种基本系统服务和执行与硬件有关的任务的过程;
·网络通信模块1118,用于将机器人102连接到其他计算设备;
·呈现模块1120,用于经由与用户界面1110相关联的一个或多个输出设备1112(例如,显示器,扬声器等)在机器人102处呈现信息;
·输入处理模块1122,用于检测来自一个或多个输入设备1114中一个或多个用户输入或交互,并解释检测到的输入或交互;
·机器人控制单元1124,用于控制机器人102的功能,包括用于控制机器人102的RGBD相机106的相机控制单元1113,用于控制机器人的机器人操作单元1126的机器人功能控制单元1117,用于根据路径规划器的高级指令执行路径的路径执行单元1119,以及用于实现如本文所述的机器人102的功能的其他单元。
上述所标识的每个元素都可以存储在一个或多个上述存储设备中,并且对应于执行上述功能的一组指令。以上标识的模块或程序(即,指令集)不需要被实现为单独的软件程序,过程,模块或数据结构,因此,这些模块的各个子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1106存储以上标识的模块和数据结构的子集。此外,可选地,存储器1106存储以上未描述的附加模块和数据结构。
在一些实施方式中,所述机器人102的至少部分功能由服务器110执行,并且这些功能的相应子模块可以位于所述服务器110内而不是机器人102内。图11中所示的机器人102的“组件”仅是说明性的,在各种实施方式中用于实现本文描述的功能的模块的不同配置是可能的。
上述所标识的每个元素都可以存储在一个或多个前述存储设备中,并且对应于执行上述功能的一组指令。以上标识的模块或程序(即,指令集)不需要被实现为单独的软件程序,过程或模块,因此,这些模块的各个子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1106存储以上标识的模块和数据结构的子集。此外,可选地,存储器1106存储以上未描述的附加模块和数据结构。
图12是示出根据一些实施方式的示例性服务器110的框图。服务器系统110通常包括一个或多个处理单元(CPU)1202,一个或多个网络接口1204(例如,包括到一个或多个机器人102的I/O接口和到一个或多个用户端设备1300的I/O接口),存储器1206和一个或多个用于连接这些组件(有时称为芯片组)的通信总线1208。存储器1206包括高速随机存取存储器,例如DRAM,SRAM,DDR RAM或其他随机存取固态存储器设备;可选地,包括非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光盘存储设备,一个或多个闪存设备或一个或多个其他非易失性固态存储设备。可选地,存储器1206包括远离一个或多个处理单元1202定位的一个或多个存储设备。存储器1206或存储器1206内的非易失性存储器包括非暂时性计算机可读存储介质。在一些实施方式中,存储器1206或存储器1206的非暂时性计算机可读存储介质存储以下程序,模块和数据结构或其子集或超集:
·操作系统1216,包括处理各种基本系统服务和执行与硬件有关的任务的过程;
·网络通信模块1218,用于将服务器110连接到其他计算设备(例如用户端设备1300和机器人102(包括摄像头106));
·呈现模块1220,用于经由与用户界面1210相关联的一个或多个输出设备1212(例如,显示器,扬声器等)在服务器110处呈现信息;
·输入处理模块1222,用于检测来自一个或多个输入设备1214中一个或多个用户输入或交互,并解释检测到的输入或交互;
·服务器端模块1226,用于控制服务器110功能,包括对象分割模块1228,用于在虚拟化环境中执行对象分割,KinectFusion模块1230用于基于从机器人接收的图像和深度数据流来生成和更新虚拟化环境,触觉渲染模块1232,用于基于经由触觉使能输入设备提供的用户输入并基于输入在虚拟化环境中的位置来生成触觉反馈,物理仿真模块用于在虚拟化环境中生成反作用力和摩擦力渲染以及对象交互模型,路径规划模块1236,用于基于虚拟化环境以及虚拟化环境中存在的触觉标记和虚拟对象生成规划路径,控制器模块1238,用于控制机器人执行路径执行,网络时延补偿模块1240,用于根据网络时延调整路径规划,以及用于实现如本文所述的服务器110的其他功能的其他模块1242。
上述所标识的每个元素都可以存储在一个或多个前述存储设备中,并且对应于用于执行上述功能的一组指令。以上标识的模块或程序(即,指令集)不需要被实现为单独的软件程序,过程,模块或数据结构,因此,这些模块的各个子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1206存储以上标识的模块和数据结构的子集。此外,可选地,存储器1206存储以上未描述的附加模块和数据结构。
在一些实施方式中,服务器110的至少部分功能由机器人110或用户端设备1300执行,并且这些功能的相应子模块可以位于服务器机器人或用户内部。图12中所示的服务器110仅是说明性的,在各种实施方式中用于实现本文描述的功能的模块的不同配置都是可能的。
上述所标识的每个元素都可以存储在一个或多个前述存储设备中,并且对应于执行上述功能的一组指令。以上标识的模块或程序(即,指令集)不需要被实现为单独的软件程序,过程或模块,因此,这些模块的各个子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1206存储以上标识的模块和数据结构的子集。此外,可选地,存储器1206存储以上未描述的附加模块和数据结构。
图13是根据一些实施方式示出的的示例性用户端设备1300的框图。用户端设备1300通常包括一个或多个处理单元(CPU)1302,一个或多个网络接口1304(例如,包括到服务器110的I/O接口),存储器1306以及一个或多个用于连接这些组件(有时称为芯片组)的通信总线1308。存储器1306包括高速随机存取存储器,例如DRAM,SRAM,DDR RAM或其他随机存取固态存储设备;可选地,包括非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光盘存储设备,一个或多个闪存设备或一个或多个其他非易失性固态存储设备。可选地,存储器1306包括远离一个或多个处理单元1302定位的一个或多个存储设备。存储器1306或存储器1306内的非易失性存储器包括非暂时性计算机可读存储介质。在一些实施方式中,存储器1306或存储器1306的非暂时性计算机可读存储介质存储以下程序,模块和数据结构或其子集或超集:
·操作系统1316,包括处理各种基本系统服务和执行与硬件有关的任务的过程;
·网络通信模块1318,用于将服务器110连接到其他计算设备;
·呈现模块1220,用于经由与用户界面1310相关联的一个或多个输出设备1312(例如,显示器,扬声器,触觉使能输入设备114等)在用户端设备1300处呈现信息;
·输入处理模块1222,用于检测来自一个或多个输入设备1314(例如触觉使能输入设备114)中一个或多个用户输入或交互,并解释检测到的输入或交互;
·应用程序1324,用于实现各种用户级功能,如文字处理,绘图等;
·用户端模块1326,用于控制用户端设备的功能,包括用户层模块1328和用于实现本文所述的用户端设备的其他功能其他模块1330。
上述所标识的每个元素都可以存储在一个或多个前述存储设备中,并且对应于用于执行上述功能的一组指令。以上标识的模块或程序(即,指令集)不需要被实现为单独的软件程序,过程,模块或数据结构,因此,这些模块的各个子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1306存储以上标识的模块和数据结构的子集。此外,可选地,存储器1306存储以上未描述的附加模块和数据结构。
在一些实施方式中,服务器110的至少部分功能由用户端设备1300执行,并且这些功能的对应子模块可以位于服务器内而不是用户端设备1300内。图13所示的用户端设备1300仅是示例性的,在各种实施方式中用于实现本文描述的功能的模块的不同配置是可能的。
上述所标识的每个元素可以存储在一个或多个前述存储设备中,并且对应于用于执行上述功能的一组指令。上面标识的模块或程序(即,指令集)无需实现为单独的软件程序,过程或模块,因此,这些模块的各个子集可以在各种实现方式中进行组合或以其他方式重新布置。在一些实施方式中,可选地,存储器1306存储以上标识的模块和数据结构的子集。此外,可选地,存储器1306存储以上未描述的附加模块和数据结构。
Claims (20)
1.一种提供混合主动式机器人控制的方法,包括:
在具有一个或多个处理器和存储器的计算设备处,其中所述计算设备被可通信地耦合到机器人并且被配置为根据第一组预编程的路径规划指令为所述机器人生成规划路径,并且所述机器人被配置为根据从所述计算设备接收的所述规划路径和本地存储的路径执行指令在物理环境中导航运动:
通过耦合到所述计算设备的显示生成组件显示控制用户界面,包括在与当前围绕所述机器人的物理环境相对应的虚拟化环境中显示虚拟指针对象,其中所述虚拟化环境是根据从与所述机器人并置的第一组传感器接收的流环境数据来生成和更新的;
在所述虚拟化环境中显示所述虚拟指针对象的同时,通过触觉使能输入设备检测第一用户输入,包括在沿着所述虚拟指针对象在所述虚拟化环境中的移动路径的一个或多个位置处检测第一移动输入和一个或多个标记输入;
响应于检测到所述第一用户输入:
根据所述第一移动输入在所述虚拟化环境中沿移动路径移动所述虚拟指针对象,其中,所述移动路径受到所述虚拟化环境中的一个或多个模拟表面的约束;
根据所述虚拟化环境中所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈;以及
修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分,其中,修改后的虚拟化环境代替所述虚拟化环境作为第一物理环境中的由所述计算设备根据所述第一组预编程的路径规划指令执行的所述机器人的路径规划的环境基础。
2.根据权利要求1所述的方法,其中,根据所述虚拟化环境中的所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈包括:
根据所述指针对象在所述虚拟化环境中从第一位置到第二位置的移动,在所述指针对象的移动期间更新用于生成力反馈的代理位置,包括:
根据确定所述第一位置对应于沿着所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以定位距所述第一位置最近的表面点;以及
根据确定所述第一位置不是沿所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以从定位距交点最近的表面点,其中所述交点是与所述第一位置对应的切线约束平面和从所述第一位置下降到所述切线约束平面的法线之间的交点。
3.根据权利要求1所述的方法,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记所述机器人要遵循的路径;并且根据所述第一组预编程的路径规划指令生成的所述规划路径是标记的路径。
4.根据权利要求1所述的方法,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记防止所述机器人越过的边界;并且根据所述第一组预编程的路径规划指令生成的所述规划路径不越过所述边界。
5.根据权利要求1所述的方法,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:放置被所述机器人避开的一个或多个虚拟障碍;并且根据所述第一组预编程的路径规划指令生成的所述规划路径防止所述机器人与所述一个或多个虚拟障碍接触。
6.根据权利要求1所述的方法,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:在与所述第一物理环境中的物理对象相对应的位置处放置一个或多个虚拟通道;其中,当不存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的路径防止所述机器人与所述物理对象接触,并且当存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的规划路径不防止所述机器人在导航期间与所述物理对象接触。
7.根据权利要求1所述的方法,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:从所述虚拟化环境中的所述一个或多个标记输入的位置分割所述虚拟化环境;以及根据所述第一组预编程的路径规划指令,将与分割结果相对应的一个或多个物理对象标记为导航的目标。
8.一种用于提供混合主动式机器人控制的计算设备,包括:
一个或多个处理器;以及
存储指令的存储器,其中:
所述计算设备被可通信地耦合到机器人并且被配置为根据第一组预编程的路径规划指令为所述机器人生成规划路径;
所述机器人被配置为根据从所述计算设备接收的所述规划路径和本地存储的路径执行指令在物理环境中导航运动,以及
所述指令在被所述一个或多个处理器执行时使所述处理器执行操作,所述操作包括:
通过耦合到所述计算设备的显示生成组件显示控制用户界面,包括在与当前围绕所述机器人的第一物理环境相对应的虚拟化环境中显示虚拟指针对象,其中所述虚拟化环境是根据从与所述机器人并置的第一组传感器接收的流环境数据来生成和更新的;
在所述虚拟化环境中显示所述虚拟指针对象的同时,通过触觉使能输入设备检测第一用户输入,包括在沿着所述虚拟指针对象在所述虚拟化环境中的移动路径的一个或多个位置处检测第一移动输入和一个或多个标记输入;以及
响应于检测到所述第一用户输入:
根据所述第一移动输入在所述虚拟化环境中沿移动路径移动所述虚拟指针对象,其中,所述移动路径受到所述虚拟化环境中的一个或多个模拟表面的约束;
根据所述虚拟化环境中所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈;以及
修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分,其中,修改后的虚拟化环境代替所述虚拟化环境作为所述第一物理环境中的由所述计算设备根据所述第一组预编程的路径规划指令执行的所述机器人的路径规划的环境基础。
9.根据权利要求8所述的计算设备,其中,根据所述虚拟化环境中的所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈包括:
根据所述指针对象在所述虚拟化环境中从第一位置到第二位置的移动,在所述指针对象的移动期间更新用于生成力反馈的代理位置,包括:
根据确定所述第一位置对应于沿着所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以定位距所述第一位置最近的表面点;以及
根据确定所述第一位置不是沿所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以从定位距交点最近的表面点,其中所述交点是与所述第一位置对应的切线约束平面和从所述第一位置下降到所述切线约束平面的法线之间的交点。
10.根据权利要求8所述的计算设备,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记所述机器人要遵循的路径;并且根据所述第一组预编程的路径规划指令生成的所述规划路径是标记的路径。
11.根据权利要求8所述的计算设备,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记防止所述机器人越过的边界;并且根据所述第一组预编程的路径规划指令生成的所述规划路径不越过所述边界。
12.根据权利要求8所述的计算设备,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:放置被所述机器人避开的一个或多个虚拟障碍;并且根据所述第一组预编程的路径规划指令生成的所述规划路径防止所述机器人与所述一个或多个虚拟障碍接触。
13.根据权利要求8所述的计算设备,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:在与所述第一物理环境中的物理对象相对应的位置处放置一个或多个虚拟通道;其中,当不存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的路径防止所述机器人与所述物理对象接触,并且当存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的规划路径不防止所述机器人在导航期间与所述物理对象接触。
14.根据权利要求8所述的计算设备,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:从所述虚拟化环境中的所述一个或多个标记输入的位置分割所述虚拟化环境;以及根据所述第一组预编程的路径规划指令,将与分割结果相对应的一个或多个物理对象标记为导航的目标。
15.一种用于提供混合主动式机器人控制的计算机可读存储介质,其中,所述计算机可读存储介质存储指令,所述指令在被计算设备的一个或多个处理器执行时使所述计算设备执行操作,其中:
所述计算设备被可通信地耦合到机器人并且被配置为根据第一组预编程的路径规划指令为所述机器人生成规划路径,
所述机器人被配置为根据从所述计算设备接收的所述规划路径和本地存储的路径执行指令在物理环境中导航运动:以及
所述操作包括:
通过耦合到所述计算设备的显示生成组件显示控制用户界面,包括在与当前围绕所述机器人的第一物理环境相对应的虚拟化环境中显示虚拟指针对象,其中所述虚拟化环境是根据从与所述机器人并置的第一组传感器接收的流环境数据来生成和更新的;
在所述虚拟化环境中显示所述虚拟指针对象的同时,通过触觉使能输入设备检测第一用户输入,包括在沿着所述虚拟指针对象在所述虚拟化环境中的移动路径的一个或多个位置处检测第一移动输入和一个或多个标记输入;以及
响应于检测到所述第一用户输入:
根据所述第一移动输入在所述虚拟化环境中沿移动路径移动所述虚拟指针对象,其中,所述移动路径受到所述虚拟化环境中的一个或多个模拟表面的约束;
根据所述虚拟化环境中所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈;以及
修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分,其中,修改后的虚拟化环境代替所述虚拟化环境作为所述第一物理环境中的由所述计算设备根据所述第一组预编程的路径规划指令执行的所述机器人的路径规划的环境基础。
16.根据权利要求15所述的计算机可读存储介质,其中,根据所述虚拟化环境中的所述移动路径的模拟材料和/或结构特征,通过所述触觉使能输入设备生成触觉反馈包括:
根据所述指针对象在所述虚拟化环境中从第一位置到第二位置的移动,在所述指针对象的移动期间更新用于生成力反馈的代理位置,包括:
根据确定所述第一位置对应于沿着所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以定位距所述第一位置最近的表面点;以及
根据确定所述第一位置不是沿所述移动路径与所述虚拟化环境的初始接触,更新所述代理位置以定位距交点最近的表面点,其中所述交点是与所述第一位置对应的切线约束平面和从所述第一位置下降到所述切线约束平面的法线之间的交点。
17.根据权利要求15所述的计算机可读存储介质,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记所述机器人要遵循的路径;并且根据所述第一组预编程的路径规划指令生成的所述规划路径是标记的路径。
18.根据权利要求15所述的计算机可读存储介质,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:标记防止所述机器人越过的边界;并且根据所述第一组预编程的路径规划指令生成的所述规划路径不越过所述边界。
19.根据权利要求15所述的计算机可读存储介质,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:放置被所述机器人避开的一个或多个虚拟障碍;并且根据所述第一组预编程的路径规划指令生成的所述规划路径防止所述机器人与所述一个或多个虚拟障碍接触。
20.根据权利要求15所述的计算机可读存储介质,其中,修改与所述虚拟化环境中的所述一个或多个标记输入的位置相对应的所述虚拟化环境的至少一部分包括:在与所述第一物理环境中的物理对象相对应的位置处放置一个或多个虚拟通道;其中,当不存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的路径防止所述机器人与所述物理对象接触,并且当存在所述一个或多个虚拟通道时,根据所述第一组预编程的路径规划指令生成的规划路径不防止所述机器人在导航期间与所述物理对象接触。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/156,979 US10816994B2 (en) | 2018-10-10 | 2018-10-10 | Method and system for providing remote robotic control |
US16/156,979 | 2018-10-10 | ||
PCT/CN2019/092147 WO2020073680A1 (en) | 2018-10-10 | 2019-06-20 | Method and system for providing remote robotic control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112805673A CN112805673A (zh) | 2021-05-14 |
CN112805673B true CN112805673B (zh) | 2023-05-23 |
Family
ID=70161271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980062164.8A Active CN112805673B (zh) | 2018-10-10 | 2019-06-20 | 提供远程机器人控制的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10816994B2 (zh) |
EP (1) | EP3847535B1 (zh) |
JP (1) | JP7311172B2 (zh) |
CN (1) | CN112805673B (zh) |
WO (1) | WO2020073680A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7244985B2 (ja) * | 2017-05-19 | 2023-03-23 | 川崎重工業株式会社 | 操作装置及び操作システム |
US11537139B2 (en) | 2018-03-15 | 2022-12-27 | Nvidia Corporation | Determining drivable free-space for autonomous vehicles |
US11407111B2 (en) * | 2018-06-27 | 2022-08-09 | Abb Schweiz Ag | Method and system to generate a 3D model for a robot scene |
US11648945B2 (en) | 2019-03-11 | 2023-05-16 | Nvidia Corporation | Intersection detection and classification in autonomous machine applications |
JP2022538813A (ja) * | 2019-06-25 | 2022-09-06 | エヌビディア コーポレーション | 自律マシン・アプリケーションのための交差点領域検出及び分類 |
KR20220082805A (ko) * | 2019-08-07 | 2022-06-17 | 보스턴 다이나믹스, 인크. | 모바일 로봇의 항행 |
KR20190104483A (ko) * | 2019-08-21 | 2019-09-10 | 엘지전자 주식회사 | 로봇 시스템 및 그 제어 방법 |
DE112020004139T5 (de) | 2019-08-31 | 2022-05-12 | Nvidia Corporation | Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens |
CN111775183A (zh) * | 2020-07-29 | 2020-10-16 | 浙江树人学院(浙江树人大学) | 一种智能互动机器人及其互动方法 |
US11978266B2 (en) | 2020-10-21 | 2024-05-07 | Nvidia Corporation | Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications |
EP4258077A1 (en) | 2020-12-01 | 2023-10-11 | OMRON Corporation | Device and method for simulating mobile robot at work site |
CN112987735B (zh) * | 2021-02-24 | 2022-06-14 | 同济大学 | 一种基于Delaunay三角形的移动机器人安全路径规划方法 |
JP2023058243A (ja) * | 2021-10-13 | 2023-04-25 | avatarin株式会社 | 動画配信システム、サーバ装置及びプログラム |
CN114265503B (zh) * | 2021-12-22 | 2023-10-13 | 吉林大学 | 一种应用于笔式振动触觉反馈装置的纹理渲染方法 |
CN114578831B (zh) * | 2022-04-28 | 2022-07-26 | 深圳鹏行智能研究有限公司 | 机器人的控制方法、控制装置、机器人和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106527424A (zh) * | 2016-09-20 | 2017-03-22 | 深圳市银星智能科技股份有限公司 | 移动机器人及移动机器人的导航方法 |
CN106774347A (zh) * | 2017-02-24 | 2017-05-31 | 安科智慧城市技术(中国)有限公司 | 室内动态环境下的机器人路径规划方法、装置和机器人 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5502638A (en) | 1992-02-10 | 1996-03-26 | Honda Giken Kogyo Kabushiki Kaisha | System for obstacle avoidance path planning for multiple-degree-of-freedom mechanism |
JP3210121B2 (ja) | 1992-02-10 | 2001-09-17 | 本田技研工業株式会社 | 移動体の障害物回避経路探索方法 |
JPH0887609A (ja) | 1994-07-21 | 1996-04-02 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
US5999881A (en) | 1997-05-05 | 1999-12-07 | General Electric Company | Automated path planning |
EP1972415B1 (en) | 2007-03-23 | 2019-01-02 | Honda Research Institute Europe GmbH | Robots with collision avoidance functionality |
JP5060619B2 (ja) | 2007-06-08 | 2012-10-31 | 本田技研工業株式会社 | モーション計画方法、モーション計画システム及び記録媒体 |
CN101459857B (zh) | 2007-12-10 | 2012-09-05 | 华为终端有限公司 | 通信终端 |
CN101458083B (zh) | 2007-12-14 | 2011-06-29 | 财团法人工业技术研究院 | 结构光视觉导航系统与方法 |
JP4730440B2 (ja) | 2009-01-01 | 2011-07-20 | ソニー株式会社 | 軌道計画装置及び軌道計画方法、並びにコンピューター・プログラム |
IT1395018B1 (it) * | 2009-07-22 | 2012-09-05 | Surgica Robotica S R L | Apparecchiatura per procedure chirurgiche minimamente invasive |
KR101691939B1 (ko) | 2009-08-10 | 2017-01-02 | 삼성전자주식회사 | 로봇의 경로 계획방법 및 장치 |
KR101667029B1 (ko) | 2009-08-10 | 2016-10-17 | 삼성전자 주식회사 | 로봇의 경로 계획방법 및 장치 |
KR101667031B1 (ko) | 2009-11-02 | 2016-10-17 | 삼성전자 주식회사 | 로봇의 경로 계획 장치 및 그 방법 |
CN101887271A (zh) | 2010-07-19 | 2010-11-17 | 东莞职业技术学院 | 一种移动机器人的路径规划方法 |
EP2721463B1 (en) * | 2011-06-15 | 2017-03-08 | University Of Washington Through Its Center For Commercialization | Methods and systems for haptic rendering and creating virtual fixtures from point clouds |
US20130063560A1 (en) | 2011-09-12 | 2013-03-14 | Palo Alto Research Center Incorporated | Combined stereo camera and stereo display interaction |
CN102699914B (zh) | 2012-05-15 | 2015-01-21 | 郑州大学 | 一种机器人 |
DE102012109004A1 (de) * | 2012-09-24 | 2014-03-27 | RobArt GmbH | Roboter und Verfahren zur autonomen Inspektion oder Bearbeitung von Bodenflächen |
JP5931685B2 (ja) | 2012-10-12 | 2016-06-08 | 日本電信電話株式会社 | ロボット協調搬送計画装置、方法、プログラム |
US8972057B1 (en) | 2013-01-09 | 2015-03-03 | The Boeing Company | Systems and methods for generating a robotic path plan in a confined configuration space |
US20140320629A1 (en) | 2013-01-24 | 2014-10-30 | University Of Washington Through Its Center For Commericialization | Haptically-Enabled Co-Robotics for Underwater Tasks |
CN103302668B (zh) | 2013-05-22 | 2016-03-16 | 东南大学 | 基于Kinect的空间遥操作机器人的控制系统及其方法 |
US20160217617A1 (en) | 2013-08-30 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Augmented reality device interfacing |
US9947230B2 (en) | 2015-08-03 | 2018-04-17 | Amber Garage, Inc. | Planning a flight path by identifying key frames |
US9684305B2 (en) * | 2015-09-11 | 2017-06-20 | Fuji Xerox Co., Ltd. | System and method for mobile robot teleoperation |
US10377040B2 (en) * | 2017-02-02 | 2019-08-13 | Brain Corporation | Systems and methods for assisting a robotic apparatus |
DE102017104427A1 (de) * | 2017-03-02 | 2018-09-06 | RobArt GmbH | Verfahren zur Steuerung eines autonomen, mobilen Roboters |
DE102017105724A1 (de) * | 2017-03-16 | 2018-09-20 | Vorwerk & Co. Interholding Gmbh | Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Bodenbearbeitungsgerätes |
CN108422435B (zh) | 2018-03-21 | 2020-05-12 | 烟台朗文汽车零部件有限公司 | 一种基于增强现实的远程监测及控制系统 |
-
2018
- 2018-10-10 US US16/156,979 patent/US10816994B2/en active Active
-
2019
- 2019-06-20 JP JP2021519702A patent/JP7311172B2/ja active Active
- 2019-06-20 WO PCT/CN2019/092147 patent/WO2020073680A1/en unknown
- 2019-06-20 EP EP19870230.0A patent/EP3847535B1/en active Active
- 2019-06-20 CN CN201980062164.8A patent/CN112805673B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106527424A (zh) * | 2016-09-20 | 2017-03-22 | 深圳市银星智能科技股份有限公司 | 移动机器人及移动机器人的导航方法 |
CN106774347A (zh) * | 2017-02-24 | 2017-05-31 | 安科智慧城市技术(中国)有限公司 | 室内动态环境下的机器人路径规划方法、装置和机器人 |
Also Published As
Publication number | Publication date |
---|---|
JP7311172B2 (ja) | 2023-07-19 |
EP3847535B1 (en) | 2023-06-14 |
WO2020073680A1 (en) | 2020-04-16 |
CN112805673A (zh) | 2021-05-14 |
EP3847535A1 (en) | 2021-07-14 |
JP2022504599A (ja) | 2022-01-13 |
US10816994B2 (en) | 2020-10-27 |
US20200117213A1 (en) | 2020-04-16 |
EP3847535A4 (en) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112771476B (zh) | 提供远程机器人控制的方法和系统 | |
CN112805673B (zh) | 提供远程机器人控制的方法和系统 | |
CN112770875B (zh) | 提供远程机器人控制的方法和系统 | |
US10942577B2 (en) | Augmented reality interaction techniques | |
US11830618B2 (en) | Interfacing with a mobile telepresence robot | |
US9789612B2 (en) | Remotely operating a mobile robot | |
CN113096252B (zh) | 一种混合增强教学场景中多移动机制融合方法 | |
Frank et al. | Toward mobile mixed-reality interaction with multi-robot systems | |
Liu et al. | An augmented reality interaction interface for autonomous drone | |
US20200273243A1 (en) | Remote monitoring and assistance techniques with volumetric three-dimensional imaging | |
Materna et al. | Teleoperating assistive robots: A novel user interface relying on semi-autonomy and 3D environment mapping | |
Barber et al. | Sketch-based robot programming | |
Ren et al. | Augmented Reality Based Actuated Monitor Manipulation from Dual Point of View | |
Sprute | Interactive restriction of a mobile robot's workspace in traditional and smart home environments | |
Smith et al. | 3D path planning with novel multiple 2D layered approach for complex human-robot interaction | |
GB2605300A (en) | Virtual reality system and method |
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 |