CN111989195B - 在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作 - Google Patents
在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作 Download PDFInfo
- Publication number
- CN111989195B CN111989195B CN201980024188.4A CN201980024188A CN111989195B CN 111989195 B CN111989195 B CN 111989195B CN 201980024188 A CN201980024188 A CN 201980024188A CN 111989195 B CN111989195 B CN 111989195B
- Authority
- CN
- China
- Prior art keywords
- robot
- processor
- environment
- voxels
- volume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 99
- 230000015654 memory Effects 0.000 claims abstract description 74
- 238000010586 diagram Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims description 190
- 239000012636 effector Substances 0.000 claims description 127
- 238000005457 optimization Methods 0.000 claims description 77
- 230000007704 transition Effects 0.000 claims description 66
- 238000009826 distribution Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 34
- 238000011017 operating method Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000008859 change Effects 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 16
- 238000013461 design Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 239000011435 rock Substances 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000207875 Antirrhinum Species 0.000 description 1
- 241000879777 Lynx rufus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 102000055788 SPARC family Human genes 0.000 description 1
- 108700015859 SPARC family Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- 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
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40442—Voxel map, 3-D grid map
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40446—Graph based
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40448—Preprocess nodes with arm configurations, c-space and planning by connecting nodes
Abstract
一种机器人控制系统确定使用多种离散化中的哪一种来生成机器人扫掠体积的离散化表示,并且生成机器人将在其中运行的环境的离散化表示。表示环境和其中的障碍物的障碍物体素(或盒)被流式输入到处理器中并存储在片上环境存储器中。在运行时,机器人控制系统可以在存储在片外或片上存储器中的多个运动规划图之间动态切换。在运行时在多个运动规划图之间的动态切换使得机器人在机器人自身的特性变化的情况下,以较低的成本执行运动规划。
Description
技术领域
本公开总体上涉及机器人运动规划,并且特别地涉及促进在一个或更多个处理器上存储环境的离散化表示的机器人的运动规划的系统和方法。
背景技术
相关技术说明
运动规划是机器人控制和机器人技术中的基本问题。运动规划完全指定了机器人从起始状态到目标状态能够遵循的路径,通常不会与操作环境中的任何障碍物碰撞,或与操作环境中的任何障碍物碰撞的可能性降低。运动规划的挑战包括以较低的成本和非常快的速度执行运动规划的能力,即使机器人本身的特性发生了变化。例如,这种特性可以包括当改变为不同的末端执行器或改变为不同的附肢时,当机器人握持各种尺寸的对象时,被认为由机器人占据的体积。而且,还存在关于能够存储在处理器芯片电路上的有限数量的运动规划信息的挑战。
发明内容
机器人控制系统中的操作方法可以概括为包括:对于将在环境中运行的第一机器人,确定多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示;对于规划图中的每个的边缘的至少两个或更多个,生成边缘信息的相应集合,该边缘信息的相应集合表示在由通过相应的边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积;将多个规划图和边缘信息的集合存储在至少一个非暂时性处理器可读存储器中;基于在第一时间具有物理尺寸的第一集合的第一机器人的至少一部分,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器;并且基于在第二时间具有物理尺寸的第二集合的第一机器人的至少一部分(物理尺寸的第二集合中的至少一个尺寸不同于尺寸的第一集合的相应尺寸),将规划图中的第二规划图的边缘信息的集合提供给至少一个处理器。
第一机器人可以具有至少第一附肢,该第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一机器人可以具有附接到第一附肢的第一末端执行器,第一末端执行器能够可选择性地操作,以在至少第一末端执行器布置与第二末端执行器布置之间运动,并且所述操作方法还可以包括确定附接到第一附肢的第一末端执行器位于第一末端执行器布置中,其中,物理尺寸的第一集合表示第一末端执行器布置中的第一末端执行器的尺寸的集合;并且其中,可以响应于确定附接到所述第一附肢的第一末端执行器位于第一末端执行器布置中,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器。
机器人控制系统中的操作方法还可以包括确定附接到第一附肢的第一末端执行器位于第二末端执行器布置中,其中,物理尺寸的第二集合表示第二末端执行器布置中的第一末端执行器的尺寸的集合;并且其中,可以响应于确定附接到第一附肢的第一末端执行器位于第二末端执行器布置中,将规划图的第二规划图的边缘信息的集合提供给至少一个处理器。
第一机器人可以具有至少第一附肢,该第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一末端执行器可以附接到第一附肢,该第一末端执行器能够可选择性地操作,以至少在未抓取布置与抓取布置之间运动,第一末端执行器在抓取布置中占据的体积的尺寸或形状中的至少一个不同于第一末端执行器在未抓取布置中占据的体积的尺寸或形状中的至少一个,并且机器人控制系统中的操作方法还可以包括确定附接到第一附肢的第一末端执行器位于未抓取布置中;其中,可以响应于确定附接到第一附肢的第一末端执行器位于未抓取布置中,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器;并且确定附接到第一附肢的第一末端执行器位于抓取布置中;其中,可以响应于确定附接至第一附肢的第一末端执行器位于抓取布置中,将规划图的第二规划图的边缘信息的集合提供给至少一个处理器。第一机器人可以具有至少第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且机器人控制系统中的操作方法还可以包括确定第一机器人具有附接到第一附肢的第一末端执行器,其中,物理尺寸的第一集合可以代表附接到第一附肢的第一末端执行器的尺寸的集合;并且其中,可以响应于确定第一机器人具有附接到第一附肢的第一末端执行器,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器。
机器人控制系统中的操作方法还可以包括确定第一机器人具有附接到第一附肢的第二末端执行器,第二末端执行器与第一末端执行器在形状或尺寸的至少一个上不同,其中,物理尺寸的第二集合可以表示附接在第一附肢的第二末端执行器的尺寸的集合;并且其中,可以响应于确定第一机器人具有附接到第一附肢的第二末端执行器,将规划图中的第二规划图的边缘信息的集合提供给至少一个处理器。
第一机器人可以是自主或半自主车辆中的至少一个,由处于第一物理状态的自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个可以不同于由处于第二物理状态的自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个(例如,重量可以由于燃料的消耗而改变,因此速度可以改变,并且行驶距离改变),并且机器人控制系统中的操作方法还可以包括:确定自主或半自主车辆中的至少一个处于第一物理状态;其中,可以响应于确定自主或半自主车辆中的至少一个处于第一物理状态,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器;以及确定自主或半自主车辆中的至少一个处于第二物理状态;其中,可以响应于确定自主或半自主车辆中的至少一个处于第二物理状态,将规划图的第二规划图的边缘信息的集合提供给至少一个处理器。将规划图的第一规划图的边缘信息的集合提供给至少一个处理器可以包括将边缘中的一个的边缘信息应用于至少一个处理器的多个电路中的每个,以确定哪些边缘与机器人在其中运行的环境中的障碍物占据的单位体积碰撞。将规划图的第一规划图的边缘信息的集合提供给至少一个处理器可以包括将边缘中的一个的边缘信息并行地应用到至少一个处理器的多个电路中的每个。生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合可以包括生成边缘信息的相应集合,该边缘信息集合以体素表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积。生成表示在由通过相应的边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合可以包括,生成边缘信息的相应集合,该边缘信息集合以覆盖两个或更多个体素的单位体积表示在由通过相应的边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积。生成表示在由通过相应的边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合可以包括,生成边缘信息的相应集合,该边缘信息集合以矩形棱柱(平行六面体)表示在由通过相应边缘耦接的相应节点表示的状态之间转换时第一机器人的至少一部分扫过的体积。生成以矩形棱柱(平行六面体)表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合可以包括,对于矩形棱柱中的每个,存储完整定义相应矩形棱柱的体积的三维坐标对。可以在预运行时间段期间执行确定多个规划图以及生成边缘信息的相应集合。可以在运行时间段期间执行将规划图中的第二规划图的边缘信息的集合提供给至少一个处理器。
基于处理器的机器人控制系统可以概括为包括:至少一个处理器;以及至少一个非暂时性处理器可读介质,该至少一个非暂时性处理器可读介质存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:对于将在环境中运行的第一机器人,确定多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示;对于规划图中的每个的边缘的至少两个或更多个,生成边缘信息的相应集合,该边缘信息的相应集合表示在由通过相应的边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积;将多个规划图和边缘信息的集合存储在至少一个非暂时性处理器可读存储器中;基于在第一时间具有物理尺寸的第一集合的第一机器人的至少一部分,将规划图的第一规划图的边缘信息的集合提供给至少一个处理器;并且基于在第二时间具有物理尺寸的第二集合的第一机器人的至少一部分(物理尺寸的第二集合中的至少一个尺寸不同于尺寸的第一集合中的相应尺寸),将规划图的第二规划图的边缘信息的集合提供给至少一个处理器。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时,还可以使至少一个处理器执行上述方法中的任一项。
机器人控制系统中的操作方法可以概括为包括:对于至少第一机器人将在其中运行的由一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给至少一个处理器;对于相对于至少一个处理器存储在存储器中的多个规划图中第一规划图的每个边缘(其中,多个规划图的每个规划图与第一机器人的物理尺寸的不同集合相关联),将边缘信息的相应集合提供给至少一个处理器,边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,第一机器人的状态对由第一规划图的节点对中的相应节点表示,相应节点对通过第一规划图的相应的边缘耦接,相应边缘表示在第一机器人的相应状态对之间的转换;以及识别第一规划图的任何边缘,其相应的转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
将边缘信息的相应集合提供给至少一个处理器可以包括将边缘之一的边缘信息并行地应用于至少一个处理器的多个电路中的每个。将边缘信息的相应集合提供给至少一个处理器可以包括,对于每个边缘,将相应边缘的边缘信息并行地应用于至少一个处理器的多个电路中的每个。将边缘信息的相应集合提供给至少一个处理器可以包括,对于每个边缘,将边缘信息的相应集合应用于至少一个处理器的电路,所述边缘信息的相应集合以体素表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积。将边缘信息的相应集合提供给至少一个处理器可以包括,对于每个边缘,将边缘信息的相应集合应用于至少一个处理器的电路,所述边缘信息的相应集合以单位体积表示在由通过相应边缘耦接的相应节点表示的状态之间转换时被第一机器人的至少一部分扫过的体积,该单位体积分别覆盖两个或更多个体素。将边缘信息的相应集合提供给至少一个处理器可以包括,对于每个边缘,将边缘信息的相应集合应用于至少一个处理器的电路,所述边缘信息的相应集合以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积,该单位体积分别覆盖两个或更多个体素。将以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合应用于电路可以包括,对于矩形棱柱中的每个,存储完整定义相应矩形棱柱的体积的三维坐标对。
机器人控制系统中的操作方法还可以包括:确定第一机器人将要或已经从第一布置改变为第二布置,第二布置不同于第一布置;对于多个规划图的第二规划图的每个边缘,将边缘信息的相应集合提供给至少一个处理器,边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,第一机器人的状态对由第二规划图的节点对中的相应节点表示,该相应的节点对由第二规划图的相应边缘耦接,相应边缘表示在第一机器人的相应状态对之间的转换,第二规划图不同于第一规划图;以及识别第二规划图的任何边缘,其相应的转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中至少一个的至少一部分之间的碰撞。
第一机器人可以包括第一附肢,第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且确定第一机器人将要或已经从第一布置改变为第二布置可以包括,确定第二末端执行器代替第一末端执行器附接到或正在附接到第一附肢。第一机器人可以包括第一附肢,该第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一末端执行器可以附接至第一附肢,该第一末端执行器能够可选择性地操作,以在至少抓取布置与非抓取布置之间运动,抓取布置中由第一末端执行器占据的体积的尺寸或形状中的至少一个与未抓取布置中由第一末端执行器占据的体积的尺寸或形状中的至少一个不同,并且确定第一机器人将要或已经从第一布置改变为第二布置可以包括,确定附接到第一附肢的第一末端执行器正在改变或已经改变了抓取布置。确定附接至第一附肢的第一末端执行器正在改变或已经改变了抓取布置可以包括,确定第一末端执行器在未抓取布置与抓取布置之间转换或已经完成转换。第一机器人可以是自主或半自主车辆中的至少一个,在第一布置中由自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个不同于在第二布置中由自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个,并且其中,确定第一机器人将要或已经从第一布置改变为第二布置可以包括,确定自主或半自主车辆中的至少一个在自主或半自主车辆中的至少一个的第一布置与第二布置之间转换或已经完成转换。将第一规划图的每个边缘的边缘信息的相应集合提供给至少一个处理器可以包括,在运行时间段期间从非暂时性存储器中检索边缘信息的相应集合,该边缘信息的相应集合在预运行时间段期间存储到非暂时性存储器中。至少一个处理器可以是现场可编程门阵列或专用集成电路中的至少一个,并且将边缘信息的相应集合提供给至少一个处理器可以包括,将边缘之一的边缘信息应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的至少一个处理器的多个电路中的每个。
机器人控制系统中的操作方法还可以包括:将环境的第一离散化表示存储在至少一个处理器上的存储器中;以及在将环境的第一离散化表示存储在至少一个处理器上的存储器中之后,至少一个处理器从与至少一个处理器分离的存储器中接收边缘信息的集合。
基于处理器的机器人控制系统可以概括为包括:至少一个处理器;以及至少一个非暂时性处理器可读介质,其存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:对于至少第一机器人将在其中运行的由一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给至少一个处理器;对于相对于至少一个处理器存储在存储器中的多个规划图中的第一规划图的每个边缘,其中多个规划图的每个规划图与第一机器人的物理尺寸的不同集合相关联,将边缘信息的相应集合提供给至少一个处理器,所述边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,该第一机器人的状态对由第一规划图的节点对中的相应节点表示,相应的节点对由第一规划图的相应边缘耦接,相应的边缘表示在第一机器人相应状态对之间的转换;以及识别第一规划图的任何边缘,其相应的转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时还可以使至少一个处理器执行上述方法中的任一项。
在系统中用于促进运动规划的操作方法可以概括为包括:对于包括多个任务和环境对的集合的至少第一场景,对于至少第一场景的任务和环境对中的每个,对于多个迭代中的每个,通过至少一个处理器生成表示机器人将在其中运行的环境的相应的离散化,相应离散化中的至少两种包括体素的相应集合,其中相应离散化中的至少两种的体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应的分布是彼此不同的;评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性;以及至少将所生成的表示机器人将在其中运行的环境的、被评估为至少对于第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质。
通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中与在机器人后方的至少一个区域内的多个体素中的每个的相应体积相比,在机器人前方的至少一个区域的多个体素中的每个具有较小的体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,第二体积不同于第一体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,并且在机器人前方的第三区域的多个体素具有第三体积,第三体积不同于第二体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,并且在机器人前方的第三区域的多个体素具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中机器人正前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二体积,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素中的每个的形状不同于在机器人后方的至少一个区域内的多个体素中每个的形状。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一形状,在机器人前方的第二区域的多个体素具有第二形状,第二形状不同于第一形状。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,第三形状不同于第二形状。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,第二形状不同于第一形状,并且第三形状不同于第二形状。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人正前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二形状,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三形状,第二形状不同于第一形状,第三形状不同于第二形状。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素的每个的形状和体积都不同于在机器人后方的至少一个区域的多个体素中的每个的形状和体积。通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化可以包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都不同于在机器人后方的至少一个区域的多个体素中的每个的形状和体积,并且形状中的至少一个是非立方体的。评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性可以包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致无碰撞路径。评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性可以包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致具有最低碰撞概率的路径。评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性可以包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致成本最低的无碰撞路径。至少将所生成的表示机器人将在其中运行的环境的相应离散化(该离散化被评估为对于至少第一场景是最有效的)存储到至少一个非暂时性处理器可读介质中可以包括,存储所生成的多个场景中的每个的至少一相应离散化,并指示应将所生成的相应离散化的哪一个用于多个场景中的每个。
用于促进运动规划的基于处理器的系统可以概括为包括:至少一个处理器;至少一个非暂时性处理器可读介质,其存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:对于包括多个任务和环境对的集合的至少第一场景,对于至少第一场景的任务和环境对中的每个,对于多个迭代中的每个,通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化,相应离散化中的至少两种包括体素的相应集合,其中相应离散化中的至少两种的体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同;评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性;以及至少将所生成的表示机器人将在其中运行的环境的、被评估为至少对于第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时还可以使至少一个处理器执行上述方法中的任一项。
在系统中用于促进运动规划的操作方法可以概括为包括:至少部分地基于对机器人将执行的任务和机器人将在其中运行的环境的对进行分类的所识别的场景,确定使用多种离散化中的哪一种来生成多个扫掠体积,这些扫掠体积表示在机器人的一个状态与机器人的另一个状态之间转换时机器人的至少一部分将经过的相应的区域;对于规划图中的多个边缘中的每个,利用确定的离散化来确定边缘的相应扫掠体积,该规划图包括多个节点和多个边缘,每个节点代表机器人的多个状态中的相应状态,每个边缘耦接相应的节点对,并表示机器人在由通过相应的边缘耦接的相应节点表示的状态之间的相应转换;以及将所确定的表示机器人将在其中运行的环境的、被评估为至少对所识别的场景是最有效的扫掠体积的相应离散化存储到至少一个非暂时性处理器可读介质中。
确定使用多种离散化中的哪一种来生成多个扫掠体积可以包括,基于所识别的场景在至少两种离散化之间进行选择,其中相应离散化中的至少两种的体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布可以彼此不同。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的至少一个区域的多个体素中的每个与在机器人后方的至少一个区域内的多个体素中的每个的相应体积相比可以具有较小的体积。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的多个体素可以具有第二体积,第二体积不同于第一体积。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的多个体素可以具有第二体积,并且在机器人前方的第三区域内的多个体素可以具有第三体积,第三体积不同于第二体积。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的多个体素可以具有第二体积,并且在机器人前方的第三区域内的多个体素可以具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人正前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内并且相对于机器人从第一区域相对向外间隔开的多个体素可以具有第二体积,并且在机器人前方的第三区域内并且相对于机器人从第二区域相对向外间隔开的多个体素可以具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的至少一个区域内的多个体素的每个的形状可以不同于在机器人后方的至少一个区域内的多个体素的每个的形状。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一形状,并且在机器人前方的第二区域内的多个体素可以是第二形状,第二形状不同于第一形状。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一形状,在机器人前方的第二区域内的多个体素可以具有第二形状,并且在机器人前方的第三区域内的多个体素可以具有第三形状,第三形状不同于第二形状。利用确定的离散化确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一形状,在机器人前方的第二区域内的多个体素可以具有第二形状,并且在机器人前方的第三区域内的多个体素可以具有第三形状,第二形状不同于第一形状,并且第三形状不同于第二形状。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人正前方的第一区域内的多个体素中的每个可以具有第一形状,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素可以具有第二形状,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素可以具有第三形状,第二形状不同于与第一形状,并且第三形状不同于第二形状。利用确定的离散化来确定边缘的相应扫掠体积可以包括,利用确定的离散化来确定边缘的相应扫掠体积,其中在机器人前方的至少一个区域内的多个体素的每个的形状和体积都不同于在机器人后方的至少一个区域的多个体素的每个的形状和体积。
在系统中用于促进运动规划的操作方法还可以包括接收所识别的场景。
在系统中用于促进运动规划的操作方法还可以包括将边缘信息的相应集合提供给至少一个处理器,该边缘信息的相应集合表示在机器人的状态对之间转换时由第一机器人的至少一部分扫过的相应扫掠体积。
至少一个处理器可以是现场可编程门阵列或专用集成电路中的至少一个,并且还可以包括将边缘信息的相应集合应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的至少一个处理器的多个电路中的每个,边缘信息的相应集合表示在机器人的状态对之间转换时由机器人的至少一部分扫过的相应扫掠体积。
用于促进运动规划的基于处理器的系统可以概括为包括:至少一个处理器;以及至少一个非暂时性处理器可读介质,其存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:至少部分地基于对机器人将执行的任务和机器人将在其中运行的环境的对进行分类的所识别场景,确定使用多种离散化中的哪一种来生成多个扫掠体积,该扫掠体积表示在机器人的一个状态与机器人的另一个状态之间转换时机器人的至少一部分将经过的相应的区域;对于规划图中的多个边缘中的每个,利用确定的离散化来确定边缘的相应扫掠体积,该规划图包括多个节点和多个边缘,每个节点代表机器人的多个状态中的相应状态,每个边缘耦接相应的节点对并表示机器人在由通过相应边缘耦接的相应节点表示的状态之间的相应转换;以及将确定的表示机器人将在其中运行的环境的、被评估为至少对于所识别的场景是最有效的扫掠体积的相应离散化中的至少一个存储到至少一个非暂时性处理器可读介质。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时还可以使至少一个处理器执行上述方法中的任一项。
在系统中用于促进运动规划的操作方法可以概括为包括:至少部分地基于对机器人将执行的任务和机器人在其中运行的环境的对进行分类的所识别场景,确定使用多种离散化中的哪一种来生成在环境中包括障碍物(如果存在)的环境的离散化表示;接收由感测环境的一个或更多个传感器产生的传感器信息,该传感器信息代表在环境中包括障碍物(如果存在)的环境;以及利用确定的离散化来生成在环境中包括障碍物(如果存在)的环境的离散化表示,其中所确定的离散化的多个体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且所确定的离散化的体素的非均匀性的相应分布不同于多种离散化中的另一种的体素的非均匀性的相应分布。
在系统中用于促进运动规划的操作方法还可以包括将在环境中包括障碍物(如果存在)的环境的所确定生成的离散化表示存储到至少一个非暂时性处理器可读介质中。
生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,使用与用于生成扫掠体积的离散化表示的体素尺寸和形状的分布相匹配的体素尺寸和形状的分布来生成环境的离散化表示。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,使用与用于生成由机器人的至少一部分扫过的扫掠体积的离散化表示的体素尺寸和形状的分布相匹配的体素尺寸和形状的分布来生成环境的离散化表示。确定使用多种离散化中的哪一种来生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,基于所识别的场景在至少两种离散化之间进行选择,其中相应离散化中的至少两种的体素在相应离散化内的尺寸和形状的至少一个上可以是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布可以彼此不同。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化生成环境的离散化表示,其中相比于在机器人后方的至少一个区域中的多个体素中的每个的相应体积,在机器人前方的至少一个区域的多个体素中的每个可以具有较小的体积。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,并且在机器人前方的第二区域内的多个体素可以是第二体积,第二体积不同于第一体积。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的多个体素可以具有第二体积,并且在机器人前方的第三区域内的多个体素可以具有第三体积,第三体积不同于第二体积。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的多个体素可以具有第二体积,并且在机器人前方的第三区域内的多个体素可以具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化生成环境的离散化表示,其中在机器人正前方的第一区域内的多个体素中的每个可以具有第一体积,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素可以具有第二体积,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素可以具有第三体积,第二体积不同于第一体积,并且第三体积不同于第二体积。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的至少一个区域内的多个体素中的每个的形状可以不同于在机器人后方的至少一个区域的多个体素中的每个的形状。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一形状,并且在机器人前方的第二区域内的多个体素可以具有第二形状,第二形状不同于第一形状。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每一个可以具有第一形状,在机器人前方的第二区域内的多个体素可以具有第二形状,并且在机器人前方的第三区域内的多个体素可以具有第三形状,第三形状不同于第二形状。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的第一区域内的多个体素中的每个可以具有第一形状,在机器人前方的第二区域内的多个体素可以具有第二形状,并且在机器人前方的第三区域内的多个体素可以具有第三形状,第二形状不同于第一形状,并且第三形状不同于第二形状。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化生成环境的离散化表示,其中在机器人正前方的第一区域内的多个体素中的每个可以具有第一形状,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外地间隔开的多个体素可以具有第二形状,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素可以具有第三形状,第二形状不同于第一形状,并且第三形状不同于第二形状。生成在环境中包括障碍物(如果存在)的环境的离散化表示可以包括,利用确定的离散化来生成环境的离散化表示,其中在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都可以不同于在机器人后方的至少一个区域内的多个体素中的每个的形状和体积。
在系统中用于促进运动规划的操作方法还可以包括:接收表示机器人将执行的任务以及机器人将在其中运行的环境的信息;至少部分地基于接收到的信息来识别所识别的场景。
在系统中用于促进运动规划的操作方法还可以包括将环境的离散化表示提供给至少一个处理器。
至少一个处理器可以是现场可编程门阵列或专用集成电路中的至少一个,并且还可以包括将环境的离散化表示应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的多个电路中的每个。
用于促进运动规划的基于处理器的系统可以概括为包括:至少一个处理器;以及至少一个非暂时性处理器可读介质,其存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:至少部分基于对机器人将执行的任务和机器人在其中运行的环境的对进行分类的所识别的场景,确定使用多种离散化中的哪一种来生成在环境中包括障碍物(如果存在)的环境的离散化表示;接收由感测环境的一个或更多个传感器产生的传感器信息,该传感器信息表示在环境中包括障碍物(如果存在)的环境;以及利用确定的离散化来在环境中生成包括障碍物(如果存在)的环境的离散化表示,其中,所确定的离散化的多个体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且所确定的离散化的体素的非均匀性的相应分布不同于多种离散化中的另一种的体素的非均匀性的相应分布。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时还可以使至少一个处理器执行上述方法中的任一项。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划中的相应边缘耦接的节点对中的相应节点表示,该操作方法可以概括为包括:对于多个规划图中的第一规划图、对于第一规划图的多个边缘中的每个,执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查;根据碰撞检查更新第一规划图;对更新后的第一规划图执行优化,以从更新后的第一规划图识别一个或更多个优化结果(如果存在);确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)是否满足满足要求;响应于确定优化结果不满足满足条件:对于第二规划图的多个边缘中的每个执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,基于碰撞检查更新第二规划图;并且对更新后的第二规划图执行优化,以从更新后的第二规划图识别一个或更多个优化结果(如果存在)。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,以及每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该操作方法还可以包括确定来自更新后的第二规划图(如果存在)的一个或更多个优化结果(如果存在)是否满足满足条件。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该操作方法可以响应于确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)满足满足条件,将由来自更新后的第二规划图的一个或更多个优化结果之一所识别的转换应用于机器人。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该操作方法可以响应于确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)不满足满足条件:对于第三规划图的多个边缘中每个,执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,基于碰撞检查更新第三规划图;并且对更新后的第三规划图执行优化,以从更新后的第三规划图识别一个或更多个优化结果(如果存在)。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该操作方法可以响应于确定来自更新后的第三规划图的一个或更多个优化结果(如果存在)满足满足条件:将由来自更新后的第三规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人。
确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)满足满足条件可以包括确定优化是否产生任何路径。确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)满足满足条件可以包括确定优化是否产生任何无碰撞的路径。执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查可以包括,对于第一规划图中的边缘中的每个,将边缘的边缘信息的集合并行应用于多个电路中的每个,电路分别代表由机器人在其中运行的环境中的障碍物占据的相应的单位体积。
一种机器人控制系统中的操作方法,该操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该操作方法还可以包括将至少一个处理器配置为实现多个电路,所述电路表示由至少第一机器人将在其中运行的环境中的一个或更多个障碍物占据的多个单位体积中的每个的相应的单位体积。
一种基于处理器的机器人控制系统,该机器人控制系统采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,该基于处理器的机器人控制系统可以概括为包括:至少一个处理器;以及至少一个非暂时性处理器可读介质,其存储在由至少一个处理器执行时使至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:对于多个规划图的第一规划图、对于第一规划图的多个边缘中的每个,执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查;基于碰撞检查更新第一规划图;对更新后的第一规划图执行优化,以从更新后的第一规划图识别一个或更多个优化结果(如果存在);确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)是否满足满足条件;响应于确定优化结果不满足满足条件:对于第二规划图的多个边缘中的每个,执行针对与该边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,基于碰撞检查更新第二规划图;并且对更新后的第二规划图执行优化,以从更新后的第二规划图识别一个或更多个优化结果(如果存在)。
处理器可执行指令或数据中的至少一个在由至少一个处理器执行时还可以使至少一个处理器执行上述方法中的任一项。
附图说明
在附图中,相同的附图标记表示相似的元件或动作。附图中的元件的尺寸和相对位置不必按比例绘制。例如,各种元件的形状和角度未按比例绘制,并且这些元件中的一些被任意放大并定位以提高附图的可读性。此外,所绘制的元件的特定形状并不旨在传达关于特定元件的实际形状的任何信息,并且仅为了便于在附图中识别而选择。
图1是根据一个所示实施例的机器人可以在其中运行的环境的示意图。
图2是根据一个所示实施例的可以在图1的环境中运行的机器人的机器人控制系统的功能框图。
图3是根据一个所示实施例的机器人可以在其中运行的图1的环境的示意图,示出了机器人从环境中的三维(3D)空间中的一个位置转换到3D空间中的另一位置,以及在3D空间中的一个位置转换到3D空间中的另一个位置之间时由机器人的附肢扫过的体积的表示。
图4A是根据一个所示实施例的图1的机器人的运动规划图示例,包括规划图的边缘,对于所述边缘已经确定的是,相应的转换将导致机器人与环境中的一个或更多个障碍物之间的碰撞。
图4B是根据一个所示实施例的图1的机器人的运动规划图示例,其中,规划图的边缘已被去除,对于所述边缘已经确定的是,相应的转换将导致机器人与环境中的一个或更多个障碍物之间的碰撞。
图5是根据一个所示实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过根据特定情况提供不同规划图的边缘信息来促进运动规划。
图6是根据一个所示出的实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过识别规划图的边缘来促进运动规划,对于所述边缘,相应的转换将导致碰撞,所述规划图是存储在片外存储器中的多个规划图中的一个,每个规划图与机器人的物理尺寸的不同集合相关联。
图7是根据一个所示出的实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过评估所生成的表示机器人将在其中运行的环境的非均匀离散化的有效性来促进运动规划。
图8是根据一个所示实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过确定使用多种离散化中的哪一种来生成表示机器人将经过的相应区域的多个扫掠体积来促进运动规划。
图9是根据一个所示实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过利用确定的离散化生成机器人将在其中运行的环境的离散化表示来促进运动规划。
图10是根据一个所示实施例的示出了机器人控制系统中的操作方法的流程图,该操作方法通过确定规划图的优化结果是否满足满足条件来促进运动规划。
具体实施方式
在以下描述中,阐述了某些特定细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节的一个或更多个的情况下,或者利用其他方法、部件、材料等来实践实施例。在其他情况下,与计算机系统、致动器系统、以及/或者通信网络相关联的公知结构未被详细示出或描述,以避免不必要地模糊实施例的描述。在其他情况下,用于生成一个或更多个对象等的感知数据和体积表示的公知的计算机视觉方法和技术没有被详细描述,以避免不必要地模糊实施例的描述。
除非上下文另外要求,否则在以下整个说明书和权利要求书中,词语“包括”应以开放的、包含性的含义来解释,即为“包括,但不限于。”
在整个说明书中,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在至少一个实施例中。因此,在整个说明书中各处出现的短语“在一个实施例中”或“在实施例中”不一定都指的是同一实施例。此外,在一个或更多个实施例中,可以以任何合适的方式组合特定的特征、结构或特性。
如在本说明书和所附权利要求书中所使用的,除非上下文另外明确指出,否则单数形式“一个”以及“所述”包括复数个指示物。还应注意,除非上下文另外明确指出,否则术语“或”通常以其包括“和/或”的含义使用。
在本文中提供的本公开的标题和摘要仅是为了方便,而不解释实施例的范围或含义。
根据一个示出的实施例,图1示出了机器人102可以在其中运行的操作环境100。为了简洁起见,操作环境100在本文中被称为环境100。该环境表示机器人102可以在其中运行和运动的二维或三维空间。机器人102可以是任何类型的机器人,包括(但不限于):直角坐标型机器人、选择顺应性装配机器手臂(SCARA),圆柱坐标型机器人、Delta机器人、极坐标型机器人和垂直关节型机器人。机器人还可以是汽车、飞机、无人驾驶飞机或能够自主或半自主(即至少部分自主)操作并在由环境100表示的空间中运动的任何其他车辆。环境100是机器人在其中运行的二维或三维空间,并且不同于下面相对于图4A和4B的运动规划图所引用的机器人的“配置空间”(通常称为“C空间”),并且如在2017年6月9日提交的名称为“自主车辆的运动规划和可重构运动规划处理器”的国际专利申请号PCT/US2017/036880中所述,其全部内容通过引用并入本文;以及在2016年1月5日提交的名称为“专用机器人运动规划硬件及其制造和使用方法”的国际专利申请公开号WO 2016/122840中所述,其全部内容也通过引用并入本文。配置空间通常是多维的(即,大于3维)。特别地,规划图的每个节点表示机器人的状态,该状态可以包括(但不限于)机器人的特定配置(该特定配置是机器人的特定集合关节位置的完整说明)、机器人的姿态、速度和前进方向。规划图的每个边缘代表机器人从一个状态到另一个状态的转换。
参照图1,环境100能够包括障碍物碰撞区域。这些障碍物碰撞区域可以是由于环境100中的静态对象(例如建筑物、树木、岩石、家具等)或动态对象(例如其他机器人、车辆、人、动物、滚动的岩石、鸟类等)造成的。例如,障碍物A 112和障碍物B 104代表如下的对象,其在环境100中创建碰撞区域,使得如果机器人102试图与障碍物A 112或障碍物B 104同时在环境100中占据相同的空间,则机器人102可能与障碍物A112或障碍物B 104碰撞。在各种实施例中,可能有比图1所示更少或更多的对象。
运动规划的挑战包括以较低成本但以非常快的速度执行运动规划并且随着机器人自身特性的变化而频繁地执行运动规划的能力。例如,这种特性可以包括(但不限于)当改变为不同的末端执行器或改变为不同的附肢时,当机器人握持各种尺寸的对象时,被认为由机器人占据的体积。因此,对于机器人102来说,跟上那些变化以便执行运动是有利的。与此相关的是有效地表示、传达和比较环境100中被认为由机器人102和障碍物所占据空间的挑战。例如,如图1所示,障碍物A 112当前位于机器人102的前方。对于机器人102来说,能够快速且有效地确定机械臂106的哪些运动(以及机器人102的任何运动)将会导致与障碍物A 112的碰撞是有利的。因此,本公开提供了能够使机器人102有效地表示、传达和比较环境100中由机器人102和障碍物A 112所占据空间以有助于确定机械臂106的哪些运动将会导致与障碍物A 112的碰撞的解决方案。
尽管图1示出了代表性的环境100,但是典型的环境可以包括许多另外的对象和实体,包括与其他机器人对应的对象以及各种其他自然的或人造的静态和动态对象和障碍物。本文所教导的概念可以以类似的方式在比所示出的环境被占据得更多的环境中使用。
根据一个示出的实施例,图2和以下讨论提供了合适的机器人控制系统200的简要的一般性描述,其中可以实现各种示出和描述的运动规划系统和方法。
尽管不是必需的,但是许多实施例将在计算机可执行指令的一般情况下描述,例如存储在计算机(或处理器)可读介质上并且由能够执行碰撞评估和运动规划操作的一个或更多个计算机或处理器执行的程序应用模块、对象或宏。这种运动规划操作可以包括(但不限于)以下中的一项或更多项:生成与规划图的边缘相关联的机器人扫掠体积的一个或更多个离散化表示;确定使用多个离散化表示中的哪一个来生成机器人扫掠体积的离散化表示;生成机器人102将在其中运行的环境(包括环境中的障碍物)的离散化表示;确定使用多种离散化中的哪一种来生成环境的离散化表示;确定多个规划图;存储所确定的多个规划图和相应的边缘信息的集合;生成表示在由规划图的节点表示的状态之间转换时由机器人102的至少一部分扫过的体积的信息;对规划图的边缘执行碰撞评估;提供规划图的边缘信息的集合;从规划图中识别一个或更多个优化结果;执行针对与规划图的边缘相关联的扫掠体积的离散化表示与机器人102将在其中运行的环境中的障碍物的离散化表示之间的碰撞的碰撞检查;确定优化是否为机器人102产生任何无碰撞路径;以及为机器人102实施运动规划。
图1的机器人102具有传感器(例如图2中所示的传感器282),该传感器将感知数据发送到一个或更多个处理器(例如处理器212a)。感知数据是当前环境中存在的体素或盒的流。该数据以占用网格的形式由一个或更多个处理器(例如处理器212a)生成(或提供给一个或更多个处理器)。特别地,当表示环境100中的机器人或对象(例如,障碍物)时,可以将所述机器人或对象的表面表示为体素(3D像素)或多边形(通常是三角形)的网格。空间的每个离散化区域都称为“体素”,相当于3D(体积)像素。在某些情况下,将对象表示为盒(矩形棱柱)是有利的。由于对象不是随机成形的,因此在体素的组织方式中可能有大量的结构;对象中的许多体素在3D空间中彼此紧邻。因此,将对象表示为盒可能需要少得多的位(即,可能仅需要盒的两个相对角的x、y、z笛卡尔坐标)。同样,对盒进行相交测试在复杂性上与对体素进行相交测试相当。
许多实施例可以将多个传感器的输出组合,并且传感器可以提供非常细粒度的体素化。但是,为了使机器人102有效地执行运动规划,机器人102的处理器212a可以使用较粗糙的体素(即“处理器体素”)来表示环境和在各状态之间转换时由机器人102扫过的3D空间中的体积。因此,系统200可以相应地变换传感器282的输出。例如,传感器282的输出在每个轴上可以使用10位精度,因此直接源自传感器282的每个体素(即“传感器体素”)具有30位ID,并且有230个传感器体素。系统200在每个轴上使用(在设计时和运行时)6位精度用于18位处理器体素ID,并且有218个处理器体素。因此,每个处理器体素有212个传感器体素。在运行时,如果系统200确定处理器体素内的任何传感器体素都被占用,则系统200认为处理器体素被占用并相应地产生占用网格。
针对机器人102的规划图的每个边缘还具有一些数量的体素(或盒),该体素(或盒)对应于当在规划图中从一个状态转换到由该边缘表示的另一个状态时由机器人102扫过的3D空间中的体积。当在规划图中从一个状态转换到由该边缘表示的另一个状态时由机器人102扫过的那些体素或盒可以针对规划图的每个边缘存储在专门用于规划图的片外存储器中,例如在规划图边缘信息存储器284中。在各种其他实施例中,在规划图中从一个状态转换到由该边缘表示的另一个状态时由机器人102扫过的体素或盒可以针对规划图的每个边缘存储在其他位置中,例如一个或更多个专用集成电路(ASIC)中的片上存储器中。
在一个实施例中,通过首先将所有障碍物体素(或盒)流式传输到处理器(例如,处理器212a)上来执行碰撞评估。例如,代表包括障碍物A112和障碍物B 104的环境100的障碍物体素(或盒)可以被流式传输到处理器212a中并存储在环境存储器294中。环境存储器294是处理器212a的片上存储器。在一些实施例中,环境存储器294可以是现场可编程门阵列(FPGA)中的块RAM(BRAM)。在一些实施例中,BRAM可以是专用的、可配置的双端口存储器单元,其包含几千位的随机存取存储器(RAM)。FPGA包含几个这样的块。然后,将针对机器人102的规划图的每个边缘的边缘信息从专门用于规划图的片外存储器流式传输,例如从规划图边缘信息存储器284流式传输。对于每个边缘体素(或盒),当其从边缘的扫掠体积中流式输入时,如果其与任何障碍物体素(或盒)碰撞,则处理器212a确定与规划图中的该边缘的碰撞。
例如,当边缘体素从规划图的边缘x的扫掠体积流式输入时,处理器212a可以使用布尔电路对边缘体素与存储在环境存储器294中的所有障碍物体素(或盒)进行比较。如果系统200基于比较确定边缘体素与任何障碍物体素(或盒)发生碰撞,则系统200记录与边缘x的碰撞。与在规划图的所有边缘上并行执行碰撞评估的其他设计相比,该实施例改进了碰撞评估的技术,因为它使得能够在碰撞评估中使用大得多的规划图。特别地,这有助于克服其他设计相对于可以存储在处理器芯片电路中的有限数量的规划图信息的缺点。使用本文所述的碰撞评估方法,诸如环境存储器294的片上存储器通常足以存储所有的障碍物盒(尽管使用体素可能更少)。这提供了在较便宜的片外存储器中存储大型规划图和/或多个规划图的能力。例如,这提供了在规划图边缘信息存储器284中存储大型规划图和/或多个规划图的能力,在某些实施例中,该规划图边缘信息存储器是较便宜类型的存储器,例如动态随机存取存储器(DRAM)。
在各种实施例中,这样的操作可以完全在硬件电路中执行或利用存储在诸如系统存储器214的内存存储器中的软件执行,并且由一个或更多个硬件处理器212a(例如一个或更多个微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)处理器、可编程逻辑控制器(PLC)、电可编程只读存储器(EEPROM))执行或作为硬件电路和存储在内存存储器中的软件的组合执行。
同样,感知、规划图构造、碰撞检测和路径搜索的各个相关方面的实现也在2017年6月9日提交的名称为“自主车辆的运动规划和可重构运动规划处理器”的国际专利申请号PCT/US2017/036880、2016年1月5日提交的名称为“专用机器人运动规划硬件及其制造和使用方法”的国际专利申请公开号WO 2016/122840以及2018年1月12日提交的名称为“在具有动态对象的环境中促进自主车辆的运动规划的设备、方法和物品”的美国专利申请号62/616,783中描述,上述专利申请的全部内容通过引用并入本文。相关领域技术人员将理解,所示的实施例以及其他实施例能够与其他系统结构和布置和/或其他计算系统结构和布置一起实践,包括机器人、手持设备、多处理器系统的那些、基于微处理器的或可编程的消费类电子产品、个人计算机(“PC”)、联网的PC、小型计算机、计算机主机等。实施例或其部分(例如,在设计时和运行前)能够在分布式计算环境中实践,在分布式计算环境中,任务或模块由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程内存存储设备或介质中。但是,在何处以及如何存储某些类型的信息对于帮助改进运动规划很重要。
例如,各种运动规划解决方案将路线图(即,规划图)“烧入”处理器中,并且路线图中的每个边缘对应于处理器的不可重构的布尔电路。规划图“烧入”到处理器中的设计带来的问题是,有限的处理器电路无法存储多个或大的规划图。
一个解决方案提供了一种可重构的设计,该设计将规划图信息放入内存存储器中。通过这种解决方案,再次针对规划图的每个边缘具有信息,但是该信息存储在存储器中,而不是被烧入到电路中。每个边缘对应于机器人102的运动,并且每个运动在3D空间中扫过一个体积。该扫掠体积与一定数量的障碍物体素(或盒、或不管怎样在各种实施例中其可以被决定为表示障碍物)碰撞。通过这种解决方案,该边缘所碰撞的体素是存储在存储器中的信息。
本公开提供了一种解决方案,该解决方案提供了在运行时(即,重构处理器)以更有效的方式在多个规划图之间进行动态切换,进而与其他设计相比提供了几点改进。例如,考虑具有能够抓取物体的末端执行器的机器人。当握持物体时,与没有握持物体时相比,机械臂与3D空间的不同部分发生碰撞。一个示例是机械臂106通过末端执行器在臂的末端握持大球。如果机器人102正在握持物体,则与机器人102“什么都不握持”时相对应的规划图将不起作用。相反,即使机器人102没有握持任何东西,也能够非常保守地使用“持有某物”规划图,但这既效率低下,又需要使用与机器人102握持尽可能最大对象时所处的场景相对应的单个规划图。替代地,在各种实施例中,系统200构建与不同的可能特征相对应的规划图族,例如,“什么都不握持”、“握持尺寸为x的小球体”、“握持尺寸为y的矩形棱柱”等。当机器人102拿起东西并将其放下时,这些规划图可以由处理器212a从规划图边缘信息存储器284换入和换出。该解决方案也适用于末端执行器有时会改变的机器人。例如,机器人102可以处于具有第一末端执行器的布置中,该第一末端执行器具有第一组尺寸。该第一末端执行器可以替换为具有第二组尺寸的第二末端执行器。当将第一末端执行器替换成具有第二组尺寸的第二末端执行器时,机器人102将处于具有第二末端执行器的不同布置中。在第二组尺寸的尺寸与第一组尺寸的尺寸不同的情况下,当替换末端执行器时机器人扫过的体积改变。同样,例如,在机器人是自主或部分自主的车辆的情况下,车辆在第一时期内可以具有第一布置中的第一组尺寸,并且同一车辆在第二时期内可以具有第二布置中的第二组尺寸。例如,例如当它围绕转角或弯道转弯时,车辆在第一布置中可以是空的而在第二布置中是满载的,改变了车辆的重量并且潜在地改变了车辆在道路上方的高度、在车辆下方的间隙、甚至车辆的轨迹。在第二组尺寸的尺寸与第一组尺寸的尺寸不同的情况下,车辆扫过的体积在第一布置与第二布置之间改变。同样,在轨迹在第一布置与第二布置之间改变的情况下,车辆扫过的体积在不同布置之间改变。因此,系统200针对不同的末端执行器在规划图边缘信息存储器284中存储不同的规划图。
规划图花费大量的时间和资源来构建,但是利用本文提供的解决方案,只需要例如在运行之前执行一次。一旦生成了规划图,它们可以全部存储在规划图边缘信息存储器284中,并且处理器212a相对快速和有效地将它们换入和换出,或者例如当机器人正在抓紧特定尺寸的对象时基于机器人102的当前特性选择使用哪一个规划图。
如上所述,一些预处理活动可以在运行之前执行,因此,在一些实施例中,这些操作可以由远程处理设备执行,这些远程处理设备通过通信网络经由网络接口260链接到机器人控制系统200。例如,编程阶段允许机器人为感兴趣的问题做准备。在这种实施例中,利用广泛的预处理来避免运行时计算。与当在规划图中从由路线图中的边缘表示的一个状态转换到另一个状态时由机器人102扫过的3D空间中的体积有关的预先计算的数据可以存储在规划图边缘信息存储器284中,并在运行期间由处理器212a访问。系统200还可以在运行之前构建对应于在运行期间可能发生的机器人的不同的可能改变的尺寸特性征的规划图族。然后,系统200将这种规划图存储在规划图边缘信息存储器284中。
在运行阶段,传感器282将感知数据发送到处理器212a。感知数据可以是存在于当前环境中并存储在片上环境存储器294中的体素或盒的流。使用布尔电路对从环境存储器294中检索到的感知数据与存储在规划图边缘信息存储器284中的信息进行比较,处理器212a计算哪些运动避免碰撞,并在规划图中选择机器人102所要遵循的相应路径。然后,处理器212a运行并将得到的路径返回给致动器系统266。
图2示出了例如用于机器人102的机器人控制系统200,该机器人控制系统包括:由处理器212a表示的一个或更多个处理器;以及一个或更多个相关联的非暂时性机器可读存储介质,例如系统存储器214、规划图边缘信息存储器284以及与磁盘驱动器224相关联的计算机可读介质226。包括系统存储器214、规划图边缘信息存储器284以及与磁盘驱动器224相关联的计算机可读介质226的相关联的非暂时性计算机(或处理器)可读存储介质经由一个或更多个通信信道(例如系统总线216)与处理器212a通信耦接。系统总线216能够采用任何已知的总线结构或总线架构,包括具有存储器控制器的存储器总线、外围总线和/或局部总线。一个或更多个传感器282以及致动器系统266也经由系统总线216与处理器212a通信耦接。这种部件的一个或更多个还可以或者替代地经由一个或更多个其他通信信道彼此通信,例如,一个或更多个并行电缆、串行电缆或能够进行高速通信的无线网络信道,例如,通用串行总线(“USB”)3.0、外围组件互连高速(PCIe),或者经由彼此通信。
机器人控制系统200还可以可通信地耦接到远程系统,例如台式计算机、笔记本电脑,超便携式计算机、平板电脑、智能手机、可穿戴计算机(未示出),这些远程系统经由网络接口260直接可通信地或间接可通信地耦接到机器人控制系统200的各种部件。这些远程系统可以用于对机器人控制系统200以及机器人控制系统200内的各种部件进行编程、配置、控制或与其交互或向其输入数据。这种连接可以使用互联网协议通过一个或更多个通信信道,例如一个或多个广域网(WAN),例如互联网。如上所述,可以由与机器人102或其他机器人分离的系统来执行预运行计算(例如,规划图族的生成),而运行时计算可以在机器人102上的处理器212上执行,因为对于系统200来说,能够改变规划图以实时响应机器人102的变化的物理尺寸是很重要的。
除非另有说明,图2所示的各种块的结构和操作是常规设计,或者在2017年6月9日提交的名称为“自主车辆的运动规划和可重构运动规划处理器”的国际专利申请号PCT/US2017/036880中;2016年1月5日提交的名称为“专用机器人运动规划硬件及其制造和使用方法”的国际专利申请公开号WO 2016/122840;和/或2018年1月12日提交的名称为“在具有动态对象的环境中促进自主车辆的运动规划的设备、方法和物品”的美国专利申请号62/616,783中描述,上述申请的全部内容通过引用并入本文。因此,不需要进一步详细描述这些块,因为相关领域的技术人员将根据通过引用并入本文的参考文献对其进行理解。
机器人控制系统200可以包括一个或更多个处理单元212、系统存储器214、规划图边缘信息存储器284和系统总线216,该系统总线将包括系统存储器214和规划图边缘信息存储器284的各种系统部件耦接到处理单元212。在一些实施例中,规划图边缘信息存储器284可以是系统存储器214,或者是系统存储器的一部分。处理单元可以是任何逻辑处理单元,例如一个或更多个中央处理单元(CPU)212a、数字信号处理器(DSP)212b、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。系统存储器214可以包括只读存储器(“ROM”)218和随机存取存储器(“RAM”)220。规划图边缘信息存储器284可以包括RAM,例如DRAM。能够形成ROM 218的一部分的基本输入/输出系统(“BIOS”)222包含基本例程,这些基本例程有助于例如在启动过程中在机器人控制系统200内的元件之间传递信息。
机器人控制系统200可以包括磁盘驱动器224,该磁盘驱动器可以是例如用于对硬盘进行读写的硬盘驱动器、用于对可移动闪存设备进行读写的闪存驱动器、用于对可移动光盘进行读写的光盘驱动器、或用于对磁盘进行读写的磁盘驱动器。在各种不同的实施例中,机器人控制系统200还可以包括这种磁盘驱动器的任意组合。磁盘驱动器224可以经由系统总线216与处理单元212通信。如相关领域的技术人员所知,磁盘驱动器224可以包括耦接在这种驱动器与系统总线216之间的接口或控制器(未示出)。磁盘驱动器224及其相关联的计算机可读介质226为机器人控制系统200提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。相关领域的技术人员将理解,可以采用能够存储可由计算机访问的数据的其他类型的计算机可读介质,例如蠕虫驱动器、RAID驱动器、盒式磁带、数字视频盘(“DVD”)、伯努利盒式磁带、RAM、ROM、智能卡等。
程序模块(例如操作系统236、一个或更多个应用程序238、其他程序或模块240以及程序数据242)能够存储在系统存储器214中。应用程序238可以包括使处理器212执行以下一项或更多项操作的指令:生成与规划图的边缘相关联的机器人扫掠体积的一个或更多个离散化表示;确定使用多种离散化中的哪一种来生成机器人扫掠体积的离散化表示;生成机器人将在其中运行的环境100(包括环境100中的障碍物)的离散化表示;确定使用多种离散化中的哪一种来生成环境100的离散化表示;确定多个规划图;存储所确定的多个规划图和相应的边缘信息集合;生成表示在由规划图的节点表示的状态之间转换时由机器人的至少一部分扫过的体积的信息;在规划图的边缘上执行碰撞评估;提供规划图的边缘信息的集合;从规划图中识别一个或更多个优化结果;执行针对与规划图的边缘相关联的扫掠体积的离散化表示与机器人102将在其中运行的环境100中的障碍物的离散化表示之间的碰撞的碰撞检查;确定优化是否为机器人产生任何无碰撞路径;以及为机器人实施运动规划。如本文以及通过引用并入本文的参考文献中所述,应用程序238可以另外包括一个或更多个机器可读指令集,该指令集使处理器212执行感知(通过传感器282)、规划图构造、碰撞检测和路径搜索的其他操作。
应用程序238可以另外包括一个或更多个机器可读指令集,该指令集使处理器212生成表示在当机器人102具有不同尺寸时所对应的状态之间转换时由机器人102扫过的不同体积的规划图边缘信息的相应集合,并且将多个规划图存储在与规划图边缘信息的各个集合相对应的规划图边缘信息存储器284中。
应用程序238可以另外包括一个或更多个机器可读指令集,该指令集使处理器212针对机器人102将在其中运行的环境100的第一离散化表示将环境100的第一离散化表示的至少一部分提供和存储在环境存储器294中;针对规划图的每个边缘,将边缘信息的相应集合提供并存储在规划图边缘信息存储器284中;并且识别规划图的任何边缘,其中相应的转换将导致在机器人102的至少一部分与一个或更多个障碍物(例如环境100中的障碍物A112和障碍物B 104)中的至少一个的至少一部分之间的碰撞。
在本示例中,术语“环境”用于表示机器人当前的包括障碍物的工作空间。在本示例中,术语“任务”用于表示机器人任务,在该任务中机器人102必须从姿态A变成姿态B(可能抓取或放下某物),而不与其环境中的障碍物碰撞。在本示例中,术语“场景”用于表示环境/任务对的类别。例如,场景可能是“在具有3英尺的桌子的环境中在具有给定范围内的尺寸和形状的x和y障碍物之间的拾取和放置任务”。取决于目标的位置以及障碍物的尺寸和形状,可能会有许多满足这些标准的不同的任务/环境对。系统200可以包括一个或更多个远程处理设备,该远程处理设备经由网络接口260通过通信网络链接。这种一个或更多个远程处理设备可以执行一个或更多个机器可读指令集,该机器可读指令集使系统200生成环境100的相应的离散化表示,在该环境中机器人102将针对各种不同场景的任务和环境对进行操作。在示例实施例中,各个离散化表示中的至少两个包括各个体素的集合。相应离散化表示的体素在在相应离散化内的尺寸和形状中的至少一个上可以是非均匀的。同样,相应离散化的体素的非均匀性的各分布可以彼此不同。特别地,离散化可以包括体素的相应集合,其中相应离散化中的至少两种的体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同。应用程序238可以包括一个或更多个机器可读指令集,该机器可读指令集使处理器212随后对所生成的表示机器人将在其中运行的环境100的相应离散化的有效性进行评估,并存储所生成的被评估为对特定场景是最有效的相应离散化。
应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212根据将机器人102将执行的一对任务和机器人将在其中运行的环境100分类的确定的场景,确定使用多种离散化中的哪一种来生成多个扫掠体积,该扫掠体积表示机器人102在机器人的一个状态与机器人102的另一个状态之间转换时将通过的相应区域;并且对于规划图中的多个边缘中的每个,利用确定的离散化来确定边缘的相应扫掠体积。应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212存储机器人102将在其中运行的环境100的确定的扫掠体积的相应的离散化表示,该离散化表示被评估为对于所识别的场景是最有效的。
应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212至少部分根据将机器人102将执行的一对任务和机器人在其中运行的环境100分类的确定场景,确定使用多种离散化中的哪一种来生成环境100的离散化表示。应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212接收由一个或更多个传感器282产生的传感器信息,该一个或更多个传感器感测环境100并且利用所确定的离散化生成环境(如果存在,包括环境中的障碍物)的离散化表示。确定的离散化表示的多个体素在相应离散化内的尺寸和形状中的至少一个上可以是非均匀的,并且确定的离散化的体素的非均匀性的相应分布可以与多种离散化中的另一种不同。
应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212对在规划图的边缘与机器人将在其中运行的环境中的任何障碍之间的多个规划图执行碰撞检查。处理器212可以对每个规划图执行这种碰撞检查,相应地临时更新规划图,并且执行优化并确定来自更新后规划图的优化结果(如果有)是否满足满足条件。如果不满足满足条件,则处理器212可以移到下一个规划图并且执行同样的操作。一旦找到满足满足条件的规划图,处理器212将由满足满足条件的规划图的优化结果之一所识别的转换应用到机器人102。
应用程序238可以另外包括一个或更多个机器可读指令集,该机器可读指令集使处理器212执行本文所述的各种其他方法,包括(但不限于)图6至10所示的那些方法。
在各种实施例中,上述操作中的一个或更多个可以由系统200的一个或更多个远程处理设备执行,该远程处理设备经由网络接口260通过通信网络链接,或者由位于机器人102上的一个或更多个处理器212链接。
虽然在图2中显示为存储在系统存储器214中,但是操作系统236、应用程序238、其他程序/模块240和程序数据242能够存储在磁盘驱动器224的相关联的计算机可读介质226上。
处理器212可以是任何逻辑处理单元,例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。市售计算机系统的非限制性示例包括(但不限于)美国英特尔公司提供的Celeron、Core、Core 2、Itanium和Xeon系列微处理器;美国Advanced Micro Devices提供的K8、K10、Bulldozer和Bobcat系列微处理器;美国苹果计算机公司提供的A5、A6和A7系列微处理器;美国Qualcomm公司提供的Snapdragon系列微处理器;以及美国Oracle公司提供的SPARC系列微处理器。除非另有说明,图2所示各个块的结构和操作是常规设计。因此,在这里不需要进一步详细描述这些块,因为它们将被相关领域的技术人员理解。
根据一个所示的实施例,图3是机器人102可以在其中运行的图1的环境100的示意图,示出了机器人102从环境100中的3D空间中的一个位置转换到3D空间中的另一位置,以及当从3D空间中的一个位置转换到3D空间中的另一位置时机器人的附肢扫过的体积的表示。
在图3所示的示例中,机器人102被示为具有两个附肢,臂106和臂108。在一个示例中,机器人可以通过将臂106从第一位置运动到第二位置来改变在3D空间中的位置,如图3所示。如图3所示,当通过将臂106从第一位置运动到第二位置而在3D空间中的一个位置与3D空间中的另一个位置之间转换时,由机器人102扫过的3D空间中的体积由区域302表示。但是,如图3所示,这种转换会导致机械臂106与区域304中的障碍物A 112碰撞。
因此,为了有助于避免碰撞,在设计时(在运行之前),系统200生成一个或更多个规划图,以确定当从一个状态到另一个状态进行各种转换时机器人102会占据哪些区域。例如,针对机器人102的规划图的边缘具有与由机器人102扫过的3D空间中的体积相对应的对应于区域302的一定数量的体素(或盒)。在规划图中进行相应转换时,机器人102扫过的与区域302相对应的这些体素或盒,可以作为对应于规划图的边缘存储在专门用于规划图的片外存储器中,例如存储在规划图边缘信息存储器284中。然后,在运行时,将包括障碍A112(以及障碍物B 104)的代表环境100的障碍物体素(或盒)以占用网格的形式流式输入到处理器212a,并存储在片上环境存储器294上。系统200(基于占用网格)确定哪些体素被占用,并确定不使用任何会与当前所占据的体素碰撞的运动。特别地,对于表示边缘的扫掠体积的一部分的每个边缘体素(或盒),当其从规划图边缘信息存储器284流式输入时,处理器确定其是否与任何已经基于占用网格存储在环境存储器294中的障碍物体素(或盒)碰撞。如果边缘体素(或盒)与任何障碍物体素(或盒)碰撞,则系统200确定与规划图中的该边缘发生碰撞,并将确定不使用与规划图中的该边缘相关联的机器人102的运动。
例如,在执行图3中描述的机械臂106的运动之前,系统200会开始将适用规划图的所有边缘的边缘体素(或盒)从规划图边缘存储器284流式输入。对于每个边缘,当处理器212a遇到每个边缘体素(或盒)时,它将检查是否有任何边缘体素(或盒)与存储在环境存储器294中的任何障碍物体素(或盒)(包括障碍物A 112的那些)碰撞。如图3所示,区域304内的任何边缘体素(或盒)将导致这种碰撞,因为根据占用栅格,存储在环境存储器294中的障碍物A 112的障碍物体素(或盒)占据了相同的区域。一旦处理器212a遇到与任何障碍物体素(或盒)碰撞的边缘体素(或盒),处理器212a就会确定不使用规划图的该边缘。一旦完成了对规划图的边缘的处理,处理器212a就会确定规划图内的路径,该路径将使机器人使用尚未确定与存储在环境存储器294中的障碍物体素(或盒)碰撞的剩余边缘从初始位置运动到目标位置。
系统200还可以做出关于如何表示由规划图中的每个所代表的扫掠体积以及如何表示环境100中的障碍物的决策。这种决策可以包括由处理器212a做出的关于如何执行离散化的决策,例如,是否使用体素或盒表示扫掠体积、要使用的体素或盒的形状和尺寸、是否使用在所使用的体素或盒的尺寸和/或形状上非均匀的离散化、以及在哪种情况下使用不同形状和/或尺寸的体素或盒。在各种实施例中,上述做出关于如何表示由规划图中的每个所代表的扫掠体积以及如何表示环境100中的障碍物的决策的这种操作的一个或更多个可以通过系统200的一个或更多个远程处理设备来执行,该远程处理设备通过通信网络经由网络接口260或通过位于机器人102上的一个或更多个处理器212链接。
特别地,系统200可以决定机器人102的工作空间将被离散化为体素(随后可能会被分组成盒)。一个示例实现在三个维度的每个中执行均匀量化。但是,在机器人工作空间的不同部分使用非立方体形状的体素和/或更小或更大的体素可以是有利的。例如,一个实施例在机器人102的正前方的空间中使用较小的体素(较精细的分辨率),而在机器人到达的最末端使用较大的体素(较粗糙的分辨率)。因此,各种实施例可以使用非均匀量化和/或使用非立方体形体素。本公开还提供了一种用于系统200如何选择体素尺寸和/或形状的算法。
一个示例实施例使用在运行前执行的训练算法来确定哪些体素尺寸和形状可以更好地用于各种不同的场景。通过使用来自一个或更多个场景的给定或生成的任务/环境对的大集合来训练系统200。然后,系统200选择在训练样本的大集合上被评估为最有效的离散化。
例如,对于任何给定的环境/任务对,存在最优离散化(或同样最优的多个离散化)。系统200可以对T个环境/任务对进行测试/训练,然后记录针对每个的最优离散化,其中T是很大的数字。这可以导致许多不同的离散化,该离散化中的每种仅对一个或少量的环境/任务对是最优的。在测试所有的T个环境/任务对之后,系统选择在样本的整个集合上被评估为最有效的离散化。这种方法还将涉及在每个可能的环境/任务对上尝试每种可能的离散化,这将是难处理的。
为了克服上述问题,系统200执行如上所述的训练,除此之外系统200还考虑有限数量的可能的离散化G。对于每个环境/任务对,系统记录所提供的G离散化中哪一个被评估为最有效的。在处理完所有T个环境/任务对之后,系统200选择在最多环境/任务对中被评估为最有效的离散化。
作为示例,机器人102可以面对在其前方的空间盒。系统可以确定将空间离散化,使得使用6位来描述每个维度上的位置(即,每个轴上有26个可能的位置)。这将产生218个体素,体素中的每个都有唯一的18位ID。在设计时,系统200为每个边缘的运动预先计算扫掠体积,并将其记录为该扫掠体积中的体素ID的集合。如果扫掠体积甚至部分与体素相交,则该扫掠体积将包含在该扫掠体积的体素ID的集合中。这就是为什么使用更精细的分辨率会更好的原因。然后,在运行时,传感器282告知处理器212a在机器人102前方是什么,但其粒度比表示预先计算的扫掠体积的体素精细得多,因此系统200处理传感器输入并与处理器212a进行通信,告知哪些体素当前被占用。在一些实施例中,处理器212a处理传感器输入,并且在其他实施例中,存在单独的处理器,例如传感器282的处理器,该处理器处理传感器输入并与处理器212a进行通信。处理器212a基于环境存储器294中存储的信息,将当前环境中的体素或盒与规划图边缘信息存储器284中存储的规划图边缘信息的每个边缘列出的体素或盒进行比较,以确定当前正在发生碰撞的边缘。在这种实施例中,重要的是在设计时使用与在运行时相同的离散化以便能够进行比较。
当系统200选择使用非均匀离散化时,系统200仍可以使用18位体素ID和218个体素,但是该体素不必是立方体(或它们可以是立方体,但尺寸不完全相同)。再次,在该实施例中重要的是,系统在设计时使用与运行时相同的离散化。当使用非均匀离散化时,系统200使用例如如上所述的训练来选择每个体素的尺寸和形状,使得系统选择将在设计时和运行时使用的被评估为最有效的体素大小和形状。在这种训练中使用的评估标准可以包括关于能够被解决的任务部分(例如,系统200能够找到一些无碰撞的路径来实现机器人102的目标)以及所找到的路径的质量的标准。
根据一个所示实施例,图4A是图1和3的机器人102的示例运动规划图400,包括规划图400的边缘,针对该边缘已经确定的是,相对应的转换将导致在机器人102与环境100中的一个或更多个障碍物之间的碰撞。根据一个所示实施例,图4B是示例运动规划图400,其中,规划图400的边缘已被去除,针对该边缘已经确定的是,相对应的转换将导致在机器人102与环境100中的一个或更多个障碍物之间的碰撞。规划图400的每个节点表示机器人102的状态,并且规划图400的每个边缘表示机器人102从一个状态到另一个状态的转换。例如,边缘410a表示在由节点408a表示的机器人102的状态与由节点408b表示的机器人102的状态之间的转换。边缘410i表示在由节点408c表示的机器人102的状态与由节点408d表示的机器人102的状态之间的转换。
机器人102的规划图400的每个边缘都具有一定数量的体素(或盒),所述体素对应于当在规划图400中从由该边缘表示的一个状态转换为另一个状态时机器人102扫过的3D空间中的体积。这种信息可以作为规划图边缘信息存储在片外规划图边缘信息存储器284中,使得系统200能够变换不同的规划图来适应机器人102的变化的尺寸。使用从传感器282接收到的表示运行时当前环境的信息,系统200确定当前正在被占用的体素(或盒),并且系统200确定不使用会与任何当前占用的体素(或盒)碰撞的任何运动。
在一些实施例中,系统通过在运行时将从传感器282接收到并存储在表示当前环境(和其中的障碍物)的片上环境存储器294中的信息和存储在规划图边缘信息存储器284中的规划图边缘信息进行比较,来确定不使用将与任何占用的体素(或盒)碰撞的任何运动。基于此比较,系统200确定哪些规划图边缘表示将导致在机器人102与环境100中的一个或更多个障碍物之间的碰撞的转换(并且因此该转换对应于运动)。作为示例,图4A示出了边缘410b、410c、410d、410e、410f、410g、410h、410i、410j、410k和410l已经被确定来表示会导致在机器人102与环境100中的一个或更多个障碍物之间的碰撞的转换(并且因此该转换对应于运动)。
例如,为了使机器人102实现从由节点408a表示的状态运动到由节点408d表示的状态的目标,机器人102将必须避免由边缘410b、410c、410d、410e、410f、410g、410h、410i、410j、410k和410l表示的转换,该边缘已被确定来表示将导致在机器人102与环境100中的一个或更多个障碍物之间的碰撞的转换。因此,图4B示出了这些边缘被去除以及由系统200识别的规划图400中的潜在路径416的规划图,机器人102可以遵循所述潜在路径以实现从节点408a表示的状态运动到由节点408d表示的状态而不会与环境100中的一个或更多个障碍物碰撞的目标。
根据一个所示实施例,图5是示出了在机器人控制系统200中通过根据特定情况提供不同规划图的边缘信息来促进运动规划的操作方法500的流程图。在机器人控制系统200中通过根据特定情况提供不同规划图的边缘信息来促进运动规划的操作方法500在502处开始。
在504处,对于将在环境中运行的机器人102,系统200确定多个规划图。每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征机器人102的相应状态的变量。每个边缘表示在机器人102的相应状态对之间的转换。相应状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示。
在506处,对于规划图中的每个的边缘的至少两个或更多个,系统200生成边缘信息的相应集合,该边缘信息的相应集合表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由机器人102的至少一部分扫过的体积。在至少一个实施例中,系统200在运行时间之前生成边缘信息的相应集合。
在508处,系统200将多个规划图和边缘信息的集合存储在至少一个非暂时性处理器可读存储器中。
在510处,基于在第一时间具有物理尺寸的第一集合的机器人102的至少一部分,系统200将规划图中的第一规划图的边缘信息的集合提供给至少一个处理器。
在512处,基于在第二时间具有物理尺寸的第二集合的机器人102的至少一部分,系统200将规划图中的第二规划图的边缘信息的集合提供给至少一个处理器。物理尺寸的第二集合中的至少一个尺寸不同于第一集合的尺寸中的相应尺寸。在机器人控制系统200中通过根据特定情况提供不同规划图的边缘信息来促进运动规划的操作方法500在514处结束。
机器人102可以具有至少第一附肢,该第一附肢能够可选择性地操作,以相对于机器人102在其中运行的环境运动。机器人102还可以具有附接到第一附肢的第一末端执行器。第一末端执行器能够可选择性地操作,以在至少第一末端执行器布置与第二末端执行器布置(例如,抓取和未抓取的布置)之间运动。系统200可以确定,附接到第一附肢的第一末端执行器位于第一末端执行器布置中。例如,末端执行器可以处于未抓取或打开的位置。这是第一末端执行器布置的示例。处于抓取位置的末端执行器是第二末端执行器布置的示例。物理尺寸的第一集合表示第一末端执行器布置中的第一末端执行器的尺寸的集合。特别地,物理尺寸的第一集合是当末端执行器处于未抓取位置时机器人的物理尺寸。在这种情况下,响应于确定附接到第一附肢的第一末端执行器处于第一末端执行器布置中(即,处于未抓取或打开的位置),将规划图中的第一规划图的边缘信息的集合提供给至少一个处理器。
同样,系统200可以确定,附接到第一附肢的第一末端执行器处于第二末端执行器布置中。例如,末端执行器可以处于抓取或关闭位置。这是第二末端执行器布置的示例。处于未抓取或打开位置的末端执行器是第一末端执行器布置的示例。在第一附肢处于第二末端执行器布置中(即,处于抓取或关闭位置)的情况下,物理尺寸的第二集合代表第二末端执行器布置中的第一末端执行器的尺寸的集合。特别地,当末端执行器处于抓取位置时物理尺寸的第一集合是机器人的物理尺寸。然后,响应于确定附接到第一附肢的第一末端执行器处于第二末端执行器布置中(即,处于非抓取或打开位置),将规划图中的第二规划图的边缘信息的集合提供给至少一个处理器。
在一些实施例中,机器人102具有至少第一附肢,该第一附肢能够可选择性地操作,以相对于机器人102在其中运行的环境运动,并且第一末端执行器附接到第一附肢。第一末端执行器能够可选择性地操作,以在至少未抓取布置与抓取布置之间运动。第一末端执行器在抓取布置中所占据的体积的尺寸或形状中的至少一个与第一末端执行器在未抓取布置中所占据的体积的尺寸或形状中的至少一个不同。在这种情况下,系统200可以确定附接到第一附肢的第一末端执行器处于未抓取布置中。然后,响应于确定附接到第一附肢的第一末端执行器处于未抓取布置中,将规划图中的第一规划图的边缘信息的集合提供给至少一个处理器。
根据一个所示实施例,图6是示出了在机器人控制系统200中通过识别对应的转换将导致碰撞的规划图的边缘来促进运动规划的操作方法600的流程图,所述规划图是存储在片外存储器中的多个规划图中的一个,每个规划图与机器人的物理尺寸的不同集合相关联。在机器人控制系统200中通过识别对应的转换将导致碰撞的规划图的边缘来促进运动规划的操作方法600在602处开始。
在604处,对于至少机器人102将在其中运行的环境的第一离散化表示,系统200将环境的第一离散化表示的至少一部分提供给至少一个处理器。环境被一个或更多个障碍物所占据。
在606处,对于第一规划图的每个边缘,系统200将边缘信息的相应集合提供给至少一个处理器。第一规划图是相对于处理器存储在片外存储器中的多个规划图中的一个。多个规划图中的每个规划图与第一机器人的物理尺寸的不同集合相关联。边缘信息的相应集合表示在机器人102的状态对之间转换时由机器人102的至少一部分扫过的体积。机器人102的状态对由第一规划图的节点对中的相应节点表示。相应节点对中的节点通过第一规划图的相应边缘耦接,并且相应的边缘表示在机器人102的相应状态对之间的转换。
在608处,系统200识别第一规划图的任何边缘,针对该边缘的相应转换将导致在机器人102的至少一部分与环境中的一个或更多个障碍中的至少一个的至少一部分之间的碰撞。在机器人控制系统200中通过识别对应的转换将导致碰撞的规划图的边缘来促进运动规划的操作方法600在610处结束。
根据一个所示实施例,图7是示出了在机器人控制系统200中通过对所生成的表示机器人102将在其中运行的环境的非均匀离散化的有效性进行评估来促进运动规划的操作方法700的流程图。在机器人控制系统200中通过对所生成的表示机器人102将在其中运行的环境的非均匀离散化的有效性进行评估来促进运动规划的操作方法700在702处开始。
在704处,对于多个迭代中的每个,系统200生成表示机器人102将在其中运行的环境的相应离散化。系统200针对包括多个任务和环境对的集合的至少一个第一场景以及针对至少第一场景的任务和环境对中的每个执行该操作。相应离散化中的至少两种包括体素的相应集合。相应离散化中的至少两种的体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的。相应离散化中的至少两种的体素的非均匀性的相应分布也彼此不同。
在706处,系统200对所产生的表示机器人将在其中运行的环境的相应离散化的有效性进行评估。系统200针对包括多个任务和环境对的集合的至少第一场景以及针对至少第一场景的任务和环境对中的每个执行该操作。
在708处,系统确定是否有另外的任务和环境对要处理。如果系统200确定对于当前场景有另外的任务和环境对要处理,则方法700返回到704以继续针对场景中包括的任务和环境对的集合生成相应的离散化,然后在706处对其有效性进行评估。如果系统200确定对于当前场景没有另外的任务和环境对要处理,则方法700继续到710。
在710处,系统200至少将所生成的表示机器人将在其中运行的环境的、被评估为对于至少第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质。
在712处,系统200确定是否有另外的场景要处理。如果系统200确定有另外的场景要处理,则方法700返回到704,以继续针对下一个场景中包含的任务和环境对的集合生成相应的离散化,并在706处对它们的有效性进行评估。如果系统200确定没有另外的场景要处理,则在机器人控制系统200中通过对所生成的表示机器人102将在其中运行的环境的非均匀离散化的有效性进行评估来促进运动规划的操作方法700在714处结束。在一些实施例中,可以存在与多个场景相关联的一个规划图。在这些实施例中,系统200可以针对与这种规划图相关联的任务和环境对的集合生成相应的离散化。根据一个所示实施例,图8是示出了在机器人控制系统200中通过确定使用多种离散化中的哪一种来生成表示机器人102将通过其中的相应区域的多个扫掠体积以促进运动规划的操作方法800的流程图。在机器人控制系统200中通过确定使用多种离散化中的哪一种来生成表示机器人102将通过其中的相应区域的多个扫掠体积来促进运动规划的操作方法800在802处开始。
在804处,至少部分地基于对机器人102将执行的任务和机器人将在其中运行的环境的对进行分类的所识别场景,系统200确定使用多种离散化中的哪一种来生成表示当在机器人102的一个状态与机器人102的另一个状态之间转换时机器人102的至少一部分将通过的相应区域的多个扫掠体积。所述确定可以包括基于所识别的场景在至少两种离散化之间进行选择。在这种情况下,相应离散化中的至少两种的体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的。而且,相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同。
在806处,对于规划图中的多个边缘中的每个,系统200利用确定的离散化来确定边缘的相应扫掠体积。规划图包括多个节点和多个边缘。每个节点表示机器人的多个状态中的相应状态。边缘中的每个耦接一对节点,并且代表机器人102在由通过边缘耦接的相应节点表示的状态之间的转换。
在808处,系统200将所确定的表示机器人102将在其中运行的环境的、被评估为对于至少所识别的场景是最有效的扫掠体积的相应离散化中的至少一个存储到至少一个非暂时性处理器可读介质中。在机器人控制系统200中通过确定使用多种离散化中的哪种来生成代表机器人102将通过其中的相应区域的多个扫掠体积来促进运动规划的操作方法800在810处结束。在一些实施例中,规划图可以与多个场景相关联。根据一个所示实施例,图9是示出了在机器人控制系统200中通过利用确定的离散化来生成机器人102将在其中运行的环境的离散化表示以促进运动规划的操作方法900的流程图。在机器人控制系统200中通过利用确定的离散化来生成机器人102将在其中运行的环境的离散化表示以促进运动规划的操作方法900在902处开始。
在904处,至少部分地基于对机器人102将执行的任务和机器人102在其中运行的环境的对进行分类的所识别的场景,系统200确定使用多种离散化中的哪种来生成环境(如果存在,包括环境中的障碍物)的离散化表示。
在906处,系统200接收由感测环境的一个或更多个传感器282产生的传感器信息。传感器信息表示环境(如果存在,包括环境中的障碍物)。
在908处,系统200利用确定的离散化生成环境(如果存在,包括环境中的障碍物)的离散化表示。所确定的离散化的多个体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的。所确定的离散化的体素的非均匀性的相应分布不同于多种离散化的另一种离散化的体素的非均匀性的相应分布。系统利用与用于生成扫掠体积的离散化表示的体素尺寸和形状的分布相匹配的体素尺寸和形状的分布来生成环境的离散化表示。在机器人控制系统200中通过利用确定的离散化生成机器人102将在其中运行的环境的离散化表示以促进运动规划的操作方法900在910处结束。
根据一个所示实施例,图10是示出了在机器人控制系统200中通过确定规划图的优化结果是否满足满足条件来促进运动规划的操作方法1000的流程图。方法1000采用多个规划图。每个规划图分别包括由多个边缘连接的多个节点。每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应的状态对之间的转换。相应的状态对由通过相应的规划图中的相应边缘耦接的节点对中的相应节点表示。在机器人控制系统200中通过确定规划图的优化结果是否满足满足条件以促进运动规划的操作方法1000从1002开始。
在1004处,对于多个规划图的第一规划图,以及对于第一规划图的多个边缘中的每个,系统200执行针对与边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查。
在1006处,系统200基于碰撞检查更新第一规划图。
在1008处,系统200对更新后的第一规划图执行优化以从更新后的第一规划图中识别一个或更多个优化结果(如果存在)。
在1010处,系统200确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)是否满足满足条件。
在1012处,如果系统200确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)不满足满足条件,则方法1000继续到1014。如果系统200确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)满足满足条件,则方法1000在1020处结束。响应于确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)满足满足条件,则系统200可以将由来自更新后的第一规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人102(例如,移动机器人)。
在1014处,响应于系统200确定来自更新后的第一规划图的一个或更多个优化结果(如果存在)不满足满足条件,则针对第二规划图的多个边缘中的每个,系统200针对与边缘相关联的扫掠体积的离散化表示与机器人102将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查。
在1016处,系统200基于碰撞检查更新第二规划图。
在1018处,系统200对更新后的第二规划图执行优化以从更新后的第二规划图中识别一个或更多个优化结果(如果存在)。在机器人控制系统200中通过确定规划图的优化结果是否满足满足条件以促进运动规划的操作方法1000在1020处结束。
系统200还可以确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)是否满足满足条件。响应于确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)满足满足条件,系统200可以将由来自更新后的第二规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人102(例如,移动机器人)。
此外,响应于确定来自更新后的第二规划图的一个或更多个优化结果(如果存在)不满足满足条件,系统可以重复碰撞检查,更新规划图,对随后的规划图执行优化,直到系统识别出满足满足条件的规划图。然后,系统200可以将由来自所识别的规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人102。在一些实施例中,在这种过程中确定来自更新后的规划图的优化结果是否满足满足条件可以包括确定优化是否产生任何无碰撞的路径。这种无碰撞路径是避免与环境中的所有障碍物碰撞的路径。
前面的详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。只要此类框图、示意图和示例包含一个或更多个功能和/或操作,本领域技术人员将理解,这些框图、流程图或示例内的每个功能和/或操作能够通过广泛的硬件、软件、固件或几乎其任何组合单独地和/或共同地实现。在一个实施例中,本主题可以经由布尔电路、专用集成电路(ASIC)和/或FPGA实现。然而,本领域技术人员将认识到,本文公开的实施例能够作为在一台或更多台计算机上运行的一个或更多个计算机程序(例如,作为在一个或更多个计算机系统上运行的一个或更多个程序)、作为在一个或更多个控制器(例如,微控制器)上运行的一个或更多个程序、作为在一个或更多个处理器(例如,微处理器)上运行的一个或更多个程序、作为固件或作为几乎其任何组合全部地或部分地以各种不同实现方式实现在标准集成电路中,并且根据本公开,设计电路和/或编写用于软件和/或固件的代码将完全在本领域普通技术人员的技能范围内。
本领域技术人员将认识到,本文阐述的许多方法或算法可以采用附加动作,可以省略某些动作和/或可以以与指定顺序不同的顺序执行动作。
另外,本领域技术人员将理解,本文所教导的机制能够作为各种形式作为程序产品来分发,并且示例性实施例同样适用,而与用于实际执行分配的信号承载介质的特定类型无关。信号承载介质的示例包括(但不限于)以下内容:可记录类型的介质,例如硬盘驱动器、CD ROM和计算机内存。
能够将上述各种实施例组合以提供另外的实施例。本说明书中提及的和/或在应用数据表中列出的所有共同转让的美国专利申请公开、美国专利申请、外国专利和外国专利申请包括但不限于在2017年6月9日提交的名称为“自主车辆的运动规划和可重构运动规划处理器”的国际专利申请号PCT/US2017/036880、在2016年1月5日提交的名称为“专用机器人运动规划硬件及其制造和使用方法”的国际专利申请公开号WO016/122840以及在2018年2月6日提交的名称为“在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作”的美国临时专利申请号62/626,939,其全部内容通过引用并入本文。能够根据以上详细描述对实施例进行这些和其他改变。通常,在所附权利要求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这些权利要求享有的全部等效的范围。因此,权利要求不受公开的限制。
Claims (103)
1.一种机器人控制系统中的操作方法,所述方法包括:
对于将在环境中运行的第一机器人,确定多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,所述相应状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示;
对于所述规划图中的每个的边缘的至少两个或更多个,生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合;
将所述多个规划图和边缘信息的集合存储在至少一个非暂时性处理器可读存储器中;
对于至少第一机器人将在其中运行的被一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给至少一个处理器;
在将环境的第一离散化表示的至少一部分提供给至少一个处理器之后,基于在第一时间具有物理尺寸的第一集合的第一机器人的至少一部分,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器;
识别第一规划图的边缘中的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞;
在将环境的第一离散化表示的至少一部分提供给至少一个处理器之后,基于在第二时间具有物理尺寸的第二集合的第一机器人的至少一部分,将所述规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器,其中所述物理尺寸的第二集合中的至少一个尺寸不同于尺寸的第一集合中的相应尺寸;并且
识别第二规划图的边缘中的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
2.根据权利要求1所述的方法,其中,所述第一机器人具有至少第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一机器人具有附接到第一附肢的第一末端执行器,所述第一末端执行器能够可选择性地操作,以在至少第一末端执行器布置与第二末端执行器布置之间运动,并且所述方法还包括:
确定附接到第一附肢的第一末端执行器位于第一末端执行器布置中,其中,物理尺寸的第一集合代表第一末端执行器布置中的第一末端执行器的尺寸的集合;并且
其中,响应于确定附接到第一附肢的第一末端执行器位于第一末端执行器布置中,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器。
3.根据权利要求2所述的方法,还包括:
确定附接到第一附肢的第一末端执行器位于第二末端执行器布置中,其中,所述物理尺寸的第二集合代表第二末端执行器布置中的第一末端执行器的尺寸的集合;
其中,响应于确定附接到第一附肢的第一末端执行器位于第二末端执行器布置中,将所述规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器。
4.根据权利要求1所述的方法,其中,所述第一机器人具有至少第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一末端执行器附接到第一附肢,第一末端执行器能够可选择性地操作,以至少在未抓取布置与抓取布置之间运动,第一末端执行器在抓取布置中占据的体积的尺寸或形状中的至少一个不同于第一末端执行器在未抓取布置中占据的体积的尺寸或形状中的至少一个,并且所述方法还包括:
确定附接到第一附肢的第一末端执行器位于未抓取布置中;
其中,响应于确定附接到第一附肢的第一末端执行器位于未抓取布置中,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器;
确定附接到第一个附肢的第一末端执行器位于抓取布置中;
其中,响应于确定附接到第一附肢的第一末端执行器位于抓取布置中,将所述规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器。
5.根据权利要求1所述的方法,其中,所述第一机器人具有至少第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且所述方法还包括:
确定第一机器人具有附接到第一附肢的第一末端执行器,其中,所述物理尺寸的第一集合代表附接到第一附肢的第一末端执行器的尺寸的集合;并且
其中,响应于确定第一机器人具有附接到第一附肢的第一末端执行器,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器。
6.根据权利要求5所述的方法,还包括:
确定第一机器人具有附接到第一附肢的第二末端执行器,第二末端执行器在形状或尺寸的至少一个上不同于第一末端执行器,其中,所述物理尺寸的第二集合表示附接到第一附肢的第二末端执行器的尺寸的集合;并且
其中,响应于确定第一机器人具有附接到第一附肢的第二末端执行器,将所述规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器。
7.根据权利要求1所述的方法,其中,所述第一机器人是自主或半自主车辆中的至少一个,由处于第一物理状态的自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个不同于由处于第二物理状态的自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个,并且所述方法还包括:
确定自主或半自主车辆中的至少一个处于第一物理状态;
其中,响应于确定自主或半自主车辆中的至少一个处于第一物理状态,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器;以及
确定自主或半自主车辆中的至少一个处于第二物理状态;
其中,响应于确定自主或半自主车辆中的至少一个处于第二物理状态,将所述规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器。
8.根据权利要求1至7中任一项所述的方法,其中,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器包括,将边缘中的一个的边缘信息应用于所述至少一个处理器的多个电路中的每个,以确定哪些边缘与机器人在其中运行的环境中的障碍物占据的单位体积碰撞。
9.根据权利要求1至7中任一项所述的方法,其中,将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器包括,将边缘中的一个的边缘信息并行应用于所述至少一个处理器的多个电路中的每个。
10.根据权利要求1至7中任一项所述的方法,其中,生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合包括,生成以体素表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合。
11.根据权利要求1至7中任一项所述的方法,其中,生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合包括,生成以覆盖两个或更多个体素的单位体积表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合。
12.根据权利要求1至7中任一项所述的方法,其中,生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合包括,生成以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合。
13.根据权利要求12所述的方法,其中,生成以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合包括,对于矩形棱柱中的每个,存储完整定义相应矩形棱柱的体积的三维坐标对。
14.根据权利要求1至7中任一项所述的方法,其中,在预运行时间段期间确定多个规划图并生成边缘信息的相应集合。
15.根据权利要求1至7中任一项所述的方法,其中,在运行时间段期间将所述规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器,并且在所述运行时间段期间,将规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器。
16.一种基于处理器的机器人控制系统,包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
对于将在环境中运行的第一机器人,确定多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人的相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示;
对于规划图中的每个的边缘的至少两个或更多个,生成表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合;
将多个规划图和边缘信息的集合存储在所述至少一个非暂时性处理器可读存储器中;
对于至少第一机器人将在其中运行的被一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给至少一个处理器;
在将环境的第一离散化表示的至少一部分提供给所述至少一个处理器之后,基于在第一时间具有物理尺寸的第一集合的第一机器人的至少一部分,将规划图的第一规划图的边缘信息的集合提供给所述至少一个处理器;
识别第一规划图的边缘中的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞;
在将环境的第一离散化表示的至少一部分提供给至少一个处理器之后,基于在第二时间具有物理尺寸的第二集合的第一机器人的至少一部分,将规划图的第二规划图的边缘信息的集合提供给所述至少一个处理器,其中,所述物理尺寸的第二集合中的至少一个尺寸不同于尺寸的第一集合中的相应尺寸;并且
识别第二规划图的边缘中的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
17.根据权利要求16所述的基于处理器的机器人控制系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时,还使所述至少一个处理器执行根据权利要求2至15所述的方法中的任一项。
18.一种机器人控制系统中的操作方法,所述方法包括:
对于至少第一机器人将在其中运行的被一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给至少一个处理器;
对于相对于所述至少一个处理器存储在存储器中的多个规划图的第一规划图的每个边缘,其中,所述多个规划图的每个规划图与第一机器人的物理尺寸的不同集合相关联,在将环境的第一离散化表示的至少一部分提供给所述至少一个处理器之后,将边缘信息的相应集合提供给所述至少一个处理器,所述边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,第一机器人的状态对由第一规划图的节点对中的相应节点表示,相应的节点对通过第一规划图的相应边缘耦接,相应的边缘表示在第一机器人的相应状态对之间的转换;以及
识别第一规划图的任何边缘,其相应的转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
19.根据权利要求18所述的方法,其中,将边缘信息的相应集合提供给所述至少一个处理器包括,将边缘之一的边缘信息并行地应用于所述至少一个处理器的多个电路中的每个。
20.根据权利要求18所述的方法,其中,将边缘信息的相应集合提供给所述至少一个处理器包括,对于每个边缘,将相应边缘的边缘信息并行地应用于所述至少一个处理器的多个电路中的每个。
21.根据权利要求18所述的方法,其中,将边缘信息的相应集合提供给所述至少一个处理器包括,对于每个边缘,将以体素表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合应用于所述至少一个处理器的电路。
22.根据权利要求18所述的方法,其中,将边缘信息的相应集合提供给所述至少一个处理器包括,对于每个边缘,将以单位体积表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合应用于所述至少一个处理器的电路,所述单位体积分别覆盖两个或更多个体素。
23.根据权利要求18所述的方法,其中,将边缘信息的相应集合提供给所述至少一个处理器包括,对于每个边缘,将以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合应用于所述至少一个处理器的电路,扫过的单位体积分别覆盖两个或更多个体素。
24.根据权利要求23所述的方法,其中,将以矩形棱柱表示在由通过相应边缘耦接的相应节点表示的状态之间转换时由第一机器人的至少一部分扫过的体积的边缘信息的相应集合应用于电路包括,对于矩形棱柱中的每个,存储完整定义相应矩形棱柱的体积的三维坐标对。
25.根据权利要求18所述的方法,还包括:
确定第一机器人将要或已经从第一布置改变为第二布置,所述第二布置不同于第一布置;
对于多个规划图的第二规划图的每个边缘,在将环境的第一离散化表示的至少一部分提供给所述至少一个处理器之后,将边缘信息的相应集合提供给所述至少一个处理器,所述边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,第一机器人的状态对由第二规划图的节点对中的相应节点表示,所述相应节点对通过第二规划图的相应边缘耦接,相应边缘代表在第一机器人的相应状态对之间的转换,所述第二规划图不同于第一规划图;以及
识别第二规划图的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
26.根据权利要求25所述的方法,其中,所述第一机器人包括第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且确定第一机器人将要或已经从第一布置改变为第二布置包括,确定第二末端执行器代替第一末端执行器附接到或正在附接到第一附肢。
27.根据权利要求25所述的方法,其中,所述第一机器人包括第一附肢,所述第一附肢能够可选择性地操作,以相对于第一机器人在其中运行的环境运动,并且第一末端执行器附接到第一附肢,所述第一末端执行器能够可选择性地操作,以在至少非抓取布置与抓取布置之间运动,第一末端执行器在抓取布置中占据的体积的尺寸或形状中的至少一个不同于未抓取布置中由第一末端执行器占据的体积的尺寸或形状中的至少一个,并且确定第一机器人将要或已经从第一布置改变为第二布置包括,确定附接到第一附肢的第一末端执行器正在或已经改变了抓取布置。
28.根据权利要求27所述的方法,其中,确定附接到第一附肢的第一末端执行器正在或已经改变了抓取布置包括,确定第一末端执行器在未抓取布置与抓取布置之间转换或者已经完成转换。
29.根据权利要求25所述的方法,其中,第一机器人是自主或半自主车辆中的至少一个,在第一布置中由自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个不同于在第二布置中由自主或半自主车辆中的至少一个占据的体积的尺寸或形状中的至少一个,并且其中,确定第一机器人将要或已经从第一布置改变为第二布置包括,确定自主或半自主车辆中的至少一个在自主或半自主车辆中的至少一个的第一布置与第二布置之间转换或已经完成转换。
30.根据权利要求18至29中任一项所述的方法,其中,将第一规划图的每个边缘的边缘信息的相应集合提供给所述至少一个处理器包括,在运行时间段期间从非暂时性存储器中检索在预运行时间段期间存储在非暂时性存储器中的边缘信息的相应集合。
31.根据权利要求30所述的方法,其中,所述至少一个处理器是现场可编程门阵列或专用集成电路中的至少一个,并且将边缘信息的相应集合提供给所述至少一个处理器包括,将边缘之一的边缘信息应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的至少一个处理器的多个电路中的每个。
32.根据权利要求18所述的方法,还包括:
将环境的第一离散化表示存储在所述至少一个处理器上的存储器中;以及
在将环境的第一离散化表示存储在所述至少一个处理器上的存储器中之后,所述至少一个处理器从与所述至少一个处理器分离的存储器中接收边缘信息的集合。
33.一种基于处理器的机器人控制系统,包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
对于至少第一机器人将在其中运行的由一个或更多个障碍物占据的环境的第一离散化表示,将环境的第一离散化表示的至少一部分提供给所述至少一个处理器;
对于相对于所述至少一个处理器存储在存储器中的多个规划图中的第一规划图的每个边缘,其中所述多个规划图中的每个规划图与第一机器人的物理尺寸的不同集合相关联,在将环境的第一离散化表示的至少一部分提供给所述至少一个处理器之后,将边缘信息的相应集合提供给所述至少一个处理器,所述边缘信息的相应集合表示在第一机器人的状态对之间转换时由第一机器人的至少一部分扫过的体积,所述第一机器人的状态对由第一规划图的节点对中的相应节点表示,相应的节点对由第一规划图的相应边缘耦接,相应的边缘表示在第一机器人的相应状态对之间的转换;以及
识别第一规划图的边缘中的任何边缘,其相应转换将导致在机器人的至少一部分与环境中一个或更多个障碍物中的至少一个的至少一部分之间的碰撞。
34.根据权利要求33所述的基于处理器的机器人控制系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时还使所述至少一个处理器执行根据权利要求19至32所述的方法中的任一项。
35.一种在系统中用于促进运动规划的操作方法,包括:
对于包括多个任务和环境对的集合的至少第一场景,
对于至少第一场景的任务和环境对中的每个,
对于多个迭代中的每个,通过至少一个处理器生成表示机器人将在其中运行的环境的相应离散化,相应离散化中的至少两种包括体素的相应集合,其中,相应离散化中的至少两种的体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同;
评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性;以及
至少将所生成的表示机器人将在其中运行的环境的、被评估为至少对于第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质。
36.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中与在机器人后方的至少一个区域内的多个体素中的每个的相应的体积相比,在机器人前方的至少一个区域的多个体素中的每个具有较小的体积。
37.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,所述第二体积不同于所述第一体积。
38.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人的前方第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,并且在机器人前方的第三区域的多个体素具有第三体积,所述第三体积不同于所述第二体积。
39.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的第一区域的多个体素中的每个具有第一体积,在机器人前方的第二区域的多个体素具有第二体积,并且在机器人前方的第三区域的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
40.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在所述机器人正前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二体积,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
41.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素中的每个的形状不同于在机器人后方的至少一个区域的多个体素中的每个的形状。
42.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,所述第二形状不同于所述第一形状。
43.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第三形状不同于所述第二形状。
44.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第二形状不同于所述第一形状,并且所述第三形状不同于所述第二形状。
45.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人正前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二形状,并且在机器人前方的第三区域内的并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三形状,所述第二形状不同于所述第一形状,并且所述第三形状不同于所述第二形状。
46.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都不同于在机器人后方的至少一个区域的多个体素中的每个的形状和体积。
47.根据权利要求35所述的方法,其中,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化包括,生成第一相应离散化,其中在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都与在机器人后方的至少一个区域的多个体素中的每个的形状和体积不同,并且形状中的至少一个是非立方体的。
48.根据权利要求35所述的方法,其中,评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致无碰撞路径。
49.根据权利要求35所述的方法,其中,评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致具有最低碰撞概率的路径。
50.根据权利要求35所述的方法,其中,评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性包括,确定所生成的表示机器人将在其中运行的环境的相应离散化中的哪一种最有可能导致成本最低的无碰撞路径。
51.根据权利要求35所述的方法,其中,至少将所生成的表示机器人将在其中运行的环境的、被评估为至少对于第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质包括,存储针对多个场景中的每个所生成的至少一种相应离散化,并指示应将所生成的相应离散化中的哪一种用于多个场景中的每个。
52.一种用于促进运动规划的基于处理器的系统,所述系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
对于包括多个任务和环境对的集合的至少第一场景,
对于至少第一场景的任务和环境对中的每个,
对于多个迭代中的每个,通过所述至少一个处理器生成表示机器人将在其中运行的环境的相应离散化,相应离散化中的至少两种包括体素的相应集合,其中,相应离散化中的至少两种的体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同;
评估所生成的表示机器人将在其中运行的环境的相应离散化的有效性;以及
至少将所生成的表示机器人将在其中运行的环境的、被评估为至少对于第一场景是最有效的相应离散化存储到至少一个非暂时性处理器可读介质中。
53.根据权利要求52所述的基于处理器的系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时还使所述至少一个处理器执行根据权利要求36至51所述的方法中的任一项。
54.一种在系统中用于促进运动规划的操作方法,所述方法包括:
至少部分地基于对机器人将执行的任务和机器人将在其中运行的环境的对进行分类的所识别的场景,确定使用多种离散化中的哪一种来生成多个扫掠体积,所述多个扫掠体积表示在机器人的一个状态与机器人的另一个状态之间转换时机器人的至少一部分将经过的相应区域;
对于规划图中的多个边缘中的每个,利用确定的离散化来确定边缘的相应扫掠体积,所述规划图包括多个节点和多个边缘,每个节点代表机器人的多个状态中的相应状态,每个边缘耦接相应的节点对,并表示机器人在由通过相应边缘耦接的相应节点表示的状态之间的相应转换;以及
将所确定的表示机器人将在其中运行的环境的、被评估为至少对所识别的场景是最有效的扫掠体积的相应离散化中的至少一种存储到至少一个非暂时性处理器可读介质中。
55.根据权利要求54所述的方法,其中,确定使用多种离散化中的哪一种来生成多个扫掠体积包括,基于所识别的场景,在至少两种离散化之间进行选择,其中,相应离散化中的至少两种的体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同。
56.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,与在机器人后方的至少一个区域的多个体素中的每个的相应体积相比,在机器人前方的至少一个区域的多个体素中的每个具有较小的体积。
57.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,并且在机器人前方的第二区域内的多个体素具有第二体积,所述第二体积不同于所述第一体积。
58.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的多个体素具有第二体积,并且在机器人前方的第三区域内的多个体素具有第三体积,所述第三体积不同于所述第二体积。
59.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的多个体素具有第二体积,并且在机器人前方的第三区域内的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
60.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人正前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二体积,并且在机器人前方的第三区域内并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
61.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的至少一个区域内的多个体素中的每个的形状不同于在机器人后方的至少一个区域内的多个体素中的每个的形状。
62.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,并且在机器人前方的第二区域内的多个体素具有第二形状,所述第二形状不同于所述第一形状。
63.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第三形状不同于所述第二形状。
64.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第二形状不同于所述第一形状,并且所述第三形状不同于所述第二形状。
65.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人正前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二形状,并且在机器人前方的第三区域内并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三形状,所述第二形状不同于所述第一形状,并且所述第三形状不同于所述第二形状。
66.根据权利要求54所述的方法,其中,利用确定的离散化来确定边缘的相应扫掠体积包括,利用确定的离散化来确定边缘的相应扫掠体积,其中,在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都与在机器人后方的至少一个区域内的多个体素中的每个的形状和体积不同。
67.根据权利要求54所述的方法,还包括:接收所识别的场景。
68.根据权利要求54所述的方法,还包括:
将边缘信息的相应集合提供给至少一个处理器,所述边缘信息的相应集合表示在机器人的状态对之间转换时由第一机器人的至少一部分扫过的相应扫掠体积。
69.根据权利要求54至68中任一项所述的方法,其中,所述至少一个处理器是现场可编程门阵列或专用集成电路中的至少一个,并且所述方法还包括:
将边缘信息的相应集合应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的所述至少一个处理器的多个电路中的每个,所述边缘信息的相应集合表示在机器人的状态对之间转换时由机器人的至少一部分扫过的相应扫掠体积。
70.一种用于促进运动规划的基于处理器的系统,所述系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
至少部分地基于对机器人将执行的任务和机器人将在其中运行的环境的对进行分类的所识别场景,确定使用多种离散化中的哪一种来生成多个扫掠体积,所述多个扫掠体积代表在机器人的一个状态与机器人的另一个状态之间转换时机器人的至少一部分将经过的相应的区域;
对于规划图中的多个边缘中的每个,利用确定的离散化来确定边缘的相应扫掠体积,所述规划图包括多个节点和多个边缘,每个节点代表机器人的多个状态中的相应状态,每个边缘耦接相应的节点对并表示机器人在由通过相应边缘耦接的相应节点表示的状态之间的相应转换;以及
将所确定的表示机器人将在其中运行的环境的、被评估为对于至少所识别的场景是最有效的扫掠体积的相应离散化中的至少一种存储到至少一个非暂时性处理器可读介质。
71.根据权利要求70所述的基于处理器的系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时还使所述至少一个处理器执行根据权利要求55至69所述的方法中的任一项。
72.一种在系统中用于促进运动规划的操作方法,所述方法包括:
至少部分地基于对机器人将执行的任务和机器人在其中运行的环境的对进行分类的所识别场景,确定使用多种离散化中的哪一种来生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示;
接收由感测环境的一个或更多个传感器产生的传感器信息,所述传感器信息表示如果环境中存在障碍物则包括该障碍物的环境;以及
利用确定的离散化来生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示,其中,确定的离散化的多个体素在相应离散化内的尺寸和形状中的至少一个上是非均匀的,并且确定的离散化的体素的非均匀性的相应分布不同于多种离散化中的另一种的体素的非均匀性的相应分布。
73.根据权利要求72所述的方法,还包括:
将所确定生成的如果环境中存在障碍物则包括该障碍物的环境的离散化表示存储到至少一个非暂时性处理器可读介质中。
74.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,使用与用于生成扫掠体积的离散化表示的体素尺寸和形状的分布相匹配的体素尺寸和形状的分布来生成环境的离散化表示。
75.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,使用与用于生成由机器人的至少一部分扫过的扫掠体积的离散化表示的体素尺寸和形状的分布相匹配的体素尺寸和形状的分布来生成环境的离散化表示。
76.根据权利要求72所述的方法,其中,确定使用多种离散化中的哪一种来生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,基于所识别的场景在至少两种离散化之间进行选择,其中,相应离散化中的至少两种的体素在相应离散化内的尺寸和形状的至少一个上是非均匀的,并且相应离散化中的至少两种的体素的非均匀性的相应分布彼此不同。
77.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,与在机器人后方的至少一个区域内的多个体素中的每个的相应体积相比,在机器人前方的至少一个区域内的多个体素中的每个具有较小的体积。
78.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,并且在机器人前方的第二区域内的多个体素具有第二体积,所述第二体积不同于所述第一体积。
79.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的多个体素具有第二体积,并且在机器人前方的第三区域内的多个体素具有第三体积,所述第三体积不同于所述第二体积。
80.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内的多个体素具有第二体积,并且在机器人前方的第三区域内的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
81.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人正前方的第一区域内的多个体素中的每个具有第一体积,在机器人前方的第二区域内并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二体积,并且在机器人前方的第三区域内并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三体积,所述第二体积不同于所述第一体积,并且所述第三体积不同于所述第二体积。
82.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的至少一个区域内的多个体素中的每个的形状不同于在机器人后方的至少一个区域内的多个体素中的每个的形状。
83.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,并且在机器人前方的第二区域内的多个体素具有第二形状,所述第二形状不同于所述第一形状。
84.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第三形状不同于所述第二形状。
85.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内的多个体素具有第二形状,并且在机器人前方的第三区域内的多个体素具有第三形状,所述第二形状不同于所述第一形状,并且所述第三形状不同于所述第二形状。
86.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人正前方的第一区域内的多个体素中的每个具有第一形状,在机器人前方的第二区域内并且相对于机器人从第一区域相对向外间隔开的多个体素具有第二形状,并且在机器人前方的第三区域内并且相对于机器人从第二区域相对向外间隔开的多个体素具有第三形状,所述第二形状不同于所述第一形状,所述第三形状不同于所述第二形状。
87.根据权利要求72所述的方法,其中,生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示包括,利用确定的离散化来生成环境的离散化表示,其中,在机器人前方的至少一个区域内的多个体素中的每个的形状和体积都与在机器人后方的至少一个区域内的多个体素中的每个的形状和体积不同。
88.根据权利要求72所述的方法,还包括:
接收表示机器人将执行的任务以及所述机器人将在其中运行的环境的信息;以及
至少部分地基于接收到的信息来识别所识别的场景。
89.根据权利要求72所述的方法,还包括:
将环境的离散化表示提供给至少一个处理器。
90.根据权利要求72至89中任一项所述的方法,其中,所述至少一个处理器是现场可编程门阵列或专用集成电路中的至少一个,并且所述方法还包括:
将环境的离散化表示应用于在现场可编程门阵列或专用集成电路中的至少一个中实现的多个电路中的每个。
91.一种用于促进运动规划的基于处理器的系统,包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
至少部分地基于对机器人将执行的任务和机器人在其中运行的环境的对进行分类的所识别场景,确定使用多种离散化中的哪一种来生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示;
接收由感测环境的一个或更多个传感器产生的传感器信息,所述传感器信息表示如果环境中存在障碍物则包括该障碍物的环境;以及
利用确定的离散化来生成如果环境中存在障碍物则包括该障碍物的环境的离散化表示,其中,确定的离散化的多个体素在相应离散化中的尺寸和形状中的至少一个上是非均匀的,并且确定的离散化的体素的非均匀性的相应分布不同于多种离散化中的另一种的体素的非均匀性的相应分布。
92.根据权利要求91所述的基于处理器的系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时还使所述至少一个处理器执行根据权利要求73至90所述的方法中的任一项。
93.一种机器人控制系统中的操作方法,所述操作方法采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人相应状态的变量,并且每个边缘表示在第一机器人的相应状态对之间的转换,其中,相应状态对由通过相应规划图中的相应边缘耦接的节点对中的相应节点表示,所述方法包括:
对于多个规划图的第一规划图,
对于第一规划图的多个边缘中的每个,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查;
基于碰撞检查更新第一规划图;
对更新后的第一规划图执行优化,以从更新后的第一规划图识别如果存在的一个或更多个优化结果;
确定来自更新后的第一规划图的如果存在的一个或更多个优化结果是否满足满足条件;
响应于确定优化结果不满足所述满足条件:
对于第二规划图的多个边缘中的每个,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,
基于碰撞检查更新第二规划图;并且
对更新后的第二规划图执行优化,以从更新后的第二规划图识别如果存在的一个或更多个优化结果。
94.根据权利要求93所述的方法,还包括:
确定来自如果存在的更新后的第二规划图的如果存在的一个或更多个优化结果是否满足满足条件。
95.根据权利要求94所述的方法,其中,响应于确定来自更新后的第二规划图的如果存在的一个或更多个优化结果满足满足条件:
将由来自更新后的第二规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人。
96.根据权利要求94所述的方法,其中,响应于确定来自更新后的第二规划图的如果存在的一个或更多个优化结果不满足满足条件:
对于第三规划图的多个边缘中的每个,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,
基于碰撞检查更新第三规划图;并且
对更新后的第三规划图执行优化,以从更新后的第三规划图识别如果存在的一个或更多个优化结果。
97.根据权利要求96所述的方法,其中,响应于确定来自更新后的第三规划图的如果存在的一个或更多个优化结果满足所述满足条件:
将由来自更新后的第三规划图的一个或更多个优化结果中的一个所识别的转换应用于机器人。
98.根据权利要求93所述的方法,其中,确定来自更新后的第二规划图的如果存在的一个或更多个优化结果满足满足条件包括,确定优化是否产生任何路径。
99.根据权利要求93所述的方法,其中,确定来自更新后的第二规划图的如果存在的一个或更多个优化结果满足满足条件包括,确定优化是否产生任何无碰撞的路径。
100.根据权利要求93至99中任一项所述的方法,其中,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查包括,对于第一规划图中的边缘中的每个,将边缘的边缘信息集合并行地应用于多个电路中的每个,所述电路中的每个表示由机器人在其中运行的环境中的障碍物占据的相应的单位体积。
101.根据权利要求100所述的方法,还包括:
将至少一个处理器配置为实现多个电路,所述多个电路代表由至少第一机器人将在其中运行的环境中的一个或更多个障碍物占据的多个单位体积中的每个的相应的单位体积。
102.一种基于处理器的机器人控制系统,所述机器人控制系统采用多个规划图,每个规划图分别包括由多个边缘连接的多个节点,每个节点隐式地或显式地表示表征第一机器人相应状态的变量,并且每个边缘代表在第一机器人的相应状态对之间的转换,其中,相应的状态对由通过相应的规划图中的相应边缘耦接的节点对中的相应节点表示,所述系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,其存储在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的处理器可执行指令或数据中的至少一个:
对于多个规划图的第一规划图,
对于第一规划图的多个边缘中的每个,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查;
基于碰撞检查更新第一规划图;
对更新后的第一规划图执行优化,以从更新后的第一规划图识别如果存在的一个或更多个优化结果;
确定来自更新后的第一规划图的如果存在的一个或更多个优化结果是否满足满足条件;
响应于确定优化结果不满足所述满足条件:
对于第二规划图的多个边缘中的每个,执行针对与所述边缘相关联的扫掠体积的离散化表示与机器人将在其中运行的环境中的任何障碍物的离散化表示之间的碰撞的碰撞检查,
基于碰撞检查更新第二规划图;并且
对更新后的第二规划图执行优化,以从更新后的第二规划图识别如果存在的一个或更多个优化结果。
103.根据权利要求102所述的基于处理器的机器人控制系统,其中,所述处理器可执行指令或数据中的至少一个在由所述至少一个处理器执行时还使所述至少一个处理器执行根据权利要求94至101所述的方法中的任一项。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862626939P | 2018-02-06 | 2018-02-06 | |
US62/626,939 | 2018-02-06 | ||
PCT/US2019/016700 WO2019156984A1 (en) | 2018-02-06 | 2019-02-05 | Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111989195A CN111989195A (zh) | 2020-11-24 |
CN111989195B true CN111989195B (zh) | 2023-07-07 |
Family
ID=67475506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980024188.4A Active CN111989195B (zh) | 2018-02-06 | 2019-02-05 | 在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11235465B2 (zh) |
EP (1) | EP3723948A4 (zh) |
JP (3) | JP6969828B2 (zh) |
CN (1) | CN111989195B (zh) |
TW (1) | TWI822729B (zh) |
WO (1) | WO2019156984A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2928250T3 (es) | 2018-03-21 | 2022-11-16 | Realtime Robotics Inc | Planificación del movimiento de un robot para diversos entornos y tareas y mejora del funcionamiento del mismo |
US20220193911A1 (en) * | 2019-04-17 | 2022-06-23 | Realtime Robotics, Inc. | Motion planning graph generation user interface, systems, methods and articles |
US11179850B2 (en) * | 2019-04-24 | 2021-11-23 | Intrinsic Innovation Llc | Robot motion planning |
KR102592639B1 (ko) * | 2019-11-14 | 2023-10-23 | 한국전자통신연구원 | 시간을 분할하여 교대 작업하는 로봇 및 그 로봇들 간의 작업 교대 방법 |
US11724387B2 (en) | 2020-04-03 | 2023-08-15 | Fanuc Corporation | Fast robot motion optimization with distance field |
US11407109B2 (en) * | 2020-04-16 | 2022-08-09 | Boston Dynamics, Inc. | Global arm path planning with roadmaps and precomputed domains |
US11498213B2 (en) | 2020-09-23 | 2022-11-15 | Applied Materials, Inc. | Robot joint space graph path planning and move execution |
US11607809B2 (en) * | 2020-12-22 | 2023-03-21 | Intrinsic Innovation Llc | Robot motion planning accounting for object pose estimation accuracy |
US11628568B2 (en) * | 2020-12-28 | 2023-04-18 | Industrial Technology Research Institute | Cooperative robotic arm system and homing method thereof |
CN114690762A (zh) * | 2020-12-31 | 2022-07-01 | 深圳市海柔创新科技有限公司 | 货叉碰撞处理方法、装置、机器人、设备、介质及产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101837591A (zh) * | 2010-03-12 | 2010-09-22 | 西安电子科技大学 | 基于双群协同竞争粒子群和Ferguson样条的机器人路径规划方法 |
CN102814813A (zh) * | 2011-05-05 | 2012-12-12 | 范努克机器人技术美国有限公司 | 在多机器人系统中自动防止死锁的方法和系统 |
CN106660208A (zh) * | 2014-07-16 | 2017-05-10 | X开发有限责任公司 | 用于机器人装置的虚拟安全罩 |
US9687983B1 (en) * | 2016-05-11 | 2017-06-27 | X Development Llc | Generating a grasp pose for grasping of an object by a grasping end effector of a robot |
US9687982B1 (en) * | 2015-05-27 | 2017-06-27 | X Development Llc | Adapting programming of a robot and/or control of the robot based on one or more parameters of an end effector of the robot |
Family Cites Families (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2530261C2 (de) | 1974-10-22 | 1986-10-23 | Asea S.p.A., Mailand/Milano | Programmiereinrichtung für einen Manipulator |
US4163183A (en) | 1975-10-28 | 1979-07-31 | Unimation, Inc. | Programmable automatic assembly system |
US4862373A (en) | 1987-05-13 | 1989-08-29 | Texas Instruments Incorporated | Method for providing a collision free path in a three-dimensional space |
US4949277A (en) | 1988-03-09 | 1990-08-14 | North American Philips Corporation | Differential budding: method and apparatus for path planning with moving obstacles and goals |
US6089742A (en) | 1989-11-01 | 2000-07-18 | Warmerdam; Thomas P. H. | Method and apparatus for controlling robots and the like using a bubble data hierarchy placed along a medial axis |
US5544282A (en) | 1991-04-05 | 1996-08-06 | Chen; Pang C. | Method and apparatus for planning motions of robot manipulators |
US5347459A (en) | 1993-03-17 | 1994-09-13 | National Research Council Of Canada | Real time collision detection |
US5835684A (en) | 1994-11-09 | 1998-11-10 | Amada Company, Ltd. | Method for planning/controlling robot motion |
US6004016A (en) | 1996-08-06 | 1999-12-21 | Trw Inc. | Motion planning and control for systems with multiple mobile objects |
US5795297A (en) | 1996-09-12 | 1998-08-18 | Atlantis Diagnostics International, L.L.C. | Ultrasonic diagnostic imaging system with personal computer architecture |
US6049756A (en) | 1997-11-12 | 2000-04-11 | Lockheed Martin Corporation | System and method for avoiding collision between vector and solid objects |
JPH11296229A (ja) | 1998-02-13 | 1999-10-29 | Komatsu Ltd | 車両の誘導装置 |
DE19831216A1 (de) | 1998-07-03 | 2000-01-05 | Amecon Gmbh | Verfahren und Vorrichtung zur Bestimmung der Abhängigkeit einer ersten Meßgröße von einer zweiten Meßgröße |
US6259988B1 (en) | 1998-07-20 | 2001-07-10 | Lockheed Martin Corporation | Real-time mission adaptable route planner |
DE19854011A1 (de) | 1998-11-12 | 2000-05-25 | Knoll Alois | Einrichtung und Verfahren zum Vermessen von Mechanismen und ihrer Stellung |
US6470301B1 (en) | 1999-10-08 | 2002-10-22 | Dassault Systemes | Optimization tool for assembly workcell layout |
US6526373B1 (en) | 1999-10-08 | 2003-02-25 | Dassault Systemes | Optimization tool for robot placement |
JP2002073130A (ja) | 2000-06-13 | 2002-03-12 | Yaskawa Electric Corp | ロボットの大域動作経路計画方法とその制御装置 |
DE10063722C2 (de) | 2000-12-20 | 2003-07-03 | Siemens Ag | Ruckbegrenzung mit Adaption der Bahndynamik |
JP2003127077A (ja) | 2001-10-19 | 2003-05-08 | Komatsu Ltd | 作業ロボットのロボットプログラム修正装置。 |
DE10200680B4 (de) | 2002-01-10 | 2004-03-25 | Siemens Ag | Minimale Schwingungsanregung beim Verfahren mit Ruckbegrenzung durch Adaption von Ruckprofilen |
US10065317B2 (en) | 2016-06-30 | 2018-09-04 | General Electric Company | Control system for coordinating robotic machines to collaborate on tasks |
US6671582B1 (en) | 2002-08-26 | 2003-12-30 | Brian P. Hanley | Flexible agricultural automation |
WO2004095520A2 (en) | 2003-04-22 | 2004-11-04 | Berkeley Process Control, Inc. | System of path planning for robotic manipulators based on maximum acceleration and finite jerk constraints |
JP4251545B2 (ja) | 2003-07-11 | 2009-04-08 | 独立行政法人科学技術振興機構 | 移動ロボット用経路計画システム |
JP3834307B2 (ja) | 2003-09-29 | 2006-10-18 | ファナック株式会社 | ロボットシステム |
US7447593B2 (en) | 2004-03-26 | 2008-11-04 | Raytheon Company | System and method for adaptive path planning |
WO2005103848A1 (en) | 2004-04-22 | 2005-11-03 | Frontline Robotics | Open control system architecture for mobile autonomous systems |
DE102004059966B3 (de) | 2004-12-13 | 2006-06-22 | Siemens Ag | Verfahren und Einrichtung zur Bewegungsführung eines bewegbaren Maschinenelements einer numerisch gesteurten Maschine |
JP2006224740A (ja) | 2005-02-16 | 2006-08-31 | Advics:Kk | 車両用走行支援装置 |
US20060235610A1 (en) | 2005-04-14 | 2006-10-19 | Honeywell International Inc. | Map-based trajectory generation |
US20060247852A1 (en) | 2005-04-29 | 2006-11-02 | Kortge James M | System and method for providing safety-optimized navigation route planning |
US7577498B2 (en) | 2005-08-23 | 2009-08-18 | Motoman, Inc. | Apparatus and methods for a robotic beverage server |
JP4577248B2 (ja) | 2006-03-23 | 2010-11-10 | トヨタ自動車株式会社 | 移動体の経路探索システム、経路探索方法及び経路探索プログラム |
US7609020B2 (en) | 2006-07-11 | 2009-10-27 | Delaware Capital Formation, Inc. | Geometric end effector system |
JP5112666B2 (ja) | 2006-09-11 | 2013-01-09 | 株式会社日立製作所 | 移動装置 |
DE602006003435D1 (de) | 2006-09-14 | 2008-12-11 | Abb Research Ltd | Verfahren und Vorrichtung zur Vermeidung von Kollisionen zwischen einem Industrieroboter und einem Objekt |
US7974737B2 (en) | 2006-10-31 | 2011-07-05 | GM Global Technology Operations LLC | Apparatus and method of automated manufacturing |
KR100888475B1 (ko) | 2007-02-02 | 2009-03-12 | 삼성전자주식회사 | 모델간 충돌 여부 검사 방법 및 장치 |
EP1972415B1 (en) | 2007-03-23 | 2019-01-02 | Honda Research Institute Europe GmbH | Robots with collision avoidance functionality |
US7865277B1 (en) | 2007-05-07 | 2011-01-04 | The United States Of America As Represented By The Secretary Of The Navy | Obstacle avoidance system and method |
US8082064B2 (en) | 2007-08-24 | 2011-12-20 | Elite Engineering Corporation | Robotic arm and control system |
US8380424B2 (en) | 2007-09-28 | 2013-02-19 | The Boeing Company | Vehicle-based automatic traffic conflict and collision avoidance |
EP2085279B1 (en) | 2008-01-29 | 2011-05-25 | Ford Global Technologies, LLC | A system for collision course prediction |
WO2009103335A1 (en) | 2008-02-20 | 2009-08-27 | Abb Research Ltd. | Method and system for optimizing the layout of a robot work cell |
US8571745B2 (en) | 2008-04-10 | 2013-10-29 | Robert Todd Pack | Advanced behavior engine |
US9144904B2 (en) | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US8315738B2 (en) | 2008-05-21 | 2012-11-20 | Fanuc Robotics America, Inc. | Multi-arm robot system interference check via three dimensional automatic zones |
US8706452B2 (en) | 2008-06-26 | 2014-04-22 | Siemens Product Lifecycle Management Software Inc. | System and method for collision-free CAD design of pipe and tube paths |
JP5086942B2 (ja) | 2008-09-02 | 2012-11-28 | トヨタ自動車株式会社 | 経路探索装置、経路探索方法、及び経路探索プログラム |
US20100145516A1 (en) | 2008-12-08 | 2010-06-10 | Illinois Tool Works Inc. | High voltage monitoring system and method for spray coating systems |
KR101554515B1 (ko) | 2009-01-07 | 2015-09-21 | 삼성전자 주식회사 | 로봇의 경로계획장치 및 그 방법 |
US8074431B1 (en) | 2009-06-01 | 2011-12-13 | Top Tier, Inc. | Hybrid palletizer |
KR101105325B1 (ko) | 2009-09-08 | 2012-01-16 | 부산대학교 산학협력단 | 실제 로봇의 다중 경로계획 방법 |
US8386080B2 (en) | 2009-09-15 | 2013-02-26 | Harris Corporation | Robotic apparatus implementing collision avoidance scheme and associated methods |
JP4975075B2 (ja) | 2009-09-30 | 2012-07-11 | クラリオン株式会社 | ナビゲーション装置および経路演算方法 |
WO2011056633A1 (en) | 2009-10-27 | 2011-05-12 | Battelle Memorial Institute | Semi-autonomous multi-use robot system and method of operation |
US20110153080A1 (en) | 2009-12-22 | 2011-06-23 | Siemens Product Lifecycle Management Software Inc. | Method and apparatus for industrial robotic pathscycle time optimization using fly by |
US20120061155A1 (en) | 2010-04-09 | 2012-03-15 | Willow Garage, Inc. | Humanoid robotics system and methods |
JP2011249711A (ja) | 2010-05-31 | 2011-12-08 | Kyocera Corp | 配線基板およびその実装構造体 |
US8855812B2 (en) | 2010-07-23 | 2014-10-07 | Chetan Kapoor | System and method for robot safety and collision avoidance |
EP2572837B1 (en) | 2010-08-31 | 2014-06-11 | Kabushiki Kaisha Yaskawa Denki | Robot, robot system, robot control device, and state determining method |
JP2012056023A (ja) * | 2010-09-09 | 2012-03-22 | Toyota Motor Corp | ロボットの動作生成システム及び動作生成方法 |
EP2619742B1 (en) | 2010-09-24 | 2018-02-28 | iRobot Corporation | Systems and methods for vslam optimization |
US8509982B2 (en) | 2010-10-05 | 2013-08-13 | Google Inc. | Zone driving |
JP2012190405A (ja) | 2011-03-14 | 2012-10-04 | Toyota Motor Corp | 経路情報修正装置、軌道計画装置、及びロボット |
JP5774361B2 (ja) | 2011-04-28 | 2015-09-09 | 本田技研工業株式会社 | 軌道計画方法、軌道計画システム及び軌道計画・制御システム |
JP2012243029A (ja) | 2011-05-18 | 2012-12-10 | Toyota Central R&D Labs Inc | 経路探索機能付き移動体 |
US8825208B1 (en) | 2011-06-10 | 2014-09-02 | Richard Mark Benson | Automated construction machinery and method |
JP5472214B2 (ja) | 2011-06-20 | 2014-04-16 | 株式会社安川電機 | ピッキングシステム |
KR101634463B1 (ko) | 2011-06-29 | 2016-06-28 | 미쓰비시덴키 가부시키가이샤 | 부품 공급 장치 |
TW201318793A (zh) | 2011-11-08 | 2013-05-16 | Univ Minghsin Sci & Tech | 機器人光學定位系統及其定位方法 |
WO2013101273A1 (en) | 2011-12-30 | 2013-07-04 | St. Jude Medical, Atrial Fibrillation Division, Inc. | System and method for detection and avoidance of collisions of robotically-controlled medical devices |
SG11201405840TA (en) | 2012-03-22 | 2014-10-30 | Israel Aerospace Ind Ltd | Planning and monitoring of autonomous-mission |
JP5724919B2 (ja) | 2012-03-22 | 2015-05-27 | トヨタ自動車株式会社 | 軌道生成装置、移動体、軌道生成方法及びプログラム |
KR20130112507A (ko) | 2012-04-04 | 2013-10-14 | 인하대학교 산학협력단 | S* 알고리즘을 이용한 이동로봇의 안전경로계획 수립방법 |
US20130343640A1 (en) | 2012-06-21 | 2013-12-26 | Rethink Robotics, Inc. | Vision-guided robots and methods of training them |
JP6128767B2 (ja) | 2012-07-05 | 2017-05-17 | キヤノン株式会社 | ロボット制御装置、及びロボット制御方法 |
KR101441187B1 (ko) | 2012-07-19 | 2014-09-18 | 고려대학교 산학협력단 | 자율 보행 로봇 경로 계획 방법 |
JP6069923B2 (ja) * | 2012-07-20 | 2017-02-01 | セイコーエプソン株式会社 | ロボットシステム、ロボット、ロボット制御装置 |
KR20150058250A (ko) | 2012-08-24 | 2015-05-28 | 유니버시티 오브 휴스턴 | 로봇 장치 및 영상 안내 및 로봇 지원 수술을 위한 시스템 |
US9043025B2 (en) | 2012-08-31 | 2015-05-26 | Rethink Robotics, Inc. | Systems and methods for safe robot operation |
JP6273084B2 (ja) | 2012-09-20 | 2018-01-31 | 株式会社安川電機 | ロボットシステムおよびワークの搬送方法 |
EP2906396A1 (en) | 2012-10-11 | 2015-08-19 | ABB Technology Ltd. | A method and an apparatus for automatically generating a collision free return program for returning a robot from a stop position to a predefined restart position |
KR102009482B1 (ko) | 2012-10-30 | 2019-08-14 | 한화디펜스 주식회사 | 로봇의 경로계획 장치와 방법 및 상기 방법을 구현하는 프로그램이 기록된 기록 매체 |
US9227322B2 (en) | 2012-11-30 | 2016-01-05 | Fanuc Robotics America Corporation | Multi-arm robotic painting process synchronization |
US9405296B2 (en) | 2012-12-19 | 2016-08-02 | Elwah LLC | Collision targeting for hazard handling |
US8972057B1 (en) | 2013-01-09 | 2015-03-03 | The Boeing Company | Systems and methods for generating a robotic path plan in a confined configuration space |
US9393686B1 (en) | 2013-03-15 | 2016-07-19 | Industrial Perception, Inc. | Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement |
JP5962560B2 (ja) | 2013-03-22 | 2016-08-03 | トヨタ自動車株式会社 | 経路探索装置、移動体、経路探索方法及びプログラム |
WO2015017444A1 (en) | 2013-07-30 | 2015-02-05 | Intelligrated Headquarters Llc | Robotic carton unloader |
US9280899B2 (en) | 2013-08-06 | 2016-03-08 | GM Global Technology Operations LLC | Dynamic safety shields for situation assessment and decision making in collision avoidance tasks |
JP6057862B2 (ja) * | 2013-08-29 | 2017-01-11 | 三菱電機株式会社 | 部品供給装置および部品供給装置のプログラム生成方法 |
US9352465B2 (en) | 2013-11-12 | 2016-05-31 | Canon Kabushiki Kaisha | Control method for robot apparatus and robot apparatus |
WO2015113203A1 (en) | 2014-01-28 | 2015-08-06 | Abb Technology Ltd | Method and apparatus for optimizing performance of robotic cell |
JP5897624B2 (ja) | 2014-03-12 | 2016-03-30 | ファナック株式会社 | ワークの取出工程をシミュレーションするロボットシミュレーション装置 |
JP5877867B2 (ja) | 2014-04-25 | 2016-03-08 | ファナック株式会社 | 複数台のロボットのシミュレーション装置 |
DE102014212898A1 (de) | 2014-07-03 | 2016-01-07 | Robert Bosch Gmbh | Verfahren zum Ermitteln einer Notfall-Trajektorie und Verfahren zum teilautomatisierten oder automatisierten Führen eines Ego-Fahrzeugs |
US11576543B2 (en) | 2014-07-18 | 2023-02-14 | Ali Ebrahimi Afrouzi | Robotic vacuum with rotating cleaning apparatus |
US9403275B2 (en) | 2014-10-17 | 2016-08-02 | GM Global Technology Operations LLC | Dynamic obstacle avoidance in a robotic system |
JP5980873B2 (ja) | 2014-10-17 | 2016-08-31 | ファナック株式会社 | ロボットの干渉領域設定装置 |
US20160121487A1 (en) | 2014-11-03 | 2016-05-05 | Qualcomm Incorporated | Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior |
EP3250347B1 (en) | 2015-01-26 | 2023-11-08 | Duke University | Specialized robot motion planning hardware and methods of making and using same |
CN107206590B (zh) | 2015-02-13 | 2021-02-05 | Abb瑞士股份有限公司 | 用于避免两个机器人之间的碰撞的方法 |
US10019006B2 (en) | 2015-04-08 | 2018-07-10 | University Of Maryland, College Park | Surface vehicle trajectory planning systems, devices, and methods |
US9327397B1 (en) | 2015-04-09 | 2016-05-03 | Codeshelf | Telepresence based inventory pick and place operations through robotic arms affixed to each row of a shelf |
US20160357187A1 (en) | 2015-06-05 | 2016-12-08 | Arafat M.A. ANSARI | Smart vehicle |
JP6446331B2 (ja) | 2015-06-08 | 2018-12-26 | 日立オートモティブシステムズ株式会社 | 扁平ビーム生成アンテナを有するセンサ |
US20170004406A1 (en) | 2015-06-30 | 2017-01-05 | Qualcomm Incorporated | Parallel belief space motion planner |
US9707681B2 (en) | 2015-07-27 | 2017-07-18 | Siemens Industry Software Ltd. | Anti-collision management of overlapping robotic movements |
KR101724887B1 (ko) | 2015-08-10 | 2017-04-07 | 현대자동차주식회사 | 전방 도로 형상과 연결을 분석해 차선 변경과 타이밍을 결정하는 자율주행 제어 장치 및 방법 |
WO2017033352A1 (ja) | 2015-08-25 | 2017-03-02 | 川崎重工業株式会社 | 産業用遠隔操作ロボットシステム |
JP6760297B2 (ja) | 2015-09-29 | 2020-09-23 | ソニー株式会社 | 信号処理装置、信号処理方法およびプログラム |
KR20170044987A (ko) | 2015-10-16 | 2017-04-26 | 한국전기연구원 | 저크가 제한된 궤적 생성 방법 |
KR101748632B1 (ko) | 2015-10-29 | 2017-06-20 | 한국과학기술연구원 | 로봇의 구동 경로를 계획하기 위한 로봇 제어 시스템 및 로봇 구동 경로 계획방법 |
US9632502B1 (en) | 2015-11-04 | 2017-04-25 | Zoox, Inc. | Machine-learning systems and techniques to optimize teleoperation and/or planner decisions |
US10496766B2 (en) | 2015-11-05 | 2019-12-03 | Zoox, Inc. | Simulation system and methods for autonomous vehicles |
EP3171133B1 (en) | 2015-11-19 | 2020-03-11 | Sikorsky Aircraft Corporation | Kinematic motion planning with regional planning constraints |
US10093021B2 (en) * | 2015-12-02 | 2018-10-09 | Qualcomm Incorporated | Simultaneous mapping and planning by a robot |
JP6690213B2 (ja) | 2015-12-09 | 2020-04-28 | セイコーエプソン株式会社 | ロボット、制御装置およびロボットシステム |
US10012984B2 (en) | 2015-12-14 | 2018-07-03 | Mitsubishi Electric Research Laboratories, Inc. | System and method for controlling autonomous vehicles |
US10705528B2 (en) | 2015-12-15 | 2020-07-07 | Qualcomm Incorporated | Autonomous visual navigation |
US10665115B2 (en) | 2016-01-05 | 2020-05-26 | California Institute Of Technology | Controlling unmanned aerial vehicles to avoid obstacle collision |
US10035266B1 (en) | 2016-01-18 | 2018-07-31 | X Development Llc | Generating robot trajectories using a real time trajectory generator and a path optimizer |
JP6576255B2 (ja) | 2016-01-25 | 2019-09-18 | キヤノン株式会社 | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 |
US9645577B1 (en) | 2016-03-23 | 2017-05-09 | nuTonomy Inc. | Facilitating vehicle driving and self-driving |
WO2017168187A1 (en) | 2016-03-31 | 2017-10-05 | Siemens Industry Software Ltd. | Method and system for determining optimal positioning of a plurality of robots in a simulated production environment |
WO2017192144A1 (en) | 2016-05-05 | 2017-11-09 | Harman International Industries, Incorporated | Systems and methods for driver assistance |
US9981382B1 (en) | 2016-06-03 | 2018-05-29 | X Development Llc | Support stand to reorient the grasp of an object by a robot |
US9880561B2 (en) | 2016-06-09 | 2018-01-30 | X Development Llc | Sensor trajectory planning for a vehicle |
WO2017214581A1 (en) * | 2016-06-10 | 2017-12-14 | Duke University | Motion planning for autonomous vehicles and reconfigurable motion planning processors |
US9981383B1 (en) | 2016-08-02 | 2018-05-29 | X Development Llc | Real-time trajectory generation for actuators of a robot to reduce chance of collision with obstacle(s) |
US10345815B2 (en) | 2016-09-14 | 2019-07-09 | Qualcomm Incorporated | Motion planning and intention prediction for autonomous driving in highway scenarios via graphical model-based factorization |
US10131053B1 (en) * | 2016-09-14 | 2018-11-20 | X Development Llc | Real time robot collision avoidance |
DE102016120763B4 (de) * | 2016-10-31 | 2019-03-14 | Pilz Gmbh & Co. Kg | Verfahren zur kollisionsfreien Bewegungsplanung |
WO2018087550A2 (en) | 2016-11-09 | 2018-05-17 | Inventive Cogs (Campbell) Limited | Vehicle route guidance |
KR102518532B1 (ko) | 2016-11-11 | 2023-04-07 | 현대자동차주식회사 | 자율주행차량의 경로 결정장치 및 그 방법 |
US10012988B2 (en) | 2016-11-29 | 2018-07-03 | Mitsubishi Electric Research Laboratories, Inc. | Methods and systems for path planning using a network of safe-sets |
US10296012B2 (en) | 2016-12-21 | 2019-05-21 | X Development Llc | Pre-computation of kinematically feasible roadmaps |
US10480947B2 (en) | 2016-12-21 | 2019-11-19 | X Development Llc | Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning |
US20180189683A1 (en) | 2016-12-29 | 2018-07-05 | NextEv USA, Inc. | Autonomous ev charging priority network |
US11541543B2 (en) | 2017-02-07 | 2023-01-03 | Veo Robotics, Inc. | Dynamic, interactive signaling of safety-related conditions in a monitored environment |
WO2018148181A1 (en) | 2017-02-07 | 2018-08-16 | Veo Robotics, Inc. | Workspace safety monitoring and equipment control |
DE102017102749A1 (de) | 2017-02-13 | 2018-08-16 | Festo Ag | Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems |
US10430641B2 (en) | 2017-03-08 | 2019-10-01 | GM Global Technology Operations LLC | Methods and systems for object tracking using bounding boxes |
US10303180B1 (en) * | 2017-04-20 | 2019-05-28 | X Development Llc | Generating and utilizing non-uniform volume measures for voxels in robotics applications |
KR101937269B1 (ko) | 2017-05-15 | 2019-01-14 | 한국생산기술연구원 | 로봇 모션 경로 계획방법 |
US11358337B2 (en) | 2017-05-24 | 2022-06-14 | Divergent Technologies, Inc. | Robotic assembly of transport structures using on-site additive manufacturing |
US11014240B2 (en) | 2017-09-05 | 2021-05-25 | Abb Schweiz Ag | Robot having dynamic safety zones |
US10782694B2 (en) | 2017-09-07 | 2020-09-22 | Tusimple, Inc. | Prediction-based system and method for trajectory planning of autonomous vehicles |
EP3486612B1 (en) | 2017-11-20 | 2020-07-01 | Robert Bosch GmbH | Method for generating a trajectory |
US10466707B2 (en) | 2017-12-22 | 2019-11-05 | X Development Llc | Planning robot stopping points to avoid collisions |
US10480952B2 (en) * | 2018-02-01 | 2019-11-19 | Didi Research America, Llc | Probabilistic navigation system and method |
AT520958A1 (de) | 2018-03-09 | 2019-09-15 | Tgw Logistics Group Gmbh | Robotersystem mit an Warentypen angepassten Bewegungsabläufen und Betriebsverfahren hierfür |
ES2928250T3 (es) | 2018-03-21 | 2022-11-16 | Realtime Robotics Inc | Planificación del movimiento de un robot para diversos entornos y tareas y mejora del funcionamiento del mismo |
US11216009B2 (en) | 2018-06-25 | 2022-01-04 | Intrinsic Innovation Llc | Robot coordination in a shared workspace |
CN112601641B (zh) | 2018-08-23 | 2024-03-08 | 实时机器人有限公司 | 用于机器人运动规划的碰撞检测 |
US10809732B2 (en) | 2018-09-25 | 2020-10-20 | Mitsubishi Electric Research Laboratories, Inc. | Deterministic path planning for controlling vehicle movement |
JP7394853B2 (ja) | 2018-12-04 | 2023-12-08 | デューク・ユニバーシティ | 動的物体を有する環境における運動計画を促進する装置、方法及び物品 |
EP3725472A1 (de) | 2019-04-16 | 2020-10-21 | Siemens Aktiengesellschaft | Verfahren zum ermitteln einer trajektorie eines roboters |
US11179850B2 (en) | 2019-04-24 | 2021-11-23 | Intrinsic Innovation Llc | Robot motion planning |
JP7222803B2 (ja) | 2019-04-25 | 2023-02-15 | 株式会社日立製作所 | 軌道計画装置、軌道計画方法及びプログラム |
GB202215836D0 (en) | 2019-05-07 | 2022-12-07 | Motional Ad Llc | Systems and methods for planning and updating a vehicle's trajectory |
TWI699636B (zh) | 2019-05-21 | 2020-07-21 | 華邦電子股份有限公司 | 協同型機器人控制系統和方法 |
-
2019
- 2019-02-01 TW TW108104094A patent/TWI822729B/zh active
- 2019-02-05 US US16/268,290 patent/US11235465B2/en active Active
- 2019-02-05 WO PCT/US2019/016700 patent/WO2019156984A1/en unknown
- 2019-02-05 JP JP2020564782A patent/JP6969828B2/ja active Active
- 2019-02-05 EP EP19751574.5A patent/EP3723948A4/en active Pending
- 2019-02-05 CN CN201980024188.4A patent/CN111989195B/zh active Active
-
2021
- 2021-10-20 JP JP2021171704A patent/JP7055511B2/ja active Active
- 2021-10-20 JP JP2021171726A patent/JP2022009306A/ja active Pending
- 2021-11-22 US US17/532,648 patent/US11745346B2/en active Active
-
2023
- 2023-07-17 US US18/222,801 patent/US20230356400A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101837591A (zh) * | 2010-03-12 | 2010-09-22 | 西安电子科技大学 | 基于双群协同竞争粒子群和Ferguson样条的机器人路径规划方法 |
CN102814813A (zh) * | 2011-05-05 | 2012-12-12 | 范努克机器人技术美国有限公司 | 在多机器人系统中自动防止死锁的方法和系统 |
CN106660208A (zh) * | 2014-07-16 | 2017-05-10 | X开发有限责任公司 | 用于机器人装置的虚拟安全罩 |
US9687982B1 (en) * | 2015-05-27 | 2017-06-27 | X Development Llc | Adapting programming of a robot and/or control of the robot based on one or more parameters of an end effector of the robot |
US9687983B1 (en) * | 2016-05-11 | 2017-06-27 | X Development Llc | Generating a grasp pose for grasping of an object by a grasping end effector of a robot |
Also Published As
Publication number | Publication date |
---|---|
JP2021513466A (ja) | 2021-05-27 |
US20230356400A1 (en) | 2023-11-09 |
TW201941887A (zh) | 2019-11-01 |
JP2022009305A (ja) | 2022-01-14 |
JP2022009306A (ja) | 2022-01-14 |
US11745346B2 (en) | 2023-09-05 |
CN111989195A (zh) | 2020-11-24 |
US20190240835A1 (en) | 2019-08-08 |
EP3723948A4 (en) | 2021-09-15 |
TWI822729B (zh) | 2023-11-21 |
US20220080594A1 (en) | 2022-03-17 |
WO2019156984A1 (en) | 2019-08-15 |
JP6969828B2 (ja) | 2021-11-24 |
EP3723948A1 (en) | 2020-10-21 |
JP7055511B2 (ja) | 2022-04-18 |
US11235465B2 (en) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111989195B (zh) | 在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作 | |
US11970161B2 (en) | Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects | |
CN112601641B (zh) | 用于机器人运动规划的碰撞检测 | |
JP7394853B2 (ja) | 動的物体を有する環境における運動計画を促進する装置、方法及び物品 | |
JP7479064B2 (ja) | 動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 | |
US9008840B1 (en) | Apparatus and methods for reinforcement-guided supervised learning | |
CN114269525B (zh) | 对共享工作空间中的多个机器人的运动规划 | |
US11623346B2 (en) | Configuration of robots in multi-robot operational environment | |
EP3250347A1 (en) | Specialized robot motion planning hardware and methods of making and using same | |
US20220048527A1 (en) | Device and method for controlling a hardware agent in a control situation having a plurality of hardware agents | |
WO2021188566A1 (en) | Digital representations of robot operational environment, useful in motion planning for robots | |
CN115397628A (zh) | 包括传感器布局的机器人操作环境配置 | |
TW202123031A (zh) | 用以便利具有動態物件環境中之運動規劃的裝置、方法及物品 | |
Ikeda et al. | Geometric Reasoning enabled One Shot Learning for Robotic Tasks |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40032685 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |