KR20230128502A - 동작 계획 - Google Patents
동작 계획 Download PDFInfo
- Publication number
- KR20230128502A KR20230128502A KR1020237025285A KR20237025285A KR20230128502A KR 20230128502 A KR20230128502 A KR 20230128502A KR 1020237025285 A KR1020237025285 A KR 1020237025285A KR 20237025285 A KR20237025285 A KR 20237025285A KR 20230128502 A KR20230128502 A KR 20230128502A
- Authority
- KR
- South Korea
- Prior art keywords
- model
- workspace
- mapping
- robot
- states
- Prior art date
Links
- 230000009471 action Effects 0.000 title claims description 19
- 238000013507 mapping Methods 0.000 claims abstract description 265
- 230000007704 transition Effects 0.000 claims abstract description 109
- 230000033001 locomotion Effects 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000015654 memory Effects 0.000 claims description 71
- 239000012636 effector Substances 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 4
- 210000000078 claw Anatomy 0.000 claims description 2
- 239000003973 paint Substances 0.000 claims description 2
- 238000005096 rolling process Methods 0.000 claims description 2
- 239000007921 spray Substances 0.000 claims description 2
- 238000003466 welding Methods 0.000 claims description 2
- 238000013459 approach Methods 0.000 description 28
- 239000010410 layer Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 9
- 241000234282 Allium Species 0.000 description 8
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000000670 limiting effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000000080 chela (arthropods) Anatomy 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 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/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1605—Simulation of manipulator lay-out, design, modelling of manipulator
-
- 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/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- 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/40472—Using exact cell decomposition
-
- 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/40476—Collision, planning for collision free path
-
- 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/40477—Plan path independent from obstacles, then correction for obstacles
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
작업 공간 요소(24)로 이산화된 작업 공간(4)에서 로봇에 대한 동작 계획을 수행하는 방법. 이 방법은 제1 모델(8a)을 생성 또는 수신하는 단계 및 개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델(8a)과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소(26)를 포함하는 제1 세트를 결정하는 단계를 포함한다. 제1 세트 및 개개의 상태 및 전환(들)에 관한 정보를 포함하는 제1 매핑이 생성된다. 이 방법은 제1 모델(8a)로부터 확장되는 제2 모델(8b)을 생성 또는 수신하는 단계 및 개개의 복수의 상태들 및 이들 상태들 사이의 전환에 대한 제2 모델(8b)과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들(28)을 포함하는 제2 세트를 결정하는 단계를 더 포함한다. 상기 제2 세트 및 개개의 상태 및 전환(들)에 관한 정보를 포함하는 제2 매핑이 생성된다.
Description
본 발명은 로봇에 대한 동작 계획에 관한 것으로, 특히 로봇 팔과 같은 다중 링크를 갖는 로봇에 대한 충돌 감지 및 예방에 국한되지는 않는 로봇에 대한 동작 계획에 관한 것이다.
최근 몇 년 동안, 로봇 공학, 특히 로봇이 이상적으로는 실시간 조건에서 변화하는 환경에 적응할 수 있는 유연한 로봇에 대한 관심이 계속 증가하고 있다. 이는 예를 들어 로봇이 인간과 함께 작업해야 하는 협업 설정과 같이 환경을 예측할 수 없는 상황에서 특히 중요하다.
동작 계획, 즉 로봇이 '작업 공간'으로 특징지어지는 환경 내에서 하나의 포지션 또는 상태로부터 다른 포지션 또는 상태로 이동하기 위해 취할 수 있는 적절한 경로를 결정하는 것을 수행하는 것은 로봇 공학에서 일반적인 목적이다.
이것은, 예를 들어, 로봇 팔이 분류가 필요한 물체가 들어 있는 통으로 이동하여 물체 중 하나를 집어 들고 해당 물체를 다른 적절한 용기로 옮긴 다음 통이나 다른 포지션으로 되돌아가는 것을 포함할 수 있습니다. 이 공정을 수행하려면 적절한 전환을 통해 이러한 상태 각각(즉, 베이스, 통, 수용 용기)을 통과하는 로봇을 위한 경로를 계획해야 한다. 이 공정을 일반적으로 당업계에서는 '동작 계획'이라고 한다.
로봇의 동작 계획에는 여러 가지 고려 사항이 수반된다. 로봇이 이들 상태 사이에서 원활하고 효율적으로 이동하는 것이 바람직하다. 로봇은 위에서 개략적으로 설명한 대로 주변 환경에 있는 물체와 상호 작용해야 할 수도 있다. 그러나 많은 적용예에서 로봇이 환경에 있는 장애물, 예를 들어 환경에 있는 정적 물체, 동적 표적(예를 들어, 사람, 동물 또는 다른 로봇) 및 로봇 자체(자기 충돌)와 충돌하지 않는 것도 중요하다. 따라서, 일반적으로 로봇이 특정 작업을 안전하고 효과적으로 수행할 수 있는 적절한 경로를 계획하는 것이 목적이다. 물론, 일부 적용예에서는, 예를 들어 버튼을 누르거나 도어를 여는 데 로봇을 사용하는 경우에는 충돌이 필요할 수 있다.
동작 계획의 일반적인 전략은 여러 노드와 에지(edge)로 구성된 '로드맵' 또는 '그래프'를 생성하는 것으로, 로드맵의 각각의 노드는 아래에서 추가로 상세히 설명하는 것처럼 로봇의 상태에 대응하는 하나 이상의 변수를 나타낸다. 이러한 노드를 연결하는 그래프의 에지는 상태들 사이의 전환을 나타낸다. 당해 기술분야 그 자체에서 공지된 그래프 검색 기법을 사용하여 원하는 동작을 찾을 수 있다.
로봇의 '구성'은 관절 각도에 대응하며, 전형적으로 각각의 관절에 대한 요소(즉, 벡터의 항목)를 갖는 벡터를 사용하여 설명되며, 각각의 요소는 자유도에 대응하므로 벡터는 전형적으로 관절 수와 동일한 수의 요소를 갖는다.
로봇의 '포즈(pose)'는 예를 들어 6 개의 자유도들을 가질 수 있는 엔드 이펙터의 포지션 및 배향에 대응한다. 포즈는 구성으로부터 계산될 수 있다. 주어진 포즈는 종종 여러 가지 구성에 의해 구현될 수 있다(관절 수가 6 개를 초과하는 경우 전형적으로 주어진 포즈를 구현할 수 있는 구성의 수는 무한대이다).
'구성 공간'(또는 'C-공간')은 전형적으로 관절 수와 동일한 수의 차원을 갖는다.
본 명세서에서 로봇과 관련하여 사용되는 '상태'라는 용어는 로봇의 구성, 로봇(또는 로봇의 일부)의 속도 및 시간 중 하나 이상을 포함할 수 있다. '전환'이라는 용어는 이러한 서로 다른 상태 사이의 전환(즉, 포지션, 속도, 시간 등의 변화)을 의미하는 데 사용된다.
작업 공간(즉, 로봇의 환경 표현)은 일반적으로 복셀, 픽셀, 셀 또는 이와 유사한 것일 수 있는 여러 '작업 공간 요소'로 이산화된다. 온라인 동작 계획 동안 동작을 효율적으로 무효화할 수 있도록 당업계에 알려진 예시적인 접근법은 문헌 [P. Leven and S. Hutchinson, "A framework for real-time path planning in changing environments," The International Journal of Robotics Research, 2002]에 설명된 '동적 로드맵'(DRM) 접근법이 있으며, 여기에는 이산화된 작업 공간과 로드맵 사이에 '매핑'을 생성하는 것이 포함된다. 매핑은 오프라인으로 구성할 수 있으며, 어떤 노드와 에지가 어떤 작업 공간 요소와 충돌(일반적으로 전체적으로 또는 부분적으로)을 일으키는지에 관한 정보를 포함한다. 추가의 접근법은 '병렬 DRM'(PDRM) 접근법으로 언급되는 문헌[Schumann-Olsen, H., Bakken, M., Holhjem, 0.H. 및 Risholm, P., 2014. Parallel dynamic roadmaps for real-time motion planning in complex dynamic scenes. In 3rd Workshop on Robots in Clutter, IEEE]에 설명되며, 이는 '구조화된 로드맵'을 구성하고 활용하는 방법을 설명한다.
후속 온라인 계획 공정 동안, 매핑을 조회 테이블로 사용할 수 있으며, 작업 공간의 장애물과 충돌하는 로드맵의 모든 노드나 에지는 무효화된다. 정적 장애물의 위치와 환경 레이아웃은 미리 알 수 있지만, 예를 들어 3D 센서(예를 들어, 3D 또는 '스테레오' 카메라)와 같은 센서를 사용하여 온라인 작업 동안 동적 장애물 및 환경 변화를 감지할 수 있다. 런타임 작동 동안 예를 들어 사람, 물체 또는 다른 로봇의 포지션 및 움직임을 감지하거나 이들의 거동을 예측할 수 있다.
일반적으로, 주어진 작업에 대한 경로를 계획하기 위해 로드맵과 함께 제공되는 플래너는 시작 및 종료 상태가 주어지고 로드맵을 사용하여 로드맵을 통해 무효화된 노드와 에지를 고려하지 않는 최단 경로, 가장 효율적인 경로 등 충돌이 없는 적절한 경로를 찾는다.
그러나, 당업계에 그 자체로 알려진 종래의 접근법에 따르면, 매핑은 주어진 로드맵, 물리적 로봇 설정 및 로컬 작업 공간에 대해 고정된다. 로드맵, 로봇 및/또는 작업 공간 중 하나라도 변경되면 전체 매핑을 변경하고 다시 만들어야 한다. 여기에는 추가된 센서, 서로 다른 그리퍼(및 그리퍼 상태), 파지된 물체와 같이 로봇에 적용된 모든 물리적 변경 사항도 포함된다. 이는 계산상 특히 효율적이지 않으며, 변경이 이루어질 경우 '준비된' 부품의 다양한 순열과 조합을 포괄하는 수많은 매핑을 보유하거나 로드맵, 로봇 및/또는 작업 공간의 변경 사항을 수용하기 위해 완전히 새로운 매핑을 생성하도록 상당한 메모리 요구량을 초래한다.
출원인은 전체 매핑을 다시 생성할 필요 없이 로드맵, 로봇 및/또는 로봇이 픽업한 물체의 물리적 범위, 작업 공간(또는 작업 공간 해상도)을 변경할 수 있도록 보다 유연한 매핑을 제공하는 것이 특히 유리한다는 점을 인식하였다.
제1 양태에서 볼 때, 본 발명은 로봇에 대한 동작 계획을 수행하는 방법을 제공하는데, 여기서 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 이 방법은,
제1 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하는 단계;
상기 제1 세트 및 제1 모델이 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하는 단계;
제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하는 단계; 및
상기 제2 세트 및 제2 모델이 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하는 단계
를 포함한다.
본 발명의 제1 양태는 로봇에 대한 동작 계획을 수행하도록 배열된 동작 플래너로 확장되며, 여기서 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 동작 플래너는,
제1 모델을 생성 또는 수신하고;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소들을 포함하는 제1 세트를 결정하고;
상기 제1 세트 및 제1 모델이 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하고;
제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하고;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하고; 그리고
상기 제2 세트 및 제2 모델이 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하도록 배열된다.
본 발명의 제1 양태는 또한 전술한 동작 플래너를 포함하는 로봇에까지 확장된다. 따라서, 본 발명의 제1 양태는 작업 공간에서 복수의 상태들 사이에서 작동하도록 배열된 로봇으로까지 확장되며, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되고, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 로봇은 상기 로봇에 대한 동작 계획을 수행하도록 배열된 동작 플래너를 더 포함하며, 상기 동작 플래너는,
제1 모델을 생성 또는 수신하고;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소들을 포함하는 제1 세트를 결정하고;
상기 제1 세트 및 제1 모델이 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하고;
제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하고;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하고; 그리고
상기 제2 세트 및 제2 모델이 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하도록 배열된다.
본 발명의 제1 양태는, 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 비일시적 컴퓨터 판독 가능 매체로까지 추가로 확장되며, 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되고, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 이 방법은,
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하는 단계;
상기 제1 세트 및 제1 모델이 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하는 단계;
제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하는 단계; 및
상기 제2 세트 및 제2 모델이 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하는 단계
를 포함한다.
본 발명의 제1 양태는 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 컴퓨터 소프트웨어 제품으로까지 더 확장되며, 여기서 로봇은 작업 공간의 복수의 상태들 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태들 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 이 방법은,
제1 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하는 단계;
상기 제1 세트 및 제1 모델이 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하는 단계;
제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하는 단계; 및
상기 제2 세트 및 제2 모델이 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하는 단계
를 포함한다.
따라서, 본 발명의 실시예들은 제1 모델(이하에서 설명하는 바와 같이 로봇의 제1 링크일 수 있음)에 대한 매핑이 생성 및 저장되고, 제2 모델(이하에서 설명하는 바와 같이 로봇 또는 일부 다른 물체의 제2 링크일 수 있음)에 대한 매핑이 제1 모델에 대한 매핑의 최상부 상에 구축되는 개선된 접근법을 제공하는 것으로 이해될 수 있을 것이다. 로봇의 다양한 부분 및/또는 외부 물체(예를 들어, 로봇이 조작할 물체)에 대한 매핑은 '모듈식'이며, 함께 결합하여 동작 계획에 적합한 전체 로봇의 매핑을 제공할 수 있다.
아래에서 더 자세히 설명하는 바와 같이, 본 발명은 전체 매핑을 '교체'하지 않고도(즉, '전체 로봇' 매핑을 교체할 필요 없이), 로봇의 설정을 변경할 수 있도록 할 수 있다. 즉, 로봇 및/또는 환경을 변경해야 할 때 전체 매핑을 다시 만들거나 전형적으로 시스템의 메모리 및 계산 요구 사항을 증가시키는 전체 로봇 매핑을 많이 생성하고 저장할 필요 없이 포함된 구성요소와 그 배열을 쉽게 변경할 수 있다.
제2 매핑에는 제1 매핑에 추가되는 작업 공간 요소 '닿음(hit)'(즉, 제2 모델과 적어도 부분적으로 충돌하는 작업 공간 요소 및 이러한 충돌을 초래한 해당 상태 및/또는 전환과 관련된 정보)가 포함되므로, ―아래에 자세히 설명되는 대로 구조화된 로드맵을 사용하는 경우―주어진 로봇 설정과 관련된 매핑을 저장하는 데 필요한 메모리 측면에서 상당한 압축이 가능할 수 있는데, 예를 들어 로봇이 가지고 있는 링크의 수, 링크(들)의 유형, 로봇이 운반하는 모든 물체 등이다.
전술한 바와 같이, 일부 실시예에서, 제1 차원 및 제2 차원―및 선택적으로, 일부 또는 모든 추가 차원(들)―에 대한 상태 및 전환은 구조화된 로드맵을 사용하여 배열될 수 있다. 이는 앞서 언급한 PDRM 기법을 사용하여 달성될 수 있다. 예를 들어, 두 개의 링크가 있는 로봇을 고려할 때 제2 링크는 제1 링크의 모든 상태에 대해 모든 상태로 포즈를 취할 수 있다. 구조화된 로드맵을 사용하면 제1 차원에 대한 고유 상태가 제2 차원에 대한 것보다 훨씬 적어지는 이점을 얻을 수 있으므로 해당 링크(또는 다른 실체)에 대해 동일한 "하위 상태"를 가진 모든 상태에 대해 매핑을 재사용함으로써 상당한 메모리 절약을 제공할 수 있다. 구조화된 로드맵이 본 발명의 필수 요건은 아니지만, 본 발명은 특히 그러한 구조화된 로드맵에 적합하다.
그러나 본 발명의 원리는 무작위 또는 확률적 샘플링 기법과 같이 당업계에 알려진 로드맵을 구축하기 위한 임의의 다른 접근법에도 적용된다.
일부 실시예에서, 제1 및/또는 제2 모델이 서로 다른 물체 및/또는 하나 이상의 추가 물체로 대체될 수 있는 물리적 실체가 추가될 수 있으며, 여기서 이들 추가 또는 대안적인 실체는 각각, 추가 모델에 의해 적어도 부분적으로 중첩되는 해당 추가 요소와 함께 저장된 자신 각각의= 매핑을 가질 수 있다. 이 추가 모델은 추가 또는 대안적인 물리적 실체의 표현을 포함할 수 있다.
일부 실시예에서, 제1 모델은 로봇의 제1 링크의 표현을 포함한다. 본 발명은 다중 링크 로봇, 즉 다중 자유도를 갖는 로봇 팔과 같은 다중 링크를 갖는 로봇에 특히 적합하다. 따라서, 잠재적으로 중첩될 수 있는 실시예 세트에서, 제2 모델은 로봇의 제2 링크의 표현을 포함한다.
일반적으로, 로봇이 다중 링크 로봇인 실시예에서, 각각의 링크는 개개의 이동 차원(또는 '자유도')을 제공할 수 있다. 이처럼, 각각의 모델에 의해 적어도 부분적으로 중첩되는 작업 공간 요소의 세트를 결정하는 단계는 상기 모델에 의해 제공되는 개개의 이동 차원에 의해 허용되는 상태(즉, 노드) 및 전환(즉, 에지)을 확인하는 단계를 포함한다.
일부 잠재적으로 중첩되는 실시예에서, 각각의 모델에 의해 적어도 부분적으로 중첩되는 작업 공간 요소의 세트를 결정하는 단계는 정적 장애물과의 충돌 및/또는 자체 충돌에 대한 상태 및 전환을 확인하는 단계를 포함한다. 따라서, 환경 및/또는 로봇 자체에서 알려진 정적 장애물과의 충돌을 반드시 초래하는 상태 및 전환은 고려 대상에서 자동으로 제외될 수 있다. 이는 일반적으로 운동학 체인에서 더 멀리 떨어진 물체, 즉 이후 링크, 엔드 이펙터 및/또는 외부 물체에 대한 고려 사항에도 영향을 미친다.
로봇은 추가적으로 또는 대안적으로 엔드 이펙터를 포함할 수 있다. 이처럼, 제2 모델(또는 본 발명의 특정 실시예와 관련하여 설명된 바와 같은 추가 모델)은 엔드 이펙터의 표현을 포함할 수 있다. 당업자는 엔드 이펙터가 전형적으로 로봇 팔의 단부에 위치하여 로봇의 환경 또는 외부 물체와 상호 작용하는 디바이스라는 것을 이해할 것이다. 따라서, 일련의 실시예들에서, 제2 모델은 로봇의 엔드 이펙터의 표현을 포함한다. 따라서, 하나의 일련의 실시예에서, 로봇은 팔 링크의 원위 단부에 엔드 이펙터를 갖는 팔 링크일 수 있다. 그러나, 아래에 더 상세히 설명되는 바와 같이, 일부 실시예에서는 더 복잡한 배열이 제공되는데, 예를 들어, 마지막 링크의 원위 단부에서 엔드 이펙터와 직렬로 배열된 다수의 팔 링크를 갖는 로봇 팔이 제공된다. 엔드 이펙터는 또한 로봇에 하나 이상의 이동 차원(즉, 자유도)을 제공할 수 있다.
본 발명에 따라 사용될 수 있는 엔드 이펙터는 그 자체로 당업계에 알려진 여러 가지 유형이 있다. 비제한적인 예로서, 엔드 이펙터는 손; 그리퍼; 클로; 조우(jaw); 바이스; 핀셋; 핀; 바늘; 자기 배열(영구 자석 및/또는 전자석을 포함); 흡입 컵; 용접 공구; 절단 공구; 롤링 공구; 망치; 레이저; 드릴; 메스 및/또는 페인트 스프레이 건 중 적어도 하나를 포함할 수 있다.
일련의 특정 실시예들에서, 서로 다른 작동 포지션(또는 '엔드 이펙터 상태')에 대응하여, 특정 엔드 이펙터에 대해 하나를 초과하는 모델이 활용될 수 있다. 예를 들어, 그리퍼는 하나의 모델로서 개방(즉, 파지되지 않은) 포지션에서 모델링될 수 있고, 다른 모델로서 폐쇄(즉, 파지) 포지션에서 모델링될 수 있다. 본 발명의 실시예에 의해 제공되는 유리한 모듈식 접근법으로 인해, 동작 계획을 수행할 때 엔드 이펙터의 현재 또는 계획된 상태에 대해 적절한 모델을 생성하거나 수신할 수 있다. 물론, 물체를 향해 이동할 때는 개방된 그리퍼를, 물체를 집어 이를 목적지로 이동시킬 때는 폐쇄된 그리퍼를 사용하는 것과 같이 경로의 서로 다른 구간에 대해 서로 다른 매핑이 사용될 수 있다.
로봇은 추가적으로 또는 대안적으로 감지 배열을 포함할 수 있다. 이러한 감지 배열은, 카메라; 스테레오 카메라; 적외선 센서; 광 검출 및 거리 측정(LIDAR) 센서; 마이크; 초음파 센서; 근접 센서; 가속도계; 자이로스코프; 자력계; 온도 프로브; 압력 센서; 연기 검출기; 가스 센서; 습도 센서 및 pH 프로브를 포함하는 그룹으로부터 하나 이상의 센서를 포함할 수 있다. 이처럼, 제2 모델(또는 본 발명의 특정 실시예와 관련하여 설명된 바와 같은 추가 모델)은 감지 배열의 표현을 포함할 수 있다.
본 발명의 원리는 로봇이 상호 작용할 수 있는 '표적' 물체로까지 확장된다. 이들 표적은 로봇이 작업을 수행할 때 집어들고, 운반하고, 조작하고, 만지고, 이동시키고, 밀고, 당기는 등의 작업을 수행할 수 있는 종류의 물체이다. 따라서, 일련의 실시예에서, 적어도 하나의 모델―예를 들어, 제2 모델 또는 추가 모델―은 외부 표적 물체의 표현을 포함한다. 이는 예를 들어, 표적 물체가 제품으로 조립하기 위한 부품(예를 들어, 볼트, 나사, 금속판, 배선, 모터, 유리, 전자 제품, 파이프 등)을 포함할 수 있는 조립 라인에서 유용할 수 있다. 이에 대해 다른 비제한적인 적용의 예에는 창고 및 재활용 공장이 포함된다.
로봇의 부품(예를 들어, 링크)은 일반적으로 상태(예를 들어, 노드) 사이에서 두 방향으로 이동할 수 있다. 즉, 전환(예를 들어, 에지)은 '앞으로'(예를 들어, 노드 A에서 노드 B로) 또는 '뒤로'(예를 들어, 노드 B에서 노드 A로) 횡단할 수 있다는 점을 이해할 수 있을 것이다. 에지는 양방향이며 항상 동일한 체적을 스윕하므로, 일부 실시예에서는 전환의 하나의 방향에 대한 작업 공간 요소 닿음(즉, 주어진 모델 또는 모델들과 적어도 부분적으로 충돌하는 작업 공간 요소)만 저장된다. 저장된 방향의 에지를 '정방향 에지'라고 한다. 반대 방향의 에지에 대한 닿음, 즉 '역방향 에지'는 암시적으로 저장된다. 온라인 실행 중에 역방향 에지의 유효성을 확인하기 위해 이웃하는 노드의 해당 정방향 에지를 확인한다.
중복 정보를 저장하는 것을 피하기 위해, 일부 실시예에서는 해당 전환이 연결되는 상태 중 어느 곳에서도 발견되지 않는 특정 전환의 닿음만 저장된다. 이는 일부 전환 또는 에지의 경우 상태 또는 노드가 서로 가깝게 배치된다면 닿음이 없을 수 있다는 것을 의미한다. 즉, 노드에서 닿음이 발생하면 해당 노드에 연결된 모든 에지에 대해 암시적으로 저장될 수 있으며, 해당 에지에 대한 닿음에 관한 정보를 저장하는 데 공간이 낭비되지 않는다.
전환(들)은 로봇의 여러 관절(즉, 다차원 에지)의 결합된 움직임일 수 있다. 그러나, 출원인은 결합된 움직임에 기여하는 '최하위' 링크(즉, 가장 안쪽)의 경우, 해당 움직임은 해당 링크의 단순한 움직임에 지나지 않으며, 이는 예를 들어 구조화된 로드맵이 사용되는 경우 해당 단순 에지에 대해 이미 저장될 수 있음을 인식하였다. 따라서, 일부 실시예에서, 결합된 움직임에 대응하는 작업 공간 요소 닿음은 상위 링크에 대해서만 저장되는 반면, 하위 링크에 대한 단순 전환은 재사용될 수 있다. 유연성을 더욱 증가시키기 위해, 일부 실시예에서, 결합된 각각의 전환(즉, 에지)에 대한 매핑은 개별적으로 저장될 수 있고, 필요에 따라 온라인 사용을 위해 결합될 수 있다.
전술한 바와 같이, 본 발명은 두 가지 모델의 사용으로 제한되지 않으며, 추가적인 물체도 포함될 수 있다. 따라서, 일부 실시예에서, 이 방법은,
다른 모델 중 적어도 하나로부터 확장되는 추가 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 그 상태들 사이의 개개의 전환(들)에 대해 추가 모델과 적어도 부분적으로 충돌하는, 다른 세트들 내의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 추가 세트를 결정하는 단계; 및
상기 추가 세트 및 추가 모델이 추가 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 추가 매핑을 생성하고, 상기 추가 매핑을 추가 메모리 영역에 저장하는 단계
를 더 포함한다.
이러한 추가 모델은 여러 개가 있을 수 있으며, 각각의 모델은 임의의 적절한 구성으로 다른 모델(즉, 링크, 엔드 이펙터 또는 다른 물체에 대응하는 모델들 중 임의의 모델)로부터 확장될 수 있다. 즉, 로봇의 다양한 부분과 외부 물체가 서로 직렬로 확장될 필요는 없으며 다른 구성이 가능하므로 다양한 링크 및/또는 물체―이에 따라 해당 모델―가 트리와 같은 구조로 서로 '분기'될 수 있고, 그리고/또는 루프를 형성할 수 있다. 각각의 추가 모델은 로봇의 링크, 엔드 이펙터 또는 외부 표적 물체의 표현을 적절히 포함할 수 있다.
따라서, 서로 다른 물리적 실체―즉, 로봇 구성요소 및/또는 외부 표적 물체―에 대한 매핑의 라이브러리를 생성하여 동작 계획에 사용할 수 있다는 것이 이해될 것이다. 로봇으로부터 확장될 수 있는 각각의 링크, 엔드 이펙터 및/또는 표적 물체에 대해 매핑을 생성하고 저장할 수 있으며, 라이브러리로부터 이러한 매핑을 선택하여 로봇의 특정 배열에 대해 주어진 작업에 대한 경로를 쉽게 계획할 수 있다. 이러한 모듈식 접근법은 로봇 구성요소(예를 들어, 링크 및 엔드 이펙터) 및/또는 외부 물체의 모든 조합 및 순열에 대해 전체 매핑을 생성할 필요가 없으므로 잠재적으로 상당한 메모리 절약을 제공할 수 있다는 점에서 매우 유용하다. 이러한 매핑의 라이브러리를 사용하면 매핑을 생성하는 데 상당한 시간이 걸리는 배열에도 유용하다. 매핑을 미리 생성하고 나중에 사용할 수 있도록 저장해 두면 필요할 때 메모리로부터 원하는 매핑을 검색할 수 있다.
라이브러리로부터 매핑을 선택하고 모듈 방식으로 결합할 수 있는 배열은 그 자체로 새롭고 창의적이다. 따라서, 제2 양태에서 볼 때, 본 발명은 로봇에 대한 동작 계획을 수행하는 방법을 제공하는데, 여기서 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배치되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 이 방법은,
매핑의 라이브러리로부터 제1 매핑을 선택하는 단계―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 제1 모델이 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함함―; 및
매핑의 라이브러리로부터 제2 매핑을 선택하는 단계―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 상기 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 제2 모델이 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―
를 포함한다.
본 발명의 제2 양태는 로봇에 대한 동작 계획을 수행하도록 배열된 동작 플래너로까지 확장되며, 여기서 로봇이 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 동작 플래너는,
매핑의 라이브러리로부터 제1 매핑을 선택―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 제1 모델이 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하고; 그리고
매핑의 라이브러리로부터 제2 매핑을 선택―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 제2 모델이 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하도록 배열된다.
본 발명의 제2 양태는 또한 전술한 동작 플래너를 포함하는 로봇으로까지 확장된다. 따라서, 본 발명의 제2 양태는 작업 공간의 복수의 상태 사이에서 동작하도록 배열된 로봇으로까지 확장되며, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되고, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 로봇은 상기 로봇에 대한 동작 계획을 수행하도록 배치된 동작 플래너를 더 포함하며, 상기 동작 플래너는,
매핑의 라이브러리로부터 제1 매핑을 선택―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 제1 모델이 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하고; 그리고
매핑의 라이브러리로부터 제2 매핑을 선택―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 제2 모델이 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하도록 배열된다.
본 발명의 제2 양태는 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 비일시적 컴퓨터 판독 가능 매체로까지 추가로 확장되며, 여기서 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 이 방법은,
매핑의 라이브러리로부터 제1 매핑을 선택하는 단계―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 제1 모델이 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함함―; 및
매핑의 라이브러리로부터 제2 매핑을 선택하는 단계―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 제2 모델이 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―
를 포함한다.
본 발명의 제2 양태는 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 컴퓨터 소프트웨어 제품으로까지 확장되며, 여기서 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 이 방법은,
매핑의 라이브러리로부터 제1 매핑을 선택하는 단계―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 제1 모델이 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함함―; 및
매핑의 라이브러리로부터 제2 매핑을 선택하는 단계―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 제2 모델이 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―
를 포함한다.
제1 모델과 제2 모델은 각각 앞서 설명한 바와 같이 로봇의 링크, 엔드 이펙터 또는 외부 표적 물체의 표현일 수 있다.
매핑에 대한 이러한 모듈식 '라이브러리' 접근법은 최상부에 추가 매핑을 추가할 수 있도록 한다. 따라서, 일부 실시예에서, 방법은 매핑의 라이브러리로부터 추가 매핑을 선택하는 단계를 더 포함하며, 상기 추가 매핑은 제1 모델 및/또는 제2 모델로부터 확장되는 추가 모델과 적어도 부분적으로 충돌하는, 제1 세트 및 제2 세트에서의 작업 공간 요소에 추가하여 하나 이상의 작업 공간 요소를 포함하는 추가 세트에 관한 정보를 포함하고, 상기 추가 매핑은 추가 모델이 추가 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함한다.
이 방법은 또한 하나의 매핑을 다른 매핑으로 대체하는 것을 제공한다. 따라서, 일부 실시예에서, 제2 매핑은 제1 세트의 작업 공간 요소들에 추가로 제1 모델로부터 확장되는 제3 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제3 세트에 관한 정보를 포함하는 제3 매핑으로 대체될 수 있으며, 상기 제3 매핑은 제3 모델이 제3 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함한다. 따라서, 비제한적인 예로서, 현재 설정이 그리퍼를 엔드 이펙터로서 갖는 로봇 팔에 대응하는 경우, 제1 및 제2 모델은 팔 링크 및 그리퍼에 대응할 수 있다. 그러나 그리퍼를 절삭 공구로 대체하려는 경우 제2 모델은 절삭 공구에 대응하는 제3 모델로 대체될 수 있다.
물론, 실제 대상 로봇 설정에 대응하는 매핑을 선택하기 위해 얼마든지 추가 및 대체가 가능한다는 것을 이해할 것이다.
전술한 본 발명의 양태와 관련하여 본 명세서에 언급된 다양한 모델은 반드시 서로 다른 물리적 실체와 관련될 필요는 없다. 일부 실시예에서, 모델들 중 적어도 두 개는 각각 동일한 물리적 실체의 표현이다. 이러한 배열에서, 하나의 모델은 실체가 가질 수 있는 서로 다른 범위를 포괄하기 위해 다른 모델의 확장일 수 있다. 이는 앞서 설명한 로봇 수준에서 모델을 모듈식으로 사용할 수 있는 방식과 유사하게 실체 수준에서 특정 물리적 실체에 대한 모듈식 모델을 제공하는 것으로 볼 수 있다. 즉, 특정 물리적 실체에 대한 여러 모델은 양파의 레이어처럼 작용하며, '외부' 모델은 다른 '내부' 모델을 부분적으로 또는 전체적으로 감싸거나 이들로부터 확장될 수 있다. 이는 많은 수의 서로 다른 외부 표적 물체, 즉 로봇이 조작할 물체의 매핑을 생성하는 데 특히 유용할 수 있다. 예를 들어, 로봇이 파이프의 길이를 조작하도록 배열된 경우 제1 모델은 특정 직경과 길이를 가진 파이프를 나타내고 제2 모델은 서로 다른 직경 및/또는 길이를 가진 파이프를 나타낼 수 있으며, 여기서 제2의 큰 파이프에 대한 매핑은 제1의 작은 파이프에 대한 매핑에 '구축'된다.
이러한 '양파' 접근법은 엔드 이펙터와 같은 로봇의 일부에도 유용할 수 있다. 비제한적인 예로서, 손가락이 두 개인 집게 모양의 그리퍼가 있는데, 제1 손가락은 고정되어 있고, 제2 손가락은 제1 손가락을 향해 이동하거나 멀어지면서 무언가를 잡을 수 있다고 생각해 본다. 이 그리퍼를 단일 모델(또는 개방 포지션 및 폐쇄 포지션 각각에 대해 하나씩인 한 쌍의 모델)로서 모델링하는 대신, 위에서 설명한 '양파형' 접근법을 사용하여 그리퍼의 '정적' 부분(즉, 제1 손가락과 손가락이 연장되는 '손' 또는 '손바닥'의 나머지)은 하나의 모델로 표현되고, 동적 부분(즉, 제2 손가락)은 다양한 포지션(예를 들어, 완전 개방, 완전 폐쇄 및/또는 하나 이상의 중간 포지션)을 위한 추가 모델(들)로 표현할 수 있다. 물론, 이는 여러 개의 움직이는 요소를 가진 부품(예를 들어, 이전 그리퍼의 예에서 양 손가락이 모두 움직이는 경우)으로 확장된다.
그런 다음 제1 손가락으로 인해 어떤 작업 공간 요소가 닿았는지(즉, 적어도 부분적으로 충돌하는지), 그리고 제2 손가락의 포지션에 따라 제2 손가락으로 인해 어떤 추가 요소가 닿았는지에 대한 정보를 효율적으로 저장하는 매핑을 생성할 수 있다. 따라서, 그리퍼의 구성이 변경될 때(또는 변경될 예정인 경우), 그리퍼 전체에 대한 모델 또는 기존 접근법에서의 그리퍼를 포함한 전체 로봇의 모델을 교체할 필요 없이 제2 손가락에 사용되는 모델을 쉽게 교체할 수 있다.
매핑을 저장하는 데 사용되는 '메모리 영역'은 데이터 저장을 위한 임의의 적절한 배열일 수 있다. 일부 실시예에서, 제1 및 제2 메모리 영역은 각각 메모리 내에 있으며, 이들은 동일한 메모리 내에 있을 수 있다. 임의의 추가 메모리 영역은 동일한 메모리 또는 서로 다른 메모리 내에 적절하게 위치할 수도 있다. 메모리는 리드 온리 메모리(ROM); 랜덤 액세스 메모리(RAM); 솔리드 스테이트 디바이스(SSD); 하드 디스크 드라이브(HDD); 플래시 스토리지; 전용 비디오 RAM(VRAM); 또는 다른 적절한 메모리 디바이스 중 적어도 하나일 수 있다.
바람직하게는, 메모리는 로컬, 즉 동작 계획을 수행하는 데 사용되는 동일한 디바이스, 시스템 또는 장치 내에 위치한다. 본 발명의 실시예는 동작 계획 공정이 적어도 부분적으로 병렬 처리 유닛(예를 들어, GPU)에서 수행되는 경우 특히 유리한데, 이는 적어도 일부 실시예에서 매핑 중 하나 이상이 병렬 처리 유닛의 메모리에 로컬로 저장될 수 있기 때문이다. 이는 외부 실체와의 임의의 연결(예를 들어, 네트워크를 통한)에 의존하지 않고 필요할 때 매핑을 신속하게 '전환'할 수 있도록 할 수 있다. 병렬 처리 유닛(예를 들어, GPU)은 일부 배열에서 중앙 처리 장치(CPU)와 함께 사용될 수 있으며, 매핑(들)을 사용하는 계산이 병렬 처리 유닛으로 전송될 수 있다.
그러나, 잠재적으로 중첩되는 일련의 실시예들에서, 하나 이상의 매핑은 원격 메모리 또는 오프-칩 메모리에 저장될 수 있다. 이 문맥에서 '원격' 또는 '오프-칩'이라는 용어는 동작 계획을 수행하는 디바이스(예를 들어, 동작 플래너)의 외부 또는 디바이스의 특정 부분(예를 들어, 특정 프로세서)을 의미하는 것으로 이해될 것이다. 예를 들어, 동작 계획이 특정 프로세서에 의해 수행되는 경우 매핑은 해당 프로세서 및 임의의 연관된 온-칩 메모리의 외부에 저장될 수 있다. 이러한 배열에서, 매핑은 외부에(예를 들어, 오프-칩 스토리지, 외부 서버, 다른 디바이스 또는 클라우드에)에 저장되어 동작 계획을 수행하는 디바이스로 스트리밍될 수 있다. '원격' 메모리 배열에서, 데이터(예를 들어, 로드맵 및/또는 매핑(들))는 일반적으로 오프-칩 메모리(또는 다른 외부 저장 디바이스)로부터 동작 플래너로 전송되는 것이 이해될 것이다. 그런 다음 데이터는 사용 후 폐기될 수 있다(메모리가 이 작업에 더 이상 필요하지 않게 된 즉시, 미리결정된 시간이 지난 후 또는 다른 작업에 메모리가 필요한 경우). 모듈식 매핑은 예를 들어 전체 로봇이 아니라 매핑이 필요한 부분만 오프-칩 메모리로부터 프로세서(들)로 더 작은 매핑을 전송할 수 있는 배열에서 유리할 수 있다. 이는 예를 들어 더 적은 대역폭 또는 덜 신뢰할 수 있는 네트워크 연결을 사용할 수 있다. 더 유리하게는, 매핑을 생성하는 데 상당한 시간이 소요될 수 있는 경우에 유용할 수 있으므로 필요할 때 외부 메모리에서 필요한 특정 매핑을 다운로드할 수 있는 것이 특히 유용할 수 있다.
이러한 로컬 메모리와 스트리밍 방식을 혼합하여 일부 매핑(예를 들어, 자주 사용하거나 현재 사용 중인 매핑과 밀접한 관련이 있는 매핑)은 로컬에 저장하고, 다른 매핑은 원격에 저장했다가 필요할 때 스트리밍하는 방식을 사용할 수 있다.
앞서 설명한 대로, 이후 세트(들)(예를 들어, 제2 세트)에는 이전 세트(들)(예를 들어, 제1 세트)의 작업 공간 요소에 추가되는 하나 이상의 작업 공간 요소가 포함된다. 따라서, 이후 세트(들)와 연관된 해당 모델이 포함되어 닿은 작업 공간 요소는 적절한 매핑을 생성하는 데 사용되며, '이전' 모델에 의해 '닿은' 작업 공간 요소는 저장할 필요가 없다. 이러한 '추가' 작업 공간 요소는 일부 실시예에서, 예를 들어, 고려 중인 새로운 모델에 의해 '새로운' 작업 공간 요소의 닿음만을 찾는 검출 공정을 사용하여 직접 결정될 수 있다. 그러나, 일부 다른 실시예에서, 이 방법은 제1 세트에 있는 하나 이상의 작업 공간 요소를 제2 세트로부터 제거하는 단계를 포함한다. 다시 말해, 제2 세트의 결정은 초기에 다른 이전 모델(들)에 의해 닿은 작업 공간 요소도 결정하는 것을 포함할 수 있지만, 중복 저장을 피하기 위해 이미 이전 세트에 있는 하나 이상의(그리고 경우에 따라서는 모든) 작업 공간 요소를 제거하는 것을 포함할 수 있다.
특정 모델과 적어도 부분적으로 충돌하는 작업 공간 요소가 적절한 세트에 추가되어 결과적인 매핑에 포함될 수 있지만, 그렇다고 해서 해당 모델과 부분적으로 중첩되는 모든 작업 공간 요소가 반드시 세트 및 매핑에 추가되는 것은 아니다.
링크 및/또는 물체가 예를 들어, 관절 또는 인터페이스에서 물리적으로 서로 접촉하는 경우, 적어도 부분적으로 모델들 중 하나 초과의 모델과 충돌하는 일부 작업 공간 요소가 있을 것임을 이해할 수 있을 것이다. 일부 실시예에서, 이러한 작업 공간 요소는 각각의 모델에 대응하는 세트에 포함된다. 그러나, 잠재적으로 중복될 수 있는 일부 실시예에서, 이러한 '공유' 작업 공간 요소의 일부 또는 전부는 세트 중 하나에만 포함될 수 있다. 예를 들어, 작업 공간 요소는 가장 초기 세트, 즉 로봇의 베이스에 가장 가까운 링크 또는 물체에 대응하는 세트에 포함될 수 있는 등 적절한 규칙이 선택될 수 있다. 공유 점유를 갖는 이러한 작업 공간 요소를 세트들 중 하나에만 포함시킴으로써 필요한 총 메모리 양을 더욱 줄일 수 있으며, 이는 위에서 설명한 이점을 향상시킬 수 있다. 그러나, 관절 및/또는 인터페이스와 관련된 점유 정보가 관련 세트 각각에 중복 저장됨으로써 이점을 얻을 수 있는 특정 배열이 있을 수 있다.
추가적으로 또는 대안적으로, 로봇의 정적 부분, 예를 들어 링크(들) 및/또는 물체(들) 중 하나 이상―그리고 이에 따라 대응하는 모델(들)―이 확장되는 로봇 베이스와 적어도 부분적으로 중첩되는 특정 물체(예를 들어, 링크)와 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소가 있을 수도 있다. 이러한 '정적' 작업 공간 요소는 가장 '내부' 세트에 포함될 수 있거나(즉, 제1 세트의 작업 공간 요소), 또는 로봇의 정적 베이스에 닿아 적어도 부분적으로 항상 점유되는 작업 공간 요소와 관련된 정보를 포함하는 별도의 '베이스' 매핑에 저장될 수도 있다. 따라서, 일부 실시예에서, 방법은 로봇의 정적 부분과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소에 관한 정보를 포함하는 베이스 매핑을 생성하는 단계를 포함한다.
위에서 설명한 바와 같이, 매핑은 적어도 부분적으로 점유되는 작업 공간 요소와 관련된 정보를 저장한다. 이는 일부 실시예에서 전체 세트가 매핑으로서 저장된다는 것을 의미할 수 있다. 그러나, 출원인은 관련 작업 공간 요소에 관한 정보를 저장하는 보다 메모리 효율적인 방법이 있을 수 있음을 인식하였다. 일부 실시예에서, 매핑들 중 하나 이상에 대해 저장되는 정보는 복수의 관심 지점, 예를 들어 모서리 및/또는 중심 지점을 포함할 수 있다. 당업자에게는 부분적으로 점유된 작업 공간 요소가 하나 이상의 어레이, 영역, 표면 및/또는 체적을 형성할 수 있으며, 이는 '모서리 지점' 및/또는 '중심 지점'과 같은 선택된 수의 '관심 지점'으로부터 재구성될 수 있음을 알 수 있을 것이다. 예를 들어, 정육면체 모양의 물체와 관련된 모델을 생각해 본다. 해당 물체와 적어도 부분적으로 충돌하는 작업 공간 요소도 정육면체를 형성할 수 있다. 이러한 모든 요소를 포함하는 세트를 저장할 수도 있지만, 두 개의 반대쪽 모서리(예를 들어, 하부 좌측 뒤 모서리와 최상부 우측 앞 모서리)만 있으면 전체 정육면체를 재구성할 수 있다. 마찬가지로, 중심 지점에 대한 지식은 물체를 재구성하는 데 사용될 수 있는데, 예를 들어 물체가 중심 지점으로부터 얼마나 멀리 뻗어 있는지에 대한 지식과 결합하면 이 범위(또는 서로 다른 방향의 여러 범위)를 중심 지점과 함께 적절히 저장할 수 있다.
작업 공간 요소 자체는 모두 동일한 모양 및/또는 크기일 필요는 없으며, 반드시 '정사각형/직사각형' 픽셀 또는 '정육면체/입방체' 복셀일 필요는 없다. 일부 실시예에서, 작업 공간은 서로 다른 모양 및/또는 크기의 작업 공간 요소로 이산화된다. 이는 중요한 관심 영역에서는 더 높은 해상도(즉, 더 작은 작업 공간 요소 및 이에 따라 더 높은 작업 공간 요소 밀도)를 허용하고, 덜 관심 있는 영역에서는 더 낮은 해상도(즉, 더 큰 작업 공간 요소 및 이에 따라 더 낮은 작업 공간 요소 밀도)를 허용할 수 있다. 로봇이 인간 작업자와 함께 환경에서 작업하는 특정 예에서, 사람이 일반적으로 차지하게 되는 영역 및 로봇이 대부분의 작업을 수행하는 영역에는 더 높은 해상도를 사용하고, 로봇의 뒤쪽이나 사람이나 로봇 모두 많은 시간을 보내지 않을 것 같은 영역의 구석 둘레에는 더 낮은 해상도를 사용할 수 있다. 마찬가지로, 환경의 특정 부분에 가장 적합한 모양이 무엇인지에 따라 하나의 영역에서는 곡선형 단면을, 다른 영역에서는 사변형 단면을 가진 요소를 사용하는 등 영역마다 다른 모양의 작업 공간 요소를 사용할 수 있다.
고해상도 맵으로부터 맵을 다시 생성하는 것보다 처음부터 맵을 생성하는 것이 계산적으로 훨씬 더 비용이 많이 들기 때문에 작업 공간 크기와 해상도를 유연하게 조정할 수 있는 것은 매우 유용하다. 이렇게 하면 다양한 해상도 및 크기의 맵을 여러 개 저장하는 대신 미리 생성된 고해상도 맵 하나만 저장하면 되고, 이 단일 고해상도 맵은 사용 가능한 계산 리소스뿐 아니라 필요에 따라 서로 다른 적용예에 대한 필요에 따른 재사용할 수 있다.
전술한 양태들 중 어느 하나의 일부 실시예에서, 매핑은 로봇이 따라야 할 경로를 생성하는 데 사용될 수 있다. 즉, 적절한 매핑의 조합은 로봇이 주어진 작업을 실행하기 위한 적절한 계획을 생성하기 위해 전체 로봇에 대한 단일 매핑이 일반적으로 사용되는 것과 동일한 방식으로 사용될 수 있다.
위에서 언급한 다양한 모델로 표현되는 물리적 실체는 로봇의 환경 내에서 측면으로 이동할 수 있다. 그러나 이러한 실체 중 하나 이상이 하나 이상의 축을 중심으로 추가적으로 또는 대안적으로 회전할 수 있다. 예를 들어, 그리퍼와 같은 엔드 이펙터는 사람의 손이 손목을 비틀듯이 주축을 중심으로 회전할 수 있다. 각각의 회전은 로봇의 서로 다른 측면 포지션과 동일한 방식으로 로봇의 다른 '상태'(예를 들어, 구성)를 형성할 수 있다. 일반적으로, 회전 상태는 어떤 방식으로든 이산화될 수 있으며, 이렇게 이산화된 상태에 대한 매핑이 생성될 수 있다. 그러나 출원인은 실체 또는 실체의 일부가 1 보다 큰 축 대칭 정도를 가질 수 있음을 인식하였다. 예를 들어, 샤프트의 단부에 두 개의 대칭 프로펠러 블레이드가 위치하는 프로펠러와 같은 회전 공구, 여기서 샤프트(및 이에 따라 프로펠러)는 주축(즉, 종축)을 중심으로 회전한다. 샤프트에 닿은 작업 공간 요소는 프로펠러의 모든 회전 상태에서 동일할 수 있다. 마찬가지로, 주어진 회전 상태에서 프로펠러 블레이드에 닿은 작업 공간 요소는 180°(즉, 반회전) 떨어진 상태와 동일한 상태일 수 있다.
이러한 경우, 해당 실체가 회전할 때 적어도 부분적으로 점유되는 작업 공간 요소는 다수의 회전 포지션에서 동일할 수 있다. 따라서, 일부 실시예에서, 회전 대칭 모델용 다수의 상태에 대해 부분적으로 동일하게 점유되는 작업 공간 요소는 단 한 번만 저장될 수 있고, 다른 상태들은 단순히 매핑을 위한 세트에 해당 작업 공간 요소가 추가되는 결과를 초래한 제1 회전 동일 상태를 참조할 수 있다.
일부 배열에서는 하나를 초과하는 로봇이 함께 또는 서로 근접하여 사용될 수 있다. 앞서 설명한 양태들의 원칙은 제2 로봇(또는 적절하게, 임의의 수의 추가 로봇)에 대한 동작 계획에도 동일하게 적용된다.
매핑은 매핑의 각각의 작업 공간 요소에 대한 상태 식별자 및 전환 식별자를 포함할 수 있다. 다시 말해, 그래프 용어를 사용하여, 본 발명의 실시예는 각각의 작업 공간 요소 또는 복셀에 대한 노드 및 에지 식별자(또는 'ID')를 저장할 수 있다. 따라서, 각각의 작업 공간 요소(예를 들어, 복셀)는 해당 요소와의 부분적 또는 전체적 충돌을 나타내는 모든 노드 및 에지 목록, 즉 '닿음' 목록을 가질 수 있다. 각각의 작업 공간 요소에 대한 상태 및 전환 ID를 저장하면 메모리 및 계산 최적화 측면에서 개선이 이루어질 수 있다. 물론, 이러한 배열에서 일부 작업 공간 요소(또는 복셀)는 빈 목록을 가질 수 있다(해당 요소가 어떠한 노드 또는 에지에도 닿지 않기 때문).
그러나, 다른 실시예들에서는, 각각의 에지 및/또는 각각의 노드에 대해 작업 공간 요소(예를 들어, 복셀) ID가 저장된다.
본 발명의 임의의 특정 양태와 관련하여 전술한 선택적 특징들은 적절하게는 본 발명의 다른 양태에도 동일하게 적용되는 것이 이해될 것이다.
마찬가지로, 본 발명의 특정 양태와 연관된 방법의 실시예, 동작 플래너, 로봇, 비일시적 컴퓨터 판독 가능 매체 및 컴퓨터 소프트웨어 제품과 관련하여 설명된 임의의 모든 선택적 특징은 해당 양태와 연관된 상기 방법, 동작 플래너, 로봇, 비일시적 컴퓨터 판독 가능 매체 및 컴퓨터 소프트웨어 제품의 다른 양태에도 동일하게 상호 적용된다.
선택적 특징이 방법 단계와 관련하여 설명되는 경우, 이는 동일한 방법 단계를 수행하도록 배열된 디바이스, 장치 또는 시스템(예를 들어, 전술한 동작 플래너 또는 로봇)으로까지 확장된다. 마찬가지로, 선택적 특징이 디바이스, 장치 또는 시스템의 일 양태와 관련하여 설명되는 경우, 이는 대응하는 방법 단계 또는 그러한 디바이스, 장치 또는 시스템 상에서 작동하는 방법 단계로까지 확장된다.
이제 본 발명의 특정 실시예를 첨부된 도면을 참조하여 예시적으로만 설명할 것이다:
도 1은 환경에서 로봇에 대한 동작 계획이 요구되는 전형적인 배열의 개략도이고;
도 2a 및 도 2b는 제1 로봇 링크에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 3은 제2 로봇 링크에 의해 닿은 추가 작업 공간 요소를 예시하는 개략도이고;
도 4는 추가 로봇 링크에 의해 닿은 추가의 추가 작업 공간 요소를 예시하는 개략도이고;
도 5는 그리퍼 손바닥에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 6은 개방 포지션에서 도 5의 그리퍼의 손가락에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 7은 도 6에 도시된 바와 같이 개방 포지션에서 그리퍼의 손가락에 의해 닿은 고유하게 매핑된 작업 공간 요소를 예시하는 개략도이고;
도 8은 폐쇄 포지션에서 도 5의 그리퍼의 손가락에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 9는 도 8에 도시된 바와 같이 폐쇄 포지션에서 그리퍼의 손가락에 의해 닿은 고유하게 매핑된 작업 공간 요소를 예시하는 개략도이고;
도 10은 작은 물체에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 11은 추가 '양파' 레이어로서 중간 물체에 의해 닿은 작업 공간 요소를 보여주는 개략도이고;
도 12는 추가의 추가 '양파' 레이어로서 큰 물체에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 13은 축 대칭을 갖는 로봇 링크에 의해 닿은 작업 공간 요소를 예시하는 개략도이다.
도 1은 환경에서 로봇에 대한 동작 계획이 요구되는 전형적인 배열의 개략도이고;
도 2a 및 도 2b는 제1 로봇 링크에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 3은 제2 로봇 링크에 의해 닿은 추가 작업 공간 요소를 예시하는 개략도이고;
도 4는 추가 로봇 링크에 의해 닿은 추가의 추가 작업 공간 요소를 예시하는 개략도이고;
도 5는 그리퍼 손바닥에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 6은 개방 포지션에서 도 5의 그리퍼의 손가락에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 7은 도 6에 도시된 바와 같이 개방 포지션에서 그리퍼의 손가락에 의해 닿은 고유하게 매핑된 작업 공간 요소를 예시하는 개략도이고;
도 8은 폐쇄 포지션에서 도 5의 그리퍼의 손가락에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 9는 도 8에 도시된 바와 같이 폐쇄 포지션에서 그리퍼의 손가락에 의해 닿은 고유하게 매핑된 작업 공간 요소를 예시하는 개략도이고;
도 10은 작은 물체에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 11은 추가 '양파' 레이어로서 중간 물체에 의해 닿은 작업 공간 요소를 보여주는 개략도이고;
도 12는 추가의 추가 '양파' 레이어로서 큰 물체에 의해 닿은 작업 공간 요소를 예시하는 개략도이고;
도 13은 축 대칭을 갖는 로봇 링크에 의해 닿은 작업 공간 요소를 예시하는 개략도이다.
도 1은 환경(4)에서 작동하는 로봇 팔(2)에 대한 동작 계획이 필요한 전형적인 배열의 개략도이다. 로봇 팔(2)은 베이스(6), 한 쌍의 링크(8a, 8b) 및 관절(12)에서 서로 연결된 엔드 이펙터(10)로 구성된다. 로봇 팔(2)은 예를 들어 조립 라인에서 부품을 분류하기 위해 하나의 통(14)으로부터 제2 통(16)으로 물품을 옮기는 작업을 수행한다. 그러나, 로봇 팔(2)은 다수의 정적 장애물(18), 동적 장애물(20) 및 사람(22)을 피해야 한다.
작업 공간(4)은 여러 개의 서로 다른 작업 공간 요소(24)로 이산화(즉, '분할')되어 있으며, 도 1에는 예시의 이해를 돕기 위해 이 중 일부에만 라벨이 지정되어 있다. 이러한 작업 공간 요소(24) 각각은 복셀이며, 이에 따라 작업 공간(4)은 정육면체의 3 차원 그리드로 분할된다. 도 1의 작업 공간 요소들(24)은 모두 동일한 크기 및 모양이지만, 반드시 그럴 필요는 없으며, 다른 실시예들에서는 작업 공간(4)의 일부 영역에서 다른 영역과 비교하여 서로 다른 해상도 및/또는 모양이 사용될 수 있음을 알 수 있을 것이다. 유사하게, 2 차원 문제를 다루는 경우, 작업 공간은 적절하게 2 차원 작업 공간 요소(예를 들어, 픽셀 또는 정사각형)의 그리드로 분할될 수 있다.
작업 공간(4)은 환경의 변화가 검출되거나 포착될 때 업데이트될 수 있다. 예를 들어, 3D 카메라와 같은 센서는 환경의 변화 및 동적 장애물을 검출하는 데 사용될 수 있다. 그러면 이산화된 작업 공간(4)이 그에 따라 업데이트될 수 있다. 작업 공간(4)은 공간 내 실체(예를 들어, 동적 장애물 또는 환경 내에서 움직이는 사람)의 예측된 움직임에 응답하여 추가적으로 또는 대안적으로 업데이트될 수 있다. 작업 공간(4)에 대한 업데이트는, 예를 들어 물체의 물리적 배치, 물체와의 거리, 물체의 유형, 또는 물체의 예측된 움직임과 관련하여 수행될 수 있다.
당업계에 잘 알려진 바와 같이, 동작 계획을 수행할 때, 로봇이 사용할 수 있는 동작 범위는 로드맵을 사용하여 기술될 수 있으며, 여기서 로드맵의 노드는 로봇의 가능한 상태이고, 노드를 연결하는 에지는 이러한 상태 사이의 전환이다. 로드맵은 동작 계획에 사용되지만 로봇은 당연히 로드맵을 벗어나 움직일 수도 있다.
아래에 설명되는 구체적이지만 제한되지 않는 실시예에서, '상태'는 로봇(2)의 구성과 관련된다. 그러나, 위에서 설명한 바와 같이, 속도, 각도, 시간, 온도 등과 같은 추가 파라미터가 (추가적으로 또는 대안적으로) 상태의 일부를 형성할 수 있음을 알 수 있을 것이다. 즉, (특정 시점에) 동일하게 포지셔닝되지만 제1 속도를 갖는 로봇은 로봇이 다른 제2 속도를 가질 때와 서로 다른 상태로 표현될 수 있다.
로봇(2)의 동작 계획을 수행하기 위해, 로봇(2)의 작동 공간을 설명하는 로드맵이 생성되며, 여기서 각각의 관절(12)에 대해 하나의 차원이 제공된다. 그러나, 종래 기술의 접근법에서 수행되는 것처럼 전체 로드맵 및 전체 로봇(2)에 대한 단일 맵을 생성하는 대신, 본 발명의 실시예는 아래에 설명된 바와 같이 링크(및 엔드 이펙터 및 임의의 다른 관련 표적 물체)를 분리한다.
본 발명의 실시예에 따른 매핑을 생성하는 제1 단계는 각각의 링크(8a, 8b); 엔드 이펙터(10); 및 표적 물체(예를 들어, 하나의 통(14)으로부터 다른 통(16)으로 이동되는 물품)에 대한 매핑을 분리하는 것이다.
먼저, 제1 링크(8a)에 대한 매핑이 생성되는데, 여기서 로봇(2)은 도 2a에 도시된 바와 같이 1-DOF(1 자유도) 로봇으로 간주된다. 이는 모든 구성(즉, 가능한 모든 상태)에서 제1 링크(8a)의 모델을 포즈하고 로드맵의 제1 차원, 즉 제1 링크(8a)가 제공하는 자유도에 의해 허용되는 모든 에지(즉, 전환)를 확인함으로써 수행된다.
다양한 상태 및 전환에서 제1 링크(8a)에 의해 부분적으로 또는 전체적으로 점유되는 작업 공간 요소들(26)은 요소의 세트에 추가되고, 그 후 제1 링크(8a)에 대한 매핑을 생성하는 데 사용된다. 이 매핑은 서로 다른 상태 및 전환 각각에서 제1 링크(8a)와 적어도 부분적으로 충돌하는 작업 공간 요소들(26)(모든 작업 공간 요소들(24) 중)의 세트에 관한 정보를 효과적으로 제공한다.
도 2a는 단일 구성에 대한 이러한 요소(26)를 도시하지만, 서로 다른 상태 및 전환에 의해 닿은 요소(26) 세트는 제1 상태(100)와 제2 상태(102) 사이의 전환을 보여주는 도 2b에서 볼 수 있다. 여기서, 세트의 요소들(26)은 두 상태(노드)(100, 102)에서 제1 링크(8a)의 모델에 의해 닿은 요소들(26a)과 그 상태들 사이의 전환(에지) 동안 닿은 요소들(26b)로 분할된다.
제1 링크(8a)에 대한 매핑은 별도의 '링크 1 맵'으로 메모리에 저장된다. 이 매핑은 종래 기술 접근법에 따라 전체 로봇(2)에 대한 매핑에 비해 매우 작을 것이다.
다음으로 도 3에서와 같이 제2 링크(8b)의 모델이 추가되고, 이제 제1 2 차원이 고려된다. 새로운 2-DOF 로봇이 모든 구성에서 포즈를 취하고 로드맵의 모든 에지에 대해 확인된다. 도 3에서 볼 수 있듯이, 제1 링크(8a)와 제2 링크(8b) 사이의 관절 주위에 닿은 일부 작업 공간 요소(27)가 있다. 이러한 요소들(27)은 이미 제1 링크(8a)에 대한 매핑에 저장되어 있으므로, 제2 링크(8b)에 대한 제2 매핑을 생성할 때 무시될 수 있다. 따라서, 제2 링크(8b)에 고유하게 닿은 작업 공간 요소(28)만이 제2 매핑, 즉 링크 1 맵과는 별개로 메모리에 저장되는 '링크 2 맵'을 생성하는 데 사용된다.
따라서, 제1 링크(8a)와 제2 링크(8b) 모두에서 발생하는 모든 작업 공간 요소 닿음은 압축되어 '하위' 링크, 즉 제1 링크(8a)에 대한 매핑에만 저장된다. 닿음은 해당 링크에 대한 충돌 검사를 수행할 필요 없이 하위 링크에 대해 이미 생성된 매핑에서 조회하여 고유성을 효율적으로 검사할 수 있다.
그러나, 일부 배열에서는, 이러한 요소들(27)과 관련된 정보가 제2 매핑을 생성하는 데에도 사용될 수 있으며, '중첩' 요소들(27)이 두 매핑에 모두 포함되도록 할 수 있다.
루틴은 전체 로봇(2)이 모든 자유도에 대해 매핑될 때까지, 매핑이 각각의 추가 링크에 대해 생성되는 도 4에 도시된 바와 같이, 추가 물체(들)(9)에 의해 그리고 대응하는 자유도(들)를 고려하여 지속된다. 도 4에서 다른 링크는 물체(9)로 도시되어 있지만, 공정은 아래에서 더 상세히 설명되는 바와 같이 임의의 엔드 이펙터 및 표적 물체에 대해 수행될 수 있다.
공정은 또한 현재 로봇(2)에 없는 대체 및/또는 추가 물체(예를 들어, 링크, 엔드 이펙터 또는 표적 물체)에 대해 수행될 수도 있다. 예를 들어, 엔드 이펙터로서 제2 링크(8b)에 부착될 수 있는 다수의 서로 다른 공구가 있는 경우, 각각의 엔드 이펙터에 대해 매핑이 생성되어 메모리에 저장될 수 있다. 일부 경우에, 주어진 물체는 해당 물체의 서로 다른 작동 상태와 관련된 하나를 초과하는 저장된 매핑을 가질 수 있다. 예를 들어, 개방 또는 폐쇄될 수 있는 그리퍼는 개방 조건 및 폐쇄 조건 각각에 대해 메모리에 별도의 매핑이 저장될 수 있다. 따라서, 새로운 장비, 예를 들어 센서 및 그리퍼가 동일한 방식으로 추가될 수 있다. 장비가 연결된 링크에 따라 매핑에 고려해야 할 차원이 결정된다. 고려된 장비에서 발생하는 모든 고유 닿음은 별도의 '파트 X 맵'에 매핑된다.
특정 물체는 하나를 초과하는 매핑으로 표현될 수도 있다. 예를 들어, 그리퍼는 '손바닥' 부분에 대한 하나의 매핑과 손바닥을 향해 움직이거나 손바닥으로부터 멀어지는 '가동성 손가락' 부분에 대한 다른 매핑 쌍으로 분할될 수 있으며, 여기서 하나의 매핑은 개방 포지션의 손가락에 대해 저장되고 다른 매핑은 폐쇄 포지션의 손가락에 대해 저장된다.
이에 대한 예가 도 5 내지 도 9에 도시된다. 도 5는 그리퍼 손바닥(30)의 개략도로서, 이 손바닥(30)은 로봇(2)의 원위 단부에 위치할 수 있는 그리퍼 엔드 이펙터의 일부를 형성한다. 구체적으로, 도 5는 특정 상태에서 그리퍼 손바닥(30)에 의해 닿은 작업 공간 요소(32)를 예시한다.
또한, 그리퍼는 두 개의 손가락(34)을 가지며, 이들 손가락은 손가락(34)이 간격을 두고 서로 이격되어 있는 개방 포지션과 손가락(34)이 서로 근접하게 되어―손바닥(30)에 대해 측방으로 이동하여―손가락 사이의 간격을 좁혀 물체를 파지하는 폐쇄 위치 사이에서 작동할 수 있다.
도 6은 개방 포지션에서 작동될 때 손가락(34)에 의해 닿은 작업 공간 요소(36)를 예시하는 개략도이고, 도 7은 개방 포지션에서 손가락(34)에 의해 닿은 고유하게 매핑된 작업 공간 요소(38), 즉 손바닥(30)의 존재로 인해 이미 닿은 '중첩' 요소(40)가 아니라 오직 손가락(34)의 존재로 인해 닿은 요소(38)를 예시한다. 따라서, 손바닥(30)에 대한 매핑 내에 이미 저장된 요소(38)는 중복되기 때문에, 이러한 추가 작업 공간 요소(38)의 세트와 관련된 정보만 매핑에 저장될 필요가 있다.
도 8은 폐쇄 포지션에서 작동될 때 손가락(34)에 의해 닿은 작업 공간 요소(42)를 예시하는 추가 개략도이고, 도 9는 폐쇄 포지션에서 손가락(34)에 의해 닿은 고유하게 매핑된 작업 공간 요소(44), 즉 손바닥(30)의 존재로 인해 이미 닿은 '중첩' 요소(46)가 아니라 오직 손가락(34)의 존재로 인해 닿은 요소(44)를 예시한다. 앞에서와 마찬가지로, 이러한 추가 작업 공간 요소(44)의 세트와 관련된 정보만 폐쇄된 손가락(34)에 대한 매핑에 저장하면 된다.
그런 다음 개방 포지션과 폐쇄 포지션의 손가락(34)에 대한 매핑을 링크 맵(들)과 함께 해당 부품(즉, 그리퍼)에 대한 '부품 맵'으로서 메모리의 라이브러리에 저장할 수 있다. 그런 다음 주어진 작업에 대한 그리퍼의 현재 또는 계획된 상태에 따라 라이브러리로부터 적절하게 선택할 수 있다. 이렇게 하면 닿은 작업 공간 요소의 유일한 차이가 손가락(34)의 포지션으로 인한 것일 때 전체 로봇에 대해 두 개의 완전한 매핑을 저장하지 않아도 되며, 다른 모든 작업 공간 요소 닿음(즉, 손바닥과 로봇(2)의 다른 링크로 인해)는 두 포지션 모두에 대해 중복된다.
에지는 여러 관절(12)의 결합된 움직임일 수 있다. 그러나 결합된 움직임에 기여하는 가장 낮은 링크의 경우 움직임은 대응하는 단순 에지에 대해 이미 저장된 해당 링크의 단순한 움직임에 지나지 않는다. 따라서, 결합된 움직임에 대응하는 에지에 대한 매핑은 상위 링크에만 저장되고 하위 링크의 단순 에지에 대한 매핑은 재사용된다. 일부 적용예의 경우 단순 에지만 필요하지만 다른 고급 적용예에는 결합 에지가 필요할 수 있다. 또한, 필요한 고급 에지의 세트는 적용예마다 다를 수 있다. 유연성을 더욱 높이기 위해 각각의 결합된 에지에 대한 링크 맵을 별도로 저장하고 필요에 따라 온라인에서 결합하여 사용할 수 있다.
결합된 모든 매핑의 크기는 결합된 하나의 로봇 맵의 크기와 거의 동일하다. 특정 로봇 설정에 대한 매핑의 조합은 임의의 저장된 중첩 작업 공간 요소로 인해 전체 로봇에 대한 단일 매핑보다 약간 더 클 수 있지만(예를 들어, 관절에서의 요소가 해당 관절의 양쪽 링크 모두에 대한 매핑에 저장되는 경우), 종래 기술 접근법에서는 가능한 각각의 로봇 설정 및 조작 또는 운반 물체에 대해 전체 로봇 매핑을 저장해야 한다는 점을 고려하면 전체적으로 상당한 메모리 절약이 이루어진다. 따라서 본 발명의 원리를 사용하면 임의의 단일 로봇 설정의 매핑에 필요한 메모리 요구량이 약간 감소하더라도 로드맵과 링크/부품의 서로 다른 조합 모두를 저장하는 데 필요한 전체 저장 공간의 상당한 감소에 비하면 무시할 수 있다.
이전 매핑으로부터 확장된 모든 매핑은 해당 매핑이 생성된 특정 하위 링크(및 사용된 경우 하위 로드맵)에 유효하다. 그러나 하위 로드맵은 매핑된 링크가 종결되는 포지션을 결정하기 때문에 모든 차원에 대해 동일해야 한다. 기본(또는 '내부') 링크의 운동학을 변경하면 '외부' 링크 또는 링크들이 종결되는 포지션도 바뀌게 되므로 변경할 수 없다.
즉, 두 개의 링크로 구성된 로봇 팔의 단부에 그리퍼 엔드 이펙터가 제공되는 설정(즉, 상부 팔 '제1 링크', 하부 팔 '제2 링크', 손 '엔드 이펙터'에 해당)을 가진 로봇을 고려한다. 두 링크는 링크 맵 1 및 링크 맵 2에 의해 다루어진다. 엔드 이펙터에 대한 매핑은 해당 특정 설정에 유효하지만, 제2 링크(하부 팔)가 링크 맵 3이 적용되는 다른 제3 링크(예를 들어, 다른 모양이나 물리적 범위를 갖는 다른 하부 팔)로 대체되는 경우, 부분적으로 점유된 작업 공간 요소의 세트가 운동학 체인에 있어서 이전 변경으로 인해 서로 다를 수 있으므로 그리퍼 엔드 이펙터에 대한 서로 다른 매핑이 필요할 것이다. 그러나 가장 바깥쪽 링크, 부품 및 차원(예를 들어, 이전 예에서의 엔드 이펙터)은 매핑이 운동학 체인에서 더 바깥쪽에서 일어나는 일에 영향을 받지 않으므로 자유롭게 변경할 수 있다.
로드맵 차원과 관련된 이 매핑의 유연성은 서로 다른 적용예가 서로 다른 해상도를 필요로 하기 때문에 매우 유용하다. 일부 적용예는 고해상도가 필요하지만 어떤 적용예는 그렇지 않을 수도 있다. 예를 들어, 로봇에는 엔드 이펙터의 회전 운동을 제공할 수 있는 '손목'이 있을 수 있다. 적용예에 따라 정밀한 회전 운동이 필요할 수도 있지만, 다른 적용예에서는 매우 '대략적인' 회전(예를 들어, '손바닥 위로' 및 '손바닥 아래로'와 같이 180°로 분리된 두 개의 서로 다른 포지션 사이)만 필요할 수도 있다.
이러한 상황에서, 예를 들어 6-DOF 로봇의 경우, 서로 다른 적용예를 위해 시스템을 사용하는 두 명의 서로 다른 사용자가 처음 세 개의 링크에 대해 동일한 매핑을 사용하고 세 개의 외부 링크에 대해서만 서로 다른 매핑을 사용할 수 있다.
본 발명을 사용하면 많은 수의 서로 다른 매핑을 미리 계산할 수 있어 매핑을 서로 다른 링크에 재사용할 수 있으므로 많은 저장 공간과 계산 시간을 절약할 수 있다. 또한, 굉장히 다양할 수 있는 선택된 그리퍼는 로봇에 대한 매핑에 영향을 미치지 않으며 별도로 생성될 수 있다.
로봇(2)은 실행 시간 동안 서로 다른 물체를 선택할 수 있으므로, 로봇(2)의 범위(로봇(2)이 조작하는 물체 포함)는 일반적으로 온라인으로, 즉 로봇(2)의 작동 중에 변경된다. 본 발명의 모듈식 매핑 접근법은 전체 로봇(2)에 대한 매핑을 변경할 필요 없이, 작동 중 각각의 주어진 시간동안 존재하는 적절한 링크 및 부품에 대한 매핑을 유연하게 사용할 수 있도록 한다.
로봇 적용예에서 로봇은 크기와 모양이 서로 다른 다양한 물체를 처리해야 하는 경우가 많다. 예를 들어, 창고에서 로봇은 유통을 위한 서로 다른 많은 구성요소(예를 들어, 온라인 상점으로부터 고객에게 배송할 상품)를 픽업해야 할 수 있으며, 여기서 이러한 구성요소 각각은 모양이나 크기가 서로 다르다(즉, 물리적 크기가 서로 다름). 마찬가지로 재활용 공장에서 로봇은 물리적 크기가 서로 다른 여러 종류의 물체(예를 들어, 유리병, 알루미늄 캔, 판지 등)를 분류해야 할 수 있다.
로봇(2)이 운반하거나 조작하는 부품을 포함하여 로봇(2)의 모든 부품에 대한 매핑으로서, 많은 수의 물체에 대한 맵의 세트를 관리하는 것은 금세 불가능해진다. 한 가지 해결책은 모든 물체를 로봇이 조작해야 할 물리적 범위가 가장 큰 물체와 동등한 것으로 간주하는 것이다. 그러나 이는 일반적으로 효율적이지 않은데―예를 들어―로봇(2)이 운반하는 물체가 장애물에 부딪힐 것으로 가정하기 때문에 더 긴 경로를 택하게 되지만 실제로는 조작하는 물체가 훨씬 작고 더 작은 물체가 허용하는 더 바람직한(예를 들어, 더 짧은) 경로를 따랐다면 실제로 장애물에 부딪히지 않았을 수 있기 때문이다. 또한, 이러한 보수적인 접근법(즉, 모든 물체를 가능한 가장 큰 물체만큼 큰 것으로 간주하는 방식)을 취하면 잘못된 충돌 '검출'로 인해 실현 가능한 목적이 실현 불가능한 것으로 기록될 수 있다.
또한, 로봇 설정과 조작된 물체의 서로 다른 조합 모두에 필요한 모든 맵을 생성하는 데 상당한 시간이 소요될 수 있다. 이러한 종래 기술 접근법은 또한 설정 변경 및 새로운 작업에 대한 시스템의 유연성을 떨어뜨린다. 이러한 문제를 해결하기 위해, 본 발명의 실시예는 도 10 내지 도 12를 참조하여 아래에 설명되는 바와 같이 '레이어드 맵' 접근법을 도입한다.
도 10은 작은 물체(50)에 의해 닿은 작업 공간 요소(48), 즉 작은 물체(50)와 적어도 부분적으로 충돌하는 요소(48)를 예시하는 개략도이다. 더 큰 물체의 경우, 도 11 및 12에 도시된 것처럼 작은 물체로부터 '성장'할 수 있으며, 여기서 닿은 추가 작업 공간 요소만 저장된다.
구체적으로, 도 11은 작은 물체(50)로부터 확장된 중간 물체(54)에 의해 닿은 작업 공간 요소(52)를 추가의 '양파' 레이어로 예시하는 개략도이다. 도 12는 중간 물체(54)로부터 확장된 큰 물체(58)에 닿은 작업 공간 요소(56)가 추가의 추가 '양파' 레이어로 추가된 것을 예시한다.
따라서, 양파가 다양한 레이어로 구성되는 것과 유사하게 부품을 적절한 레이어로 모듈식으로 구성할 수 있다. 결과적으로, 레이어드 맵 접근법은 전체적으로 각각의 부품에 대한 단일 맵을 만드는 대신 전체 부품을 함께 매핑하는 각각의 레이어에 대한 여러 맵을 구성한다. 따라서, 경로 계획 공정에서 중간 물체(54)를 고려해야 하는 경우, 작은 물체(50)에 대한 매핑과 작은 물체(50)에 의해 닿은 요소(48)에 더해 중간 물체(54)가 닿은 추가 작업 공간 요소(52)에 대한 '추가' 매핑을 통해 적절한 매핑을 구성할 수 있다. 마찬가지로, 큰 물체(58)는 세 개의 물체(50, 54, 58) 모두에 대한 매핑을 결합하여 고려할 수 있다.
이 전략을 사용하면 중복 정보로 메모리 저장 공간을 낭비하지 않고도 광범위한 부품을 매핑할 수 있다.
매핑은 한 번에 단일 레이어에 대해 생성된다. 각각의 레이어는 앞서(즉, 링크 및/또는 엔드 이펙터의 체인과 관련하여) 설명한 것과 동일한 방식으로 생성되며, 여기서 각각의 레이어는 바로 앞의 내부 레이어로부터 바깥쪽으로 확장된다. 각각의 매핑은 지정된 레이어에 고유한 닿음만 저장한다. 즉, 내부 레이어 중 임의의 레이어에 대한 닿음은 저장하지 않는다. 따라서, 단일 구성의 경우 부품을 구성하는 모든 레이어의 닿음 수가 전체 부품에 대한 단일 맵의 닿음 수와 정확히 같을 수 있다. 각 레이어는 단일 복셀보다 작거나 얇을 수 있으므로 특정 노드나 에지에서 고유한 닿음이 생성되지 않을 수 있다.
각각의 레이어에 대한 매핑은 고유한 닿음만 저장하므로 각각의 '레이어 맵'은 기본 레이어 맵과의 조합으로만 사용할 수 있다. 따라서, 구축 시(즉, 다양한 부품에 대한 매핑의 라이브러리를 고안할 때) 부품을 '성장'시키는 방법에 대해 설계 결정을 내려야 한다. 이는 특정 적용예 및 특정 구현에 대한 설계 요구 사항에 따라 달라질 수 있으므로 여기서는 더 이상 논의하지 않는다.
레이어 사이의 이격 거리가 작업 공간 요소의 최대 대각선 길이보다 큰 경우, 두 레이어가 동시에 닿는 임의의 작업 공간 요소(예를 들어, 복셀)가 존재하지 않으므로 공유 닿음을 갖지 않으며, 어떤 레이어에 대한 모든 닿음은 다른 레이어에 비해 고유하다.
따라서, 본 발명은 여러 부분의 레이어드 맵을 로컬 메모리, 예를 들어 GPU와 같은 병렬 처리 유닛의 메모리에 로딩할 수 있는 유리한 배열을 제공하며, 이는 각각의 부분의 전체 로봇에 대해 별도의 매핑이 이루어지는 종래의 접근법보다 메모리 요구 사항이 더 최적이다. 본 발명의 해결책은 서로 다른 부품을 선택할 수 있고 서로 다른 엔드 이펙터(예를 들어, 그리퍼)를 사용할 수 있는 유연한 접근법을 제공한다.
본 발명의 추가의 장점은 매핑을 생성할 때 선택해야 할 정확한 부분을 알 필요가 없다는 것이다. 매우 적은 오버헤드 메모리로 큰 모양 세트를 생성하고 온라인에서 결합하여 현재 조작 중인(또는 조작할 예정인) 부분을 캡처할 수 있다. 예를 들어, 센서가 조작할 미지의 물체가 작은 물체(50)보다 크지만 중간 물체(54)의 경계 내에 들어맞는다고 판단하여 중간 물체에 적합한 매핑을 사용할 수 있다.
로드맵의 무효화 또는 라벨링(예를 들어, 장애물(16, 18, 20, 22)과의 충돌을 초래하는 노드 및/또는 에지를 버리기 위한)은 당업계에 공지된 종래의 접근법과 유사한 방식으로 수행될 수 있지만, 본 명세서에 설명된 모듈식 매핑 접근법은 병렬 처리 유닛, 예를 들어 GPU에 의한 실행을 위해 무효화 공정을 보다 메모리 효율적으로 만들어준다.
노드 및 에지의 라벨은 '라벨 배열' 또는 일부 다른 적절한 저장 포맷에 저장될 수 있으며, 이는 병렬 처리 유닛(예를 들어, GPU)의 메모리에 저장될 수 있다. 사용되는 라벨은 작업 공간 요소(예를 들어, 복셀)가 점유 또는 비어 있는지 여부에 대응하는 간단한 라벨(예를 들어, 이진 라벨)을 사용할 수도 있고, 더 복잡한 라벨을 사용할 수도 있다(예를 들어, '위험' 숫자 또는 점유 가능성, 물체와의 거리, 물체가 존재할 것으로 예상되는 시간 등이 라벨로 사용될 수 있음).
배열에서, 라벨은 작업 공간 요소(복셀)와 교차하는 로봇 링크를 기준으로 계층적으로 저장할 수 있으며, 이는 구조화된 로드맵을 사용할 때 특히 유용하다. 이러한 계층적 구조를 사용하면 베이스에 가까운 링크가 특정 노드 또는 에지에 대해 라벨이 지정된 작업 공간 요소(복셀)와 교차할 때 해당 링크까지 동일한 구성을 가진 모든 구성과 에지에 암시적으로 동일한 라벨이 부여된다. 베이스 노드/에지에 라벨을 지정하면 모든 팔 노드/에지에 암시적으로 라벨이 지정된다.
본 명세서에 설명된 모듈식 매핑 접근법을 사용하면 특정 로드맵, 로봇 설정 및 물리적 범위, 운동학 및 작업 공간에 대응하는 모든 매핑을 시작 시 GPU(또는 기타 병렬 처리 유닛)에 로딩될 수 있다.
작업 공간 요소의 라벨링(즉, 점유, 비어 있음 또는 기타 상태로 라벨링되어 있는지 여부)을 확인하고 라벨을 기반으로 대응하는 노드/에지(및 구조화된 로드맵의 경우 암시적으로 저장된 모든 노드/에지)에 적절하게 라벨을 지정할 수 있다. 그런 다음 무효화되거나 라벨이 지정된 로드맵을 사용하여 그래프 검색을 수행하여 무효화된 노드와 에지를 피할 수 있는 경로를 얻을 수 있다. 예를 들어, 다른 라벨(예를 들어, 이진 라벨이 아닌 라벨)을 사용하여 해당 에지 또는 노드를 통과하는 비용을 조정할 수 있으며, 그래프 검색은 비용 함수를 사용하여 '최적' 경로를 찾을 수 있다(여기서 비용은 예를 들어, 위험, 에너지 소비, 속도 제한 등과 관련될 수 있다).
도 13에서 볼 수 있듯이, 특정 관절은 관절 각도에 관계없이 링크의 많은 부분이 동일한 영역에 닿도록 배열될 수 있다. 이러한 닿음은 모든 관절 각도에 대해 암시적으로 한 번만 저장되어 메모리를 더 절약할 수 있다. 구조화된 로드맵을 사용하는 경우 이러한 닿음을 하위 링크의 일부로 간주하여 이를 수행할 수 있다. 매핑은 모듈식이기 때문에 현재 링크에 대한 맵에 암시적으로 저장되지만 닿음을 발생시킨 '하위' 또는 '내부' 링크에 대한 매핑의 일부가 된다.
이 특정 예에서 링크(60)는 도 13의 점선으로 표시된 서로 다른 회전 상태에서 볼 수 있듯이 일단부의 관절 축을 중심으로 회전한다. 이 경우 관절에 의해 닿은 작업 공간 요소(62)는 링크(60)의 모든 회전 상태에서 동일하다. 이처럼, 이러한 요소(62)는 한 번만 저장하면 되고, 해당 링크(60)의 모든 회전 상태에 대해 닿은 것으로 결정된다.
따라서, 본 발명의 실시예는 서로 다른 물체(예를 들어, 로봇 링크, 엔드 이펙터 및/또는 로봇에 의해 조작될 외부 물체)에 대한 매핑이 적절하게 결합될 수 있는 '모듈식' 매핑으로 분할되는 로봇에 대한 동작 계획을 수행하는 개선된 방법을 제공함을 알 수 있다. 이러한 접근법은 전체 로봇의 매핑을 생성해야 하는 기존 접근법에 비해 동작 계획을 수행하기 위한 메모리 및/또는 계산 요구 사항을 크게 개선할 수 있다.
당업자들은 본 명세서에 설명된 특정 실시예들이 단지 예시적인 것일 뿐이며, 본 발명의 범위 내에서 많은 변형이 예상됨을 이해할 것이다.
Claims (35)
- 로봇이 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되는 로봇에 대한 동작 계획을 수행하는 방법으로서,
제1 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하는 단계;
상기 제1 세트 및 상기 제1 모델이 상기 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하는 단계;
상기 제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하는 단계;
상기 개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 상기 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하는 단계; 및
상기 제2 세트 및 상기 제2 모델이 상기 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하는 단계
를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항에 있어서,
상기 제1 모델은 로봇의 제1 링크의 표현을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 또는 제2항에 있어서,
상기 제2 모델은 로봇의 제2 링크의 표현을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 또는 제2항에 있어서,
상기 제2 모델은 감지 배열 또는 로봇의 엔드 이펙터의 표현을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 다른 모델 중 적어도 하나로부터 확장되는 추가 모델을 생성 또는 수신하는 단계;
상기 개개의 복수의 상태들 및 그 상태들 사이의 개개의 전환(들)에 대한 추가 모델과 적어도 부분적으로 충돌하는, 상기 다른 세트들 내의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 추가 세트를 결정하는 단계; 및
상기 추가 세트 및 상기 추가 모델이 상기 추가 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 추가 매핑을 생성하고, 상기 추가 매핑을 추가 메모리 영역에 저장하는 단계
를 더 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제5항에 있어서,
상기 추가 모델은 로봇의 추가 링크의 표현을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제5항에 있어서,
상기 추가 모델은 감지 배열 또는 로봇의 엔드 이펙터의 표현을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제4항 또는 제7항에 있어서,
상기 엔드 이펙터는 손; 그리퍼; 클로; 조우(jaw); 바이스; 핀셋; 핀; 바늘; 자기 배열체; 흡입 컵; 용접 공구; 절단 공구; 롤링 공구; 망치; 레이저; 드릴; 메스 및/또는 페인트 스프레이 건 중 적어도 하나를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제8항 중 어느 한 항에 있어서,
각각의 모델에 의해 적어도 부분적으로 중첩되는 작업 공간 요소의 세트를 결정하는 단계는 상기 모델에 의해 제공되는 개개의 이동 차원에 의해 허용되는 상태 및 전환을 확인하는 단계를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제9항 중 어느 한 항에 있어서,
각각의 모델에 의해 적어도 부분적으로 중첩되는 작업 공간 요소의 세트를 결정하는 단계는 정적 장애물과의 충돌 및/또는 자체 충돌에 대한 상태 및 전환을 확인하는 단계를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제10항 중 어느 한 항에 있어서,
상기 모델 중 적어도 두 개는 각각 동일한 물리적 실체의 표현인, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제11항 중 어느 한 항에 있어서,
상기 제1 및 제2 메모리 영역은 각각 메모리 내에 있고, 선택적으로는 상기 메모리가 로컬인, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제12항 중 어느 한 항에 있어서,
상기 방법은 적어도 부분적으로 병렬 처리 유닛 상에서 수행되고, 선택적으로 상기 병렬 유닛은 그래픽 처리 유닛을 포함하며, 선택적으로 상기 제1 및 제2 메모리 영역은 각각 상기 병렬 처리 유닛의 메모리 내에 있는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제13항 중 어느 한 항에 있어서,
하나 이상의 매핑이 원격 메모리 또는 오프-칩 메모리에 저장되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제14항 중 어느 한 항에 있어서,
상기 제1 세트에 있는 하나 이상의 작업 공간 요소들을 상기 제2 세트로부터 제거하는 단계를 더 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제15항 중 어느 한 항에 있어서,
상기 모델 중 하나를 초과하는 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소가 상기 모델 각각에 대응하는 세트에 포함되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제16항 중 어느 한 항에 있어서,
상기 모델 중 하나를 초과하는 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소가 상기 모델 중 하나에만 대응하는 세트에 포함되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제17항 중 어느 한 항에 있어서,
상기 로봇의 정적 부분과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소에 관한 정보를 포함하는 베이스 매핑을 생성하는 단계를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제18항 중 어느 한 항에 있어서,
상기 매핑 중 하나 이상에 대해 저장된 정보는 복수의 관심 지점을 포함할 수 있으며, 선택적으로는 상기 관심 지점 중 하나 이상이 모서리 및/또는 중심 지점을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제19항 중 어느 한 항에 있어서,
상기 작업 공간을 서로 다른 모양 및/또는 크기의 작업 공간 요소로 이산화하는 단계를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제20항 중 어느 한 항에 있어서,
상기 매핑을 사용하여 로봇이 따라야 할 경로를 생성하는 단계를 더 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제21항 중 어느 한 항에 있어서,
모델 중 하나 이상이 적어도 부분적으로 축 대칭이고, 상기 방법은 다수의 회전 상태에 대해 부분적으로 동일하게 점유된 작업 공간 요소에 관한 정보를 해당 모델에 대한 매핑에 단 한 번만 저장하는 단계를 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제22항 중 어느 한 항에 있어서,
하나의 전환 방향에 대한 작업 공간 요소 닿음(hit)만 대응하는 세트에 저장되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제23항 중 어느 한 항에 있어서,
상기 전환이 연결되는 상태 중 임의의 상태에서 발견되지 않는 전환에 대한 작업 공간 요소 닿음만 대응하는 세트에 저장되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제24항 중 어느 한 항에 있어서,
결합된 움직임에 대응하는 작업 공간 요소 닿음은 상위 링크에 대해서만 저장되고, 하위 링크에 대한 단순 전환은 재사용되는, 로봇에 대한 동작 계획 수행 방법. - 제1항 내지 제25항 중 어느 한 항에 있어서,
제1 차원 및 제2 차원에 대한 상태 및 전환이 구조적 로드맵으로서 배열되고, 선택적으로 상기 구조적 로드맵이 PDRM을 사용하여 배열되는, 로봇에 대한 동작 계획 수행 방법. - 로봇에 대한 동작 계획을 수행하도록 배열된 동작 플래너로서,
상기 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 상기 동작 플래너는,
제1 모델을 생성 또는 수신하고;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하고;
상기 제1 세트 및 상기 제1 모델이 상기 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하고;
상기 제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하고;
상기 개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 상기 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하고; 그리고
상기 제2 세트 및 상기 제2 모델이 상기 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하도록 배열되는, 동작 플래너. - 제27항에 있어서,
병렬 처리 유닛을 더 포함하고, 상기 동작 계획은 적어도 부분적으로는 상기 병렬 처리 유닛을 사용하여 수행되고, 선택적으로 상기 병렬 처리 유닛은 그래픽 처리 유닛을 포함하고, 그리고/또는 선택적으로 제1 및 제2 메모리 영역은 각각 상기 병렬 처리 유닛의 메모리 내에 있는, 동작 플래너. - 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되고, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 상기 방법은,
제1 모델을 생성 또는 수신하는 단계;
개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트를 결정하는 단계;
상기 제1 세트 및 상기 제1 모델이 상기 제1 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제1 매핑을 생성하고, 상기 제1 매핑을 제1 메모리 영역에 저장하는 단계;
상기 제1 모델로부터 확장되는 제2 모델을 생성 또는 수신하는 단계;
상기 개개의 복수의 상태들 및 이들 상태들 사이의 개개의 전환(들)에 대한 제2 모델과 적어도 부분적으로 충돌하는, 상기 제1 세트의 작업 공간 요소들에 추가하여 하나 이상의 추가 작업 공간 요소들을 포함하는 제2 세트를 결정하는 단계; 및
상기 제2 세트 및 상기 제2 모델이 상기 제2 세트 내의 개개의 작업 공간 요소들과 적어도 부분적으로 충돌하는 개개의 복수의 상태들 및 개개의 전환(들)에 관한 정보를 포함하는 제2 매핑을 생성하고, 상기 제2 매핑을 제2 메모리 영역에 저장하는 단계
를 포함하는, 비일시적 컴퓨터 판독 가능 매체. - 로봇이 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되는, 로봇에 대한 동작 계획을 수행하는 방법으로서,
매핑의 라이브러리로부터 제1 매핑을 선택하는 단계―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 상기 제1 모델이 상기 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함함―; 및
매핑의 라이브러리로부터 제2 매핑을 선택하는 단계―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 상기 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 상기 제2 모델이 상기 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―
을 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제30항에 있어서,
매핑의 라이브러리로부터 추가 매핑을 선택하는 단계를 더 포함하며, 상기 추가 매핑은 상기 제1 모델 및/또는 상기 제2 모델로부터 확장되는 추가 모델과 적어도 부분적으로 충돌하는, 상기 제1 세트 및 제2 세트의 작업 공간 요소들에 추가하여 하나 이상의 작업 공간 요소를 포함하는 추가 세트에 관한 정보를 포함하며, 상기 추가 매핑은 상기 추가 모델이 추가 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제30항 또는 제31항에 있어서,
상기 제2 매핑을 제1 세트의 작업 공간 요소들에 추가로 상기 제1 모델로부터 확장되는 제3 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제3 세트에 관한 정보를 포함하는 제3 매핑으로 대체하는 단계를 더 포함하고, 상기 제3 매핑은 상기 제3 모델이 상기 제3 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함하는, 로봇에 대한 동작 계획 수행 방법. - 제30항 내지 제32항 중 어느 한 항에 있어서,
상기 모델 중 적어도 2 개는 각각 동일한 물리적 실체의 표현인, 로봇에 대한 동작 계획 수행 방법. - 로봇에 대한 동작 계획을 수행하도록 배열된 동작 플래너로서,
상기 로봇이 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되고, 상기 동작 플래너는,
매핑의 라이브러리로부터 제1 매핑을 선택―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 상기 제1 모델이 상기 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하고; 그리고
매핑의 라이브러리로부터 제2 매핑을 선택―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 상기 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 상기 제2 모델이 상기 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―하도록 배열되는, 동작 플래너. - 프로세서에 의해 실행될 때, 프로세서가 로봇에 대한 동작 계획을 수행하는 방법을 실행하도록 하는 명령을 포함하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 로봇은 작업 공간의 복수의 상태 사이에서 작동하도록 배열되고, 상기 작업 공간은 복수의 이산화된 작업 공간 요소로 표현되며, 상기 상태 각각은 적어도 하나의 개개의 전환을 통해 적어도 하나의 다른 상태에 연결되며, 상기 방법은,
매핑의 라이브러리로부터 제1 매핑을 선택하는 단계―상기 제1 매핑은 제1 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제1 세트에 관한 정보를 포함하고, 상기 제1 매핑은 상기 제1 모델이 상기 제1 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 추가로 포함함―; 및
매핑의 라이브러리로부터 제2 매핑을 선택하는 단계―상기 제2 매핑은 제1 세트의 작업 공간 요소들에 추가하여 상기 제1 모델로부터 확장되는 제2 모델과 적어도 부분적으로 충돌하는 하나 이상의 작업 공간 요소를 포함하는 제2 세트에 관한 정보를 포함하고, 상기 제2 매핑은 상기 제2 모델이 상기 제2 세트의 개개의 작업 공간 요소와 적어도 부분적으로 충돌하는 개개의 전환(들) 및 개개의 복수의 상태에 관한 정보를 더 포함함―
를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2020505.0 | 2020-12-23 | ||
GB2020505.0A GB2602331B (en) | 2020-12-23 | 2020-12-23 | Motion planning |
PCT/GB2021/053396 WO2022136865A1 (en) | 2020-12-23 | 2021-12-21 | Motion planning |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230128502A true KR20230128502A (ko) | 2023-09-05 |
Family
ID=74220993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237025285A KR20230128502A (ko) | 2020-12-23 | 2021-12-21 | 동작 계획 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20240051136A1 (ko) |
EP (1) | EP4267351A1 (ko) |
JP (1) | JP2024501378A (ko) |
KR (1) | KR20230128502A (ko) |
CN (1) | CN116887957A (ko) |
GB (1) | GB2602331B (ko) |
WO (1) | WO2022136865A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114029944B (zh) * | 2021-10-08 | 2024-07-19 | 智动时代(北京)科技有限公司 | 一种三维空间粒晶向位定位方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6309990B2 (ja) * | 2016-03-24 | 2018-04-11 | ファナック株式会社 | 複数の機構ユニットにより構成されたロボットを制御するロボットシステム、該機構ユニット、およびロボット制御装置 |
JP7511259B2 (ja) * | 2019-04-17 | 2024-07-05 | リアルタイム ロボティクス, インコーポレーテッド | モーション計画グラフ生成ユーザインターフェース、システム、方法、および物品 |
-
2020
- 2020-12-23 GB GB2020505.0A patent/GB2602331B/en active Active
-
2021
- 2021-12-21 CN CN202180093788.3A patent/CN116887957A/zh active Pending
- 2021-12-21 WO PCT/GB2021/053396 patent/WO2022136865A1/en active Application Filing
- 2021-12-21 EP EP21840101.6A patent/EP4267351A1/en active Pending
- 2021-12-21 JP JP2023563338A patent/JP2024501378A/ja active Pending
- 2021-12-21 KR KR1020237025285A patent/KR20230128502A/ko unknown
- 2021-12-21 US US18/269,325 patent/US20240051136A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2602331A (en) | 2022-06-29 |
GB202020505D0 (en) | 2021-02-03 |
EP4267351A1 (en) | 2023-11-01 |
JP2024501378A (ja) | 2024-01-11 |
WO2022136865A1 (en) | 2022-06-30 |
CN116887957A (zh) | 2023-10-13 |
US20240051136A1 (en) | 2024-02-15 |
GB2602331B (en) | 2023-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3650181B1 (en) | Route output method, route output system and route output program | |
US11964393B2 (en) | Motion planning of a robot for various environments and tasks and improved operation of same | |
Saxena et al. | A vision-based system for grasping novel objects in cluttered environments | |
JP7123885B2 (ja) | ハンドリング装置、制御装置、および保持方法 | |
Kaldestad et al. | Collision avoidance with potential fields based on parallel processing of 3D-point cloud data on the GPU | |
CN109760040B (zh) | 干扰判定方法、干扰判定系统以及存储介质 | |
CN113492403A (zh) | 用于料箱拾取的自适应抓持规划 | |
US11945106B2 (en) | Shared dense network with robot task-specific heads | |
KR20230122118A (ko) | 지도된 자율 파지 | |
Xu et al. | Shared-control robotic manipulation in virtual reality | |
Moosmann et al. | Using deep neural networks to separate entangled workpieces in random bin picking | |
US20240051136A1 (en) | Motion Planning | |
US10933526B2 (en) | Method and robotic system for manipulating instruments | |
CN115205371A (zh) | 用于根据对象的摄像机图像定位对象的部位的设备和方法 | |
Sundaram et al. | Environment-aware grasp strategy planning in clutter for a variable stiffness hand | |
Xiang et al. | Research on Key Technology of Logistics Sorting Robot | |
US20230182293A1 (en) | Systems and methods for grasp planning for a robotic manipulator | |
Leitner et al. | Designing Cartman: a cartesian manipulator for the Amazon Robotics Challenge 2017 | |
Al-Shanoon et al. | DeepNet‐Based 3D Visual Servoing Robotic Manipulation | |
Wang et al. | Human-machine collaboration in robotics: Integrating virtual tools with a collision avoidance concept using conglomerates of spheres | |
Maheshwari et al. | DESIGN OF ADVANCE ROBOT FOR SURVEILLANCE AND RISK-FREE MOVEMENT: A SIMULATION APPROACH. | |
Psarakis | Integrating and Evaluating Planning Primitives for Robot Manipulation Tasks in Warehouse Logistics | |
Giampà | Development of an Autonomous Mobile Manipulator for Industrial and Agricultural Environments | |
CN117377559A (zh) | 用于抓取稳定性的路径约束的自动生成 | |
Elhousry et al. | Implementation of an Automated Catering Service Using UR3 Robotic Arms in CoppeliaSim V-REP |