CN117961877A - 用于确定放置对象的路径的方法、装置和计算机可读存储介质 - Google Patents
用于确定放置对象的路径的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117961877A CN117961877A CN202211311008.0A CN202211311008A CN117961877A CN 117961877 A CN117961877 A CN 117961877A CN 202211311008 A CN202211311008 A CN 202211311008A CN 117961877 A CN117961877 A CN 117961877A
- Authority
- CN
- China
- Prior art keywords
- current object
- determining
- target position
- path
- final
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000033001 locomotion Effects 0.000 claims description 104
- 238000003780 insertion Methods 0.000 claims description 12
- 230000037431 insertion Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/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
-
- 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/40006—Placing, palletize, un palletize, paper roll placing, box stacking
-
- 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/40008—Place a box, block in a corner
-
- 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/40058—Align box, block with a surface
-
- 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/40088—Task is push, slide box
-
- 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/45—Nc applications
- G05B2219/45063—Pick and place manipulator
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本公开内容提供了用于确定放置对象的路径的方法、装置和计算机可读存储介质。该方法包括:基于环境的对象放置状况,确定待放置的当前对象在环境中的最终目标位置;确定在将当前对象在最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞,其中,当前对象在处于初始目标位置和最终目标位置时的水平面投影是重合的,初始目标位置和最终目标位置处于不同的高度;基于是否发生碰撞的确定结果,确定将当前对象放置到最终目标位置的最终路径,其中,当前对象在沿着最终路径移动时将不发生碰撞。
Description
技术领域
本公开内容涉及机器人技术领域,具体地,涉及用于确定放置对象的路径的方法、装置和计算机可读存储介质。
背景技术
近年来,随着机器人技术的研究不断深入,机器人(例如,机械臂)在码垛(例如,码放箱子)等方面的应用也快速发展,从而极大地降低了人工成本。在这样的应用场景下,机器人的任务通常是将指定对象(例如,箱子)按照一定模式进行移动和堆放。在该过程中,机器人的运动轨迹规划将是至关重要的。
发明内容
鉴于此,本公开内容的实施例提供了用于确定放置对象的路径的方法、装置和计算机可读存储介质。
根据一个方面,本公开内容的实施例提供了一种用于确定放置对象的路径的方法,包括:基于环境的对象放置状况,确定待放置的当前对象在所述环境中的最终目标位置;确定在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞,其中,所述当前对象在处于所述初始目标位置和所述最终目标位置时的水平面投影是重合的,所述初始目标位置和所述最终目标位置处于不同的高度;基于是否发生碰撞的确定结果,确定将所述当前对象放置到所述最终目标位置的最终路径,其中,所述当前对象在沿着所述最终路径移动时将不发生碰撞。
根据另一方面,本公开内容的实施例提供了一种用于确定对象的路径的装置,包括:第一确定单元,被配置为基于环境的对象放置状况,确定待放置的当前对象在所述环境中的最终目标位置;第二确定单元,被配置为确定在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞,其中,所述当前对象在处于所述初始目标位置和所述最终目标位置时的水平面投影是重合的,所述初始目标位置和所述最终目标位置处于不同的高度;第三确定单元,被配置为基于是否发生碰撞的确定结果,确定将所述当前对象放置到所述最终目标位置的最终路径,其中,所述当前对象在沿着所述最终路径移动时将不发生碰撞。
根据另一方面,本公开内容的实施例提供了一种用于确定对象的路径的装置,包括:至少一个处理器;与所述至少一个处理器进行通信的存储器,其上存储有可执行代码,所述可执行代码在被所述至少一个处理器执行时使得所述至少一个处理器执行上述方法。
根据另一方面,本公开内容的实施例提供了一种计算机可读存储介质,其存储有可执行代码,所述可执行代码在被执行时使得计算机执行上述方法。
附图说明
通过结合附图对本公开内容的实施例的更详细的描述,本公开内容的实施例的上述以及其它目的、特征和优势将变得更加明显,其中,在各个附图中,相同的附图标记通常代表相同的元素。
图1A和图1B是可以应用本公开内容的实施例的场景的示例的示意图。
图2是根据一些实施例的用于确定放置对象的路径的方法的示意性流程图。
图3是根据一些实施例的用于确定放置对象的路径的过程的示意性流程图。
图4A示出了与高度值相关联的网格划分的一个示例。
图4B示出了一个候选进入位置的示例
图5示出了第一运动方案的应用场景的示例。
图6A至图6C示出了第二运动方案的应用场景的示例。
图7是示出了第三运动方案的应用场景的示例。
图8是根据一些实施例的用于确定放置对象的路径的装置的示意性框图。
图9是根据一些实施例的用于确定放置对象的路径的装置的示意性框图。
具体实施方式
现在将参考各实施例讨论本文描述的主题。应当理解的是,讨论这些实施例仅是为了使得本领域技术人员能够更好地理解并且实现本文描述的主题,并非对权利要求书中所阐述的保护范围、适用性或者示例进行限制。可以在不脱离权利要求书的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个实施例可以根据需要,省略、替换或者添加各种过程或组件。
如本文中使用的,术语“包括”及其变型可以表示开放的术语,其含义可以是“包括但不限于”。术语“基于”可以表示“至少部分地基于”。术语“一个实施例”、“一实施例”、“一些实施例”等可以表示“至少一个实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。
目前,机器人已经在码垛等领域得以广泛应用。在码垛领域中,机器人(例如,其可以具有机械臂的形式等)的任务通常是将指定对象(例如,箱子等)按照一定模式进行移动并且码放到指定位置(例如,托盘或集装箱等)。在该过程中,机器人的运动轨迹规划是至关重要的。良好的运动轨迹规划将有助于避免对象之间的碰撞来提高码垛的效率,提高对象码放的紧密度来避免空间浪费,动态地适应不同的码放环境等等。
鉴于此,本公开内容的实施例提供了一种用于确定放置对象的路径的技术方案,能够合理地规划待放置对象的移动路径。下面将结合具体实施例进行描述。
图1A和图1B是可以应用本公开内容的实施例的场景的示例的示意图。应理解,图1A和图1B的示例仅是为了帮助更好地理解本公开内容的技术方案,而并不限制本公开内容的应用范围。
在图1A的示例中,假设在托盘120A上已经放置了对象105A。然后,机器人(未示出)需要将当前对象110A放置在托盘120A上。那么,机器人的控制装置可以确定当前对象110A的最终目标位置以及将当前对象110A由当前位置(如图1A中箭头的始端附近的位置)放置在最终目标位置(如图1A中箭头的末端指向的位置)处的运动路径。如图1A所示,假设当前对象110A的最终目标位置可以位于对象105A一侧。这样,控制装置可以控制机器人根据相应的运动路径,将当前对象110A放置在托盘120A上的最终目标位置处。
在图1B的示例中,假设在托盘102B上已经放置了对象105B和115B。然后,机器人(未示出)需要将当前对象110B放置托盘120B上。那么,机器人的控制装置可以确定当前对象110B在托盘120B上的最终目标位置以及将当前对象110B放置在最终目标位置处的运动路径。如图1B所示,假设当前对象110B的最终目标位置位于对象105B和对象110B之间。然后,控制装置可以控制机器人根据相应的运动路径,将当前对象110B放置在托盘120B上的最终目标位置处。
图1A和图1B仅示出了简单的应用场景。而在实际应用场景中,对象的码放情况可能比图1A和图1B所示的要复杂,但是都可以应用本公开内容的实施例来进行机器人的运动轨迹规划。
图2是根据一些实施例的用于确定放置对象的路径的方法的示意性流程图。例如,方法200可以由机器人的控制装置来执行。
如图2所示,在步骤202中,可以基于环境的对象放置状况,确定待放置的当前对象在该环境中的最终目标位置。
在步骤204中,可以确定在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞。具体地,当前对象在处于初始目标位置和最终目标位置时的水平面投影是重合的。另外,初始目标位置和最终目标位置可以处于不同的高度。具体而言,初始目标位置可以位于最终目标位置的正上方,与最终目标位置在纵向上相距一定的距离。
在步骤206中,可以基于是否发生碰撞的确定结果,确定将当前对象放置到最终目标位置的最终路径。具体而言,当前对象在沿着最终路径移动时将不发生碰撞。
可见,在本公开内容的实施例中,首先确定在当前对象的最终目标位置的周围空间水平移动到最终目标位置正上方时是否发生碰撞,进而基于是否发生碰撞来确定不发生碰撞的最终路径,由此能够避免对象在移动过程中的碰撞,提高码放效率。
在本文的实施例中,环境可以是指用于放置对象的空间,比如托盘、集装箱等等。
在一些实施例中,环境的对象放置状况可以采用各种适用的方式来确定,例如可以利用相机传感器(比如3D相机)采集环境的图像,对环境的图像进行分析,进而确定各种相关信息,比如该环境中是否已经放置了不同的对象、各个对象被放置的位置、各个对象的尺寸等等。然后,基于环境的对象放置状况,可以确定当前对象在环境中的最终目标位置。例如,可以基于环境中放置了哪些对象、各个对象的尺寸和位置,进而结合当前对象的尺寸,确定当前对象将被放置的最终目标位置。当前对象的尺寸可以通过各种方式来确定,比如利用相机传感器(比如3D相机)采集当前对象的图像,从而确定当前对象的尺寸。
可以理解,由于要放置的对象是三维的,因此本文提及的位置可以是三维的。在一些实施例中,最终目标位置可以通过三维坐标系来表示。例如,(xi,yi,zi)可以表示最终目标位置的某个指定点的坐标。例如,指定点可以是当前对象处于最终目标位置时的底部且左侧且后侧的点,左右方向和前后方向可以预先定义。(li,wi,hi)可以表示当前对象的尺寸,即长度、宽度和高度(例如,i可以表示当前对象的索引)。这样,可以通过指定点的坐标以及当前对象的尺寸来表示当前对象的最终目标位置。
在本文中,在步骤202中,确定所述最终目标位置可以是确定该环境中能够放置当前对象的位置,例如,最终目标位置处的空间可以容纳当前对象,比如最终目标位置处的空间在水平面上的投影区域的大小可以大于或等于当前对象的底表面的面积。因此,可以根据该环境中已放置的对象的放置状况,结合当前对象的尺寸,确定所述最终目标位置。
在一些实施例中,最终目标位置的周围空间可以是包含最终目标位置的更大空间。例如,可以首先确定对象投影区域,即当前对象在处于最终目标位置时在水平面上的投影区域。然后,可以将该对象投影区域扩大预定范围,具体地,将对象投影区域的四周扩大预定量,将得到比对象投影区域更大的一个区域,那么该区域可以认为是周围空间在水平面上的投影区域。
例如,结合上面的坐标进行说明。假设(xi,yi,zi)表示当前对象处于最终目标位置时的底部且左侧且后侧的点,那么对象投影区域可以表示为(x∈[xi,xi+li],y∈[yi,yi+wi])。将对象投影区域扩大预定范围,假设在x轴的正方向和负方向分别扩大预定量a,另外在y轴的正方向和负方向上分别扩大预定量b,那么形成周围空间在水平面上的投影区域(x∈[xi-a,xi+li+a],y∈[yi-b,yi+wi+b])。然后,可以定义出周围空间。例如,根据周围空间在水平面上的投影区域,在环境的高度方向(例如,z轴的正方向)上扩充某个量,从而形成三维空间作为上述周围空间。例如,周围空间的高度可以大于或等于初始目标位置的高度。
在一些实施例中,可以在周围空间中,确定至少一个候选进入位置。每个候选进入位置可以与初始目标位置处于相同的高度,这样,可以形成从每个候选进入到初始目标位置的水平直线路径。然后,可以针对至少一个候选进入位置依次确定是否存在一候选进入位置使得在将当前对象沿着该候选进入位置到初始目标位置的水平直线路径移动时不发生碰撞。
在一些实施例中,可以按照一定的顺序针对至少一个候选进入位置来依次确定是否存在不发生碰撞的候选进入位置。例如,可以确定每个候选进入位置的高度权重值。每个候选进入位置的高度权重值可以表示在该候选进入位置四周的空间被占用的状况,比如可以表示在该候选进入位置四周是否已经放置对象以及已经放置的对象的高度情况。因此,可以理解,候选进入位置的高度权重值越小,则针对该候选进入位置发生碰撞的概率将越低。因此,可以按照高度权重值从小到大的顺序来依次确定至少一个候选进入位置中是否存在不发生碰撞的候选进入位置。
下面将描述如何确定各个候选进入位置的高度权重值。
在一些实现方式中,高度权重值可以结合网格的高度值来确定。下面首先描述如何确定网格以及网格的高度值。在一些实施例中,可以将周围空间在水平面上的投影区域划分为大小相等的多个网格,每个网格可以具有对应的高度值。每个网格的高度值可以表示占用该网格的对象的高度。该高度值可以是对象的实际高度,也可以是将对象的实际高度进行某种处理得到的值,本文对此不作限定。因此,网格的高度值越小,表示占用该网格的对象的高度越小,甚至该网格尚未被任何对象占用。例如,如果某个网格尚未放置对象,则该网格的高度值可以是0。
每个候选进入位置的高度权重值可以通过如下方式来得到:将当前对象在处于该候选进入位置时在水平面上的投影区域的外围区域中的各个网格的高度值进行相加,从而得到该候选进入位置的高度权重。因此,每个候选进入位置的高度权重实际上可以反映在该候选进入位置四周的空间被占用的情况,例如,是否放置了对象以及所放置的对象的高度情况。外围区域的大小可以根据具体应用场景、实际需求等来预先定义,例如,安全性、计算量等。例如,外围区域可以包括在该投影区域四周的与该投影区域紧挨着的一圈网格。当然,外围区域也可以包括在该投影区域四周的与该投影区域紧邻的若干圈(例如,两圈或三圈)网格。
在一种实现方式中,可以将用于放置对象的环境在水平面上的投影区域划分为大小相等的网格,为每个网格赋予相应的高度值。这可以形成高度图,而各个网格的高度值可以随着对象的放置不断地更新。
在一些实施例中,可以通过各种方式来确定是否发生碰撞。例如,可以将水平直线路径进行离散化,结合当前对象的尺寸数据(例如,长度、宽度、高度)以及该路径中的各种高度信息(例如,如果已经放置了对象,结合已经放置的对象的高度等)等各种信息来确定在该路径中是否发生碰撞。例如,可以将水平直线路径进行分段,每个分段可以利用一个网格来表示,比如该网格大小可以与上面关于周围空间提到的网格大小相同。可以判断水平直线路径中的各个网格是否被其它对象占用,从而判断在该路径中是否发生碰撞。
在一些实施例中,如前所述,可以针对至少一个候选进入位置按照顺序依次确定是否存在不发生碰撞的候选位置。一旦检测到不发生碰撞的候选进入位置,就可以基于该候选进入位置,使用第一运动方案来确定最终路径,而可以不再继续确定所述当前对象由其它候选进入位置沿着水平直线路径移动到初始目标位置时是否发生碰撞。第一运动方案采用的是水平和垂直直线运动。为了便于描述,在本文中将该候选进入位置称为优选进入位置。
具体而言,最终路径可以包括从优选进入位置到初始目标位置的水平直线路径以及从初始目标位置到最终目标位置的垂直直线路径。在这种情况下,可以将当前对象从优选进入位置沿着水平直线路径移动到初始目标位置,然后将当前对象从初始目标位置沿着垂直直线路径移动到最终目标位置。在整个过程中,能够避免当前对象发生碰撞,从而提升码放效率。
在一些情况下,当前对象可能最初位于不同于优选进入位置的位置。那么,在一些实现方式中,可以将当前对象移动到优选进入位置正上方的某个位置,然后将当前对象从该位置垂直地移动到优选进入位置。当然,在其它实现方式中,还可以采用其它方式将当前对象移动到优选进入位置,本文对此不作限定。
在一些实施例中,如果确定在将当前对象在最终目标位置的周围空间以水平直线方式移动到初始目标位置时发生碰撞,那么可以确定第二运动方案是否可行。第二运动方案将使得当前对象以倾斜状态插入从而到达最终目标位置。
如果第二运动方案可行,那么可以使用第二运动方案确定最终路径。
如果第二运动方案不可行,那么可以使用第三运动方案确定最终路径。第三运动方案将使得当前对象以自上而下方式到达最终目标位置
在本文中,所提到的运动方案可以是指当前对象从进入环境到移动至最终目标位置的整个运动过程。例如,第一运动方案可以包括当前对象从优选进入位置到最终目标位置的整个过程,第二运动方案可以包括当前对象从初始倾斜位置到最终目标位置的整个过程(这将在下文进一步描述),第三运动方案可以包括从起始位置到最终目标位置的整个过程(这也将在下文进一步描述)。
可以看出,由于第一运动方案采用水平和垂直运动,可能需要在最终目标位置周围有一定的缓冲空间来防止当前对象发生碰撞。而如果没有缓冲空间来采用第一运动方案,则可以考虑是否可以采用第二运动方案。第二运动方案可以采用倾斜插入方式。本文中提到的倾斜插入方式可以是指当前对象本身处于倾斜状态(例如相对于水平面倾斜)并且以该倾斜状态进行插入,从而到达最终目标位置处。因此,第二运动方案一般需要当前对象能够处于一定的倾斜角度以及在最终目标位置周围具有一定的缓冲空间,以避免与相邻对象发生碰撞。在一般情况下,第二运动方案所需要的缓冲空间比第一运动方案所需要的缓冲空间要小。
如果第二运动方案可行,那么可以基于第二运动方案确定最终路径。而如果第二运动方案不可行,例如在一些情况下可能没有合适的倾斜角度或者在最终目标位置周围没有一定的缓冲空间,则可以采用第三运动方案来确定最终路径。第三运动方案采用自上而下方式,也就是将当前对象从上而下垂直地放置到最终目标位置。
可见,上述三种运动方案可以分别在不同的情况下应用。因此,本公开内容的实施例可以基于是否发生碰撞,来动态地选择优选的运动方案,这样可以在避免对象发生碰撞的情况下将对象高效地放置到最终目标位置。例如,对于下文的图5至图7描述的具体示例来说,在安全性和运动量方面,第一运动方案可以介于第二运动方案和第三运动方案之间,而在对象放置紧密度方面,第一运动方案和第二运动方案可以优于第三运动方案。当然,关于各个运动方案在安全性、运动量和对象放置紧密度方面的性能,在不同的场景下可能是不同的。
在一些实施例中,关于第二运动方案是否可行,可以基于对象倾斜角度以及水平缓冲距离来判断。
例如,可以确定对象倾斜角度。对象倾斜角度可以表示当前对象在处于倾斜状态时被倾斜的左侧面与水平面之间的夹角,该夹角实际上可以表明对象的倾斜程度。在一些实现方式中,该夹角可以在针对当前对象的正面投影平面中进行计算得到,例如,上述夹角可以表示为左侧面在正面投影平面上的投影线与水平面在正面投影平面上的投影水平线之间的夹角。正面投影平面可以是与当前对象的正面平行的平面,在三投影面体系中也可以被称为V面。当沿着与当前对象的正面垂直的方向将当前对象投影到V面时,可以形成当前对象的正面投影。
另外,可以理解的是,在大多数码垛或装箱的场景中,对象一般具有长方体形状,例如,对象的侧面一般与正面和背面呈直角,并且与顶面和底面呈直角,另外正面和背面与顶面和底面呈直角。因此,当前对象处于倾斜状态通常可以包括当前对象的侧面与z轴呈非零夹角,在这种情况下,当前对象的底面也与水平面呈非零夹角。相应地,当前对象处于水平状态通常可以包括当前对象的侧面与z轴平行,在这种情况下,当前对象的底面可以与水平面平行。
水平缓冲距离可以表示当前对象从倾斜状态旋转到水平状态之后当前对象的正面与最靠近的相邻对象之间的水平距离。在一些实施例中,该水平距离通常可以在针对当前对象的侧面投影平面中计算得到,例如,该水平距离可以表示为当前对象的正面在所述侧面投影平面上的投影线与所述最靠近的相邻对象在所述侧面投影平面上的投影之间的距离。侧面投影平面可以是与当前对象的侧面平行的平面,在三投影面体系中也可以被称为W面。当沿着与当前对象的侧面垂直的方向将当前对象投影到W面时,可以形成当前对象的侧面投影。当前对象的正面和侧面可以基于机器人的视角来定义。当然,也可以是依据实际应用场景来指定的。关于前面提到的水平面投影,其实际上是在水平投影平面产生的投影,水平投影平面在三投影面体系中可以被称为H面。
如果对象倾斜角度大于或等于角度阈值,并且水平缓冲距离大于距离阈值,则可以确定第二运动方案可行。角度阈值可以是根据实际应用需求、应用场景等来确定,比如机器人的运动参数等等。例如,角度阈值可以确保机器人以一定的倾斜姿态将当前对象倾斜。距离阈值可以根据实际应用需求、应用场景等来确定,比如,距离阈值可以基于所述环境来确定。例如,距离阈值可以是0。这样,当水平缓冲距离大于0,可以表明当前对象在旋转到水平状态时与相邻对象之间具有一定的缓冲空间。
如果对象倾斜角度小于角度阈值或者水平缓冲距离小于或等于距离阈值时,确定第二运动方案不可行。可以理解的是,本文提到的“小于”、“小于或等于”、“大于”、“大于或等于”之类的比较关系实际上可以取决于相应阈值的设定。因此,在不同的场景中,这样的关系可能随着阈值的具体设定而调整,本文的技术方案的范围包含这样的变型。
在一些实施例中,可以采用各种适当的方式来确定对象倾斜角度。例如,在一种实现方式中,对象倾斜角度可以基于理论倾斜角度进行采样得到的。例如,可以首先确定理论倾斜角度。理论倾斜角度可以表示在针对当前对象的正面投影平面上第一参考点和第二参考点的连线与水平面之间的夹角。
第一参考点可以是在当前对象从倾斜状态旋转到水平状态时在针对当前对象的正面投影平面上投影出的并且位于当前对象的左侧面上的支点。如前所述,在码垛或装箱场景中,对象通常具有长方体形状。在这种情况下,该支点实际上是将当前对象从倾斜状态到水平状态的旋转轴投影到正面投影平面上得到的点。另外,在正面投影平面上,第一参考点和第二参考点的连线可以不穿过环境中的已放置对象的任何面。例如,第一参考点和第二参考点的连线可以在环境中的已放置对象之上或者最多与环境中的已放置的最高对象的顶面的棱上的点相交。因此,在给定第一参考点的情况下,按照上述针对第一参考点和第二参考点的连线的要求,可以在环境中找到第二参考点。例如,第一参考点可以是目标点正上方的点,并且与目标点相隔一定的距离,该距离可以根据实际应用场景、业务需求等因素来决定。例如,如前所述,目标点可以是在当前对象在处于最终目标位置时的顶部且左侧且后侧的点。第二参考点可以是环境的侧壁上的某个点(例如,如果存在侧壁并且侧壁高于所有已放置对象的话)或者在某个其它对象的顶面的棱上的某个点(例如,如果没有侧壁,而该其它对象是环境中的已放置对象中的最高对象的话),只要满足第一参考点和第二参考点之间的连线要求即可。
对象倾斜角度可以大于理论倾斜角度并且小于90度。
在一些实施例中,可以确定理论水平距离。理论水平距离可以表示在侧面投影平面上当前对象在处于最终目标位置时正面与最接近的相邻对象之间的水平距离。可以基于理论水平距离,确定水平缓冲距离。水平缓冲距离可以小于理论水平距离。例如,可以通过从0到理论水平距离之间进行采样来得到水平缓冲距离。在一些实现方式中,在确定最终目标位置之后,结合当前对象的尺寸信息和在最终目标位置周围已放置的对象的尺寸信息等相关信息,可以得到理论水平距离。例如,在最终目标位置周围已放置的对象的尺寸信息可以通过相机等针对已放置对象采集的图像数据来得到。当然,也可以采用其它方式来得到在最终目标位置周围已放置的对象的尺寸信息,本文对此不作限定。
在一些实施例中,在确定第二运动方案可行的情况下,可以使用第二运动方案确定最终路径,该最终路径可以包括从当前对象在环境中的初始倾斜位置到准备位置的直线路径、从准备位置到插入位置的旋转路径以及从插入位置到最终目标位置的自上而下路径。
具体地,当前对象在处于初始倾斜位置和准备位置时都保持相同的倾斜状态,该倾斜状态可以是由前述对象倾斜角度来确定的。另外,如前所述,初始倾斜位置到准备位置是直线路径,初始倾斜位置和准备位置可以处于相同的高度。初始倾斜位置和准备位置的高度可以基于从第一参考点到当前对象的底部的距离来确定。例如,在确定第一参考点之后,可以知道第一参考点本身的高度,这样结合从第一参考点到当前对象的底部的距离,确定初始倾斜位置和准备位置的高度。
准备位置和插入位置都可以在最终目标位置上方,二者区别在于,当前对象在准备位置处具有倾斜状态,而在经过旋转路径之后,当前对象在插入位置处具有水平状态。如前所述,由于当前对象与相邻对象之间存在水平缓冲距离,从插入位置到最终目标位置的路径可能是从上而下的斜线路径。
在一些实施例中,如果第二运动方案不可行,则可以使用第三运动方案确定最终路径。在这种情况下,最终路径可以包括从当前对象在环境中的起始位置到最终目标位置的垂直直线路径。那么可以理解的是,当前对象在处于起始位置和最终目标位置时的水平面投影是重合的。如前所述,最终目标位置处的空间在水平面上的投影区域的大小可以大于或等于当前对象的底表面的面积。这样,可以将当前对象从起始位置垂直地移动到最终目标位置。
可见,本公开内容提供了三种运动方案。可以根据环境的不同状况,动态地且自适应地选择地三种运动方案之一来避免对象发生碰撞,从而高效地完成对象的码放,而在整个过程中无需人工手动调整相关运动参数。
为了更加清楚地理解本公开内容的实施例,下面将结合具体示例进行描述。应当明白,以下示例并不限制本公开内容的范围。
图3是根据一些实施例的用于确定放置对象的路径的过程的示意性流程图。
如图3所示,在步骤302处,可以确定环境的对象放置状况。如前所述,可以利用3D相机获取环境的图像,基于图像来确定环境的对象放置状况,比如是否已经放置对象、已放置对象的位置和尺寸等。
在步骤304处,可以基于环境的对象放置状况,确定当前对象的最终目标位置。
在步骤306处,可以确定初始目标位置。初始目标位置可以在最终目标位置正上方。
例如,假设最终目标位置可以表示为(xtarget,ytarget,ztarget),那么初始目标位置可以表示为(xtarget,ytarget,z′target),其中,z′target=d+ztarget。例如,在一些实现方式中,d=0.5hi,hi是如前所述的当前对象自身的高度。
在步骤308中,可以在周围空间中确定至少一个候选进入位置。
例如,如前所述,周围空间的水平投影区域可以表示为(x∈[xi-a,xi+li+a],y∈[yi-b,yi+wi+b]),其中,(xi,yi,zi)可以表示最终目标位置的某个指定点的坐标。例如,指定点可以是当前对象处于最终目标位置时的底部且左侧且后侧的点,左右方向和前后方向可以预先定义。(li,wi,hi)可以表示当前对象的尺寸,即长度、宽度和高度(例如,i可以表示当前对象的索引)。
至少一个候选进入位置与初始目标位置可以处于相同的高度,这样,在每个候选进入位置与初始目标位置之间存在水平直线路径。因此,每个候选进入位置的z轴坐标是相同的,假设为zentry,那么zentry=z′target。
在步骤310中,可以确定每个候选进入位置的高度权重值。
如前所述,可以将环境的水平投影区域划分为多个大小相等的网格。每个网格可以具有相应的高度值,这表示该网格被占用的高度。为了便于理解,下面结合图4A的示例来说明高度值。图4A示出了与高度值相关联的网格划分的一个示例。例如,如图4A所示,标记有“5”的网格可以表示已经放置对象,值“5”可以指示该对象的高度。如前所述,值“5”可以是对象的实际高度,也可以是将对象的实际高度进行处理之后得到的值。标记有“4”的网格可以表示当前对象将占用的网格,也就是当前对象在最终目标位置处的水平面上的投影区域。值“4”可以表示当前对象的高度。网格402的左上角的点可以是前述指定点,比如其具有坐标(xi,yi,zi)。在图4A中,虚线区域404可以是周围空间的水平投影区域,例如可以表示为[xi-a,xi+li+a],y∈[yi-b,yi+wi+b])。
在周围空间的水平投影区域404中,可以确定至少一个候选进入位置。为了便于理解,图4B示出了一个候选进入位置的示例。在图4B的示例中,区域406可以表示当前对象在处于该候选进入位置时在水平面上的投影区域。如前所述,在码垛或装箱场景中,对象通常具有长方体形状。在这种情况下,区域406的大小可以等于当前对象的底表面的面积。针对该候选进入位置,可以将区域406四周的各个网格的高度值相加得到该候选进入位置的高度权重值。例如,在图4B的示例中,该候选进入位置的高度权重值可以等于2。虽然在图4B的示例中,候选进入位置的高度权重值是基于区域406四周的一圈网格的高度值来计算的,然而如前所述,在其它实现方式中,候选进入位置的高度权重值还可以基于区域406四周的两圈或者更多圈的网格的高度值来计算。本文对此不作限定。
按照类似的方式,可以针对每个候选进入位置确定高度权重值。
在步骤312中,可以按照高度权重值从小到大的顺序将至少一个候选进入位置进行排序。
在步骤314中,针对经过排序的至少一个候选进入位置,可以依次确定是否存在一候选进入位置使得将当前对象从该候选进入位置沿着水平直线路径移动到初始目标位置时不发生碰撞。
一旦针对某个候选进入位置,确定不发生碰撞,那么执行步骤316。在步骤316处,可以基于第一运动方案来确定最终路径。在本文中将该候选进入位置称为优选进入位置。
如果针对某个候选进入位置确定发生碰撞,则继续针对下一个候选进入位置确定是否发生碰撞,如箭头318所示。
如果确定针对所有的候选进入位置都会发生碰撞,那么可以进行到步骤320。
在步骤320处,可以确定第二运动方案是否可行。例如,可以通过如前所述的方式来确定第二运动方案是否可行。
如果第二运动方案可行,则在步骤322处,可以使用第二运动方案来确定最终路径。
如果第二运动方案不可行,则在步骤324处,可以使用第三运动方案来确定最终路径。
为了便于理解,图5示出了第一运动方案的应用场景的示例。图5的示例是结合图1A的示例来描述的,因此仍然沿用相同的附图标记。
第一运动方案可以采用水平和垂直直线运动。例如,在图5的示例中,将当前对象110A放置到最终目标位置506的最终路径可以包括从优选进入位置502到初始目标位置504的水平直线路径以及从初始目标位置504到最终目标位置506的垂直直线路径。
图6A至图6C示出了第二运动方案的应用场景的示例。
图6A示出了当前对象620被放置到最终目标位置的状态的示意图。因此,在图6A的示例中,当前对象620所处的位置可以是最终目标位置。另外,在图6A的示例中,假设用于放置对象的环境具有侧壁640,各个对象参照侧壁进行放置。
图6B示出了与图6A对应的正视图,即在针对当前对象的正面投影平面上的视图。另外,在图6B中示出了采用第二运动方案确定的最终路径。图6C示出了就右侧角度而言与图6A对应的侧视图,即在针对当前对象的侧面投影平面上的视图。为了显示清楚以及便于说明当前对象620的移动路径,在图6B和图6C中未进一步示出附图标记“620”,而是示出了当前对象620在移动过程中的各个位置。
首先描述如何确定第二运动方案是否可行。如图6B所示,可以首先确定理论倾斜角度α0。理论倾斜角度α0可以是穿过第一参考点EP0和第二参考点EP1的连线与水平线之间的夹角。在图6B的正视图中可以看出,第一参考点EP0可以是当前对象从倾斜状态旋转到水平状态的支点,该支点在当前对象的左侧面上。例如,第一参考点EP0可以是根据目标点EP而确定的。如图6A所示,目标点EP可以是在当前对象620处于最终目标位置时顶部且左侧且后侧的点。如图6B所示,第一参考点EP0可以是位于目标点EP上方的点。例如,第一参考点EP0可以在目标点EP的正上方,与目标点EP相距一定距离,该距离可以根据实际应用场景、业务需求等来确定。
第二参考点EP1可以基于与第一参考点EP0的连线要求来确定的。如前所述,第一参考点EP0和第二参考点EP1之间的连线不应穿过环境中的已放置对象的任何面。例如,该连线应当在环境中的已放置对象之上或者最多与环境中的已放置对象的顶面的棱上的点相交。例如,在图6B的示例中,由于侧壁640高于环境中的已放置对象,因此第二参考点EP1可以是侧壁640上的顶点。当然,在一些情况下可能没有侧壁,那么第二参考点EP1可能是其它已放置对象中的最高对象的顶面的棱上的某个点。
然后,可以基于理论倾斜角度α0来确定对象倾斜角度α1,也就是当前对象处于倾斜状态时的倾斜角度。对象倾斜角度α1可以大于理论倾斜角度α0并且小于90度。例如,对象倾斜角度α1可以通过采样来得到。如图6B所示,对象倾斜角度α1可以是当前对象的左侧面与水平面之间的夹角。
此外,可以确定理论水平距离L3。如图6C的侧视图所示,理论水平距离L3可以表示在当前对象处于最终目标位置608时正面与最接近的相邻对象之间的距离。可以基于理论水平距离L3来确定水平缓冲距离L4。如图6C的侧视图所示,水平缓冲距离L4可以是当前对象从倾斜状态旋转到水平状态之后正面与最接近的相邻对象之间的水平距离。例如,可以通过采样方式确定水平缓冲距离L4。水平缓冲距离L4小于理论水平距离L3。例如,可以在0到L3之间进行采样,确定水平缓冲距离L4。
基于对象倾斜角度α1和水平缓冲距离L4,可以确定第二运动方案是否可行。例如,如果对象倾斜角度α1大于或等于角度阈值并且水平缓冲距离L4大于距离阈值,则可以确定第二运动方案可行。否则,第二运动方案是不可行的。距离阈值可以根据实际应用场景等因素来决定,例如,可以基于要放置当前对象的环境来计算得到。
在第二运动方案可行的情况下,可以确定最终路径。例如,图6B示出了将当前对象放置到最终目标位置608的最终路径。如图6B所示,可以将当前对象沿着直线路径从初始倾斜位置602移动到准备位置604。另外,如图6B所示,在当前对象从初始倾斜位置602移动到准备位置604时,移动距离可以是L1,在移动过程中保持的角度可以是α2。角度α2可以是基于对象倾斜角度α1来确定的。移动距离L1可以根据实际应用场景等来确定。可以看出,在初始倾斜位置602和准备位置604处,当前对象具有相同的倾斜状态,而且保持相同的高度。该高度可以根据倾斜高度L2和第一参考点EP0来确定。例如,如图6B所示,倾斜高度L2可以表示从第一参考点EP0到当前对象的底部的距离。
然后,可以将当前对象从准备位置604旋转到插入位置606(即旋转路径),使得当前对象在插入位置处具有水平状态。之后,可以将当前对象从上而下移动到最终目标位置608(即自上而下路径)。结合图6B和图6C的示例,由于与相邻对象之间的缓冲距离,当前对象从上向下移动到最终目标位置608可以是斜线路径。
可见,第二运动方案可以适应更加复杂的放置环境,而且有利于提升码放的紧密度。此外,相比与第一运动方案,第二运动方案所需要的缓冲空间可以较小。
图7是示出了第三运动方案的应用场景的示例。下面结合图1B的示例来描述图7,因此在图7中沿用与图1B相同的附图标记。
如图7所示,可以将当前对象110B从起始位置702沿着垂直直线路径直接移动到最终目标位置704处。起始位置702在最终目标位置704的正上方,也就是它们在水平面上的投影是重合的。
可见,第三运动方案的路径规划相对简单,可以适用于一些例如要求较低的放置环境。比如,对于码放紧密度要求不太高、放置空间较为宽松等的环境来说,可以采用第三运动方案。
图8是根据一些实施例的用于确定放置对象的路径的装置的示意性框图。
如图8所述,装置800可以包括第一确定单元802、第二确定单元804以及第三确定单元806。
第一确定单元802可以基于环境的对象放置状况,确定待放置的当前对象在环境中的最终目标位置。
第二确定单元804可以确定在将当前对象在最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞。当前对象在处于初始目标位置和最终目标位置时的水平面投影是重合的,所述初始目标位置和所述最终目标位置处于不同的高度。
第三确定单元806可以基于是否发生碰撞的确定结果,确定将当前对象放置到所述最终目标位置的最终路径。当前对象在沿着最终路径移动时将不发生碰撞。
装置800的各个单元可以执行上面关于解码设备描述的具体过程,因此,为了描述的简洁,此处不再赘述装置800的各个单元的具体操作和功能。
图9是根据一些实施例的用于确定放置对象的路径的装置的示意性框图。
如图9所示,装置900可以包括处理器902、存储器904、输入接口906以及输出接口908,这些模块可以通过总线910耦合在一起。然而,应当理解,图9仅是举例说明,而并非对本公开内容的范围进行限制。例如,在不同的应用场景中,装置900可能包括更多或更少的模块,本文对此不作限定。
存储器904可以用于存储与装置900的功能或操作相关的各种数据(比如与本文提到的各种位置、路径等相关的信息、高度值、高度权重值等)、可执行指令或可执行代码等。例如,存储器904可以包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器、硬盘等等。
处理器902可以用于执行或实现装置900的各种功能或操作,例如本文描述的确定放置对象的路径的各种操作。例如,处理器902可以执行存储在存储器904中的可执行代码或指令,从而实现关于本公开内容的各个实施例所描述的各种过程。处理器902可以包括各种适用的处理器,例如,通用处理器(比如中央处理单元(Central Processing Unit,CPU))、专用处理器(比如数字信号处理器、图形处理单元、专用集成电路等等)。
输入接口906可以接收各种形式的数据或消息或信息等。例如,输入接口906可以接收本文提到的关于环境的一些信息,比如从3D相机接收环境的图像等。在一些实现方式中,输入接口906还可以实现基于有线或无线通信标准的通信。
输出接口908可以输出各种形式的数据或消息或信息等。例如,输出接口908可以输出本文描述的最终路径等,以便控制机器人基于最终路径将当前对象放置到最终目标位置。在一些实现方式中,输出接口908可以实现基于各种适用的有线或无线通信标准的通信。
本公开内容的实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以存储有可执行代码,可执行代码在被计算机执行时使得计算机实现上面描述的具体过程。
例如,计算机可读存储介质可以包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、静态随机存取存储器(Static Random Access Memory,SRAM)、硬盘、闪存等等。
上文对本公开内容的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际需求来省略某些步骤或单元。在上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,有些单元可能分别由多个物理实体实现,或者可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (15)
1.一种用于确定放置对象的路径的方法,包括:
基于环境的对象放置状况,确定(202)待放置的当前对象在所述环境中的最终目标位置;
确定(204)在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞,其中,所述当前对象在处于所述初始目标位置和所述最终目标位置时的水平面投影是重合的,所述初始目标位置和所述最终目标位置处于不同的高度;
基于是否发生碰撞的确定结果,确定(206)将所述当前对象放置到所述最终目标位置的最终路径,其中,所述当前对象在沿着所述最终路径移动时将不发生碰撞。
2.根据权利要求1所述的方法,其中,确定是否发生碰撞包括:
在所述周围空间中,确定至少一个候选进入位置,其中,所述至少一个候选进入位置和所述初始目标位置都处于相同的高度;
针对所述至少一个候选进入位置依次确定是否存在一候选进入位置使得在将所述当前对象从该候选进入位置沿着水平直线路径移动到所述初始目标位置时不发生碰撞。
3.根据权利要求1所述的方法,还包括:
确定每个候选进入位置的高度权重值,其中,每个候选进入位置的高度权重值用于表示在该候选进入位置四周的空间被占用的状况;
针对所述至少一个候选进入位置依次确定是否存在一候选进入位置使得在将所述当前对象从该候选进入位置沿着水平直线路径移动到所述初始目标位置时不发生碰撞,包括:
按照高度权重值从小到大的顺序,针对所述至少一个候选进入位置依次确定是否存在一候选进入位置使得在将所述当前对象从该候选进入位置沿着水平直线路径移动到所述初始目标位置时不发生碰撞。
4.根据权利要求3所述的方法,其中,确定每个候选进入位置的高度权重值,包括:
确定每个候选进入位置的高度权重值,其中,所述周围空间在水平面上的投影区域被划分为大小相等的多个网格,每个网格具有高度值,每个网格的高度值用于表示占用该网格的对象的高度,每个候选进入位置的高度权重值是通过将所述当前对象在处于该候选进入位置时在水平面上的投影区域的外围区域内的各个网格的高度值相加得到的。
5.根据权利要求1至4中任一项所述的方法,还包括:
确定所述周围空间,其中,所述周围空间在水平面上的投影区域是通过将对象投影区域扩大预定范围而得到的,所述对象投影区域是所述当前对象在处于所述最终目标位置时在水平面上的投影区域。
6.根据权利要求2所述的方法,其中,确定最终路径,包括:
如果确定在将所述当前对象从优选进入位置(502)沿着水平直线路径移动到所述初始目标位置(504)的过程中不发生碰撞,则使用第一运动方案确定所述最终路径,其中,所述第一运动方案采用水平直线运动和垂直直线运动,
所述优选进入位置(502)是在针对所述至少一个候选进入位置依次确定是否发生碰撞时使得所述当前对象不发生碰撞的第一个候选进入位置,
所述最终路径包括从所述优选进入位置(502)到所述初始目标位置(504)的水平直线路径以及从所述初始目标位置(504)到所述最终目标位置(506)的垂直直线路径。
7.根据权利要求1所述的方法,其中,确定最终路径,包括:
如果确定在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时发生碰撞,则确定第二运动方案是否可行,其中,所述第二运动方案将使得所述当前对象以倾斜状态插入从而到达所述最终目标位置;
如果所述第二运动方案可行,则使用所述第二运动方案确定所述最终路径;
如果所述第二运动方案不可行,则使用第三运动方案确定所述最终路径,其中,所述第三运动方案将使得所述当前对象以自上而下方式到达所述最终目标位置。
8.根据权利要求7所述的方法,其中,确定第二运动方案是否可行,包括:
确定对象倾斜角度(α1)和水平缓冲距离(L4),其中,所述对象倾斜角度(α1)表示所述当前对象在处于倾斜状态时被倾斜的左侧面与水平面之间的夹角,所述水平缓冲距离(L4)表示在所述当前对象从倾斜状态旋转到水平状态之后所述当前对象的正面与最接近的相邻对象之间的水平距离;
如果所述对象倾斜角度(α1)大于或等于角度阈值并且所述水平缓冲距离(L4)大于距离阈值,则确定所述第二运动方案可行;
如果所述对象倾斜角度(α1)小于所述角度阈值或者所述水平缓冲距离(L4)小于或等于所述距离阈值,则确定所述第二运动方案不可行。
9.根据权利要求8所述的方法,其中,确定所述对象倾斜角度包括:
确定理论倾斜角度(α0),其中,所述理论倾斜角度(α0)表示第一参考点(EP0)和第二参考点(EP1)的连线与水平面之间的夹角,所述第一参考点(EP0)是在所述当前对象从倾斜状态旋转到水平状态时在针对所述当前对象的正面投影平面上投影出的并且位于所述左侧面上的支点,并且在所述正面投影平面上,所述第二参考点(EP1)与所述第一参考点(EP0)之间的连线不穿过所述环境中的已放置对象的任何面;
基于所述理论倾斜角度(α0),确定所述对象倾斜角度(α1),其中,所述对象倾斜角度(α1)大于所述理论倾斜角度(α0)并且小于90度。
10.根据权利要求8所述的方法,其中,确定所述水平缓冲距离包括:
确定理论水平距离(L3),其中,所述理论水平距离(L3)表示在在所述当前对象处于所述最终目标位置时所述正面与最接近的相邻对象之间的水平距离;
基于所述理论水平距离(L3),确定所述水平缓冲距离(L4),其中,所述水平缓冲距离(L4)小于所述理论水平距离(L3)。
11.根据权利要求8所述的方法,其中,使用所述第二运动方案确定所述最终路径,包括:
确定所述最终路径,其中,所述最终路径包括从所述当前对象在所述环境中的初始倾斜位置(602)到准备位置(604)的直线路径、从所述准备位置(604)到插入位置(606)的旋转路径、以及从所述插入位置(606)到所述最终目标位置(608)的自上而下路径,
所述当前对象在处于所述初始倾斜位置(602)和所述准备位置(604)时具有相同的倾斜状态,所述倾斜状态是根据所述对象倾斜角度(α1)确定的,所述初始倾斜位置(602)和所述准备位置(604)两者的高度是基于从所述第一参考点(EP0)到所述当前对象的底部的距离(L2)来确定的,
所述准备位置(604)和所述插入位置(606)位于所述最终目标位置上方。
12.根据权利要求7所述的方法,其中,使用第三运动方案确定所述最终路径,包括:
确定所述最终路径,其中,所述最终路径包括从所述当前对象在所述环境中的起始位置(702)到所述最终目标位置(704)的垂直直线路径,其中,所述当前对象在处于所述起始位置(702)和所述最终目标位置(704)时的水平面投影是重合的。
13.一种用于确定对象的路径的装置,包括:
第一确定单元,被配置为基于环境的对象放置状况,确定待放置的当前对象在所述环境中的最终目标位置;
第二确定单元,被配置为确定在将所述当前对象在所述最终目标位置的周围空间以水平直线方式移动到初始目标位置时是否发生碰撞,其中,所述当前对象在处于所述初始目标位置和所述最终目标位置时的水平面投影是重合的,所述初始目标位置和所述最终目标位置处于不同的高度;
第三确定单元,被配置为基于是否发生碰撞的确定结果,确定将所述当前对象放置到所述最终目标位置的最终路径,其中,所述当前对象在沿着所述最终路径移动时将不发生碰撞。
14.一种用于确定对象的放置路径的装置,包括:
至少一个处理器;
与所述至少一个处理器进行通信的存储器,其上存储有可执行代码,所述可执行代码在被所述至少一个处理器执行时使得所述至少一个处理器执行根据权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其存储有可执行代码,所述可执行代码在被执行时使得计算机执行根据权利要求1至12中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211311008.0A CN117961877A (zh) | 2022-10-25 | 2022-10-25 | 用于确定放置对象的路径的方法、装置和计算机可读存储介质 |
EP23204798.5A EP4360821A1 (en) | 2022-10-25 | 2023-10-20 | Method, apparatus and computer-readable storage medium for determining a path for placing an object |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211311008.0A CN117961877A (zh) | 2022-10-25 | 2022-10-25 | 用于确定放置对象的路径的方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117961877A true CN117961877A (zh) | 2024-05-03 |
Family
ID=88506620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211311008.0A Pending CN117961877A (zh) | 2022-10-25 | 2022-10-25 | 用于确定放置对象的路径的方法、装置和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4360821A1 (zh) |
CN (1) | CN117961877A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6592969B2 (ja) * | 2015-06-02 | 2019-10-23 | セイコーエプソン株式会社 | 嵌合方法 |
JP7145702B2 (ja) * | 2018-09-07 | 2022-10-03 | 株式会社日立物流 | ロボットシステム及びその制御方法 |
US11020854B2 (en) * | 2019-11-05 | 2021-06-01 | Mujin, Inc. | Robotic system with wall-based packing mechanism and methods of operating same |
US20220016779A1 (en) * | 2020-07-15 | 2022-01-20 | The Board Of Trustees Of The University Of Illinois | Autonomous Robot Packaging of Arbitrary Objects |
-
2022
- 2022-10-25 CN CN202211311008.0A patent/CN117961877A/zh active Pending
-
2023
- 2023-10-20 EP EP23204798.5A patent/EP4360821A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4360821A1 (en) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110031824B (zh) | 激光雷达联合标定方法及装置 | |
US20220270293A1 (en) | Calibration for sensor | |
US9205562B1 (en) | Integration of depth points into a height map | |
US9024896B2 (en) | Identification method for simultaneously identifying multiple touch points on touch screens | |
US20210110599A1 (en) | Depth camera-based three-dimensional reconstruction method and apparatus, device, and storage medium | |
US9486921B1 (en) | Methods and systems for distributing remote assistance to facilitate robotic object manipulation | |
TWI815221B (zh) | 貨物取放方法、貨物取放裝置、倉儲機器人、倉儲系統和計算機可讀儲存媒體 | |
CN111815707B (zh) | 点云确定方法、点云筛选方法、装置、计算机设备 | |
CN112499276B (zh) | 多尺寸箱子的混合码垛方法、设备、装置及计算机可读存储介质 | |
US8994726B1 (en) | Systems and methods for preparing a model of an environment for display | |
CN109903346B (zh) | 相机姿态检测方法、装置、设备及存储介质 | |
EP3048555B1 (en) | Image processing device, image processing method, and image processing program | |
Triggs et al. | Automatic camera placement for robot vision tasks | |
CN111985675A (zh) | 托盘空间规划方法、码垛方法及其装置、及电子设备 | |
CN108959753A (zh) | 碰撞检测方法、系统、可读存储介质及计算机设备 | |
CN112060079A (zh) | 机器人及其碰撞检测方法和装置 | |
CN115014328A (zh) | 一种栅格地图的动态加载方法、装置、设备和介质 | |
CN117961877A (zh) | 用于确定放置对象的路径的方法、装置和计算机可读存储介质 | |
CN108876906A (zh) | 基于点云的全局平面优化建立虚拟三维模型的方法及装置 | |
CN114998381A (zh) | 管板焊接中焊接轨迹拟合方法、装置、设备及存储介质 | |
CN114235441A (zh) | 无人车实时碰撞检测方法及相关装置 | |
CN117733833A (zh) | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 | |
US8994725B1 (en) | Systems and methods for generating a model of an environment | |
JP2011081729A (ja) | 画像変換装置及び操作支援システム | |
CN113075647A (zh) | 机器人定位方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |