CN117795444A - 动态环境中导航的定向探索 - Google Patents
动态环境中导航的定向探索 Download PDFInfo
- Publication number
- CN117795444A CN117795444A CN202280053772.4A CN202280053772A CN117795444A CN 117795444 A CN117795444 A CN 117795444A CN 202280053772 A CN202280053772 A CN 202280053772A CN 117795444 A CN117795444 A CN 117795444A
- Authority
- CN
- China
- Prior art keywords
- waypoint
- robot
- mobile robot
- map
- waypoints
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 70
- 230000033001 locomotion Effects 0.000 claims abstract description 64
- 238000012545 processing Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 5
- 210000002414 leg Anatomy 0.000 description 39
- 230000008569 process Effects 0.000 description 33
- 230000008447 perception Effects 0.000 description 31
- 238000013507 mapping Methods 0.000 description 25
- 210000001503 joint Anatomy 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 239000012636 effector Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 210000002683 foot Anatomy 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 210000001217 buttock Anatomy 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 210000003423 ankle Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 210000004394 hip joint Anatomy 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000000629 knee joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- 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/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control 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
-
- 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/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control 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
- G05D1/0248—Control 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 in combination with a laser
-
- 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/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3415—Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
-
- 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/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/3826—Terrain data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Optics & Photonics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
一种计算机实施的方法(300),当由数据处理硬件执行时,使得所述数据处理硬件执行操作。所述操作包括接收移动机器人的导航路线(302)。所述导航路线包括由边连接的路点序列(302)。每条边对应于在所述路点序列的路点之间导航所述移动机器人的移动指令(302)。当所述移动机器人沿着所述导航路线行进时,所述操作包括确定(304)所述移动机器人由于障碍阻碍所述相应的边而不能对于所述导航路线的相应的边执行相应的移动指令,生成(306)替代路径以将所述移动机器人导航到所述路点序列中未行进的路点,以及由所述移动机器人沿着所述导航路线恢复(308)行进。所述替代路径避开了所述障碍。
Description
技术领域
本公开总体上涉及移动机器人的导航。
背景技术
机器人是一种可重新编程的且多功能的操纵器,被设计用于通过可变编程运动(motions)移动材料、零件、工具或专用设备,为了任务的执行。机器人可以是被物理上锚定的操纵器(例如,工业机械臂)、在环境中移动的移动机器人(例如,腿、轮子或基于牵引的机构)、或者操纵器和移动机器人的某种组合。机器人被利用于各种行业,包括例如制造、运输、危险环境、勘探和医疗保健。因此,机器人穿越有障碍的环境的能力为这些行业提供了附加的好处。
发明内容
本公开的一个方面提供了一种计算机实施的方法,当由数据处理硬件执行时,使得数据处理硬件执行操作。所述操作包括接收包括路点集合的导航路线,所述路点集合包括第一路点和第二路点,基于由移动机器人捕获的传感器数据生成局部障碍地图,确定移动机器人由于障碍阻碍路径而不能沿着第一路点和第二路点之间的路径执行移动指令,基于局部障碍地图识别第三路点,以及生成替代路径以将移动机器人导航到第三路点以避开障碍。
本公开的另一方面提供了一种移动机器人,包括运动结构和导航系统,所述导航系统被配置为控制运动结构以协调移动机器人的移动。所述导航系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行指令时,使得数据处理硬件执行操作。所述操作包括接收包括路点集合的导航路线,所述路点集合包括第一路点和第二路点,基于由移动机器人捕获的传感器数据生成局部障碍地图,确定移动机器人由于障碍阻碍路径而不能沿着第一路点和第二路点之间的路径执行移动指令,基于局部障碍地图识别第三路点,生成替代路径以将移动机器人导航到第三路点以避开障碍。
本公开的另一方面提供了一种计算机实施的方法,当由数据处理硬件执行时,使得数据处理硬件执行操作。所述操作包括接收对于移动机器人的导航路线,所述导航路线包括由边连接的路点序列。每条边对应于在路点序列的路点之间导航移动机器人的移动指令。当移动机器人沿着导航路线行进时,所述操作包括确定移动机器人由于障碍阻碍相应的边而不能对于导航路线的相应的边执行相应的移动指令,生成替代路径以将移动机器人导航到路点序列中未行进的路点,以及由移动机器人沿着导航路线恢复行进。替代路径避开了障碍。
在一些实施方式中,生成到路点序列中未行进的路点的替代路径包括确定未行进的路点存在于从由移动机器人的传感器系统捕获的当前传感器数据生成的局部障碍地图内。当前传感器数据表示移动机器人周围的区域。在进一步的实施方式中,局部障碍地图包括占用栅格,其指定是否占用栅格中的每个单元包括对于移动机器人的相应的障碍。在其他进一步的实施方式中,确定未行进的路点存在于局部障碍地图内包括,对于路点序列中的每个未行进的路点,识别是否相应的未行进的路点存在于局部障碍地图内。当相应的未行进的路点存在于局部障碍地图内时,生成替代路径包括生成从移动机器人的当前位置到相应的未行进的路点的替代路径。在更进一步的实施方式中,当相应的未行进的路点不存在于局部障碍地图内时,操作还包括将移动机器人移向相应的未行进的路点的位置,同时避开障碍,直到相应的未行进的路点存在于局部障碍地图内。
在一些实施例中,由移动机器人沿着导航路线恢复行进包括执行从未行进的路点开始连接导航路线的路点序列的未行进的部分的边的移动指令。在一些示例中,导航路线是从将环境表示为由相应的边互连的多个路点的拓扑地图中导出的。在进一步的示例中,拓扑地图对应于环境的高级地图,该高级地图被抽象以移除未能对应于路点和边的度量细节。在其他进一步的示例中,确定移动机器人不能执行相应的边的相应的移动指令包括确定拓扑地图未能提供避开阻碍相应的边的障碍的避开路径。
在一些实施方式中,所述操作还包括通过使用最初的映射过程对于环境建立拓扑地图,所述最初的映射过程导航移动机器人通过环境,生成对应于环境的特征的多个路点,并使用拓扑地图生成导航路线。在一些实施例中,替代路径形成导航路线中之前未连接的两个路点之间的相应的路径。
在一些示例中,路点序列中的每个路点之前在环境的最初的映射期间被记录,并且阻碍相应的边的障碍之前在环境的最初的映射期间未被发现。在一些实施方式中,避开障碍的替代路径偏离导航路线。
本公开的另一方面提供了一种移动机器人。所述移动机器人包括主体、耦合到主体的两条或多条腿、以及被配置为协调两条或多条腿的移动的导航系统。所述导航系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行所述指令时,使得数据处理硬件执行操作。所述操作包括接收对于移动机器人的导航路线。所述导航路线包括由边连接的路点序列。每条边对应于在路点序列的路点之间导航移动机器人的移动指令。当移动机器人沿着导航路线行进时,所述操作包括确定移动机器人由于障碍阻碍相应的边而不能对于导航路线的相应的边执行相应的移动指令,生成替代路径以将移动机器人导航到路点序列中未行进的路点,以及由移动机器人沿着导航路线恢复行进。替代路径避开了障碍。
在一些实施方式中,生成到路点序列中未行进的路点的替代路径包括确定未行进的路点存在于从由移动机器人的传感器系统捕获的当前传感器数据生成的局部障碍地图内。当前传感器数据表示移动机器人周围的区域。在进一步的实施方式中,局部障碍地图包括占用栅格,其指定是否占用栅格中的每个单元包括对于移动机器人的相应的障碍。在其他进一步的实施方式中,确定未行进的路点存在于局部障碍地图内包括,对于路点序列中的每个未行进的路点,识别是否相应的未行进的路点存在于局部障碍地图内。当相应的未行进的路点存在于局部障碍地图内时,生成替代路径包括生成从移动机器人的当前位置到相应的未行进的路点的替代路径。在更进一步的实施方式中,当相应的未行进的路点不存在于局部障碍地图内时,操作还包括将移动机器人移向相应的未行进的路点的位置,同时避开障碍,直到相应的未行进的路点存在于局部障碍地图内。
在一些实施例中,由移动机器人沿着导航路线恢复行进包括执行从未行进的路点开始连接导航路线的路点序列的未行进的部分的边的移动指令。在一些示例中,导航路线是从将环境表示为由相应的边互连的多个路点的拓扑地图中导出的。在进一步的示例中,拓扑地图对应于环境的高级地图,该高级地图被抽象以移除未能对应于路点和边的度量细节。在其他进一步的示例中,确定移动机器人不能执行相应的边的相应的移动指令包括确定拓扑地图未能提供避开阻碍相应的边的障碍的避开路径。
在一些实施方式中,所述操作还包括通过使用最初的映射过程对于环境建立拓扑地图,所述最初的映射过程导航移动机器人通过环境,生成对应于环境的特征的多个路点,并使用拓扑地图生成导航路线。在一些实施例中,替代路径形成导航路线中之前未连接的两个路点之间的相应的路径。
在一些示例中,路点序列中的每个路点之前在环境的最初的映射期间被记录,并且阻碍相应的边的障碍之前在环境的最初的映射期间未被发现。在一些实施方式中,避开障碍的替代路径偏离导航路线。
本公开的一个或多个实施方式的细节在以下附图和说明中阐述。根据说明书和附图并且根据权利要求书,其他方面、特征和优点将变得显而易见。
附图说明
图1A为用于执行定向探索的示例机器人的透视图。
图1B为图1A的机器人的示例系统的示意图。
图2A为机器人的导航系统的第一示例的示意图。
图2B为机器人的导航系统的第二示例的示意图。
图2C为机器人的导航系统的第三示例的示意图。
图2D为机器人的导航系统的第四示例的示意图。
图2E为机器人的导航系统的第五示例的示意图。
图2F为机器人的导航系统的第六示例的示意图。
图3为机器人的导航期间生成替代路线的方法的操作的示例布置的流程图。
图4为可以被用于实施本文所述的系统和方法的示例计算设备的示意图。
各图中相同的参考符号表示相同的元素。
具体实施方式
为了关于环境导航,移动机器人可使用某种程度的地图。地图可以包括通知机器人关于环包括包括包括境的细节的存储信息。
一种用于导航的地图为拓扑地图,其为抽象区域的图,该图由关于该区域的特定类型(或子集)的信息表示。例如,只有关于一个区域的特定类型或子集的信息,拓扑地图使用该特定信息相关地定义该区域。例如,拓扑地图通过这些地点之间的关系来表示地点集合。在这方面,拓扑地图可以缺少比例或其他详细的度量数据,诸如距离和方向,同时保持点或地点之间的关系。拓扑地图的这样的一个示例是火车线的地图,其中地图将火车的路线描绘为一系列连接的车站,而没有进一步的诸如车站之间的距离的精确细节。
地图表示的另一种形式被称为度量地图。与拓扑地图相比,度量地图是从更精确的映射框架导出的。度量地图基于精确的几何坐标(例如,二维坐标或三维坐标)来表示环境中的物体(例如,障碍)的位置。为了利用度量地图有效地导航机器人,机器人通常利用以某种程度的精度指示机器人的坐标位置的数据进行操作。这种数据允许根据几何坐标表示的机器人与其他物体的关系的确定。
因为度量地图根据详细的空间信息(例如,几何坐标)表示物体,度量地图在计算上可能固有地昂贵。例如,通常呈现在地图中的细节越多,用于地图上的计算操作(例如,读、写和/或存储操作)的计算单元的数量就越多。因此,当机器人使用度量地图执行导航过程(例如,查询度量地图以信息,从而做出导航决策)时,与使用拓扑地图的导航过程相比,这些过程可以需要更多的计算资源或花费更长的时间发生。拓扑地图可以具有这种优势,因为通常,通过仅图解特定的关系,拓扑地图与更详细的地图(即,度量地图)相比包括更少的信息。
由于拓扑地图典型地在计算上不如度量地图昂贵,因此希望尽可能多地将拓扑地图用于机器人导航。不幸的是,在导航中,拓扑地图没有提供足够详细的信息来引导机器人成功地到达特定的目的地的情况可能会出现。
机器人导航期间可以发生的这样的一种情况是,机器人遇到以某种不可预见的方式阻碍机器人的物体(被称为障碍)。当不可预见的障碍出现时,已经将环境抽象为一组位置和这些位置之间的关系的拓扑地图不能为机器人提供避开障碍同时继续到达特定目的地的路径。换句话说,不可预见的障碍的存在可以破坏或干扰在拓扑地图中表示的一组位置之间的关系。在没有进一步的详细信息来引导机器人的情况下,这种断开的关系可以导致机器人无法使用拓扑地图实现到目标目的地的导航。
具有不可预见的障碍的情况并不罕见,因为真实世界的环境是动态变化的。也就是说,环境中的结构或对象可以具有一些临时的或非永久的特性。已知的障碍可以移动,并且新的障碍可以被引入到环境中。例如,如果对于机器人的环境是建筑工地,则建筑工地是变化的环境,通常包括临时的或非永久的物体,诸如工具、工具仓库、机械、材料等。环境的动态变化(或随时间的变化)对于被部署来在动态变化的环境中执行一些任务的机器人带来了问题。当机器人自动或半自动操作时尤其如此。
对于定位和导航的目的,可以通过映射过程对机器人进行最初地环境训练。在映射过程的一个示例中,机器人的操作者最初引导机器人通过环境,同时从与机器人相关联的传感器收集传感器数据。在该最初的映射过程中采集的传感器数据(例如,图像数据或点云数据)允许机器人构建环境地图。例如,最初的映射过程生成在最初的映射过程期间记录的位置和这些位置之间的关系的拓扑地图,以通知机器人如何沿着路径从一个位置导航到另一个位置。
当机器人继续使用拓扑地图在地图环境中导航时,在最初的映射过程中未辨别或发现的障碍是不可预见的物体,该不可预见的物体在拓扑地图中将不予考虑。因此,如果机器人仅使用来自拓扑地图的导航路线导航,机器人遇到的不可预见的物体将阻碍(或甚至完全阻止)导航路线的完全执行。
为解决其中一些问题,移动机器人可对其导航系统使用定向探索方法。定向探索方法用作一种混合导航系统,其利用拓扑地图和更详细的度量地图。例如,在导航期间,拓扑地图引导机器人,除非或直到机器人遇到不可预见的障碍。这里,一旦机器人遇到不可预见的障碍,导航系统就临时切换到局部导航地图,以确定机器人是否能够找到临时偏离拓扑地图的导航路线的路径来避开障碍,并使机器人能够恢复导航路线的某一部分(例如,行进到由导航路线指定的目的地)。
例如,当机器人沿着导航路线移动时,机器人可以正在生成机器人周围区域的局部障碍地图(例如,生成与机器人相邻的一定尺寸的网格)。在该示例中,当机器人遇到妨碍导航路径的不可预见的障碍时,机器人使用局部障碍地图来确定避开障碍的路径,并使机器人在导航路线上继续。通过利用与原始的导航路径合并的局部障碍地图生成障碍避开路径,导航系统可以再次利用来自拓扑地图的导航路径来引导机器人,而不是在避开不可预见的障碍之后继续(例如,专门地或主要地)使用局部障碍地图。因此,这种定向探索方法可以最小化与导航系统相关联的计算成本。
参考图1A和图1B的示例,机器人100包括本体110,本体110具有一个或多个基于运动的结构(运动结构),诸如与本体110耦合的腿120a-d,使机器人100能够在环境10内移动。在一些示例中,每条腿120是可铰接的结构,使得一个或多个关节J允许腿120的构件(member)122移动。例如,每条腿120包括将腿120的上部构件122(122U)耦合到主体110的髋关节JH(例如,图1A中的JHb和JHd)和将腿120的上部构件122U耦合到腿120的下部构件122L的膝关节JK(例如,图1A中的JKa、JKb、JKc和JKd)。尽管图1A描绘了具有四条腿120a-d的四足的机器人,但是机器人100可以包括任何数量的腿或其他运动结构(例如,具有两条腿的双足的或人形的机器人,或者一条或多条腿的其他布置),其提供了在环境10内穿越地形的方法。
为了穿越地形,每条腿120均具有接触地形表面(即牵引表面)的远端124。换句话说,腿120的远端124是机器人100使用的腿120的端部,以在机器人100移动期间枢转(pivot)、植入或通常提供牵引力。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,腿120的远端124包括踝关节,使得远端124是可以相对于腿120的下部构件122L进行关节运动的。
在所示示例中,机器人100包括用作机器人操纵器的臂126。臂126可以被配置为围绕多个自由度移动,以便接合(engage)环境10的元素(例如,环境10内的物体)。在一些示例中,臂126包括一个或多个构件128,其中构件128通过臂关节JA(例如,图1A中的JA1、JA2、JA3、JA4、JA5和JA6)耦合,使得臂126可以围绕(一个或多个)关节JA枢转或旋转。例如,对于一个以上的构件128,臂126可以被配置为延伸(extend)或缩回(retract)。为了举例说明,图1A描绘了具有三个构件128的臂126,该三个构件对应于下部构件128L、上部构件128U和手部构件128H(例如,也被称为末端执行器128H)。这里,下部构件128L可以围绕位于邻近主体110的一个或多个臂关节JA旋转或枢转(例如,在臂126连接到机器人100的主体110的地方)。例如,图1A描绘了臂126能够围绕第一臂关节JA1或偏转臂关节(yaw arm joint)旋转的臂126。利用偏航臂关节,臂126能够围绕机器人100的垂直重力轴(例如,示出为Az)轴向旋转360度(或其某一部分)。下部构件128L可以围绕第二臂关节JA2枢转(例如,当旋转时)。例如,第二臂关节JA2(示出为邻近机器人100的主体110)允许臂126俯仰到特定的角度(例如,升高或降低臂126的一个或多个构件128)。下部构件128L在第三臂关节JA3处耦合到上部构件128U,并且上部构件128U在第四臂关节JA4处耦合到手部构件128H。
在一些示例中,诸如图1A,手部构件128H或末端执行器128H为机械夹持器,该机械夹持器(gripper)包括一个或多个可移动的夹爪,该可移动的夹爪被配置为对环境10内的元素执行不同类型的抓取。在所示的示例中,末端执行器128H包括固定的第一夹爪和可移动的第二夹爪,其通过将物体夹紧在夹爪之间来抓取物体。可移动的夹爪被配置为相对于固定的夹爪移动,以便在夹持器的打开位置和夹持器的关闭位置(例如,围绕物体关闭)之间移动。
在一些实施方式中,臂126可以包括附加的关节JA,诸如第五臂关节JA5和/或第六臂关节JA6。第五关节JA5可以位于上部构件128U与手部构件128H的耦合处附近,并用于允许手部构件128H相对于下部构件128U扭转或旋转。换句话说,第五臂关节JA5可以用作与第四臂关节JA4或邻近手部构件128H的臂126的腕关节类似的扭转关节的作用。例如,作为扭转关节,在关节J处耦合的一个构件可以相对于在关节J处耦合的另一个构件移动或旋转(例如,在扭转关节处连接的第一构件部分是固定的,而在扭转关节处连接的第二构件部分旋转)。这里,第五关节JA5也可以使臂126以旋转手部构件128H的方式转动,使得手部构件128H可以偏转而不是俯仰(pitch)。例如,第五关节JA5允许臂126在180度的运动范围内扭转,使得与手部构件128H相关联的夹爪可以俯仰、偏转或两者的某种组合。这对于将臂126的一些部分钩在物体周围或者改进手部件128H如何抓取物体可以是有利的。第六臂关节JA6可以用作与第五臂关节JA5类似的作用(例如,作为扭转关节)。例如,第六臂关节JA6还允许臂构件128的一部分(例如,上臂构件128U)在180度运动范围内旋转或扭转(例如,相对于臂构件128的另一部分或另一个臂构件128)。这里,来自第五臂关节JA5和第六臂关节JA6的运动范围的组合可以使其能够360度旋转。在一些实施方式中,臂126在机器人100的主体110上的插座处连接到机器人100。在一些配置中,插座被配置为连接器,使得臂126可以根据是否臂126需要被操作而附接到机器人100或从机器人100分离。在一些示例中,第一和第二臂关节JA1,2可以位于将臂126连接到主体110的插座处、邻近该插座或者是该插座的一部分。
机器人100具有沿着重力方向的垂直重力轴(例如,示出为Z方向的轴AZ)和质心CM,该质心CM为对应于机器人100的所有部分的平均位置的位置,其中的部分根据其质量进行加权(即,机器人100的分布质量的加权的相对位置的总和为零的点)。机器人100还具有基于相对于垂直重力轴AZ(即,相对于重力的固定参考系)的CM的姿态(pose)P,以定义机器人100假设的特定的姿态(attitude)或姿势(stance)。机器人100的姿态可以由机器人100在空间中的取向或角度位置来定义。腿120相对于主体110的运动改变了机器人100的姿态P(即,机器人的CM的位置和机器人100的姿态或取向的组合)。这里,高度通常是指沿着z方向(例如,沿着z方向的轴AZ)的距离。机器人100的矢状面对应于在Y方向的轴AY和Z方向的轴AZ的方向上延伸的Y-Z平面。换句话说,矢状平面将机器人100分成左侧和右侧。通常垂直于矢状平面,地平面(也被称为横向平面)通过在x方向的轴AX和y方向的轴AY的方向上延伸而跨越X-Y平面。地平面是指机器人100的腿120的远端124可以生成牵引力以帮助机器人100在环境10中移动的地面14。机器人100的另一个解剖平面是跨过机器人100的主体110延伸的正面平面(例如,从具有第一条腿120a的机器人100的左侧到具有第二条腿120b的机器人100的右侧)。正面平面通过在x方向的轴AX和z方向的轴Az的方向上延伸而跨越X-Z平面。
为了在环境10内进行操纵或使用臂126执行任务,机器人100包括传感器系统130(也被称为视觉系统),该传感器系统130具有一个或多个传感器132(132a-n)。例如,图1A示出了安装在机器人100的头部的第一传感器132(132a),安装在机器人100的第二条腿120b的臀部附近的第二传感器132(132b),对应于安装在机器人100的主体110的一侧的传感器132中的一个的第三传感器132(132c),安装在机器人100的第四条腿120d的臀部附近的第四传感器132(132d),以及安装在机器人100的臂126的末端执行器128H处或末端执行器128H附近的第五传感器132(132e)。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(IMU)、力传感器和/或运动学传感器。传感器132的一些示例包括相机,诸如立体相机、飞行时间(TOF)传感器、扫描光探测和测距(LIDAR)传感器或扫描激光探测和测距(LADAR)传感器。在一些示例中,传感器132具有定义对应于传感器132的感测范围或区域的对应(一个或多个)视场FV。例如,图1A描绘了机器人100的视场FV。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132可以例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场FV。在一些示例中,多个传感器132可以被聚集在一起(例如,类似于第一传感器132a),以拼接比任何单个传感器132更大的视场FV。利用传感器132被放置在机器人100周围,传感器系统130可以具有机器人100周围的360度视图或接近360度视图。
当利用传感器132测量视场FV时,传感器系统130生成对应于视场FV的传感器数据134(例如,图像数据)。传感器系统130可以利用安装在机器人100的主体110上或主体110附近的传感器132(例如,(一个或多个)传感器132a、132b)来生成视场FV。传感器系统可以附加地和/或替代地利用安装在臂126的末端执行器128H处或末端执行器128H附近的传感器132(例如,(一个或多个)传感器132c)来生成视场FV。一个或多个传感器132可以捕捉传感器数据134,该传感器数据134定义了机器人100的环境10内的区域的三维点云。在一些示例中,传感器数据134是对应于由三维体积图像传感器132生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境10内进行操纵时,传感器系统130采集机器人100的姿态数据,该姿态数据包括惯性测量数据(例如,由IMU测量的)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或取向数据,例如,关于机器人100的腿120或臂126的关节J或其他部分的运动学数据和/或取向数据。利用传感器数据134,机器人100的各种系统可以使用传感器数据134来定义机器人100的当前状态(例如,机器人100的动力学(kinematics)的(当前状态)和/或机器人100的环境10的当前状态。换句话说,传感器系统130可以将来自一个或多个传感器132的传感器数据134通信(communicate)到机器人100的任何其他系统,以便辅助该系统的功能。
在一些实施方式中,传感器系统130包括耦合到关节J的(一个或多个)传感器132。此外,这些传感器132(例如,传感器132(132b-d)可耦合到操作机器人100的关节J的马达M。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动态。作为基于关节的传感器数据134收集的关节动态可以包括关节角度(例如,上部构件122U相对于下部构件122L或手部构件128H相对于臂126的另一构件或机器人100的另一构件)、关节速度、关节角速度、关节角加速度和/或关节J处受到的(experienced)力(也被称为关节力)。由一个或多个传感器132生成的基于关节的传感器数据可以是原始的传感器数据、被进一步处理以形成不同类型的关节动态的数据、或者两者的某种组合。例如,传感器132测量关节位置(或耦合在关节J处的(一个或多个)构件122的位置),并且机器人100的系统执行进一步的处理以从位置数据导出速度和/或加速度。在其他示例中,传感器132被配置为直接测量速度和/或加速度。
当传感器系统130采集传感器数据134时,计算系统140存储、处理,和/或传送传感器数据134到机器人100的各种系统(例如,计算系统140、控制系统170、感知系统180和/或导航系统200)。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140(其在图1A中示意性地示出,并且可以在任何合适的(一个或多个)位置被实施,该(一个或多个)位置包括机器人100的内部)包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般而言,计算系统140是指数据处理硬件142和/或存储器硬件144的一个或多个位置。
在一些示例中,计算系统140为位于机器人100上的局部系统。当位于机器人100上时,计算系统140可以是集中式的(例如,在机器人100上的单个位置/区域,例如,机器人100的主体110)、分布式的(例如,位于机器人100周围的各个位置)、或者两者的混合组合(例如,包括大多数集中式硬件和少数分布式硬件)。为了说明一些差异,分布式计算系统140可以允许处理发生在活动位置(例如,在移动腿120的关节的马达处),而集中式计算系统140可以允许中央处理中枢与位于机器人100上各个位置的系统通信(例如,与移动腿120的关节的马达通信)。
附加地或替代地,计算系统140利用位于远离机器人100的计算资源。例如,计算系统140经由网络150与远程系统160(例如,远程服务器或基于云的环境)通信。非常像计算系统140,远程系统160包括远程计算资源,诸如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140局部处理的数据)可以被存储在远程系统160中,并且可以被计算系统140访问。在附加的示例中,计算系统140被配置为利用远程资源162、164作为计算资源142、144的延伸,使得计算系统140的资源可以驻留在远程系统160的资源上。
在一些实施方式中,如图1A和图1B所示,机器人100包括控制系统170和感知系统180。感知系统180被配置为从传感器系统130接收传感器数据134,并处理传感器数据134以生成感知地图182。利用由感知系统180生成的感知地图182,感知系统180可以将感知地图182传送给控制系统170,以便对于机器人100执行控制的动作,诸如在环境10内移动机器人100。在一些示例中,通过使感知系统180与控制系统170分离但仍与其通信,控制系统170的处理可以集中于控制机器人100,而感知系统180的处理集中于解释由传感器系统130收集的传感器数据134。例如,这些系统170、180并行执行处理,以确保机器人100在环境10中的准确、流畅的移动。
给定的控制器172可以通过控制机器人100的一个或多个关节J的移动来控制机器人100。在一些配置中,给定的控制器172是具有编程逻辑的软件,该编程逻辑控制至少一个关节J或操作或耦合到关节J的马达M。例如,控制器172控制施加到关节J的力的量(例如,关节J处的扭矩)。作为可编程控制器172,控制器172控制的关节J的数量对于特定的控制目的是可缩放的(scalable)和/或可定制的。控制器172可以控制机器人100的单个关节J(例如,控制单个关节J处的扭矩)、多个关节J或者一个或多个构件122、128的致动(actuation)(例如,手部构件128H的致动)。通过控制一个或多个关节J、致动器或马达M,控制器172可以协调机器人100的所有不同部分(例如,主体110、一条或多条腿120、臂126)的移动。例如,为了执行具有一些移动的行为,控制器172可以被配置为控制机器人100的多个部分(诸如,例如两条腿120a-b、四条腿120a-d、臂126、或者腿120和/或臂126的任何组合(例如,与臂126组合的两条或四条腿120)的移动。在一些示例中,控制器172经配置为基于对象的控制器,该控制器172经设置以执行用于与可交互的对象交互的特定行为或行为集合。
在一些示例中,控制系统170包括至少一个控制器172、路径生成器174、步伐定位器(the step locator)176和主体规划器(body planner)178。控制系统170可以被配置为与至少一个传感器系统130和机器人100的任何其他系统(例如,感知系统180和/或导航系统200)通信。控制系统170使用计算系统140执行操作和其他功能。控制器172被配置为基于来自机器人100的系统(例如,传感器系统130、感知系统180和/或导航系统200)的输入或反馈来控制机器人100的移动以穿越环境10。这可以包括机器人100的姿态和/或行为之间的移动。例如,控制器172控制不同的步伐模式、腿模式、主体移动模式或视觉系统感测模式。
在一些实施方式中,控制系统170包括致力于特定的控制目的的专用控制器。这些专用控制器可以包括但不需要限于路径生成器174、步伐定位器176和/或主体规划器178。参考图1B,路径生成器174被配置为确定机器人100的水平运动。例如,水平运动是指机器人100的平移(即,在X-Y平面中的移动)和/或偏转(即,围绕Z方向的轴AZ的旋转)。路径生成器174基于传感器数据134确定机器人100的环境10内的障碍。路径生成器174将障碍传送给步伐定位器176,使得步伐定位器176可以识别机器人100的腿120的脚的放置(例如,放置机器人100的腿120的远端124的位置)。步伐定位器176使用来自感知系统180的输入(例如,(一个或多个)地图182)生成脚的放置(即,机器人100应该迈步(step)的位置)。主体规划器178很像步伐定位器176,接收来自感知系统180的输入(例如,(一个或多个)地图182)。一般而言,主体规划器178被配置为调整机器人100的主体110的动态(例如,旋转,诸如俯仰或偏航和/或高度),以成功地在环境10移动。
感知系统180是机器人100的系统,其可以帮助机器人100在具有各种障碍的地形中更精确地移动。当传感器132对于机器人100周围的空间(即,机器人的环境10)收集传感器数据134时,感知系统180使用传感器数据134以形成对于环境10的一个或多个感知地图182。一旦感知系统180生成感知地图182,感知系统180还被配置为向感知地图182添加信息(例如,通过将传感器数据134投影到预先存在的地图上)和/或从感知地图182移除信息。
在一些示例中,由感知系统180生成的一个或多个感知地图182为地面高度地图182(182a)、无步伐地图(no step map)182(182b)和/或主体障碍地图182(182c)(在图1B中统称为182a-c)。地面高度地图182a是指由感知系统180基于被划分为三维体积单元(例如,来自体素地图的体素)的区域(例如,环境10)的空间占用生成的感知地图182。在一些实施方式中,地面高度图182a起作用,使得在地图182的网格内的每个X-Y位置(例如,被指定为地面高度图182a的单元),地面高度图182a指定高度。换句话说,地面高度图182a传达了在水平平面中的特定的X-Y位置处,机器人100应该以特定高度行走。
无步伐地图182b通常是指感知地图,其定义了机器人100不允许迈步的区域,以便在机器人100可以迈步特定的水平位置(即X-Y平面中的位置)时向机器人100提供建议。在一些示例中,非常类似于主体障碍地图182c和地面高度地图182a,无步伐地图182b被划分为单元网格,其中每个单元表示机器人100的环境10中的特定的区域。例如,每个单元是3平方厘米的。为了便于解释,每个单元存在于环境10中的X-Y平面内。当感知系统180生成无步伐地图182b时,感知系统180可以生成布尔值地图,其中该布尔值地图不识别无步伐区域和步伐区域。无步伐区域是指一个或多个单元中障碍存在的区域,而无步伐区域是指一个或多个单元中感知不到障碍存在的区域。感知系统180可以进一步处理布尔值地图,使得无步伐地图182b包括有向距离场(signed-distance field)。这里,无步伐地图182b的有向距离场包括到障碍边界的距离(例如,到无步伐区域边界的距离)和到障碍边界的向量v(例如,定义到无步伐区域边界的最近的方向)。
主体障碍地图182c通常确定是否机器人100的主体110可以关于机器人100在X-Y平面上重叠位置。换句话说,主体障碍地图182c为机器人100识别障碍,以指示机器人100通过在环境10中的位置重叠是否存在与附近或相同位置的障碍碰撞或潜在损坏的风险。作为机器人100的主体110的障碍的地图,机器人100的系统(例如,控制系统170)可以使用主体障碍地图182c来识别与机器人100相邻或最近的边界,机器人100也识别方向(例如,最佳方向)以移动机器人100,以便避开障碍。在一些示例中,很像其他感知地图182,感知系统180根据单元网格(例如,X-Y平面的网格)生成主体障碍地图182c。这里,主体障碍地图182c内的每个单元包括距障碍的距离和指向作为障碍的最近单元(即,障碍的边界)的向量。
进一步参考图1B,机器人100还包括导航系统200。导航系统200是机器人100的系统,其沿着被称为导航路线202(或简称为路线202)的路径导航机器人100,以便穿越环境10。导航系统200可以被配置为接收导航路线202作为输入或生成导航路线202(例如,其整体或其某一部分)。为了生成导航路线202和/或沿着导航路线202引导机器人100,导航系统200被配置为与控制系统170和/或感知系统180结合操作。例如,导航系统200接收感知地图182,感知地图182可以通知由导航系统200执行的决定,或者影响由导航系统200本身执行的某种形式的绘图。导航系统200可以与控制系统170结合操作,使得一个或多个控制器172和/或(一个或多个)专用控制器174、176、178可以控制机器人100的部件(例如,腿120和/或臂126)的移动,以沿着导航路线202导航。
当导航系统200引导机器人100跟随导航路线202移动时,导航系统200可以被配置为确定是否导航路线202被物体阻碍。也就是说,导航路线202是从拓扑地图204(参见示例,图2A)导出的,该拓扑地图204包括与指示如何从一个位置移动到另一个位置的移动指令相关联的位置。拓扑地图204可以对应于环境的高级地图,该高级地图被抽象以移除未能对应于位置和移动指令的度量细节。换句话说,移动指令能够在将位置记录到拓扑地图204时考虑到物体或其他障碍,但是可以不反映引入到环境中的物体或障碍或从记录时间起移动的物体或障碍。
因为环境10可以从记录位置的时间起动态地改变至拓扑地图204,导航系统200被配置为确定是否导航路线202被之前在记录由导航路线202所使用的位置时未在其阻碍位置发现的物体阻碍。换句话说,当物体存在于路线202的路径中并且当导航路线202的位置被记录到拓扑地图204时物体不存在在该位置时,物体处于在路线202的执行期间阻碍导航路线202的位置。这导致该物体成为导航路线202中的“不可预见的障碍”,因为通知导航路线202的最初的映射过程没有辨别出该障碍位置中的物体。当物体被移动或引入地图环境时,可以出现这种情况。
当不可预见的障碍阻碍路线202时,导航系统200被配置为尝试生成到路线202中的位置的替代路径206,以避开不可预见的障碍。该替代路径206可以临时地偏离导航路线202,但接着在偏离后恢复导航路线202。
与生成障碍避开路径的其他方法不同,导航系统200的目标是仅临时地偏离路线202,以避开不可预见的障碍,使得机器人100可以返回使用对于导航路线202的路线特征(例如,类似于拓扑地图204中的拓扑特征)。
在此意义上,对于导航系统200的成功的障碍避开是当障碍避开路径(i)避开不可预见的障碍,以及(ii)使机器人100能够恢复导航路线202的某一部分。这种在障碍避开后与导航路线202合并的技术可以是有利的,因为导航路线202对于机器人100(或机器人100的操作者)的任务或使命表现可以是重要的。例如,机器人100的操作者命令机器人100在路线202的位置执行检查任务。通过生成在障碍避开之后在路线202上继续的障碍避开路线,导航系统200旨在促进机器人100的任务或使命的成功。
为了说明,图1A描绘了导航路线202,其包括示出为路点(waypoints)212的三个位置(例如,示出为路点212a、212b和212c)。
在图1A的示例中,当沿着路线202的第一部分(例如,示出为第一边214(214a)从第一位置(例如,示出为第一路点212a)到第二位置(例如,示出为第二路点212b)移动时,机器人100遇到不可预见的障碍20,该障碍20描绘为部分箱子托盘(a partial pallet ofboxes)。该不可预见的障碍20阻挡机器人100完成到第二位置(例如,示出为第二路点212b)的路线202的第一部分214a。这里,第二位置上的X象征机器人100在给定箱子托盘20的情况下不能成功行进到第二位置(第二路点212b)。如图1A所描绘的,路线202通常将具有从第二位置延伸到第三位置(例如,示出为第三路点212c)的第二部分(例如,示出为第二边214(214b)。由于不可预见的物体20,导航系统200生成替代路径206,其指引机器人100移动以避开不可预见的障碍20,并行进到导航路线202的第三位置(第三路点212c)(例如,从沿着路线202的第一部分的点)。
在这方面,机器人100可以不能成功导航到一个或多个位置,诸如第二位置(第二路点212b),但是可以在避开障碍20后恢复导航路线202的一部分。例如,导航路线202包括第三位置(路点212c)之后的更多位置,并且在替代路径206将机器人100导航到第三位置(即,包括在路线202中的位置)之后,替代路径206能够使机器人100能够继续到那些位置。路点212c是沿着导航路线202的未行进的路点,在图1A中机器人100还没有到达该路点212c。
在一些实施方式中,是不可预见的障碍20(也被称为障碍20)的物体可以是特定于执行导航的机器人100的类型。也就是说,是否
阻碍路线202的一部分的物体确实是障碍可以基于机器人100的形态(例如,机器人100的运动结构)而变化。例如,一些物体可以不被认为是“障碍”,因为机器人100被实施为具有跨过该物体的运动的步行范围。这里,如果机器人100能够跨过该物体而不需要偏离路线202,则该物体不是障碍。即使当机器人100可以需要偏离标称步高(nominal stepheight),但仍然执行机器人能力范围内的步高时,也是如此。相反,如果机器人100是基于轮子或基于履带的机器人,机器人100将没有能力跨过物体,并且大多数物体将导致这些类型的机器人100偏离路线202以避开物体。对于基于轮子或基于履带的机器人,阻挡路线202的许多物体将被认为是不可预见的障碍20。尽管在基于轮子的机器人或基于履带的机器人能够滚过(wheel over)物体的情况下,该物体也可以不被认为是对于路线导航目的的障碍。在一些实施方式中,当机器人100是具有四条腿120的四足机器人100时,可以存在当物体不会造成脚的放置的问题(即,阻碍或妨碍脚着地(touchdown)时,但是仍然会对于机器人100的主体110造成阻碍的情况。例如,一个物体占用了一个偏离地平面的平面,但在该平面下有开放空间。在这个意义上,对于类似桌子或平台的东西,机器人100可以能够将其脚124中的一只放在被占用的平面下,但是机器人100的主体110会与该平面碰撞。这里,由于主体110和腿120的形状(例如,腿120使主体110从支撑表面偏离),这种类型的物体将被认为是障碍。由于诸如此类的原因,机器人100的形状和/或设计可以决定是否物体实际上用作障碍20。
现参考图2A-图2F,导航系统200包括导航生成器210和路线执行器220。导航生成器210(也被称为导航生成器210)被配置为构建拓扑地图204并从拓扑地图204生成导航路线202。为了生成拓扑地图204,导航系统200,更具体地,和生成器210记录机器人100已经穿越或正在穿越的环境10内的位置作为路点212。路点212可以对应于在环境10内的特定的位置机器人100所感测到的(例如,根据其传感器系统130)的表示。生成器210基于由机器人100的传感器系统130收集的图像数据134生成路点212。例如,机器人100可以执行最初的映射过程,其中机器人100在环境10中移动。当在环境10中移动时,机器人100的系统,诸如传感器系统130正在采集数据(例如,传感器数据134),作为理解环境10的方法。通过采集对环境10的理解,机器人100可以稍后使用从最初的映射过程采集的信息或其衍生物在环境10周围移动(例如,自动地、半自动地或在用户的辅助操作下)。
在一些实施方式中,发生器210通过执行至少一个路点试探法(例如,路点搜索算法)创建拓扑地图204,所述至少一个路点试探法触发发生器210以在拓扑地图204中的特定的位置记录路点位置。例如,路点试探法被配置为检测在机器人100的位置处的在图像数据134内的阈值特征检测(例如,当生成或更新拓扑地图204时)。
发生器210(例如,使用路点试探法)可以识别环境10内的特征,将该环境10内的特征作为可靠的视觉传感器的特征,该视觉传感器的特征提供对于机器人100的在环境10中操纵的可重复性。例如,生成器210的路点试探法被预编程用于特征辨认(例如,利用用存储的特征编程)或者被编程用于识别体积图像数据134的空间聚集出现的特征(例如,房间的角落或者墙壁的边)。响应于触发路点放置的至少一个路点试探法,生成器210在拓扑地图204上记录路点212。当机器人100驱动通过一个区域(例如,机器人的环境10)时,该路点识别过程可以由生成器210重复。例如,机器人100的操作者手动驱动机器人100通过用于最初的映射过程的区域,该最初的映射过程对于拓扑地图204建立路点212。
当记录每个路点212时,生成器210通常将路点边214(也被称为边214)与相应的路点212相关联,使得由生成器210生成的拓扑地图204包括路点212及其相应的边214。边214被配置为指示一个路点212(例如,第一路点210a)如何与另一路点212(例如,第二路点212b)相关。例如,边214表示路点212(例如,相邻的路点212)之间的位置关系。换句话说,边214是两个路点212之间的连接或指定的路径(例如,图2A中示出的边214a是第一路点210a和第二路点210b之间的连接)。例如,边214是第一路点210a到第二路点210b之间的路径(例如,机器人100的移动路径)。然而,在一些示例中,边214不仅仅是机器人100要跟随的线(或轨迹)。相反,每个边214包括移动指令,该移动指令通知机器人100如何在由相应的边214连接的路点212之间移动或导航。这里,这些移动指令可以包括一个或多个姿态变换,其表达机器人100如何沿着两个路点212之间的边214移动。
姿态变换可以描述环境内的一个坐标框架相对于另一坐标框架的位置和/或取向(orientation)。换句话说,姿态变换用作决定对于机器人100的一个或多个位置和/或取向的移动指令,以假设成功地沿着边214从源路点212导航到目的地路点212。在一些实施方式中,边214包括完整的三维变换(例如,六个数字)。这些数字中的一些包括各种估计诸如,例如,航位推测姿态估计、基于视觉的估计或基于机器人100的动力学和/或惯性测量的其他估计。
在一些示例中,边214包括提供环境10的进一步指令/描述的注释。注释的一些示例包括边214与环境10的一些特征相关联或位于其上的描述或指令。例如,边214的注释指定边214位于楼梯上或穿过门口。这些注释可以在操纵期间帮助机器人100,尤其是当视觉信息丢失(missing)或缺失(lacking)时(例如,诸如门口的空隙)。在一些配置中,注释包括方向约束(也可以被称为姿态约束)。注释的方向约束可以指定机器人100在特定的环境特征处的对准和/或取向(例如,姿态)。例如,注释指定了对于机器人100在沿着楼梯行进或沿着狭窄走廊下来之前的特定的对准或姿势,这可以限制机器人100转弯。
在一些实施方式中,拓扑地图204的每个路点212还包括传感器数据134,该传感器数据134对应于当发生器210将相应的路点212记录到拓扑地图204时由机器人100的传感器系统130收集的数据。这里,在路点212处的传感器数据134可以使机器人100能够通过将机器人100根据拓扑地图204(例如,来自拓扑地图204的路线202)穿越环境10时采集的实时传感器数据134和对于拓扑地图204的路点212存储的传感器数据134进行比较来定位。
在一些配置中,在机器人100沿着边214移动后(例如,具有位于目标路点212目的),机器人100被配置为通过直接比较实时传感器数据134和拓扑地图204(例如,与拓扑地图204的预期的目标路点212相关联的传感器数据134)来定位。这里,通过对拓扑地图204的路点212进行最少的处理来存储原始或接近原始的传感器数据134,机器人100可以在机器人100在地图环境10内操纵时使用实时传感器数据134来有效地定位。在一些示例中,迭代最近点(ICP)算法相对于路点212来定位机器人100。
因为生成器210使用路点212和边214产生拓扑地图204,所以拓扑地图204可以局部一致(例如,由于邻居的路点而在一个区域内空间一致),但不需要全局准确和/或一致。也就是说,只要相邻的路点212之间的几何关系(例如,边214)大致准确,拓扑地图204就不需要对于机器人100和环境10内感测到的物体的精确的全局度量定位。对于拓扑地图204不需要这一点,使用拓扑地图204导出或创建的导航路线202也不需要精确的全局度量信息。此外,因为拓扑地图204可以仅使用路点212和路点之间的关系(例如,边214)来创建,所以与度量地图相比,拓扑地图204可以被认为是抽象或高级地图。也就是说,拓扑地图204可以缺乏关于与路点212或其对应的边214不相关的地图环境的其他度量数据。例如,创造拓扑地图204的映射过程(例如,通过生成器)可以不存储或记录其他度量数据,或者映射过程可以移除记录的度量数据以形成路点212和边214的拓扑地图204。
无论哪种方式,利用拓扑地图204导航可以简化导航所需的硬件和/或导航过程中使用的计算资源。也就是说,与通常需要昂贵的LIDAR传感器和/或昂贵的惯IMU传感器的使用度量定位的导航相比,基于拓扑的导航可以利用低成本的视觉和/或低成本的惯性测量单元(IMU)传感器来操作。基于度量的导航倾向于比基于拓扑的导航需要更多的计算资源,因为基于度量的导航通常以比拓扑导航高得多的频率执行定位(例如,利用路点212)。例如,使用全局占用网格的同步定位和映射(SLAM)的通用导航方法不断地执行机器人定位。
参考图2A,生成器210在拓扑地图204上记录多个路点212(212a-i)。从多个记录的路点212中,生成器210选择一些记录的路点212作为形成对于机器人100的导航路线202的路点序列212。在一些示例中,机器人100的操作者可以使用生成器210以选择或创建路点序列212以形成导航路线202。在一些实施方式中,生成器210基于接收对于机器人100的目的地位置和起始位置来生成路线202。例如,生成器210将起始位置与最近的路点212相匹配,并且类似地将目的地位置与最近的路点212相匹配。生成器210然后可以在这些最近的路点212之间选择一些路点212以生成路线202。在一些配置中,生成器210接收任务或使命,并生成路线202作为将实现该任务或使命的路点序列212。例如,对于检查管道上不同位置的使命,生成器210生成路线202,该路线202包括与检查位置一致的路点212。在图2A所示的示例中,生成器210生成具有路点序列212的路线202,该路点序列212包括九个路点212a-i及其对应的边214a-h。图2A用双圆说明了路线202的每个路点212,而不是路线202的一部分的记录的路点212仅具有单圆。生成器210然后将路线202传送给路线执行器220。
路线执行器220(也被称为执行器220)被配置为接收和执行导航路线202。为了执行导航路线202,执行器220可以与机器人100的其他系统协调,以控制机器人100的基于移动的结构(例如,腿),从而驱动机器人100沿着路线202通过路点序列212。例如,执行器220将连接路线202的路点序列212中的路点212的边214的移动指令传送给控制系统170。控制系统170可以使用这些移动指令根据一个或多个姿态变换来定位机器人100(例如,在一个取向上),以成功地沿着路线202的边214移动机器人100。
当机器人100沿着路线202行进时,执行器220还被配置为确定是否机器人100不能执行对于特定的边214的特定的移动指令。例如,机器人100不能执行对于边214的移动指令,因为机器人100在沿着边214移动到路点212时遇到不可预见的障碍20。这里,执行器220辨别出不可预见的障碍20阻挡了机器人100的路径(例如,使用实时或接近实时的传感器数据134)或者以其他方式阻止了机器人100执行对于边214的移动指令,并且被配置为确定是否对于机器人100的替代路径206存在于路线202的序列中未行进的路点212(212U)。未行进的路点212U是指机器人100没有已经成功行进到的路线202的路点序列的路点212。例如,如果机器人100已经行进到路线202中的九个路点中的三个212a-c,如果可以的话,执行器220将试图找到到一个或剩余的六个路点212d-i的替代路径206。
执行器220可以在尝试找到通往后续未行进至的路点212的替代路径206之前,首先尝试找到通往下一个未行进至的路点212的替代路径206,诸如,在找到从路点212c到路点212e-i中的一个的替代路径206之前,尝试找到从路点212c到路点212d的替代路径206。在这种意义上,替代路径206是避开不可预见的障碍20的障碍避开路径,也是允许机器人100恢复导航路线202(例如,朝向的特定目标或任务)的路径。这意味着在机器人100沿着替代路径206行进到未行进的路点212U的目的地之后,执行器220继续从替代路径206的目的地执行路线202。这种方法使机器人100能够使用稀疏的拓扑地图204返回导航。换句话说,避开障碍20的替代路径206可以偏离导航路线202以避开障碍20,且在避开障碍20之后与导航路线202合并或继续导航路线202,以返回到使用资源密集度较低的拓扑地图204进行导航。
例如,参考图2A的示例,如果不可预见的障碍20阻挡了第三边214c的某些部分(例如,阻挡了第三边214c和第四路点212d的某些部分),则机器人100已经行进到三个路点212a-c;因此,执行器220生成到第五路点212e的避开不可预见的障碍20的替代路径206,该第五路点212e是未行进的路点212U。机器人100然后可以从第五路点212e开始继续路线202的路点序列212。这意味着机器人100然后将跟随路线202的路点序列212行进到未行进部分(例如,通过使用未行进的部分的边214的移动指令)。在该示例中,机器人100将排除一些其他不可预见的物体20从第五路点212e行进到第六、第七、第八和最后第九路点212(212f-i)。这意味着,尽管不可预见的物体20沿着第三边214c存在,但是机器人100在执行路线202时在其移动路径期间仅丢失了单个路点,即第四路点212d。
在一些实施方式中,当执行器220确定不可预见的障碍20阻挡了边214时,执行器220识别出拓扑地图204未能提供避开不可预见的障碍20的替代路线206。这通常是因为拓扑地图204包括(例如,由生成器210)在映射过程中记录的路点212和边214。因为在映射时不可预见的障碍20不存在,所以拓扑地图204未能独自生成替代路径206。
换句话说,生成器210没有预期需要类似于图2A中从第三路点212c到第五路点212e的替代路径的路径或边214。这也意味着替代路径206可能是未能对应于拓扑地图204中的现有的边214的路径。换句话说,替代路径206导致导航路线202中(例如,通过边214)之前未连接的两个路点212之间的路径。在其他实施方式中,执行器220假设不可预见的障碍20的存在需要执行器220使用除拓扑地图204之外的其他方法以生成替代路径206。
在一些配置中,当边214被不可预见的物体20阻挡时,执行器220求助于可以从机器人100的系统获得的其他地图。在一些示例中,执行器220使用或从机器人100的传感器系统130捕获的当前传感器数据134生成局部障碍地图222。这里,局部障碍地图222可以是指比拓扑地图204更详细的环境10的地图,但是仅对于机器人100周围的局部区域(例如,三米乘三米的正方形区域)。
在一些配置中,局部障碍地图222包括占用网格,其中网格内的每个单元指定是否障碍存在于该单元中。执行器220然后可以使用占用网格的未被占用的单元结合未行进的路点212U的位置来生成替代路径206。
在一些示例中,局部障碍地图222全部或部分使用来自机器人100周围的局部区域的感知系统180的感知地图182(例如,地面高度地图182a、无步伐地图182b和/或主体障碍地图182c)来形成。
对于有限大小的局部障碍地图222,执行器220可以通过确定局部障碍地图222的边界内存在哪些未行进的路点212U来确定哪些未行进的路点212U应作为替代路径206的目的地。
参考图2B的示例,导航路线202包括五个路点212a-e。这里,机器人100已经行进到第二路点212b,结果却发现不可预见的障碍20阻挡了连接第二路点212b和第三路点212c的第二边214b。为了确定替代路径206(例如,替代路径206的目的地),执行器220确定哪些未行进的路点212U存在于局部障碍地图222的边界内。在该示例中,未行进的路点212U是第三、第四和第五路点212c-e,并且只有第四路点212d在局部障碍地图222的边界内。
作为参考,图2B将局部障碍地图222说明为网格。尽管除了第四路点212d之外,第三路点212c和第五路点212e也是未行进的路点212U,但是这些路点212c、212e中的任一者都不存在于局部障碍地图222的边界内。在某种意义上,局部障碍地图222因此不知道如何生成到第三或第五路点212c、212e中的任一者的替代路径206。因为第四路点212d是局部障碍地图222的边界内的唯一路点212,执行器220生成避开障碍20到第四路点212d的替代路径206。机器人100然后将沿着第四边214d从第四路点212d到第五路点212e继续跟随路线202。
在一些示例中,执行器220系统地运行,使得对于每个未行进的路点212U,执行器220识别是否相应的未行进的路点212U存在于局部障碍地图222内。例如,执行器220对于路线202的路点序列之后的每个未行进的路点顺序地执行该识别。对于图2B的示例,这将意味着执行器220首先确定是否第三路点212c在局部障碍地图222内,其中第三路点212c不在局部障碍地图222内。执行器220接下来确定是否第四路点212d是否在局部障碍地图222内,其中第四路点212d在局部障碍地图222内。执行器220然后确定是否第五路点212e在局部障碍地图222内。
在图2C的示例中,局部障碍地图222包括多个未行进的路点。因此,与其中第五路点212e不在局部障碍地图222的边界内的图2B的示例相比,图2C描绘了其中第五路点212e位于局部障碍地图222的边界内的示例。在类似于图2C的情况下,其中多于一个未行进的路点212U在局部障碍地图222的边界内,执行器220可以被配置为确保机器人100行进到尽可以多的路线202的路点212。利用该标准,执行器220将生成到第四路点212d而不是第五路点212e的替代路径206,使得当机器人100在沿着替代路径206行进到第四路点212d之后继续沿着导航路线202行进时,机器人100将行进到第五路点212e,因此确保机器人100在其移动路径期间行进到路线202的最可能的路点212。
图2D和图2E示出了当在局部障碍地图222的边界内没有未行进的路点212U时可以发生的场景。在这种情况下,执行器220可以被配置为在朝向对于路线202的路点序列212中的下一个路点212的方向上生成探索路径224,以避开不可预见的障碍20。在图2D中,不可预见的障碍20阻碍第二路点212b和第三路点212c之间的第二边214b。因为第三路点212c是在路线202的路点序列212中的下一个未行进的路点212U,所以执行器220生成探索路径224,其中探索路径224是朝向第三路点212c的障碍避开路径。在图2D和图2E的示例中,机器人100具有开放空间,以在由探索路径224所指示的方向上探索,直到第三路点212c在局部障碍地图222内。
因此,当机器人100沿着探索路径224移动时,局部障碍地图222将继续跨越其有限区域。这意味着之前不在局部障碍地图222的边界内的未行进的路点212U可以变得在局部障碍地图222的边界内。在这方面,机器人100正沿着探索路径224探索,直到未行进的路点212U存在于局部障碍地图222的边界内。
如图2E的示例所示,一旦未行进的路点212U存在于局部障碍地图222的边界内,执行器220能够生成以未行进的路点212U为目的地的替代路径206。通过沿着探索路径224朝向路线202的路点序列212中的下一个路点212行进,执行器220被配置为最小化将不会被机器人100行进到的路点212的数量(或者最大化被机器人100实现的路点212的数量)。
图2F的示例与图2C的示例类似在于局部障碍地图222的边界包括一个以上未行进的路点212U。在所示的实施例中,第一不可预见的障碍20(20a)阻碍第二边214b和第五边214e(例如,完全阻挡房间或走廊)。同时,第二障碍20(20b)不阻挡边214,但是迫使替代路径206考虑其存在至少部分地阻碍第二路点212b和第六路点212f之间的最短路径。该示例还示出了替代路径206可以导致跳过多个路点212(例如,第三、第四和第五路点212U(212c-e)。因为执行器220生成从第二路点212b到未行进的第六路点212U(212f)的替代路径206,机器人100将继续沿着路线202沿着第六边214f从第六路点212f到第七路点212g行进。
图3为对于导航路线202生成替代路径206的方法300的操作的示例布置的流程图。在操作302,方法300接收对于移动机器人100穿越环境10的导航路线202。导航路线202包括由边214连接的路点序列212,其中每个路点在环境10的最初的映射过程期间被记录。每条边214对应于在路点序列212的相邻的路点212之间导航移动机器人100的移动指令。当移动机器人100沿着导航路线202行进时,操作304-308发生。在操作304,方法300确定移动机器人100由于障碍20之前在环境10的最初的映射过程期间未被发现而不能对于导航路线202的相应的边214执行相应的移动指令。在操作306,方法300生成到路点序列212中未行进的路点212U的替代路径206,避开障碍20并偏离导航路线202。在沿着替代路径206行进到未行进的路点212U之后,在操作308,方法300恢复导航路线202以穿越环境10。
图4为示例计算设备400的示意图,其可以被用于实施本文件中所描述的系统(例如,机器人100、传感器系统130、计算系统140、远程系统160、控制系统170、感知系统180和/或导航系统200)和方法(例如,方法300)。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。这里所示出的组件、它们的连接和关系以及它们的功能仅仅意味着是示例性的,并不意味着限制本文件中所描述和/或所要求的发明的实施方式。
计算设备400包括处理器410(例如,数据处理硬件142、162),存储器420(例如,存储器硬件144、164),存储设备430,连接到存储器420和高速扩展端口450的高速接口/控制器440,以及连接到低速总线470和存储设备430的低速接口/控制器460。组件410、420、430、440、450和460中的每一个使用各种总线互连,并且可以被安装在公共主板上或者以其他适当的方式安装。处理器410可以处理用于在计算设备400内执行的指令,包括存储在存储器420中或存储设备430上的指令,以在外部输入/输出设备(诸如耦合到高速接口440的显示器480)上对于图形用户界面(GUI)显示的图形信息。在其他实施方式中,多处理器和/或多总线可以被适当地与多存储器和多种类型的存储器仪器使用。此外,多个计算设备400可以被连接,每个设备提供需要的操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器420在计算设备400内非暂时地存储信息。存储器420可以是计算机可读介质、(一个或多个)易失性存储器单元或(一个或多个)非易失性存储器单元。非暂时性存储器420可以是被用于基于由计算设备400使用暂时或永久存储程序(例如,一系列指令)或数据(例如,程序状态信息)的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备430能够为计算设备400提供大容量存储。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或者设备阵列,包括在存储区域网络或其他配置中的设备。在附加的实施方式中,计算机程序产品有形地被包括在信息载体中。计算机程序产品包括指令,当被执行时,该指令执行一种或多种方法,诸如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器420、存储设备430或处理器410上的存储器。
高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低的带宽密集型操作。这种职责的分配仅是示例性的。在一些实施方式中,高速控制器440耦合到存储器420、显示器480(例如,通过图形处理器或加速器),并且耦合到高速扩展端口440,所述高速扩展端口440可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器460耦合到存储设备430和低速扩展端口470。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口470可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备。
如图所示,计算设备400可以通过多种不同形式被实施。例如,它可以被实施为标准服务器400a或者多次在这样的服务器400a的组中被实施为膝上型计算机400b、机架式服务器系统500c的部分、机器人100的部分或者遥控器的部分。
本文所描述的系统和技术的各种实施可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中被实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施,所述可编程系统包括至少一个可编程处理器(可以是专用或通用的,被耦合以从存储系统接收数据和指令,以及向存储系统发送数据和指令)、至少一个输入设备和至少一个输出设备。
这些计算机程序(也被称为程序、软件、软件应用或代码)包括对于可编程处理器的机器指令,可以通过高级程序和/或面向对象的编程语言和/或汇编/机器语言被实施。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指被用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指被用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中所描述的过程和逻辑流程可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行。举例来说,适用于计算机程序的执行的处理器包括通用和专用微处理器两者,以及任何种类的数字计算机中的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合到从其接收数据或向其传输数据,或两者兼有的,用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘。然而,计算机不需要有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括举例来说半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路中。
为提供与用户的交互,本公开的一个或多个方面可以在具有显示设备的计算机上被实施,例如,用于向用户显示信息的CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏。在某些实施方式中,通过键盘和定点设备(例如,鼠标或轨迹球)来促进交互,用户可以通过它们向计算机提供输入。其他类型的设备也可以被使用以提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户的客户端设备上的网络浏览器发送网页来响应于从网络浏览器接收的请求。
多种实施方式已经被描述。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,虽然过程或方框以给定的顺序呈现,但是替代实施例可以以不同的顺序执行具有步骤的例程,或者采用具有方框的系统,并且一些过程或方框可以被删除、移动、添加、细分、组合和/或修改。这些过程或方框中的每一个都可以以各种不同的方式被实施。此外,虽然过程或方框有时被示为串行执行,但是这些过程或方框可以并行执行,或者可以在不同的时间执行。此外,上述的各种实施例的元素和动作可以被组合以提供进一步的实施例。实际上,本文所描述的方法和系统可以以各种其他形式来体现;此外,在不脱离本公开的精神的情况下,可以对本文所描述的方法和系统的形式进行各种省略、替换和改变。因此,其他实施方式也在以下权利要求的范围内。
Claims (26)
1.一种计算机实施的方法,当由数据处理硬件执行时,使得所述数据处理硬件执行操作,包括:
接收移动机器人的导航路线,所述导航路线包括路点集合,所述路点集合包括第一路点和第二路点;
基于由所述移动机器人捕获的传感器数据生成局部障碍地图;
确定所述移动机器人由于障碍阻碍所述路径而不能沿着所述第一路点和所述第二路点之间的路径执行移动指令;
基于所述局部障碍地图识别第三路点,以及
生成替代路径以将所述移动机器人导航到所述第三路点以避开所述障碍。
2.根据权利要求1所述的方法,其中所述局部障碍地图包括占用网格,所述占用网格包括多个单元,每个单元指示相应的障碍是否存在于所述单元中。
3.根据权利要求1所述的方法,其中基于所述局部障碍地图识别所述第三路点包括识别所述路点集合中未行进的路点,并确定所述未行进的路点存在于所述局部障碍地图内。
4.根据权利要求3所述的方法,其中所述操作还包括生成从所述移动机器人的当前位置到所述未行进的路点的所述替代路径。
5.根据权利要求1所述的方法,其中所述操作还包括确定在所述局部障碍地图内不存在未行进的路点,并且朝向所述路点集合中的未行进的路点导航所述移动机器人,直到所述未行进的路点出现在所述局部障碍地图中。
6.根据权利要求1所述的方法,其中所述操作还包括从所述第三路点开始由所述移动机器人恢复行进所述路点集合中的未行进的部分。
7.根据权利要求1所述的方法,其中所述导航路线是从将环境表示为由多条边互连的多个路点的拓扑地图中导出的。
8.根据权利要求7所述的方法,其中所述拓扑地图对应于所述环境的高级地图,所述高级地图被抽象以移除未能对应于所述多个路点和所述多个边的度量细节。
9.根据权利要求7所述的方法,其中确定所述移动机器人不能执行所述移动指令包括确定所述拓扑地图未能提供避开所述障碍的避开路径。
10.根据权利要求1所述的方法,其中所述操作还包括导航所述移动机器人通过环境以生成拓扑地图,基于在所述环境中由所述移动机器人识别的多个特征生成所述路点集合,以及基于所述拓扑地图生成所述导航路线。
11.根据权利要求10所述的方法,其中在导航所述移动机器人通过所述环境以生成所述拓扑地图时,阻碍所述路径的所述障碍未被检测到。
12.根据权利要求1所述的方法,其中所述第二路点和所述第三路点在所述导航路线中不相连。
13.根据权利要求1所述的方法,其中避开所述障碍的所述替代路径偏离所述导航路线。
14.一种移动机器人,包括:
运动结构;和
被配置为控制所述运动结构以协调所述移动机器人的移动的导航系统,所述导航系统包括数据处理硬件和与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,当在所述数据处理硬件上执行所述指令时,使得所述数据处理硬件执行操作,所述操作包括:
接收包括路点集合的导航路线,所述路点集合包括第一路点和第二路点;
基于由所述移动机器人捕获的传感器数据生成局部障碍地图;
确定所述移动机器人由于障碍阻碍所述路径而不能沿着所述第一路点和所述第二路点之间的路径执行移动指令;
基于所述局部障碍地图识别第三路点,以及
生成替代路径以将所述移动机器人导航到所述第三路点以避开所述障碍。
15.根据权利要求14所述的移动机器人,其中所述局部障碍地图包括占用网格,所述占用网格包括多个单元,每个单元指示相应的障碍是否存在于所述单元中。
16.根据权利要求14所述的移动机器人,其中基于所述局部障碍地图识别所述第三路点包括识别所述路点集合中未行进的路点,并确定所述未行进的路点存在于所述局部障碍地图内。
17.根据权利要求16所述的移动机器人,其中所述操作还包括生成从所述移动机器人的当前位置到所述未行进的路点的所述替代路径。
18.根据权利要求14所述的移动机器人,其中所述操作还包括确定在所述局部障碍地图内不存在未行进的路点,并且朝向所述路点集合中的未行进的路点导航所述移动机器人,直到所述未行进的路点出现在所述局部障碍地图中。
19.根据权利要求14所述的移动机器人,其中所述操作还包括从所述第三路点开始由所述移动机器人恢复行进所述路点集合中的未行进的部分。
20.根据权利要求14所述的移动机器人,其中所述导航路线是从将环境表示为由多条边互连的多个路点的拓扑地图中导出的。
21.根据权利要求20所述的移动机器人,其中所述拓扑地图对应于所述环境的高级地图,所述高级地图被抽象以移除未能对应于所述多个路点和所述多个边的度量细节。
22.根据权利要求20所述的移动机器人,其中确定所述移动机器人不能执行所述移动指令包括确定所述拓扑地图未能提供避开所述障碍的避开路径。
23.根据权利要求14所述的移动机器人,其中所述操作还包括导航所述移动机器人通过环境以生成拓扑地图,基于在所述环境中由所述移动机器人识别的多个特征生成所述路点集合,以及基于所述拓扑地图生成所述导航路线。
24.根据权利要求23所述的移动机器人,其中在导航所述移动机器人通过所述环境以生成所述拓扑地图时,阻碍所述路径的所述障碍未被检测到。
25.根据权利要求14所述的移动机器人,其中所述第二路点和所述第三路点在所述导航路线中不相连。
26.根据权利要求14所述的移动机器人,其中避开所述障碍的所述替代路径偏离所述导航路线。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163202289P | 2021-06-04 | 2021-06-04 | |
US63/202,289 | 2021-06-04 | ||
PCT/US2022/072717 WO2022256821A1 (en) | 2021-06-04 | 2022-06-02 | Directed exploration for navigation in dynamic environments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117795444A true CN117795444A (zh) | 2024-03-29 |
Family
ID=82482710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280053772.4A Pending CN117795444A (zh) | 2021-06-04 | 2022-06-02 | 动态环境中导航的定向探索 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220390950A1 (zh) |
EP (1) | EP4348380A1 (zh) |
CN (1) | CN117795444A (zh) |
WO (1) | WO2022256821A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11747825B2 (en) | 2018-10-12 | 2023-09-05 | Boston Dynamics, Inc. | Autonomous map traversal with waypoint matching |
CN111366163B (zh) * | 2018-12-25 | 2023-06-02 | 北京欣奕华科技有限公司 | 一种拓扑地图的处理方法、装置及存储介质 |
JP2022542807A (ja) | 2019-08-06 | 2022-10-07 | ボストン ダイナミクス,インコーポレイテッド | 中間ウェイポイント生成器 |
US20230211842A1 (en) * | 2021-12-31 | 2023-07-06 | Hyundai Motor Company | Autonomous walking vehicle |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584020B2 (en) * | 2006-07-05 | 2009-09-01 | Battelle Energy Alliance, Llc | Occupancy change detection system and method |
US7211980B1 (en) * | 2006-07-05 | 2007-05-01 | Battelle Energy Alliance, Llc | Robotic follow system and method |
US9821801B2 (en) * | 2015-06-29 | 2017-11-21 | Mitsubishi Electric Research Laboratories, Inc. | System and method for controlling semi-autonomous vehicles |
KR101695557B1 (ko) * | 2015-07-17 | 2017-01-24 | 고려대학교 산학협력단 | 자율 주행 기반 무인 운반차 시스템 및 이의 제어 방법 |
US11314262B2 (en) * | 2016-08-29 | 2022-04-26 | Trifo, Inc. | Autonomous platform guidance systems with task planning and obstacle avoidance |
WO2018213931A1 (en) * | 2017-05-25 | 2018-11-29 | Clearpath Robotics Inc. | Systems and methods for process tending with a robot arm |
US10394234B2 (en) * | 2017-12-18 | 2019-08-27 | The Boeing Company | Multi-sensor safe path system for autonomous vehicles |
KR102466940B1 (ko) * | 2018-04-05 | 2022-11-14 | 한국전자통신연구원 | 로봇 주행용 위상 지도 생성 장치 및 방법 |
US11911908B2 (en) * | 2018-12-21 | 2024-02-27 | Intrinsic Innovation Llc | Dynamic probabilistic motion planning |
US11175664B1 (en) * | 2019-01-15 | 2021-11-16 | Amazon Technologies, Inc. | Navigation directly from perception data without pre-mapping |
DE102019202702B3 (de) * | 2019-02-28 | 2020-08-13 | Kuka Deutschland Gmbh | Abfahren einer vorgegebenen Anordnung von Wegen mit einem mobilen Roboter |
JP2022542807A (ja) * | 2019-08-06 | 2022-10-07 | ボストン ダイナミクス,インコーポレイテッド | 中間ウェイポイント生成器 |
JP7382901B2 (ja) * | 2020-06-09 | 2023-11-17 | 株式会社日立製作所 | 自走式点検ロボット |
US11931900B2 (en) * | 2020-07-24 | 2024-03-19 | Samsung Electronics Co., Ltd. | Method of predicting occupancy of unseen areas for path planning, associated device, and network training method |
US20220083062A1 (en) * | 2020-09-11 | 2022-03-17 | Locus Robotics Corp. | Robot navigation management between zones in an environment |
KR20220138438A (ko) * | 2021-02-26 | 2022-10-13 | 현대자동차주식회사 | 이동 로봇의 다중 경로 생성 장치 및 방법 |
US11940800B2 (en) * | 2021-04-23 | 2024-03-26 | Irobot Corporation | Navigational control of autonomous cleaning robots |
-
2022
- 2022-06-02 EP EP22740725.1A patent/EP4348380A1/en active Pending
- 2022-06-02 US US17/805,135 patent/US20220390950A1/en active Pending
- 2022-06-02 CN CN202280053772.4A patent/CN117795444A/zh active Pending
- 2022-06-02 WO PCT/US2022/072717 patent/WO2022256821A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4348380A1 (en) | 2024-04-10 |
WO2022256821A1 (en) | 2022-12-08 |
US20220390950A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220390950A1 (en) | Directed exploration for navigation in dynamic environments | |
JP7259020B2 (ja) | ウェイポイントマッチングを用いた自律マップトラバーサル | |
US20220388170A1 (en) | Alternate Route Finding for Waypoint-based Navigation Maps | |
US20220390954A1 (en) | Topology Processing for Waypoint-based Navigation Maps | |
US20220244741A1 (en) | Semantic Models for Robot Autonomy on Dynamic Sites | |
CN116710240A (zh) | 开门行为以及机器人呈现该行为 | |
US20220241980A1 (en) | Object-Based Robot Control | |
US20220390952A1 (en) | Detecting negative obstacles | |
US20230418297A1 (en) | Ground clutter avoidance for a mobile robot | |
Charabaruk et al. | Design and development of an autonomous omnidirectional hazardous materials handling robot | |
US20220388174A1 (en) | Autonomous and teleoperated sensor pointing on a mobile robot | |
US20240192695A1 (en) | Anchoring based transformation for aligning sensor data of a robot with a site model | |
US20230419467A1 (en) | A mobile robot system for automated asset inspection | |
CN115668088A (zh) | 受约束机器人自主语言 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |