CN114503042A - 导航移动机器人 - Google Patents

导航移动机器人 Download PDF

Info

Publication number
CN114503042A
CN114503042A CN201980100845.9A CN201980100845A CN114503042A CN 114503042 A CN114503042 A CN 114503042A CN 201980100845 A CN201980100845 A CN 201980100845A CN 114503042 A CN114503042 A CN 114503042A
Authority
CN
China
Prior art keywords
robot
scene
environment
camera
intersection
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.)
Pending
Application number
CN201980100845.9A
Other languages
English (en)
Inventor
S·赛弗特
M·达西尔瓦
A·赖斯
L·赫普勒
M·博里尼
C·本泽尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boston Dynamics Inc
Original Assignee
Boston Dynamics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Boston Dynamics Inc filed Critical Boston Dynamics Inc
Publication of CN114503042A publication Critical patent/CN114503042A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control 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/0038Control 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control 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/0016Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the operator's input device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control 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/0044Control 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 a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • G05D1/0061Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements for transition from automatic pilot to manual pilot and vice versa
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

一种用于控制机器人(300)的方法(1700),包括从至少一个图像传感器(344)接收图像数据(342)。图像数据对应于机器人周围的环境(301)。该方法还包括执行图形用户界面(221),该图形用户界面被配置为基于图像数据显示环境的场景(222),并接收指示选择场景内的像素位置(224)的输入指示。该方法还包括基于像素位置的选择来确定指向矢量。指向矢量表示用于在环境中导航机器人的行进方向。该方法还包括向机器人传输航点命令。当机器人接收到航点命令时,使机器人导航到目标位置。目标位置基于指向矢量和机器人的地形估计之间的交点。

Description

导航移动机器人
技术领域
本公开涉及导航移动机器人。
背景技术
随着技术进步,正在创建各种类型的机器人设备,用于进行可辅助用户的各种功能。机器人设备可以用于涉及材料处理、运输、焊接、组装和分配等的应用。随着时间的推移,这些机器人系统的操作方式变得更加智能、高效和直观。随着机器人系统在现代生活的许多方面变得越来越普遍,人们希望机器人系统能够容易且直观地操作和导航。
发明内容
本公开的一个方面提供了一种用于控制机器人的方法。该方法包括在操作者设备的数据处理硬件处,从至少一个图像传感器接收图像数据。该图像数据对应于机器人周围的环境。该方法还包括由数据处理硬件执行用于在操作者设备的屏幕上显示的图形用户界面(GUI)。GUI被配置为基于图像数据显示机器人周围的环境的场景,并接收指示选择机器人周围的环境的场景内的像素位置的输入指示。该方法还包括由数据处理硬件基于像素位置的选择来确定指向矢量V。指向矢量表示用于在环境中导航机器人的行进方向。该方法还包括由数据处理硬件向机器人传输航点命令W。当机器人接收到航点命令W时,使机器人导航到目标位置T。目标位置基于指向矢量V和机器人的地形估计G之间的交点。地形估计G可以包括地平面估计。为简单起见,本公开将“地形估计”称为“地平面估计”。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,机器人周围的环境的场景包括以下任何一个:基于图像数据的环境的前场景,图像数据由设置在机器人上的左前相机和右前相机捕获;基于图像数据的环境的左场景,图像数据由设置在机器人上的左相机捕获;基于图像数据的环境的右场景,图像数据由设置在移动机器人上的右相机捕获;基于图像数据的环境的后场景,后场景由设置在机器人上的后相机捕获;或者基于图像数据的机器人的自上而下场景,图像数据由有效载荷相机、左前相机、右前相机、左相机、右相机和后相机捕获。
在一些示例中,该方法还包括由数据处理硬件确定指向矢量和地形估计之间的交点是否在机器人前面,以及当指向矢量和地形估计之间的交点在机器人前面时,由数据处理硬件将该交点识别为目标位置。在这些示例中,该方法还可以包括,当指向矢量和地形估计之间的交点在机器人后面时:由数据处理硬件反射该交点,以确定机器人前面的反射交点;以及由数据处理硬件将反射交点识别为目标位置。附加地或替代地,在这些示例中,该方法还可以包括,在将交点识别为目标位置之前:由数据处理硬件确定指向矢量和地形估计之间的交点与机器人的当前定位之间的第一距离不满足阈值距离;以及由数据处理硬件将交点移动到更靠近机器人的中间位置以形成移动交点,其中机器人的当前定位和移动交点之间的第二距离满足阈值距离。
机器人可配置为确定目标位置是否位于障碍物后面。这里,机器人被配置为当目标位置不位于障碍物后面时自主导航到目标位置。然而,当目标位置位于障碍物后面时,机器人被配置为确定绕过障碍物的机动是否可行,并且当绕过障碍物的机动可行时,自主地导航机器人绕过障碍物并到达目标位置。此外,当目标位置位于障碍物后面并且当绕过障碍物的机动不可行时,机器人还可以被配置为阻止机器人自主导航到目标位置。
在一些实现方式中,至少一个图像传感器包括一个或多个鱼眼相机和一个或多个红外相机。该至少一个图像传感器可以设置在机器人上,并且操作者设备可以经由网络与图像传感器通信。
在一些示例中,图形用户界面进一步配置为:接收旋转输入,以在远离图形用户界面中显示的当前场景的方向上旋转机器人周围的环境的视场;和通过在远离当前场景的方向上旋转机器人周围的环境的视场来显示预览场景。图形用户界面可以被配置为显示预览场景而不需要机器人的物理移动,和/或图形用户界面可以被配置为响应于接收到指示选择图形用户界面中显示的旋转图形的输入指示而接收旋转输入。在另外的示例中,在远离当前场景的方向上旋转机器人周围的环境的视场,模拟机器人在远离当前场景并朝向预览场景的方向上执行转动机动。
本公开的另一方面提供了一种用于操作机器人的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。该存储器硬件存储指令,所述指令当在数据处理硬件上执行时,使得数据处理硬件进行包括从至少一个图像传感器接收图像数据的操作。图像数据对应于机器人周围的环境。这些操作还包括执行用于在操作者设备的屏幕上显示的图形用户界面(GUI)。GUI被配置为基于图像数据显示机器人周围的环境的场景,并接收指示选择机器人周围的环境的场景内的像素位置的输入指示。这些操作还包括基于像素位置的选择来确定指向矢量V。指向矢量表示用于在环境中导航机器人的行进方向。这些操作还包括向机器人传输航点命令W。当机器人接收到航点命令W时,使机器人导航到目标位置T。目标位置基于指向矢量V和机器人的地形估计G之间的交点。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,机器人周围的环境的场景包括以下任何一个:基于图像数据的环境的前场景,图像数据由设置在机器人上的左前相机和右前相机捕获;基于图像数据的环境的左场景,图像数据由设置在机器人上的左相机捕获;基于图像数据的环境的右场景,图像数据由设置在移动机器人上的右相机捕获;基于图像数据的环境的后场景,后场景由设置在机器人上的后相机捕获;或者基于图像数据的机器人的自上而下场景,图像数据由有效载荷相机、左前相机、右前相机、左相机、右相机和后相机捕获。
在一些示例中,操作还包括确定指向矢量和地形估计之间的交点是否在机器人前面,以及当指向矢量和地形估计之间的交点在机器人前面时,将该交点识别为目标位置。在这些示例中,操作还可以包括,当指向矢量和地形估计之间的交点在机器人后面时:反射该交点以确定机器人前面的反射交点;以及将反射交点识别为目标位置。附加地或替代地,在这些示例中,操作还可以包括,在将交点识别为目标位置之前:确定指向矢量和地形估计之间的交点与机器人的当前定位之间的第一距离不满足阈值距离;以及将交点移动到更靠近机器人的中间位置以形成移动交点,其中机器人的当前定位和移动交点之间的第二距离满足阈值距离。
机器人可配置为确定目标位置是否位于障碍物后面。这里,机器人被配置为当目标位置不位于障碍物后面时自主导航到目标位置。然而,当目标位置位于障碍物后面时,机器人被配置为确定绕过障碍物的机动是否可行,并且当绕过障碍物的机动可行时,自主地导航机器人绕过障碍物并到达目标位置。此外,当目标位置位于障碍物后面并且当绕过障碍物的机动不可行时,机器人还可以配置为阻止机器人自主导航到目标位置。机器人可以包括四足机器人。
在一些实现方式中,至少一个图像传感器包括一个或多个鱼眼相机和一个或多个红外相机。该至少一个图像传感器可以设置在机器人上,并且操作者设备可以通过网络与图像传感器通信。
在一些示例中,图形用户界面进一步配置为:接收旋转输入,以在远离图形用户界面中显示的当前场景的方向上旋转机器人周围的环境的视场;和通过在远离当前场景的方向上旋转机器人周围的环境的视场来显示预览场景。图形用户界面可以被配置为显示预览场景而不需要机器人的物理移动,和/或图形用户界面可以被配置为响应于接收到指示选择图形用户界面中显示的旋转图形的输入指示而接收旋转输入。在另外的示例中,在远离当前场景的方向上旋转机器人周围的环境的视场,模拟机器人在远离当前场景并朝向预览场景的方向上执行转动机动。
本公开的另一方面提供了一种用于导航移动机器人的方法。该方法包括在数据处理硬件处接收由移动机器人上的相机捕获的机器人环境的场景中的像素位置,并且由数据处理硬件根据像素位置和相机的校准信息来确定指向矢量。正在接收的像素位置由移动机器人的操作者选择。该方法还包括由数据处理硬件将指向矢量与移动机器人的地形估计组合以形成交点。交点包括机器人环境中的物理位置。该方法还包括由数据处理硬件将物理位置传输给移动机器人,使得移动机器人导航到机器人环境中的物理位置。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,该场景是以下中的任何一个:i)由移动机器人上的左前相机和右前相机捕获的机器人环境的前场景,ii)由移动机器人上的左相机捕获的机器人环境的左场景,iii)由移动机器人上的右相机捕获的机器人环境的右场景,iv)由移动机器人上的后相机捕获的机器人环境的后场景,以及v)由定位在移动机器人上方的假想相机捕获的机器人环境的自上而下的场景。
在该方法的一些示例中,将指向矢量与地形估计组合以形成交点,包括由数据处理硬件确定移动机器人与交点之间的距离是否大于移动机器人的距离阈值。该方法的这些示例还包括当距离大于移动机器人的距离阈值时,由数据处理硬件将交点移动得更靠近移动机器人以形成移动交点,使得移动机器人和移动交点之间的缩短的距离小于或等于距离阈值。
在该方法的其他示例中,将指向矢量与地形估计组合以形成交点,包括由数据处理硬件确定交点是否在移动机器人后面。该方法的这些示例还包括当交点在移动机器人后面时,由数据处理硬件反射移动机器人前面的交点以形成反射交点。这里,反射交点包括机器人环境中供移动机器人导航到的另一个物理位置。可选地,该方法的一些其他示例还包括由数据处理硬件确定移动机器人和反射交点之间的距离是否大于移动机器人的距离阈值。该方法的这些其他示例还包括当距离大于移动机器人的距离阈值时,由数据处理硬件将反射交点移动得更靠近移动机器人以形成移动交点,使得移动机器人和移动交点之间的缩短的距离小于或等于移动机器人的距离阈值。
在该方法的一些示例中,机器人环境的场景包括由移动机器人上的第一相机捕获的机器人环境的第一场景,以及不同于机器人环境的第一场景的机器人环境的至少一个第二场景。机器人环境的至少一个第二场景是由不同于移动机器人上的第一相机的移动机器人上的至少一个第二相机捕获的。在这些示例中,该方法还包括由数据处理硬件显示机器人环境的第一场景以及机器人环境的至少一个第二场景。该方法还包括响应于操作者在机器人环境的第一场景和机器人环境的至少一个第二场景之间的改变,由数据处理硬件改变移动机器人导航的方向。
在该方法的其他示例中,场景为机器人环境的第一人称视图,并且该方法还包括由数据处理硬件显示该场景以及由定位在移动机器人上方的假想相机捕获的机器人环境的自上而下的场景。该方法还包括响应于所显示的场景之一中的像素位置选择,由数据处理硬件镜像所显示的场景的另一个中的像素位置选择。
在该方法的一些示例中,在机器人环境中传输物理位置包括向移动机器人传输带有物理位置的定位命令。可选地,相机可以具有鱼眼相机和两个红外相机。此外,移动机器人可以有四条腿。
本公开的另一方面提供了一种用于导航移动机器人的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。该存储器硬件存储指令,该指令当在数据处理硬件上执行时,使得数据处理硬件进行包括以下的操作:接收由移动机器人上的相机捕获的机器人环境的场景中的像素位置,以及根据像素位置和相机的校准信息确定指向矢量。移动机器人的操作者选择像素位置。由数据处理硬件进行的操作还包括将指向矢量与移动机器人的地形估计组合以形成交点。该交点包括机器人环境中的物理位置。由数据处理硬件进行的操作还包括将物理位置传输给移动机器人,使得移动机器人导航到机器人环境中的物理位置。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,该场景是以下中的任何一个:i)由移动机器人上的左前相机和右前相机捕获的机器人环境的前场景,ii)由移动机器人上的左相机捕获的机器人环境的左场景,iii)由移动机器人上的右相机捕获的机器人环境的右场景,iv)由移动机器人上的后相机捕获的机器人环境的后场景,以及v)由定位在移动机器人上方的假想相机捕获的机器人环境的自上而下的场景。
在该系统的一些示例中,将指向矢量与地形估计组合以形成交点的操作包括确定移动机器人与交点之间的距离是否大于移动机器人的距离阈值。这些操作还包括当距离大于移动机器人的距离阈值时,将交点移动得更靠近移动机器人以形成移动交点,使得移动机器人和移动交点之间的缩短的距离小于或等于距离阈值。
在该系统的其他示例中,将指向矢量与地形估计组合以形成交点的操作包括确定交点是否在移动机器人后面。这些操作还包括当交点在移动机器人后面时,反射移动机器人前面的交点以形成反射交点。这里,反射交点包括机器人环境中供移动机器人导航到的另一个物理位置。可选地,在该系统的一些其他示例中,这些操作还包括确定移动机器人和反射交点之间的距离是否大于移动机器人的距离阈值。这些操作还包括当距离大于移动机器人的距离阈值时,由数据处理硬件将反射交点移动得更靠近移动机器人以形成移动交点,使得移动机器人和移动交点之间的缩短的距离小于或等于移动机器人的距离阈值。
在该系统的一些示例中,机器人环境的场景包括由移动机器人上的第一相机捕获的机器人环境的第一场景,以及不同于机器人环境的第一场景的机器人环境的至少一个第二场景。机器人环境的至少一个第二场景是不同于移动机器人上的第一相机的移动机器人上的至少一个第二相机捕获的。在该系统的这些示例中,操作还包括显示机器人环境的第一场景以及机器人环境的至少一个第二场景。这些操作还包括响应于操作者在机器人环境的第一场景和机器人环境的至少一个第二场景之间的改变,改变移动机器人导航的方向。
在该系统的其他示例中,场景为机器人环境的第一人称视图,并且这些操作还包括显示场景以及由定位在移动机器人上方的假想相机捕获的机器人环境的自上而下的场景。该操作还包括响应于所显示的场景之一中的像素位置选择,在所显示的场景的另一个中镜像该像素位置选择。
在该系统的一些示例中,在机器人环境中传输物理位置的操作包括向移动机器人传输带有物理位置的定位命令。可选地,相机可以具有鱼眼相机和两个红外相机。此外,移动机器人可以有四条腿。
本公开的又一方面提供了一种用于“预旋转”移动机器人的方法。该方法包括在数据处理硬件处接收由设置在移动机器人上的一个或多个真实相机捕获的机器人环境的前视图的真实图像。其中移动机器人处于向前的方位并面朝向前方向。该方法还包括由数据处理硬件确定移动机器人在从向前的方位转动到转动的方位时将旋转的预览角度,其中移动机器人面朝向右方向或向左方向。该方法还包括对于由假想场景相机投影的虚拟矩形上的每个点,由数据处理硬件确定相应的点是否对应于真实图像中的像素,并且由数据处理硬件显示包括对应像素的预览场景。正在显示的预览场景是机器人环境的视图,该预览场景在向右方向或向左方向上转动了预览角度,而移动机器人实际上没有从向前的方位转动到转动的方位。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,该方法还包括当虚拟矩形上的相应点对应于真实图像中的像素时,由数据处理硬件用来自对应像素的图像颜色来对相应点进行着色。该方法还包括当虚拟矩形上的相应点不对应于真实图像中的任何像素时,由数据处理硬件将相应点着色为黑色。该方法还包括由数据处理硬件基于虚拟矩形中的颜色来渲染预览场景。
在该方法的其他示例中,确定预览角度包括由数据处理硬件接收与操作者提供的用户输入相对应的虚拟速度,用于控制移动机器人从向前的方位转动到转动的方位。该方法的这些示例还包括由数据处理硬件对虚拟速度随时间进行积分,以生成预览角度。
该方法的一些示例还包括响应于操作者提供用于控制移动机器人从向前的方位转动到转动的方位的用户输入,由数据处理硬件启动倒计时定时器。该方法的这些示例还包括在倒计时定时器到期之前,由数据处理硬件基于操作者提供的用户输入连续确定将机器人环境的视图要转动的预览角度。该方法的这些示例还包括当倒计时定时器到期时,由数据处理硬件将等于预览角度的旋转角度传输给移动机器人,使得移动机器人从向前的方位转动该旋转角度到转动的方位。
在方法的其他示例中,机器人环境的前视图的真实图像由设置在移动机器人上的左前相机和右前相机捕获。可选地,相机可以具有鱼眼相机和两个红外相机。此外,移动机器人可以有四条腿。
本公开的又一方面提供了一种用于“预旋转”移动机器人的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,指令当在数据处理硬件上执行时使得数据处理硬件进行操作,该操作包括接收由设置在移动机器人上的一个或多个真实相机捕获的机器人环境的前视图的真实图像,其中移动机器人处于向前的方位并且面朝向前方向。由数据处理硬件进行的操作还包括确定当移动机器人从向前的方位转动到转动的方位时将旋转的预览角度,其中移动机器人面朝向右方向或向左方向。由数据处理硬件进行的操作还包括对于由假想场景相机投影的虚拟矩形上的每个点,确定相应的点是否对应于真实图像中的像素,并显示包括对应像素的预览场景。该预览场景是机器人环境的视图,其在向右方向或向左方向上转动了预览角度,而移动机器人实际上没有从向前的方位转动到转动的方位。
本公开的实现方式可包括以下可选特征中的一个或多个。在一些实现方式中,操作还包括当虚拟矩形上的相应点对应于真实图像中的像素时,用来自对应像素的图像颜色对相应点进行着色。操作还包括当虚拟矩形上的相应点不对应于真实图像中的任何像素时,由数据处理硬件将相应点着色为黑色。该操作还基于虚拟矩形中的颜色来渲染硬件预览场景。
在系统的其他示例中,确定预览角度的操作包括接收与操作者提供的用户输入相对应的虚拟速度,以控制移动机器人从向前的方位转动到转动的方位。该系统的这些示例还包括对虚拟速度随时间进行积分,以生成预览角度。
在该系统的一些示例中,操作还包括响应于操作者提供用于控制移动机器人从向前的方位转动到转动的方位的用户输入而启动倒计时定时器。在系统的这些示例中,操作还包括在倒计时定时器到期之前,基于操作者提供的用户输入连续确定机器人环境的视图转动的预览角度。在系统的这些示例中,操作还包括当倒计时定时器到期时,将等于预览角度的旋转角度传输到移动机器人,使得移动机器人从向前的方位转动该旋转角度到转动的方位。
在系统的其他示例中,机器人环境的前视图的真实图像由设置在移动机器人上的左前相机和右前相机捕获。可选地,相机可以具有鱼眼相机和两个红外相机。此外,移动机器人可以有四条腿。
附图说明
图1是用于导航机器人的示例系统的框图。
图2是操作者用于导航机器人的示例移动设备的示意图。
图3A-3E是可使用本文所述系统和方法操作的机器人示例的示意图。
图4A-4B是用于导航机器人的触摸即走(touch to go)应用的示例的框图。
图5A-5H是用于确定航点的触摸即走应用的示例方法的图。
图6A-6C是操作者使用触摸即走应用的示例来导航机器人的屏幕截图,其中机器人避开障碍物。
图7A-7C是操作者使用触摸即走应用的示例来导航机器人的屏幕截图,其中机器人绕过拐角。
图8A-8D是操作者使用触摸即走应用的示例以通过改变场景来改变机器人的行进方向的屏幕截图。
图9A-9D是操作者使用触摸即走应用的示例以通过从多个场景中选择场景来改变机器人的行进方向的屏幕截图。
图10A-10B是操作者使用触摸即走应用的示例以从自上而下场景导航机器人的屏幕截图。
图11A和11B是操作者使用触摸即走应用的示例以使用分屏导航机器人的屏幕截图。
图12A和12B是操作者使用触摸即走应用的示例以“预旋转”机器人的屏幕截图。
图13A-13E是用于“预旋转”机器人的触摸即走应用的示例方法的框图。
图14A-14H是预旋转过程期间图形用户界面上显示的示例场景和示例机器人环境的组合。
图15是用于导航机器人的方法的操作的示例布置的流程图。
图16是用于预旋转机器人的方法的操作的示例布置的流程图。
图17是用于控制机器人的方法的操作的示例布置的流程图。
图18是可用于实现本文所述系统和方法的示例计算设备的示意图。
各图中相同的参考符号指示相同的元件。
具体实现方式
图1示出了用于导航机器人300的系统100,在系统100中,操作者10使用移动设备200在机器人环境内导航机器人300。机器人环境通常是指与机器人300可以行进的某种类型的地形相关联的空间区域。例如,地形可以包括具有建筑物、街道、人行道、公园、小巷、楼梯、坡道、隧道等的城市地形;具有道路、田野、丘陵、山脉、洞穴等的乡村地形;具有洞穴、隧道等的地下地形;或者它们的任意组合。
机器人300收集关于机器人300周围的机器人环境的信息以及与在机器人环境中进行操作相关联的信息。机器人300向移动设备200发送这些信息中的一些或全部,包括由机器人300捕获的机器人环境的图像。移动设备200然后向操作者10显示该图像,使得操作者10可以观察机器人300正在操作的机器人环境,该机器人环境在该示例中是仓库的内部。在一些示例中,操作者10从机器人300的角度观察机器人环境。这种“第一人称”体验可能有益于系统100的某些应用。移动设备200在用户界面221(图2)上显示机器人环境301(图2)的图像,并且操作者10可以提供指示选择图像内的位置的导航输入(例如,航点命令W),该位置对应于操作者10希望机器人300导航的机器人环境301中的物理位置(例如,目标位置T)。在一些示例中,指示选择图像内的位置的导航输入(例如,航点命令W)从移动设备200发送到机器人300,作为对应于机器人环境301的场景被渲染的起点的世界空间中的点,以及对应于由操作者10选择的图像内的位置的世界空间中的方向。例如,移动设备200可以执行用于在移动设备200的屏幕220(图2)上显示机器人环境的图像的图形用户界面(GUI)221,并且操作者10可以通过触摸图像内的位置来提供导航输入,以将机器人300导航到目标位置T。在附加的示例中,操作者10经由物理按钮、鼠标、操纵杆或任何其他输入机构来提供导航输入。如本文所使用的,导航输入指的是选择具有对应于目标位置T(例如,物理位置)的图像的位置的输入指示。
响应于接收导航输入,移动设备200向机器人300发送定位命令,该定位命令指示机器人300导航到机器人环境中的目标位置。当响应于接收到定位命令而导航到目标位置时,机器人300可能需要避开障碍物(例如,柱子)或绕过拐角。考虑到机器人环境的限制,机器人300能够计划如何导航到目标位置。在一些场景中,机器人300确定它不能导航到操作者10选择的目标位置,在这种情况下,移动设备200可以(例如,通过在GUI上显示通知和/或提供声音警报)通知操作者10。
当机器人300向目标位置移动时,机器人环境相对于机器人300的特性可能会改变(例如,从平坦地形变为丘陵地形)。因此,机器人300可以连续地或以规则的间隔向移动设备200发送更新的环境信息,包括反映机器人环境中的变化的更新的图像数据。移动设备200可以显示更新的图像数据,以允许操作者10在穿过机器人环境朝向目标位置行进时观察机器人300的进展。
在一些实现方式中,移动设备200配置为显示目的地图像,该目的地图像示出机器人300在到达目标位置时处于目标位置。操作者10然后可以在目的地图像中提供新导航输入,该新导航输入对应于操作者10希望机器人300导航的机器人环境中的新目标位置。重复前述操作,直到操作者10完成对机器人300的导航(例如,机器人300已经到达机器人环境中的最终目的地)。
在导航机器人300时,可能有必要在机器人环境中转动机器人300,并从当前方位改变为目标方位。操作者10点击/触摸图像中的方向,该方向对应于操作者10希望机器人300从机器人环境中的当前方位(例如,左或右)转动的目标方向。作为响应,移动设备200显示在对应于目标方向的方向上转动的视图的更新的图像。这给予操作者10机器人300正从当前方位转动到目标方位的印象。显示在对应于目标方向的方向上的视图的更新的图像可以发生而无需从当前方位实际转动/机动机器人,从而允许操作者10从目标方位的角度观察更新的图像中的机器人环境。
实际上,机器人300不会立即执行任何转动机动,使得机器人300的实际方位保持固定在机器人环境中的当前方位。移动设备200继续旋转视图,直到操作者10停止点击/触摸方向并停止在目标方位。旋转角度将当前方位和目标方位分开。
此后,移动设备200可向机器人300发送旋转命令,该旋转命令指示机器人300基于操作者10设定的旋转角度在机器人环境中执行转动机动。预旋转机器人300的机器人环境视图并在移动设备200上显示该视图向操作者10提供了即时反馈,从而允许操作者10在机器人300执行转动机动之前看到转动机器人300的最终结果。这种“大棒加胡萝卜”方法在系统100的应用中可能是有益的,其中从操作者10发出命令的时间到机器人300执行该命令的时间存在等待时间或延迟。
图2示出了由操作者10用于在机器人环境周围导航机器人300的移动设备200的示例。移动设备200包括外壳210,以及显示器220和位于显示器220周围的多个控件230。如图所示,控件230位于外壳210的前部和顶部边缘,并且包括按钮230a、控制杆230b、方向键(directional d-pad)230c和肩部按钮230d。外壳210被成形为握在操作者10的双手中,使得操作者10的拇指被定位以操作位于移动设备200的前面的控件(例如,控制杆230b),并且操作者10的食指被定位以操作位于移动设备200的顶部边缘的控件(例如,肩部按钮230d)。移动设备200还可以包括一个或多个附加控件,该一个或多个附加控件位于移动设备200背面的由操作者10的其他手指操作的定位。
显示器(例如,屏幕)220基于机器人300捕获的图像数据向操作者10显示机器人环境的图像或场景222。在一些示例中,显示器220将场景222呈现为视频馈送。
移动设备200在外壳210内部还包括处理设备240、存储设备250(例如,存储器设备)和通信接口260。在所示的示例中,处理设备240执行用于在屏幕220上显示的GUI 221以呈现机器人环境的场景222以供操作者10查看。移动设备200可以包括图2中未描绘的附加组件。处理设备240可以包括执行计算机可执行指令的一个或多个处理器以及存储计算机可执行指令的相关联存储器(例如,RAM和/或ROM)。在处理设备240包括多于一个处理器的实现方式中,处理器可以以分布式或单独的方式执行。处理设备240可以执行操作系统242和触摸即走应用400(图4A),用于在机器人环境中导航机器人300。在一些示例中,处理设备240执行其他应用244,该其他应用244对于移动设备200而言可以是本地的或非本地的,诸如网络浏览器,所有这些都可以被实现为计算机可读指令。
存储设备250可包括一种或多种计算机可读介质(例如,硬盘驱动器、固态存储器驱动器和/或闪存驱动器)。存储设备250可以存储由操作系统242、其他应用244和触摸即走应用400使用的任何合适的数据。通信接口260包括被配置为在机器人环境中与机器人300通信的一个或多个设备。在一些实现方式中,通信接口260被配置为通过网络与机器人300通信。通信接口260可以包括用于进行有线或无线通信的一个或多个收发器。通信接口260的示例可以包括但不限于被配置为使用IEEE 802.11无线标准进行通信的收发器、以太网端口、无线发射器和通用串行总线(USB)端口。
参考图3A和3B,机器人300包括主体310和耦合至主体310的移动系统320,用于在机器人环境内移动机器人300。机器人300还包括控制系统330,该控制系统330通信耦合到传感器系统340。控制系统330基于传感器系统340收集的数据确定机器人300如何在机器人环境内移动。机器人300还包括电气组件350、一个或多个电源360以及一个或多个通信链路370,用于实现机器人300的各种操作。
机器人300还包括容纳在主体310内的数据处理硬件312和存储器硬件314。数据处理硬件312可以作为一个或多个通用处理器或专用处理器(例如,数字信号处理器、专用集成电路等)来操作。数据处理硬件312可以被配置为执行计算机可读程序指令316,该计算机可读程序指令316存储在存储器硬件314中并且可执行以提供本文描述的机器人300的操作。例如,程序指令316可被执行以提供控制系统330的操作,其中控制系统330可被配置为引起移动系统320和电气组件116的激活和去激活。数据处理硬件312可以操作并使机器人300能够执行各种功能,包括本文描述的功能。虽然机器人300在所示的示例中实现了数据处理硬件312和存储器硬件314,但是数据处理硬件312和/或存储器可以驻留在与机器人300和移动设备200通信的远程系统190(图4B)上。类似地,数据处理硬件312和/或存储器可以分散在机器人300和远程系统190中(图4B)。
存储器硬件314可作为各种类型的存储介质存在。例如,存储器硬件314可以包括或采取可以由数据处理硬件312读取或访问的一个或多个计算机可读存储介质的形式。一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储组件,诸如光、磁、有机或其他存储器或磁盘存储器,它们可以整体或部分地与数据处理硬件312集成。在一些实现方式中,存储器硬件314可以使用单个物理设备(例如,一个光、磁、有机或其他存储器或磁盘存储单元)来实现,而在其他实现方式中,存储器硬件314可以使用两个或更多个物理设备来实现,这些物理设备可以经由有线或无线通信进行通信。此外,除了计算机可读程序指令316之外,存储器硬件314可以包括诸如诊断数据等的附加数据。
移动系统320代表机器人300的硬件,其可使机器人300操作和执行物理功能。作为几个示例,移动系统320可以包括(多个)致动器、(多个)可延伸的腿(“腿”)、(多个)臂、(多个)轮子和/或其他机械组件。移动系统320可以取决于机器人300的设计。此外,移动系统320可以基于机器人300被配置为执行的功能和/或任务。因此,根据机器人300的操作和功能,不同的移动系统可以供机器人300使用。在一些示例中,机器人300可以被配置为添加和/或移除移动系统320的组件,这可能涉及来自用户和/或另一机器人设备的辅助。例如,机器人300最初可以配置有四条腿,并且作为四足动物操作,但是可以由用户或机器人300改变以移除四条腿中的两条腿来作为两足动物操作。可以包括移动系统320的其他示例。
在图3A所示的示例中,移动系统320系统包括与主体310耦合的四条腿322。四条腿322中的每一条都包括由腿关节328分开的上部324和下部326。每条腿322的下部326终止于脚329。每条腿的脚329是可选的,并且一条或多条腿322的下部326的末端可以耦合到轮子上。机器人300具有沿着重力方向的垂直重力轴Vg和质心CM,该质心CM是机器人300的分布质量的加权相对定位总和为零的点。在一些示例中,Z轴Az与垂直重力轴Vg重合。机器人300还具有基于相对于垂直重力轴Vg(即,相对于重力的固定参考系)的CM的姿态P,以定义机器人300假设的特定姿势或站立。机器人300的姿势可以由机器人300在空间中的方位或角度定位来定义。腿322相对于主体310的移动改变了机器人300的姿态P(即,机器人的CM的定位和机器人300的姿势或方位的组合)。
在某些实现方式中,机器人300还包括一个或多个附肢,诸如设置在主体310上并配置为相对于主体310移动的铰接臂。铰接臂可以具有五个或更多的自由度。此外,铰接臂可互换地称为操纵器臂或简称为附肢。在一些示例中,铰接臂包括可相对于彼此和相对于主体旋转的两个部分。在其他示例中,铰接臂可以包括更多或更少的部分,而不脱离本公开的范围。第一部分可以通过铰接臂接头与第二部分分开。可互换地称为操纵器头的端部执行器可耦合到铰接臂的第二部分的远端,并可包括用于抓握/抓取对象的一个或多个致动器。
控制系统330用作机器人300的部分之间的链接,诸如移动系统320和/或传感器系统340之间的链接。在一些情况下,控制系统330用作机器人300和另一个计算设备之间的接口,该另一个计算设备诸如操作者10用来导航机器人300的移动设备200(图2)。因此,控制系统330可以用作机器人300和使用移动设备200的操作者10之间的接口。图3C示出了控制系统330的一个示例,该控制系统330包括遍历系统380和感知系统390。遍历系统380负责在机器人环境周围协调和/或移动机器人300。感知系统390从传感器系统340(传感系统/相机)接收图像数据或传感器数据342,并生成指示周围机器人环境中的障碍物的一个或多个地图394。
当机器人300在机器人环境周围移动时,遍历系统380可分析地形,规划机器人300的运动轨迹,和/或指示机器人300执行各种移动。遍历系统380可以使用机器人300的各种系统来尝试成功遍历机器人环境,同时避免对机器人300或机器人环境的碰撞和/或损坏。
在一些实现方式中,如图3C所示,遍历系统380包括至少一个控制器382、路径生成器384、步伐规划器/定位器386和主体规划器388。遍历系统380被配置为与传感器系统340和感知系统390通信。
控制器382配置为基于来自机器人300的系统(例如,遍历系统380、感知系统390等)的输入或反馈以及来自操作者10通过移动设备200的输入,来控制机器人300的移动以在机器人环境周围遍历。这可以包括机器人300的姿态和/或行为之间的移动。例如,控制器382控制不同的脚步图案、腿图案、主体移动图案或视觉系统感测图案。这里,控制器382被配置为与机器人300的数据处理硬件312和/或存储器硬件314通信,以执行从机器人300的系统(例如,遍历系统380、感知系统390等)或从操作者10提供的移动。
在一些示例中,控制器382包括多个控制器382,其中每个控制器382具有固定的节奏。固定的节奏指的是腿322的步伐或摆动阶段的固定的时序。例如,控制器382指示机器人300以特定频率(例如,每250毫秒、350毫秒等一步)移动腿322(例如,走一步)。利用多个控制器382,其中每个控制器382具有固定的节奏,机器人300可以通过在控制器382之间切换来感受可变的时序。在一些实现方式中,当机器人300遍历机器人环境时,机器人300连续切换/选择固定的节奏控制器382(例如,每三毫秒重新选择控制器382)。
遍历系统380可基于控制器382的步伐计划选择控制器382。遍历系统380可以基于节奏(即,为给定控制器编程的移动步速)和至少一个转向命令为每个控制器382生成步伐计划,以在机器人环境周围移动机器人300。如果基于控制器382的节奏,在机器人环境周围的地形中不存在障碍物或碰撞区域,则步伐计划指的是对应于机器人300将迈步的位置(即,脚329或腿322的远端的放置位置)的无约束脚放置的地图(称为无约束地图)。给定步伐计划,遍历系统380将步伐计划与由感知系统390生成的约束地图394进行比较。基于该比较,遍历系统380选择控制器382,该控制器382的步伐计划违反了约束地图394内识别的最少量的约束(即,需要最少量偏差来实现约束地图394的步伐计划)。通过选择具有最小偏差的控制器382,遍历系统380可确保机器人300需要最少的调整来避开障碍物或碰撞区域。
在一些实现方式中,遍历系统380基于步伐计划和约束地图394之间的关系对每个控制器382进行评分,并选择具有最佳分数的控制器382。举例来说,遍历系统380选择具有最低分数的控制器382,该控制器382对应于具有实现约束地图394的最小偏差的步伐计划的控制器382。在一些示例中,除了步伐计划和约束地图394之间的关系之外,分数对应于基于控制器382的软约束或条件的成本函数。遍历系统380也可配置有在评分和/或选择之前排除特定控制器382的条件。条件的一些示例包括基于摆动脚的位置是否可以实现与地形的期望接触,或者在遍历期间是否需要特定的步伐高度。在一些配置中,成本函数将权重应用于不同的条件,其中步伐计划和约束地图之间的偏差是最重要的条件。
在一些示例中,存储器硬件314在机器人300上本地存储遍历系统380的移动或移动约束。在其它示例中,这些移动或约束由遍历系统380远程存储和/或访问(下文参考图4B描述)。
继续参见图3C,路径生成器384被配置为确定机器人300的水平运动。例如,水平运动指的是机器人300的平移和/或偏转。路径生成器384基于传感器数据342确定机器人300周围的机器人环境内的障碍物。路径生成器384将障碍物传送给步伐规划器/定位器386,使得步伐规划器/定位器386可以识别机器人300的腿322的脚步放置(例如,放置腿322的远端/末端的位置或者放置脚329的位置)。步伐规划器/定位器386使用来自感知系统390的输入生成脚步位置(即,机器人300应该迈步的位置)。
主体规划器388基于输入(诸如约束地图394(或地形地图)和来自步伐规划器/定位器386的脚步位置,以及约束集)来确定机器人300的高度和俯仰。在一些实现方式中,为了确定机器人300的高度和俯仰,主体规划器388是二次编程轨迹规划器,其被配置为基于输入确定满足该约束集的机器人300的最优轨迹。
在一些示例中,感知系统390包括地图生成器392,该地图生成器392基于机器人环境周围的地形的传感器数据342生成地图。基于所生成的地图,感知系统390为机器人300生成约束地图394(例如,供机器人300的遍历系统380执行)。感知系统390通常将约束地图394或约束地图394的部分(例如,碰撞/非碰撞区域)传送到遍历系统380(例如,与遍历系统380的步伐规划器/定位器386)。步伐规划器/定位器386指的是机器人300的轨迹规划器(也称为运动规划),其被配置为规划在遍历机器人环境时避免碰撞的运动轨迹。
在一些实现方式中,地图生成器392生成不完整的地图,并配置为基于传感器数据342的性质填充传感器数据342的间隙。换句话说,感知系统390的地图生成器392从针对可见地形收集的传感器数据342中推断关于障碍地形(也称为推断地形)的细节。基于传感器数据342,地图生成器392被编程为假设丢失的传感器数据对应于平滑地形或平坦地形。当传感器数据342指示近处对象与远处对象相邻时,地图生成器392假设这种远近对比是由于机器人环境内传感器系统340的遮挡而发生的。当地图生成器392假设发生遮挡时,地图生成器392通过将传感器数据342的间隙映射为平坦地形来填充这些间隙。相反,当传感器数据342不指示远近对比时,地图生成器392假设丢失的传感器数据342是由于传感器系统340的视力不佳造成的,并将丢失的传感器数据342映射为平滑地形。
传感器系统340包括一个或多个传感器,诸如力传感器、接近传感器、运动传感器、负载传感器、定位传感器、触摸传感器、深度传感器、超声波测距传感器和红外传感器等。传感器系统340可以向数据处理硬件312提供传感器数据,以允许机器人300与机器人环境的适当交互,以及监控机器人300的系统的操作。传感器数据可以用于机器人300的控制系统330和/或计算系统对移动系统320和电气组件350的激活和去激活的各种因素的评估。
传感器系统340可为控制系统330和/或计算系统(例如,操作者10使用运行在移动设备200上的触摸即走应用400来导航机器人300)提供指示机器人300的机器人环境的信息,以用于确定机器人300的操作。例如,传感器系统340可以捕获对应于环境的地形或附近对象的位置的数据,这可以辅助环境识别和导航等。传感器系统340可以实时监控机器人环境,并为机器人300检测障碍物、地形元素、天气条件、温度和/或环境的其他参数。
此外,机器人300可包括被配置为接收指示机器人300的状态的信息的(多个)其他传感器,包括可以监控机器人300的各种组件的状态的(多个)传感器。(多个)传感器可以测量机器人300的系统的活动,并接收基于机器人300的各种特征的操作的信息,例如机器人300的可延伸的腿、臂或其他机械和/或电气特征的操作。由传感器系统340提供的传感器数据可以使机器人300的控制系统330能够确定操作中的错误以及监控机器人300的组件的整体功能。
例如,控制系统330可使用传感器数据来确定机器人300在操作期间的稳定性,以及与功率水平、通信活动、需要维修的组件及其他信息相关的测量。作为示例配置,机器人300可以包括(多个)陀螺仪、(多个)加速度计和/或其他可能的传感器,以提供与机器人300的操作状态相关的传感器数据。此外,传感器系统340还可以监控机器人300当前可能正在操作的功能的当前状态,诸如步态。此外,传感器系统340可以测量机器人的给定机器人腿和机器人的质心之间的距离。也可以存在传感器系统340的其他示例用途。
在图3A和图3D所示的示例中,机器人300包括五个相机:左前相机344a;右前相机344b;左相机344c;右相机344d;和后相机344e。在其他示例中,机器人300可以具有多于五个相机(例如,七个)或少于五个相机(例如,三个)。例如,机器人300可以进一步包括安装在机器人上的一个或多个有效载荷相机344。在一个示例中,有效载荷相机包括环形相机。每个相机344具有对应的视场,简称为“视图”,定义了相机344的感测范围或区域。相机344定位在主体310周围。
特别参考图3D,主体310具有沿左右方向横向延伸的X轴AX和沿前后方向纵向延伸的Y轴AY。左前相机344a与Y轴AY成一角度,并位于主体310上,使得左前相机344a指向右前方向并捕获右前视图349b。例如,左前相机344a位于主体310的左前部分。右前相机344b与Y轴AY成一角度,并位于主体310上,使得右前相机344b指向左前方向并捕获左前视图349a。例如,左前相机344a位于主体310的左前部分。通过左前相机344a和右前相机344b的这种布置,如果从右前相机344b向左前视图349a绘制射线R1,并且从左前相机344a向右前视图349b绘制第二射线R2,则所得射线R1和R2如图所示彼此交叉。因此,将这种布置称为“交叉相机”布置可能是方便的。
左相机344c与X轴AX对准,并位于主体310上,使左相机344c指向左方向并捕获左视图349c。例如,左相机344c位于主体310的左侧。右相机344d与X轴AX对准,并位于主体310上,使得右相机344d指向右方向并捕获右视图349d。例如,右相机344d位于主体310的右侧。后相机344e与Y轴AY对准,并位于主体310上,使得后相机344e指向后方向并捕获后视图349e。例如,后相机344e位于主体310的后部。
在一些示例中,机器人300将左前视图349a和右前视图349b组合或“拼接”在一起形成大于单独的左前视图349a和右前视图349b的前视图349f。通过更广阔的前视图349f,机器人300可以更清楚地了解它前面的东西,例如障碍物和其他限制,这是特别有利的,因为机器人300大部分时间都在向前方向上移动。如图所示,左前视图349a和右前视图349b的部分可以重叠,这在拼接视图时可能是有用的。在另一示例中,机器人300将左前视图349a、右前视图349b、左视图349c、右视图349d、后视图349e组合在一起,以形成近似于机器人300周围的360度视图的周围视图。
在图3A所示的示例中,每个相机344包括三个单独的相机。为了便于参考,三个相机的每种布置被称为“相机三联体”。相机344的其他示例可以包括更多(例如,四个)或更少(例如,两个)的单独相机。构成相机三联体344的示例相机包括但不限于立体相机、扫描光检测和测距(LIDAR)传感器、扫描激光检测和测距(LADAR)传感器和红外相机。作为示例,相机三联体344包括一个鱼眼相机346和两个红外相机348,348a–b。鱼眼相机346具有宽轴和窄轴,对于不同的相机三联体,其布局是不同的。
参考图3A和图3E,对于左、右和后相机三联体344c-e,鱼眼相机346c-e的布局在水平方向上具有与X轴AX和Y轴AY大致对准的宽轴,并且在垂直方向上具有与Z轴Az大致对准的窄轴。如图3E所示,该布局产生类似于矩形的视场(即左视图349c、右视图349d和后视图349e),其中水平视场(VH)大于垂直视场(VV)。
对于左前相机三联体344a和右前相机三联体344b,鱼眼相机346a、346b的布局在水平方向上具有窄轴,并且在垂直方向上具有宽轴。如图3E所示,该布局产生类似于矩形的视场(即左前视图349a和右前视图349b),其中水平视场(VH)小于垂直视场(VV)。前视图349f(即,组合左前视图349a和右前视图349b的结果)类似于正方形。
红外相机348(图3A)检测红外光。每个红外相机348包括将红外光的图案发射到可能没有图案的表面上的投影仪。发射的图案从对象的表面反射出来,并被红外相机348检测到。这样,红外相机348可以“看到”不具有纹理的对象上的纹理。
当用传感器勘测视场时(例如,用右前相机344b的左前视图349a),传感器系统340生成与视场对应的传感器数据342。在一些示例中,传感器数据342包括对应于由三维体积图像传感器生成的三维体积点云的图像数据。附加地或替代地,当机器人300在机器人环境周围机动时,传感器系统340收集机器人300的姿态数据,该姿态数据包括惯性测量数据(例如,由惯性测量单元测量)。在一些示例中,姿态数据包括关于机器人300的运动学数据和/或方位数据。利用传感器数据342,感知系统390可以生成地图,诸如机器人环境10周围的地形的约束地图394。
由传感器系统340收集的传感器数据342(诸如与机器人环境相关的图像数据、姿态数据、惯性数据、运动学数据等)可以通信到机器人300的遍历系统380(例如,数据处理硬件312和存储器硬件314)。在一些示例中,传感器系统340收集并存储传感器数据342(例如,在图4B的远程资源192的存储器硬件314或存储器硬件196中)。在其他示例中,传感器系统340实时收集传感器数据342,并处理传感器数据342,而不存储原始(即,未处理的)传感器数据342。在又一示例中,遍历系统380和/或远程资源192(图4B)存储已处理的传感器数据342和原始传感器数据342两者。
在图3B的示例机器人架构中,数据处理硬件312和存储器硬件314位于机器人300的中央,使得机器人300的各种系统可共享硬件的使用(例如,控制系统330、传感器系统340、遍历系统380和感知系统390)。在一些配置中,机器人300的一个或多个系统(例如,控制系统330、传感器系统340、遍历系统380和/或感知系统390)具有它们自己的专用硬件(例如,与数据处理硬件312和存储器硬件314通信)。
参考图3B,机器人300可包括一个或多个电源360,该电源360被配置为向机器人300的各种组件/系统供电。在可能的电源中,机器人300可以包括液压系统、电气系统、电池和/或其他类型的电源。作为示例说明,机器人300可以包括一个或多个电池,该电池被配置为经由有线和/或无线连接向组件/系统供电。在示例中,移动系统320的组件和电气组件350可以各自连接到不同的电源,或者可以由相同的电源供电。机器人300的组件也可以连接到多个电源。
在示例配置中,可使用任何类型的电源为机器人300提供电力,诸如汽油发动机。此外,(多个)电源360可以使用各种类型的充电来充电,诸如到外部电源的有线连接、无线充电、燃烧或其他示例。其他配置也是可能的。此外,机器人300可以包括液压系统,该液压系统被配置为使用流体动力向移动系统320提供电力。例如,机器人300的组件可以基于通过液压系统传输到各种液压马达和液压缸的液压流体来操作。机器人300的液压系统可以通过机器人300的部件之间的小管、柔性软管或其他链接件传递大量的动力。机器人300内可以包括其他电源。
电气组件350可包括例如能够处理、传递、提供电荷或电信号的各种组件。在可能的示例中,电气组件350可以包括电线、电路和/或无线通信发射器和接收器,以实现机器人300的操作。电气组件350可以与移动系统320交互工作,以使机器人300能够执行各种操作。例如,电气组件350可以被配置为从(多个)电源360向移动系统320的组件提供电力。此外,机器人300可以包括电动机。也可以存在电气组件350的其他示例。
在某些实现方式中,机器人300还可包括(多个)通信链路370,该通信链路370被配置为发送和/或接收信息。(多个)通信链路370可以传输指示机器人300的各种组件/系统的状态的数据。例如,由传感器系统340读入的信息可以经由(多个)通信链路370传输到单独的计算设备(例如,图2的移动设备200)。指示数据处理硬件312、存储器硬件314、控制系统330、移动系统320、(多个)电源360和/或电气组件350的完整性或健康状况的其他诊断信息可以经由(多个)通信链路370传输到外部设备(例如,操作者10用来导航机器人300的图2的移动设备200)。
在一些实现方式中,机器人300在(多个)通信链路370处接收由数据处理硬件312处理的信息。例如,接收的信息可以指示在程序指令316的执行期间可由数据处理硬件312访问的数据。此外,接收的信息可以改变控制系统330的方面,这些方面可以影响移动系统320或电气组件350的行为。在一些情况下,接收的信息指示请求特定片段信息(例如,机器人300的一个或多个组件/系统的操作状态)的查询,并且数据处理硬件312可以随后将该特定片段信息传输回(多个)通信链路370。
(多个)通信链路370的示例包括用于将机器人300连接至外部设备(例如,操作者10用于导航机器人300的图2的移动设备200)的无线连接,无需任何物理线缆。一些示例无线连接可以利用蜂窝连接,诸如CDMA、EVDO、GSM/GPRS、4G电信(诸如WiMAX或LTE)或5G电信。替代地或附加地,无线连接可以利用Wi-Fi连接来向无线局域网(WLAN)传输数据。在一些实现方式中,无线连接还可以通过红外链路、蓝牙或近场通信(NFC)设备进行通信。除了无线连接之外或者替代无线连接,(多个)通信链路370的其他示例可以包括有线连接。在这些示例中,机器人300可以包括一个或多个端口,以将(多个)通信链路370连接到外部设备(例如,由操作者10用来导航机器人300的图2的移动设备200)。
请注意,图3A-3E中所示的机器人300是出于说明目的,并且可包括更多或更少的组件,而不脱离本文公开的范围。机器人300的各种组件可以以任何方式连接,包括有线或无线连接等。此外,在一些示例中,机器人300的组件可以位于多个不同的物理实体上,而不是单个物理实体上。也可以存在机器人300的其他示例配置。
上文参考图3A-3E描述的机器人300及其示例代表配置为执行本文所述操作的示例机器人设备。此外,机器人300可以被配置为自主地、半自主地和/或使用由操作者10(例如,经由移动设备200)提供的方向来操作,并且可以以各种形式存在,诸如人形机器人或四足机器人(例如,狗),以及其他示例。此外,机器人300也可以被称为机器人设备、移动机器人或机器人,以及其他名称。
参考图4A,在移动设备200上执行的触摸即走应用400(例如,在处理设备240(例如,移动设备200的数据处理硬件240)上执行)确定机器人环境中的目标位置T(例如,物理位置)或操作者10希望机器人300导航的“航点”。从传感器系统340(图3B和3C),触摸即走应用400接收机器人300的图像数据342、相机定位/位置404和地形估计406。机器人300上的一个或多个相机,例如上面参考图3D描述的鱼眼相机346,可以捕获图像数据342。图像数据342对应于由相机勘测/捕获的一个或多个视场(例如,图3D的前视图349f)。移动设备200执行GUI 221以在显示器220上将图像数据342渲染为图像或场景222,使得操作者10从机器人300的角度看到机器人环境的视图。操作者10提供指向场景222中的位置的导航输入(例如,输入指示),该位置对应于操作者10希望机器人300导航的机器人环境中的物理或目标位置T。为了便于参考,对应于目标位置的场景222内的位置可以被称为“像素位置”224。
从像素位置224和输入342、404、406,触摸即走应用400确定航点W(下面更详细地描述),并将航点W提供给遍历系统380(图3C)。例如,触摸即走应用400向机器人300传输带有航点的定位命令。这里,具有航点的定位命令可以对应于航点命令。遍历系统380然后使用航点W连同来自传感器系统340和感知系统390(图3C)的输入来控制和导航机器人300到航点W,如上面参考图3C所描述的。
参考图4B,系统100可包括网络组件。例如,遍历系统380经由网络180与远程系统190通信。远程系统190可以是服务器或基于云的环境,其包括远程资源192,诸如远程数据处理硬件194和远程存储器硬件196。在一些实现方式中,使用远程资源192在远程系统190上存储和/或处理移动或遍历约束。这些约束经由网络180通信给机器人300的遍历系统380。在又一示例中,与遍历系统380相关的不同输出被远程(例如,经由远程系统190)和本地(例如,经由存储器硬件314(图3B))处理和/或存储。由触摸即走应用400确定的航点W可以通过网络180(例如,作为航点命令)传输到机器人300。
参考图5A-5C,触摸即走应用400使用像素位置224的水平位置和垂直位置来确定由操作者10输入的导航方向,用于在机器人环境中机动机器人300(图5A)。水平位置和垂直位置可以分别与场景222内的像素位置224的水平和垂直坐标相关联。由操作者10提供的导航方向输入可以由指向矢量V表示(图5B和5C)。因此,触摸即走应用可以基于场景222内的像素位置224的选择来确定指向矢量V,其中指向矢量V表示用于在环境301中导航机器人300的行进方向。指向矢量V可以进一步基于捕获对应于场景222的图像数据242的至少一个相机344的校准信息,诸如相机定位404。触摸即走应用400将指向矢量V与机器人300的地平面估计G组合,以找到指向矢量V和地平面估计G(图5D)之间的交点I(图5D)。当指向矢量V和地平面估计G之间的交点I在机器人300的前面时,如图5D所示,触摸即走应用400将交点I的位置作为航点(例如,目标位置)发送/传输到机器人300,使得机器人300导航到该航点(例如,自主地)。在该示例中,当机器人300的当前定位和交点之间的距离满足(例如,小于或等于)阈值距离(例如,四米)时,触摸即走应用400可以将交点I识别为目标位置。如本文所使用的,由应用400发送给机器人300的航点对应于航点命令W,该航点命令W指示机器人300导航到与该航点相关联的目标位置。
可选地,不是基于交点I发送实际“航点”,而是在移动设备200上执行的应用400基于场景222内的像素位置224的选择来发送航点命令W,该航点命令W包括世界空间中的点以及世界空间中的指向矢量V,该点对应于捕获对应于场景222的图像数据242的至少一个相机344的起点。在这种情况下,在接收到仅包括世界空间中的点和指向矢量V的航点命令W时,机器人300响应性地在指向矢量V的方向上行进,直到达到距离阈值或者机器人300检测到与指向矢量V相交的障碍物。有利地,移动设备200不必确定用于计算发送给机器人300的实际“航点坐标”的地形估计(例如,地平面估计G),而是当机器人300接近目标位置T时,允许机器人300在指向矢量V的方向上导航的同时,连续地重新计算地形估计(例如,地平面估计)。
在某些情况下,操作者10选择与机器人环境301中的目标位置相对应的像素位置224,该目标位置超出(例如,不满足)机器人300被允许、意图或以其他方式设计为自主导航的阈值距离或指定范围(例如,四米的自主导航范围)。触摸即走应用400指示机器人300开始向目标位置移动,并停止在目标位置之前的中间位置(例如,距离机器人300的开始位置四米),而不是返回要求操作者10选择新的像素位置的错误消息。这里,当接收到像素位置224(即,导航方向输入)时的机器人300的位置和中间位置之间的距离可以对应于机器人300被允许自主导航的阈值距离。因此,通过使机器人300能够在朝向目标位置的方向上移动而不需要操作者10选择满足阈值距离的另一个像素位置,改善了操作者10控制机器人300的用户体验。
参考图4B、5E和5F,当指向矢量V和机器人300前面的地平面估算G之间的交点I与机器人300之间的第一距离D1不满足(例如,超过)阈值距离(例如,四米)时,触摸即走应用400向机器人300发送航点命令W(图4B),使机器人300向交点I移动机器人300和移动交点IM(图5F)之间的缩短的距离D2(图5F)。图5F示出了缩短的距离D2等于第二极限,该第二极限等于或小于阈值距离(例如,等于四米),其小于第一极限(图5E)。换句话说,当交点I和机器人300之间的距离不满足阈值距离时,应用400可以将交点I转移或移动得更靠近机器人400,使得所得的移动交点IM满足阈值距离。触摸即走应用400将移动交点IM的位置作为航点命令W发送给机器人300,然后机器人300自己导航到航点。
操作者10可选择对应于机器人环境中的地平线上方位置的像素位置224,即不在地面上的位置。触摸即走应用400没有返回警告或错误消息,而是将操作者10的选择解释为希望将机器人300导航到远处,但是操作者10意外地选择了地平线上方的位置。基于这种解释,触摸即走应用400指示机器人300在操作者10预期的方向上移动,而操作者10不必挑选另一个位置。
参考图4B、5G和5H,当操作者10选择的像素位置224位于地平线上方时,表示操作者10希望机器人300导航的方向的指向矢量V与机器人300的地平面估计G之间的交点I位于机器人300后方(图5G)。在这种情况下,图5H示出了触摸即走应用400反射交点I,使得反射交点IR在机器人300的前面。这里,机器人300和机器人300后面的交点I之间的距离等于机器人300前面的反射交点IR和机器人300之间的距离。这样,机器人300没有被指示在与预期方向相反的方向上移动。触摸即走应用400将反射交点IR移动得更靠近机器人300或更远离机器人300,使得机器人300距反射交点(IR)(图5H)的距离D满足阈值距离(例如,小于或等于4米)。触摸即走应用400将反射交点IR的位置作为航点命令发送给机器人300,从而使机器人300导航到与反射交点IR相关联的航点。
参考图6A-6C和图7A-7C,在某些情况下,操作者10希望机器人300导航到位于障碍物O(图6A)后面或位于绕过由相交墙壁形成的拐角C(图7A)的航点(例如,目标位置T)。例如,图6A示出了操作者10通过输入障碍物O后面的像素位置224来提供导航输入,以使机器人300机动到障碍物O后面的目标位置T。同样地,图7A示出了操作者10通过输入绕过拐角C的像素位置224来提供导航输入,以使机器人300机动到目标位置T,该目标位置T包括绕过拐角C的走廊或一般区域。在这些情况下,具有来自传感器系统340和感知系统390的输入的遍历系统380控制机器人300,使得机器人300通过导航绕过障碍物O并机动至目标位置T来避开障碍物O(图6B和6C)。也就是说,遍历系统380被配置为覆盖导航输入以允许机器人300在可行时遍历绕过障碍物。在遍历绕过障碍物不可行的情况下,遍历系统380可停止进行到目标位置的导航机动。在这些情况下,遍历系统380可通知应用400导航到目标位置T是不可行的,并且应用400可输出消息(视觉、触觉和/或音频),该消息通知操作者10导航输入是不可行的。
类似地,如图7A和7B所示,通过来自传感器系统340和感知系统390的输入,遍历系统380控制机器人300接近拐角(图7B),然后绕过拐角C机动(例如,相对于图7C的视图向右机动),以到达与操作者10输入的像素位置224相关的机器人环境中的目标位置。有利地,操作者10可以提供像素位置224作为到达目标位置T的高级命令,并且机器人300的任务是定位到达目标位置T的侧路径。在所示的示例中,机器人300绕开墙壁,直到找到绕过拐角C的开口以穿过从而到达目标位置。这种避障功能减轻了操作者10必须提供多个中间导航输入来导航机器人300绕过每个障碍物(例如,障碍物O或拐角C)以便将机器人300机动到目标位置。一些实现方式可以依赖于在2018年10月12日提交的题为“脚步规划的地形和约束规划(Terrain and Constraint Planning for Footstep Plan)”的美国申请No.62/744,954和2019年4月12日提交的题为“机器人协商楼梯(Robotically Negotiating Stairs)”的美国申请No.16/382,390中公开的控制/遍历技术,其全部内容并入本文。
在某些实现方式中,触摸即走应用400允许操作者10通过改变场景来改变机器人300移动的方向。如上参考图3D和3E所述,机器人300上的每个相机344、344a-e在其相应的视场349、349a-f(或简称为“视图”)内勘测或捕获机器人环境的一部分,并提供对应于该视场的图像数据342。触摸即走应用400又将图像数据342渲染成图像或场景,使得操作者10看到场景的变化。例如,图8A和8B示出了GUI 221,其呈现从由机器人300的左前相机344a和右前相机344b捕获的前视图349f渲染的前场景222、222a。前场景222a向操作者10呈现机器人300前面的机器人环境。图8C和8D示出了GUI 221,其呈现从由机器人300的后相机344e捕获的后视图349e渲染的后场景222、222b。向操作者10显示后场景222b,使得操作者10可以看到机器人300的后面是什么。
参考图8B和8C,应用400可在GUI 221上呈现场景改变器226图形元素(例如,按钮),以允许操作者10在不同场景之间进行改变,以及改变机器人300移动的方向,如下面更详细地描述。在所示的示例中,场景改变器226图形元素包括四个方向箭头,操作者10可以选择这些方向箭头以在不同场景之间切换。例如,操作者10可以提供指示选择场景改变器226的向前方向箭头的输入指示,以观察前场景222a(图8B),然后通过提供场景改变器226的后方向箭头的另一输入指示选择来切换观察后场景222b(图8C)。操作者10可以通过提供分别指示场景改变器226的左和右方向箭头的选择的输入指示,进一步在左和右场景(未示出)之间切换。在这些情况下,基于场景改变器226接收的输入指示,GUI 221可以在触摸即走应用400发送对应的转动命令以使机器人执行与方向改变相关联的转动机动之前呈现左场景222或右场景222以供操作者10观察。虽然场景改变器226仅提供用于改变场景的四个选项(例如,前、后、左和右),但是触摸即走应用400可以实现用于改变场景的多于或少于四个选项。
图8A-8D提供了操作者10使用触摸即走应用400在机器人环境中导航机器人300时的GUI 221的示例。在图8A中,操作者10正在观察前场景222a,并且通过选择对应于机器人300要导航到的目标位置T的像素位置224来提供导航输入。响应于接收到导航输入,触摸即走应用400指示(例如,发送航点命令W)机器人300朝向所确定的目标位置T向前移动(相对于图8A和8B的视图),如上文参考图5A-5F所述。机器人300然后导航到与操作者10选择的像素位置224相关联的目标位置T。当机器人300导航到前场景222a中的目标位置T时,图8B示出了操作者10通过选择对应于机器人300要导航到的新目标位置的另一个像素位置224来提供另一个导航输入。这样,当机器人300向前遍历时,操作者10可以通过选择新的像素位置224来继续在向前方向上移动机器人300。
图8C示出了操作者10选择场景改变器226图形元素的后方向箭头,以观察后场景222b,并使机器人300在后方向反转行进方向。虽然GUI 221响应于选择场景改变器226的后方向箭头的输入指示而呈现后场景222b,但是图8D示出了操作者10通过选择对应于机器人300要导航到的目标位置T的像素位置224来提供导航输入。响应于接收到与后场景222b中的像素位置224相关联的导航输入,触摸即走应用400指示(例如,发送航点命令W)机器人300在后方向上(例如,向后)朝着目标位置T移动。在一些示例中,机器人300不是向后移动,而是首先执行转动机动,以响应于接收到航点命令W而基本上转动180度来面向后方向222b作为新的向前方向,然后朝着所确定的目标位置向前移动。机器人300可以基于一个或多个因素来决定是在后方向上遍历还是首先执行转动机动以在向前方向上遍历。例如,非限制性因素可以包括到目标位置T的距离、机器人300执行转动机动的可行性、对机器人环境的熟悉程度、相机定位404(图4A)或用户偏好。在一些配置中,机器人300未被配置为在后方向上移动,从而要求机器人300首先执行转动机动,使得它可以通过在向前方向上移动而移动到目标位置T。
图9A-9D提供了触摸即走应用400的GUI 221的示例,该GUI 221渲染前场景222a、后场景222b、右场景222c和左场景222d的同时显示。这里,操作者10不需要使用场景改变器226来改变场景,而是可以通过在呈现目标位置T的可用场景222,222a-d中的对应一个中选择像素位置224来提供到目标位置T的导航输入。例如,图9A示出了操作者从前场景222a中选择对应于机器人300要导航到的目标位置T的像素位置224。响应于接收到导航输入,触摸即走应用400指示(例如,发送航点命令W)机器人300朝向所确定的目标位置T向前移动(相对于图9A和9B的视图),如上文参考图5A-5F所述。
图9C显示操作者从右场景222c中选择新的像素位置224,该新的像素位置224对应于机器人300要导航到的新的目标位置T。响应于接收到与右场景222c中的像素位置224相关联的导航输入,触摸即走应用400指示(例如,发送航点命令W)机器人300向右执行转动机动,并且然后朝着所确定的新的目标位置T向前移动。图9D示出了GUI 221,该GUI 221渲染当机器人300在执行向右的转动机动之后朝着新的目标位置T移动时场景222a-d的同时显示。也就是说,图9C的每个场景222a-d中描绘的机器人环境的视图被旋转90度,使得图9D的前场景222a对应于图9C的右场景222c,图9D的右场景222c对应于图9C的后场景222b,图9D的后场景222b对应于图9C的左场景222d,并且图9D的左场景222d对应于图9C的前场景222a。
图10A和10B提供了触摸即走应用400的GUI 221的示例,该GUI 221渲染机器人300的自上而下场景222e的显示。应用400可以使用从机器人300上的相机344、344a-e的任意组合在它们相应的视场349、349a-f(或简称为“视图”)内捕获的图像数据342来构建自上而下的场景222e。用于构建自上而下场景222e的图像数据342可以进一步从安装在机器人300上的有效载荷相机344捕获。为了将机器人300导航到目标位置T,图10A示出了操作者10通过选择与目标位置T相关联的自上而下场景222e内的像素位置224来提供导航输入。基于像素位置224,触摸即走应用400能够确定用于导航机器人10的目标位置T。因此,响应于接收到导航输入,图10B示出了触摸即走应用400指示(例如,发送航点命令W)机器人300朝向所确定的目标位置T向前移动(相对于图10A和10B的视图),如上文参考图5A-5F所述。描绘机器人300的图形可以渲染在自上而下的场景222e上,以显示机器人300在机器人环境中的当前定位。例如,机器人300的图形可以移动以描绘机器人300在遍历到目标位置T时的瞬时定位。
在另外的示例中,图11A和11B显示触摸即走应用400的GUI 221,其被配置为显示分屏229,该分屏229同时描绘机器人环境的自上而下场景222e(图10A和10B)和用户选择的场景228两者。场景222e、228的方位可以显示在分屏229的相对侧,而不脱离本公开的范围。在一些示例中,应用400允许操作者10定制在GUI 221上渲染的场景222e、228的位置和/或调整场景222e、228中任一个的窗口大小。在所示的示例中,用户选择的场景228对应于前场景222a。在其他示例中,用户选择的场景228对应于后场景222b、右场景222c或左场景222d中的任何一个。GUI 221可以呈现按钮(未示出),用于允许操作者10选择在GUI 221中渲染哪个场景222a-d作为用户选择的场景228。图8A-10B中的任何一个的GUI 221可以类似地呈现一个或多个按钮,用于允许操作者10在各种不同的GUI配置之间进行选择。例如,操作者10可能更喜欢使用自上而下的场景222e来提供高级导航输入,然后在需要细粒度导航输入时切换到GUI 221来同时渲染四个场景222a-d。
为将机器人300导航到目标位置T,图11A示出了操作者10通过选择与目标位置T相关联的自上而下场景222e中的像素位置224或与目标位置T相关联的用户选择的场景228中的像素位置224来提供导航输入。尽管场景222e、228中的每一个中的像素位置224不同,但触摸即走应用400能够确定用于导航机器人300的相同目标位置T,而不管操作者10使用哪个场景222e、228来提供导航输入。在其他实现方式中,应用400允许操作者10仅向场景222e、228之一提供导航输入。基于像素位置224,触摸即走应用400能够确定用于导航机器人10的目标位置T。因此,响应于接收到导航输入,图11B示出了触摸即走应用400指示(例如,发送航点命令W)机器人300朝向所确定的目标位置T向前移动(相对于图11A和11B的视图),如上文参考图5A-5F所述。描绘机器人300的图形可以渲染在自上而下的场景222e上,以显示机器人300在机器人环境中的当前定位。例如,机器人300的图形可以移动以描绘机器人300在遍历到目标位置T时的瞬时定位。
用户选择的场景228和自上而下的场景222e同步,使得操作者10同时且实时地观察相对于第一人称视图228和自下而上的场景222e中的机器人环境的机器人环境。此外,在场景222e、228之一中选择目标位置T的像素位置224可以使得另一个场景222e、228镜像目标位置T的对应像素位置224的选择。有利地,利用分屏229,操作者10具有使用特定视图/场景来导航适合于给定任务、情况和/或环境的机器人300的选项。
参考图12A和12B,在一些实现方式中,触摸即走应用400配置为允许操作者10预览机器人环境的场景222,222P(图12B),而无需物理指示机器人300移动。例如,当在GUI 221(图12A)上呈现当前场景222,222C时,GUI 221还呈现第一和第二旋转图形272、274,当该第一和第二旋转图形272、274被操作者10选择时,使得GUI 221通过在远离当前场景222C的第一方向或相反的第二方向之一上旋转视场来呈现预览场景222P(图12B)。替代地或附加地,操作者10可以使用移动设备200上的控件230,诸如控制杆230b或方向键230c,来执行第一和第二旋转图形272、274的功能。这样,GUI 221可以接收旋转输入,该旋转输入在选择旋转图形272、274和/或对控制杆230b或方向键230c的用户输入中的任一者时导致视场旋转远离当前场景222C。
例如,GUI 221可接收指示选择第一旋转图形272的旋转输入,以使视场沿远离当前场景222C的第一方向(例如,向右)旋转,以在机器人300没有物理移动或进行转动机动的情况下,传达机器人300的向右转动机动。在一些示例中,对第一旋转图形272的选择还使得触摸即走应用400命令机器人300在第一方向上执行转动机动。在这些示例中,GUI 221可以响应性地将视场沿远离当前场景222C的第一方向旋转,以在机器人300由于滞后(例如,移动设备200和机器人300之间的通信滞后,以及物理控制机器人300执行转动的时间导致的滞后)而实际执行转动机动之前,向操作者10提供机器人300执行转动机动的即时反馈。在其他示例中,第一旋转图形272的选择仅导致视场沿远离当前场景222C的第一方向旋转,以允许操作者10观察预览场景222D,而无需机器人300的物理移动。例如,操作者10可以在第一方向上旋转视场以观察机器人300右侧的场景,以辅助操作者10在指示机器人300进行机动之前做出导航决定。在一些示例中,视场旋转的量与第一旋转图形272与操作者10接触(例如,通过触摸)的时间成比例。例如,视场可以在第一方向上旋转,直到操作者10释放与第一旋转图形272的接触。在另外的示例中,每当触摸和释放第一旋转图形272时,视场旋转一个增量。应用400可以增强(例如,改变第一旋转图形272的颜色)以指示何时选择图形272。
类似地,GUI 221可接收指示选择第二旋转图形274的旋转输入,以使视场沿远离当前场景222C的第二方向(例如,向左)旋转,以在机器人300没有物理移动或进行转动机动的情况下,传达机器人300的向左转动机动。在一些示例中,对第二旋转图形274的选择还使得触摸即走应用400命令机器人300在第二方向上执行转动机动。在这些示例中,GUI 221可以响应性地将视场沿远离当前场景222C的第二方向旋转,以在机器人300由于滞后(例如,移动设备200和机器人300之间的通信滞后,以及物理控制机器人300执行转动的时间导致的滞后)而实际执行转动机动之前,向操作者10提供机器人300执行转动机动的即时反馈。在其他示例中,第二旋转图形274的选择仅导致视场沿远离当前场景222C的第二方向旋转,以允许操作者10观察预览场景222D,而无需机器人300的物理移动。例如,操作者10可以在第二方向上旋转视场以观察机器人300左侧的场景,以辅助操作者10在指示机器人300进行机动之前做出导航决定。在一些示例中,视场旋转的量与第二旋转图形274与操作者10接触(例如,通过触摸)的时间成比例。例如,视场可以在第二方向上旋转,直到操作者10释放与第二旋转图形274的接触。在另外的示例中,每当触摸和释放第二旋转图形274时,视场旋转一个增量。应用400可以增强(例如,改变第二旋转图形274的颜色)以指示何时选择图形274。
无论视场是在远离当前场景222C的第一方向上还是在远离当前场景222C的第二方向上旋转,为在GUI 221上显示而渲染的图像数据342都不会简单地在第一方向或第二方向上平移/滑动。相反,触摸即走应用400被配置为编译和扭曲由机器人300上的各种相机394捕获的图像数据342,使得视场在第一方向或第二方向上的旋转模拟机器人300实际上在第一方向或第二方向中的对应一个方向上转动。图像数据342的可用性可以约束预览场景222P能够在任一方向上旋转远离当前场景222C多远。因此,当图像数据342变得不可用时,应用400可以遮蔽图像数据342不可用的预览场景222P的外围设备。
参考图13A,使用虚拟矩形520从场景相机510渲染场景500(例如,当前场景222C)。场景相机510包括位于机器人300的中心附近并向前指向虚拟矩形520的假想相机。场景相机510可以利用机器人300的一个或多个真实相机344来捕获用于渲染场景500的图像数据342。虚拟矩形520位于场景相机510前面的距离D处,距离D称为“拼接距离”。场景相机510具有可编程调节视场(FOV)。例如,可以增大或减小FOV的角度(称为视角),因此具有对象的场景或多或少都落在FOV内。
参考图13B,为了渲染场景500(例如,当前场景222C),触摸即走应用400使用来自机器人300上的一个或多个真实相机530(例如,相机344)上的对应像素的图像颜色,对虚拟矩形520上的点进行“着色”。为了解释起见,真实相机530可以被认为是投影仪,将真实图像532从已知定位沿已知方向投影到空间中。例如,参考图3D,真实相机530可以是右前相机344b,并且真实图像532可以是左前视图349a。
触摸即走应用400使用虚拟矩形520相对于机器人300的定位连同来自真实相机530的内在和外在校准信息,在虚拟矩形520中着色。虚拟矩形520相对于机器人300的定位被定义为在机器人300前面的拼接距离处,如以上参照图13A所述。触摸即走应用400根据外部校准信息确定真实相机530相对于机器人300的定位。根据内在校准信息,触摸即走应用400确定虚拟矩形520上的任何点对应于真实图像532中的像素(在图中表示为正方形)。
如果虚拟矩形520上的点对应于真实相机上的像素,则触摸即走应用400用来自真实图像532的颜色对这些点(在图中表示为O)进行着色。如果虚拟矩形520上的点不对应于真实相机530上的像素,则触摸即走应用400将这些点着色为黑色或其他颜色(在图中表示为X)。当场景相机510足够宽,使得虚拟矩形520上的所有点对应于真实相机530上的像素,并且这些点用来自真实图像532的颜色着色时,操作者10可以从渲染的场景中辨认出真实图像532的边界,如图13B所示。
参考图13C,当操作者10希望机器人300从当前方位(图中用圆形表示)转动到目标方位(图中用正方形表示),两者相隔一个角度时,触摸即走应用400将场景相机510和虚拟矩形520旋转与该角度匹配的预览角度PA。旋转产生旋转的场景相机510rotated和旋转的虚拟矩形520rotated。触摸即走应用400然后继续用来自真实图像(为清楚起见,图中未展示)的颜色对旋转的虚拟矩形520rotated上的点进行着色,以渲染预览场景540(例如,预览场景222P)。
在一种实现方式中,触摸即走应用400随时间集成“虚拟速度”,该虚拟速度对应于操作者10的用户输入,以命令机器人300旋转。例如,虚拟速度涉及操作者10选择并按住第一旋转图形272(图12B)或第二旋转图形274(图12B)。通过使用虚拟速度将旋转的场景相机510rotate和旋转的虚拟矩形520rotated转动预览角度PA,渲染的预览场景540响应于操作者10的命令,从而模拟机器人300实际旋转预览角度PA。也就是说,从预览场景540来看,机器人300似乎随着操作者10命令旋转而转动,并且看起来机器人300在操作者10停止命令旋转时停止转动。这种即时或接近即时的用户反馈可以克服远程控制移动机器人的挑战,准确地说,其中在与移动机器人的通信中存在延迟和/或移动机器人执行命令中存在延迟。
参考图13D,由于机器人300未旋转,所以机器人300上的真实相机530,530a-b保持当前视场,并且来自真实相机530,530a-b的真实图像532,532a-b保持当前场景。当场景相机(为清楚起见,图中未示出)旋转到激进的预览角度时,来自真实相机530的数据仅足以填充旋转的虚拟矩形520rotated的一部分,在图中描绘为O。旋转的虚拟矩形520rotated的剩余部分用黑色(或其他颜色)填充,在图中描绘为X。操作者10将其视为预览场景540最右侧上的遮蔽区域1340(或其他彩色条/区域),如图13E所示。
图14A-14H示出了当操作者10使用触摸即走应用400以命令机器人300从当前方位向右转动至目标方位时的示例GUI 221(图14A、14C、14E、14G)和示例机器人环境301(图14B、14D、14F、14H)。使用移动设备200的操作者10提供用户输入来控制机器人300。触摸即走应用400通过预旋转机器人300来响应操作者10的用户输入,使得在机器人300物理转动之前操作者从机器人300的角度看到机器人300在机器人环境中朝着目标方位转动。
出于解释目的,参考开始时间Tstart和停止时间Tstop描述预旋转过程。开始时间Tstart对应于刚好在操作者开始控制机器人之前的时间,并且停止时间Tstop对应于刚好在操作者停止控制机器人之后的时间。此外,参考开始时间Tstart和停止时间Tstop之间的中间时间T1和T2,使得完整的有序时间序列是Tstart、T1、T2和Tstop。中间时间T1和T2对应于当操作者10正在控制机器人300的同时触摸即走应用400正在预旋转机器人300的时候。
在移动设备200的屏幕上显示的GUI 221中渲染的场景为操作者10提供了从机器人300的角度观察机器人环境301的视图。图14A和14B描绘了在开始时间Tstart的前场景550,图14C和14D描绘了在中间时间T1的预览场景552,图14E和14F描绘了在中间时间T2的下一个预览场景554,并且图14G和14H描绘了在Tstop的右场景556。每个场景(550,552,554,556)从投影虚拟矩形(562,564,566)的场景相机560渲染在GUI 221上,如上面参考图13A-13E所述。例如,参考图14A和14B,为了在GUI 221上渲染前场景550,触摸即走应用400用对应像素的图像颜色对虚拟矩形562上对应于真实图像570a、570b中的像素的点进行着色。对于不对应于真实图像570a、570b中的任何像素的虚拟矩形562上的点,触摸即走应用400将这些点着色为黑色(或另一种颜色)(例如,图13E的遮蔽区域1340)。真实图像570a、570b被机器人300上的真实相机(为清楚起见未示出)捕获。例如,参考图3D,真实相机可以是左前相机344a和右前相机344b。
继续参考图14A和14B,在开始时间Tstart,机器人300处于当前方位,或为简单起见,机器人300面向向前方向。由机器人300上的真实相机捕获的真实图像570a、570b是在向前方向上的机器人环境,为了便于参考,在该示例中称为“前视图”。触摸即走应用400通过用来自前视图的真实图像570a和真实图像570b的图像颜色在虚拟矩形562中着色来渲染前场景550以在GUI 221上显示。对于观察GUI 221的操作者10,从前场景550可以看出机器人300面向向前方向。
操作者10使用GUI 221上显示的第一旋转图形232和第二旋转图形234来命令机器人300相对于当前方位向右转动或向左转动。对于该示例,操作者10按下第一旋转图形232以提供用户输入指示,该用户输入指示指示将机器人300从当前方位向右旋转到目标方位的命令。
参考图14C和14D,在操作者10控制机器人300的中间时间T1,触摸即走应用400根据对应于用户输入指示的虚拟速度来确定预览角度PA。在所示的示例中,中间时间T1的预览角度PA被示为当前方位(表示为圆形)和中间方位(表示为正方形)之间的角度。触摸即走应用400将场景相机560旋转预览角度PA,从而产生旋转的虚拟矩形564。然而,机器人300保持面向向前方向,并且真实图像570a和真实图像570b仍然是前视图。
在将旋转的虚拟矩形564与真实图像570a和真实图像570b分开的预览角度PA处,图14D示出了旋转的虚拟矩形564上的每个点找到与真实图像570a或真实图像570b中的像素的对应关系。触摸即走应用400通过用来自前视图的真实图像570a和真实图像570b的图像颜色在旋转的虚拟矩形564中着色来渲染预览场景552以在GUI 221上显示。对于观察GUI221的操作者10,从预览场景552可以看出机器人300响应于他们的命令正在向右转动。然而,实际上,机器人300仍然面向向前方向(即,机器人300的当前方位)。
操作者10继续按下或按住右箭头按钮232,以命令机器人300继续朝目标方位向右转动。参考图14E和14F,在操作者10正在控制机器人300的中间时间T2,触摸即走应用400根据对应于用户输入202的虚拟速度来确定下一个预览角度PAnext。在所示的示例中,中间时间T2处的下一个预览角度PAnext被示为当前方位(表示为圆形)和下一个中间方位(表示为三角形)之间的角度。触摸即走应用400将场景相机560旋转下一个预览角度PAnext,从而产生下一个旋转的虚拟矩形566。然而,机器人300保持面向向前方向,并且真实图像570a和真实图像570b仍然是前视图。
在将下一个旋转的虚拟矩形566与真实图像570a和真实图像570b分开的下一个预览角度PAnext处,图14F示出了下一个旋转的虚拟矩形566上的并非每个点都找到与真实图像570a或真实图像570b中的像素的对应关系。简单地说,场景相机560相对于机器人300上的真实相机处于如此大或极端的角度,以至于没有足够的来自真实图像570a和真实图像570b的信息或图像数据来着色下一个旋转的虚拟矩形566上的所有点。触摸即走应用400通过用那些对应像素的图像颜色对下一个旋转的虚拟矩形566上的与在真实图像570a和真实图像570b中找到的像素相匹配的点(在图中表示为O)进行着色,来渲染下一个预览场景554以显示在GUI 221上。
对于下一个旋转的虚拟矩形566上的与在真实图像570a和真实图像570b中找到的任何像素不匹配的那些点,触摸即走应用400将那些点(在图中表示为X)着色为黑色或另一种颜色。移动设备200向操作者10显示下一个预览场景554,其中该场景右侧的黑色区域指示来自真实图像570a和真实图像570b的图像数据的缺失或不存在。对于操作者10,从下一个预览场景554可以看出,机器人300响应于他们的命令正在向右转动。然而,实际上,机器人300仍然面向向前方向。在中间时间T2,不同于之前在中间时间T1,由于下一个预览角度PAnext较大,操作者10从机器人300的角度对机器人环境的观察是不完整的或部分的。
当操作者10看到机器人300已到达目标方位时,操作者10释放右箭头按钮232,并停止提供用户输入202。在停止时间Tstop,触摸即走应用400根据对应于用户输入202的最后一个的虚拟速度来确定旋转角度AOR。参考图14G和14F连同图4A,触摸即走应用400向遍历系统380提供具有旋转角度AOR的旋转命令R。遍历系统380又利用来自传感器系统340和/或感知系统390的输入实现旋转命令R,并且机器人300从其当前方位转动到目标方位(在图中表示为六边形)。
转动到目标方位后,机器人300现在面向向右方向。机器人300上的真实相机在向右方向上捕获机器人环境301的真实图像572a、572b,为了便于参考,在该示例中该真实图像被称为“向右视图”。触摸即走应用400将场景相机560和虚拟矩形562返回或以其他方式重置到它们的非旋转状态,使得它们也面向向右方向。可以方便地说,就旋转而言,机器人300已经“赶上”了触摸即走应用400的预旋转过程。
在机器人300上的真实相机和场景相机560面向相同一般方向的情况下,图14H示出了虚拟矩形562上的每个点在右视图的真实图像572a或真实图像572b中均具有对应的像素。相比之下,在图14F所示的示例中,场景相机560被旋转到真实相机的右侧太远,使得没有足够的来自前视图的真实图像570a和真实图像570b的信息来着色下一个旋转的虚拟矩形566上的所有点。触摸即走应用400通过用来自右视图的真实图像572a和真实图像572b的图像颜色在虚拟矩形562中着色,来渲染右场景556以在GUI 221上显示。
在预旋转过程的前述讨论中,触摸即走应用400被描述为一旦操作者10停止控制机器人300(即,他们不再提供用户输入),就提供(在旋转命令R中的)旋转角度。触摸即走应用400的其他实现方式在接收到来自操作者10的用户输入达设定的时间段后(例如,在定时器到期后)向机器人300提供旋转角度。出于说明的目的,触摸即走应用400在接收到用户输入的每五毫秒之后提供旋转角度。在这个示例中,操作者10提供15毫秒的用户输入,并且触摸即走应用400通过提供5毫秒的第一旋转角度、10毫秒的第二旋转角度和15毫秒的第三旋转角度来响应。利用触摸即走应用400的这种实现方式,机器人300递增地转动,而触摸即走应用400连续地预旋转机器人300。有利地,这种实现方式可以减少在预旋转机器人300的同时渲染预览场景时丢失的来自真实图像的图像数据量。
此外,预旋转过程的前述讨论参考时间上的离散实例(例如,中间时间T1和中间时间T2)描述了触摸即走应用400。预旋转过程的其它实现方式可以在连续的基础上发生。例如,触摸即走应用400响应于操作者10提供的连续用户输入,连续地预旋转机器人300。以这种方式预旋转提供了即时反馈,允许操作者10在命令实际发送到机器人300之前看到他们命令的最终结果。
图15是用于导航机器人300的方法600的操作的示例布置的流程图。在操作602,方法600接收由机器人300上的相机捕获的机器人环境的场景中的像素位置。被接收的像素位置由机器人300的操作者选择。在操作604,方法600根据像素位置和相机的校准信息来确定指向矢量。在操作606,方法600将指向矢量与机器人300的地平面估计组合以形成交点。这里,交点包括机器人环境中的物理位置。在操作608,方法600将物理位置传输给机器人300,使得机器人300导航到机器人环境中的物理位置。
图16是用于“预旋转”机器人300的方法700的操作的示例布置的流程图。在操作702,方法700接收由设置在机器人300上的一个或多个真实相机捕获的机器人环境的前视图的真实图像,其中机器人300处于向前的方位并且面向向前方向。在操作704,方法700确定机器人300在从向前的方位转动到转动的方位时将旋转的预览角度,其中机器人300面向向右方向或向左方向。在操作706,方法700将假想场景相机旋转预览角度。这里,假想场景相机相对于机器人300的向前的方位旋转。在操作708,对于由假想场景相机投影的虚拟矩形上的每个点,方法700确定相应的点是否对应于真实图像中的像素。在操作710,方法700显示包括对应像素的预览场景。这里,预览场景是机器人环境的视图,该视图在向右方向或向左方向上转动了预览角度,而移动机器人实际上没有从向前的方位转动到转动的方位。
图17是用于控制机器人300的方法1700的操作的示例布置的流程图。在操作1702,方法1700包括在操作者设备200的数据处理硬件240处接收来自至少一个图像传感器344的图像数据342。图像数据342对应于机器人300周围的环境301。
在操作1704,方法1700包括由数据处理硬件240执行图形用户界面(GUI)221,用于在操作者设备200的屏幕220上显示。GUI 221被配置为基于图像数据342显示机器人300周围的环境301的场景222,并接收指示选择机器人300周围的环境301的场景222内的像素位置224的输入指示。
在操作1706,方法1700包括由数据处理硬件240基于像素位置224的选择来确定指向矢量V。指向矢量表示用于在环境301中导航机器人300的行进方向。在操作1708,方法1700包括由数据处理硬件240向机器人300传输航点命令W。当航点命令W由机器人300接收时使得机器人300导航到目标位置T。目标位置基于指向矢量V和机器人300的地形估计(例如,地平面估计)G之间的交点。
在一些实现方式中,数据处理硬件240确定地形估计(例如,地平面估计值),并基于指向矢量V和地平面估计G之间的交点发送航点命令W作为实际航点。在其他实现方式中,不是基于交点I发送实际“航点”,而是在移动设备200上执行的应用400基于场景222内的像素位置224的选择来发送航点命令W,该航点命令W包括世界空间中的点以及世界空间中的指向矢量V,该点对应于捕获对应于场景222的图像数据242的至少一个相机344的起点。在这种情况下,在接收到仅包括世界空间中的点和指向矢量V的航点命令W时,机器人300响应性地在指向矢量V的方向上行进,直到达到距离阈值或者机器人300检测到与指向矢量V相交的障碍物。有利地,移动设备200的数据处理硬件240不必确定地形估计(例如,地平面估计G),以用于计算发送给机器人300的实际“航点坐标”,而是当机器人300接近目标位置T时,允许机器人300在指向矢量V的方向上导航的同时,连续地重新计算地形估计(例如,地平面估计)。这可以在移动设备200上计算/确定的地形估计(例如,地平面估计)无效的情况下优化机器人300的导航。
软件应用(即,软件资源)可指使计算设备执行任务的计算机软件。在一些示例中,软件应用可以被称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息应用、媒体流应用、社交网络应用和游戏应用。
图18是可用于实现本文档中所述的系统和方法的示例计算设备800的示意图。计算设备800旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机和其他合适的计算机。这里所示的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实现方式。
计算设备800包括处理器810、存储器820、存储设备830、连接到存储器820和高速扩展端口850的高速接口/控制器840,以及连接到低速总线870和存储设备830的低速接口/控制器860。组件810、820、830、840、850和860中的每一个使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器810可以处理用于在计算设备800内执行的指令,该指令包括存储在存储器820中或存储设备830上的指令,以在外部输入/输出设备(诸如耦合到高速接口840的显示器880)上显示图形用户界面(GUI)的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备800,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器820在计算设备800内非暂时性地存储信息。存储器820可以是计算机可读介质、(多个)易失性存储器单元或(多个)非易失性存储器单元。非暂时性存储器820可以是用于在临时或永久的基础上存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备800使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备830能够为计算设备800提供大容量存储。在一些实现方式中,存储设备830是计算机可读介质。在各种不同的实现方式中,存储设备830可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备,或者设备(包括存储区域网络或其他配置中的设备)阵列。在附加的实现方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含指令,该指令当被执行时执行一种或多种方法(诸如上述那些方法)。信息载体是计算机或机器可读介质,诸如存储器820、存储设备830或处理器810上的存储器。
高速控制器840管理计算设备800的带宽密集型操作,而低速控制器860管理较低带宽密集型操作。这种职责分配只是示例性的。在一些实现方式中,高速控制器840耦合到存储器820、(例如,通过图形处理器或加速器)耦合到显示器880以及耦合到可以接受各种扩展卡(未示出)的高速扩展端口850。在一些实现方式中,低速控制器860耦合到存储设备830和低速扩展端口890。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口890可以耦合到一个或多个输入/输出设备(诸如键盘、定点设备、扫描仪)或(例如通过网络适配器)耦合到网络设备(诸如交换机或路由器)。
如图所示,计算设备800可以以多种不同的形式实现。例如,它可以实现为标准服务器800a,或者在一组这样的服务器800a中多次实现为膝上型计算机800b,或者实现为机架服务器系统800c的部分。
本文描述的系统和技术的各种实现方式可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实现方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)执行,该一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行。举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从其接收数据或向其传输数据,或两者。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储器设备(例如EPROM、EEPROM和闪存设备);磁盘(例如内部硬盘或可移除磁盘);磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充或结合在专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器或用于向用户显示信息的触摸屏,以及可选的键盘和定点设备(例如鼠标或轨迹球),用户可以通过该定点设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户客户端设备上的网络浏览器。
已经描述了许多实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实现方式在以下权利要求的范围内。

Claims (28)

1.一种方法(1700),包括:
在操作者设备(200)的数据处理硬件(240)处,从至少一个图像传感器(344)接收图像数据(242),所述图像数据(242)对应于机器人(300)周围的环境(301);
由所述数据处理硬件(240)执行用于在所述操作者设备(200)的屏幕(220)上显示的图形用户界面(221),所述图形用户界面(221)被配置为:
基于所述图像数据(242)显示所述机器人(300)周围的所述环境(301)的场景(222);以及
接收指示选择所述机器人(300)周围的所述环境(301)的场景(222)内的像素位置(224)的输入指示;
由所述数据处理硬件(240)基于所述像素位置(224)的选择来确定指向矢量,所述指向矢量表示用于在所述环境(301)中导航所述机器人(300)的行进方向;以及
由所述数据处理硬件(240)向所述机器人(300)传输航点命令,当所述机器人(300)接收到所述航点命令时,使所述机器人(300)导航到目标位置,所述目标位置基于所述指向矢量和所述机器人(300)的地形估计之间的交点。
2.根据权利要求1所述的方法(1700),其中,所述机器人(300)周围的所述环境(301)的场景(222)包括以下任何一个:
基于所述图像数据(242)的所述环境(301)的前场景(222),所述图像数据(242)由设置在所述机器人(300)上的左前相机(344)和右前相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的左场景(222),所述图像数据(242)由设置在所述机器人(300)上的左相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的右场景(222),所述图像数据(242)由设置在所述移动机器人(300)上的右相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的后场景(222),所述后场景(222)由设置在所述机器人(300)上的后相机(344)捕获;或者
基于所述图像数据(242)的所述机器人(300)的自上而下场景(222),所述图像数据(242)由有效载荷相机(344)、所述左前相机(344)、所述右前相机(344)、所述左相机(344)、所述右相机(344)和所述后相机(344)捕获。
3.根据权利要求1或2所述的方法(1700),还包括:
由所述数据处理硬件(240)确定所述指向矢量和所述地形估计之间的所述交点是否在所述机器人(300)前面;以及
当所述指向矢量和所述地形估计之间的所述交点在所述机器人(300)前面时,由所述数据处理硬件(240)将所述交点识别为所述目标位置。
4.根据权利要求3所述的方法(1700),还包括,当所述指向矢量和所述地形估计之间的所述交点在所述机器人(300)后面时:
由所述数据处理硬件(240)反射所述交点,以确定所述机器人(300)前面的反射交点;以及
由所述数据处理硬件(240)将所述反射交点识别为所述目标位置。
5.根据权利要求3或4所述的方法(1700),还包括,在将所述交点识别为所述目标位置之前:
由所述数据处理硬件(240)确定所述指向矢量和所述地形估计之间的所述交点与所述机器人(300)的当前定位之间的第一距离不满足阈值距离;以及
由所述数据处理硬件(240)将所述交点移动到更靠近所述机器人(300)的中间位置以形成移动交点,其中所述机器人(300)的当前定位和所述移动交点之间的第二距离满足所述阈值距离。
6.根据权利要求1-5中任一项所述的方法(1700),其中,所述机器人(300)被配置为:
确定所述目标位置是否位于障碍物后面;以及进行以下之一:
当所述目标位置不位于所述障碍物后面时,自主导航到所述目标位置;或者
当所述目标位置位于所述障碍物后面时:
确定绕过所述障碍物的机动是否可行;以及
当绕过所述障碍物的机动可行时,自主导航所述机器人(300)绕过所述障碍物并到达所述目标位置。
7.根据权利要求6所述的方法(1700),其中,所述机器人(300)还被配置为,当所述目标位置位于所述障碍物后面并且当绕过所述障碍物的机动不可行时,阻止所述机器人(300)自主导航到所述目标位置。
8.根据权利要求1-7中任一项所述的方法(1700),其中,所述至少一个图像传感器(344)包括一个或多个鱼眼相机(346)以及一个或多个红外相机(348)。
9.根据权利要求1-8中任一项所述的方法(1700),其中,所述机器人(300)包括四足机器人(300)。
10.根据权利要求1-9中任一项所述的方法(1700),其中:
所述至少一个图像传感器(344)设置在所述机器人(300)上;并且
所述操作者设备(200)经由网络(180)与所述图像传感器(344)通信。
11.根据权利要求1-10中任一项所述的方法(1700),其中,所述图形用户界面(221)还被配置为:
接收旋转输入,以在远离所述图形用户界面(221)中显示的当前场景(222C)的方向上旋转所述机器人(300)周围的所述环境(301)的视场;以及
通过在远离所述当前场景(222C)的所述方向上旋转所述机器人(300)周围的所述环境(301)的视场来显示。
12.根据权利要求11所述的方法(1700),其中,所述图形用户界面(221)被配置为显示所述预览场景(222P)而不需要所述机器人(300)的物理移动。
13.根据权利要求11或12所述的方法(1700),其中,所述图形用户界面(221)被配置为响应于接收到指示选择在所述图形用户界面(221)中显示的旋转图形的输入指示,而接收所述旋转输入。
14.根据权利要求11-13中任一项所述的方法(1700),其中,在远离所述当前场景(222C)的所述方向上旋转所述机器人(300)周围的所述环境(301)的视场,来模拟所述机器人(300)在远离所述当前场景(222C)并朝向所述预览场景(222P)的方向上执行转动机动。
15.一种系统(200),包括:
数据处理硬件(240);以及
与所述数据处理硬件(240)通信的存储器硬件(250),所述存储器硬件(250)存储指令,所述指令当在所述数据处理硬件(240)上执行时,使所述数据处理硬件(240)执行操作,所述操作包括:
从至少一个图像传感器(344)接收图像数据(242),所述图像数据(242)对应于机器人(300)周围的环境(301);
执行用于在操作者设备(200)的屏幕(220)上显示的图形用户界面(221),所述图形用户界面(221)被配置为:
基于所述图像数据(242)显示所述机器人(300)周围的所述环境(301)的场景(222);以及
接收指示选择所述机器人(300)周围的所述环境(301)的场景(222)内的像素位置(224)的输入指示;
基于所述像素位置(224)的选择来确定指向矢量,所述指向矢量表示用于在所述环境(301)中导航所述机器人(300)的行进方向;以及
向所述机器人(300)传输航点命令,当所述机器人(300)接收到所述航点命令时,使所述机器人(300)导航到目标位置,所述目标位置基于所述指向矢量和所述机器人(300)的地形估计之间的交点。
16.根据权利要求15所述的系统(200),其中,所述机器人(300)周围的所述环境(301)的场景(222)包括以下任何一个:
基于所述图像数据(242)的所述环境(301)的前场景(222),所述图像数据(242)由设置在所述机器人(300)上的左前相机(344)和右前相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的左场景(222),所述图像数据(242)由设置在所述机器人(300)上的左相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的右场景(222),所述图像数据(242)由设置在所述移动机器人(300)上的右相机(344)捕获;
基于所述图像数据(242)的所述环境(301)的后场景(222),所述后场景(222)由设置在所述机器人(300)上的后相机(344)捕获;或者
基于所述图像数据(242)的所述机器人(300)的自上而下场景(222),所述图像数据(242)由有效载荷相机(344)、所述左前相机(344)、所述右前相机(344)、所述左相机(344)、所述右相机(344)和所述后相机(344)捕获。
17.根据权利要求15或16所述的系统(200),其中,所述操作还包括:
确定所述指向矢量和所述地形估计之间的所述交点是否在所述机器人(300)前面;以及
当所述指向矢量和所述地形估计之间的所述交点在所述机器人(300)前面时,将所述交点识别为所述目标位置。
18.根据权利要求17所述的系统(200),其中,所述操作还包括,当所述指向矢量和所述地形估计之间的所述交点在所述机器人(300)后面时:
反射所述交点以确定所述机器人(300)前面的反射交点;以及
将所述反射交点识别为所述目标位置。
19.根据权利要求17或18所述的系统(200),其中,所述操作还包括,在将所述交点识别为所述目标位置之前:
确定所述指向矢量和所述地形估计之间的所述交点与所述机器人(300)的当前定位之间的第一距离不满足阈值距离;以及
将所述交点移动到更靠近所述机器人(300)的中间位置以形成移动交点,其中所述机器人(300)的当前定位和所述移动交点之间的第二距离满足所述阈值距离。
20.根据权利要求15-19中任一项所述的系统(200),其中,所述机器人(300)被配置为:
确定所述目标位置是否位于障碍物后面;以及进行以下之一:
当所述目标位置不位于所述障碍物后面时,自主导航到所述目标位置;或者
当所述目标位置位于所述障碍物后面时:
确定绕过所述障碍物的机动是否可行;以及
当绕过所述障碍物的机动可行时,自主导航所述机器人(300)绕过所述障碍物并到达所述目标位置。
21.根据权利要求20所述的系统(200),其中,所述机器人(300)还被配置为,当所述目标位置位于所述障碍物后面并且当绕过所述障碍物的机动不可行时,阻止所述机器人(300)自主导航到所述目标位置。
22.根据权利要求15-21中任一项所述的系统(200),其中,所述至少一个图像传感器(344)包括一个或多个鱼眼相机(346)以及一个或多个红外相机(348)。
23.根据权利要求15-22中任一项所述的系统(200),其中,所述机器人(300)包括四足机器人(300)。
24.根据权利要求15-23中任一项所述的系统(200),其中:
所述至少一个图像传感器(344)设置在所述机器人(300)上;并且
所述操作者设备(200)经由网络(180)与所述图像传感器(344)通信。
25.根据权利要求15-24中任一项所述的系统(200),其中,所述图形用户界面(221)还被配置为:
接收旋转输入,以在远离所述图形用户界面(221)中显示的当前场景(222C)的方向上旋转所述机器人(300)周围的所述环境(301)的视场;以及
通过在远离所述当前场景(222C)的所述方向上旋转所述机器人(300)周围的所述环境(301)的视场来显示预览场景(222P)。
26.根据权利要求25所述的系统(200),其中,所述图形用户界面(221)被配置为显示所述预览场景(222P)而不需要所述机器人(300)的物理移动。
27.根据权利要求25或26所述的系统(200),其中,所述图形用户界面(221)被配置为响应于接收到指示选择在所述图形用户界面(221)中显示的旋转图形的输入指示,而接收所述旋转输入。
28.根据权利要求25-27中任一项所述的系统(200),其中,在远离所述当前场景(222C)的所述方向上旋转所述机器人(300)周围的所述环境(301)的视场,来模拟所述机器人(300)在远离所述当前场景(222C)并朝向所述预览场景(222P)的方向上执行转动机动。
CN201980100845.9A 2019-08-07 2019-10-23 导航移动机器人 Pending CN114503042A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962883643P 2019-08-07 2019-08-07
US62/883,643 2019-08-07
PCT/US2019/057586 WO2021025715A1 (en) 2019-08-07 2019-10-23 Navigating a mobile robot

Publications (1)

Publication Number Publication Date
CN114503042A true CN114503042A (zh) 2022-05-13

Family

ID=74498863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980100845.9A Pending CN114503042A (zh) 2019-08-07 2019-10-23 导航移动机器人

Country Status (6)

Country Link
US (2) US11340620B2 (zh)
EP (1) EP4010771A1 (zh)
JP (1) JP7345042B2 (zh)
KR (1) KR20220082805A (zh)
CN (1) CN114503042A (zh)
WO (1) WO2021025715A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US20210356957A1 (en) * 2018-01-12 2021-11-18 Superior Marine Products Llc Gesturing for control input for a vehicle
CN113211438B (zh) * 2021-05-08 2023-06-16 东方红卫星移动通信有限公司 基于预瞄距离自适应的轮式机器人控制方法及控制系统
US20220382282A1 (en) * 2021-05-25 2022-12-01 Ubtech North America Research And Development Center Corp Mobility aid robot navigating method and mobility aid robot using the same
CN117769484A (zh) * 2021-06-04 2024-03-26 波士顿动力公司 指向移动机器人的自主和远程操作传感器
CN114454162B (zh) * 2022-01-10 2023-05-26 广东技术师范大学 一种移动机器人复杂路口防碰撞方法及系统
CN114905506A (zh) * 2022-04-15 2022-08-16 北京航空航天大学杭州创新研究院 一种基于视觉感知和空间认知神经机制的机器人导航系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037163A1 (en) * 2000-05-01 2001-11-01 Irobot Corporation Method and system for remote control of mobile robot
WO2011146259A2 (en) * 2010-05-20 2011-11-24 Irobot Corporation Mobile human interface robot
US20150190925A1 (en) * 2014-01-07 2015-07-09 Irobot Corporation Remotely Operating a Mobile Robot
US20170203446A1 (en) * 2016-01-15 2017-07-20 Irobot Corporation Autonomous monitoring robot systems
CN107265355A (zh) * 2017-07-06 2017-10-20 青岛海通胜行智能科技有限公司 一种基于智能穿戴和自然环境导航的智能拣选叉车系统
CN107515606A (zh) * 2017-07-20 2017-12-26 北京格灵深瞳信息技术有限公司 机器人实现方法、控制方法及机器人、电子设备
CN109682381A (zh) * 2019-02-22 2019-04-26 山东大学 基于全向视觉的大视场场景感知方法、系统、介质及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003136455A (ja) * 2001-11-07 2003-05-14 Sony Corp ロボットシステム、遠隔操作装置及び遠隔操作方法並びにロボット装置及びその制御方法
US8073564B2 (en) * 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
JP2014087892A (ja) * 2012-10-30 2014-05-15 Toshiba Corp 多脚ロボットの脚操作制御装置及び方法
US10816994B2 (en) * 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037163A1 (en) * 2000-05-01 2001-11-01 Irobot Corporation Method and system for remote control of mobile robot
WO2011146259A2 (en) * 2010-05-20 2011-11-24 Irobot Corporation Mobile human interface robot
US20150190925A1 (en) * 2014-01-07 2015-07-09 Irobot Corporation Remotely Operating a Mobile Robot
US20170203446A1 (en) * 2016-01-15 2017-07-20 Irobot Corporation Autonomous monitoring robot systems
CN107265355A (zh) * 2017-07-06 2017-10-20 青岛海通胜行智能科技有限公司 一种基于智能穿戴和自然环境导航的智能拣选叉车系统
CN107515606A (zh) * 2017-07-20 2017-12-26 北京格灵深瞳信息技术有限公司 机器人实现方法、控制方法及机器人、电子设备
CN109682381A (zh) * 2019-02-22 2019-04-26 山东大学 基于全向视觉的大视场场景感知方法、系统、介质及设备

Also Published As

Publication number Publication date
US11340620B2 (en) 2022-05-24
JP7345042B2 (ja) 2023-09-14
US20210041878A1 (en) 2021-02-11
KR20220082805A (ko) 2022-06-17
WO2021025715A1 (en) 2021-02-11
US20220260998A1 (en) 2022-08-18
JP2022543193A (ja) 2022-10-11
EP4010771A1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
US11340620B2 (en) Navigating a mobile robot
US11830618B2 (en) Interfacing with a mobile telepresence robot
US9789612B2 (en) Remotely operating a mobile robot
US8989876B2 (en) Situational awareness for teleoperation of a remote vehicle
US8271132B2 (en) System and method for seamless task-directed autonomy for robots
KR102504729B1 (ko) 웨이포인트 매칭을 이용한 자율적 맵 주행
Lan et al. XPose: Reinventing User Interaction with Flying Cameras.
US20230321830A1 (en) Construction constrained motion primitives from robot maps
CN114800535B (zh) 机器人的控制方法、机械臂控制方法、机器人及控制终端
Fiala A robot control and augmented reality interface for multiple robots
CN115655261B (zh) 地图生成方法、装置、机器人以及存储介质
US11927961B2 (en) Constrained robot autonomy language
US20210397202A1 (en) Touch control of unmanned aerial vehicles

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