KR101691939B1 - 로봇의 경로 계획방법 및 장치 - Google Patents

로봇의 경로 계획방법 및 장치 Download PDF

Info

Publication number
KR101691939B1
KR101691939B1 KR1020090073258A KR20090073258A KR101691939B1 KR 101691939 B1 KR101691939 B1 KR 101691939B1 KR 1020090073258 A KR1020090073258 A KR 1020090073258A KR 20090073258 A KR20090073258 A KR 20090073258A KR 101691939 B1 KR101691939 B1 KR 101691939B1
Authority
KR
South Korea
Prior art keywords
target
tree
goal
point
node
Prior art date
Application number
KR1020090073258A
Other languages
English (en)
Other versions
KR20110015834A (ko
Inventor
김명희
노경식
임산
임복만
곽천슈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090073258A priority Critical patent/KR101691939B1/ko
Priority to US12/805,271 priority patent/US8825209B2/en
Publication of KR20110015834A publication Critical patent/KR20110015834A/ko
Application granted granted Critical
Publication of KR101691939B1 publication Critical patent/KR101691939B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40264Human like, type robot arm

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

로봇의 머니퓰레이터가 경로 생성을 위한 노드 확장시 Local minima에 빠진 경우, 랜덤 탈출 방식과 Goal Function 변경방식 중 어느 하나 혹은 그 조합을 이용하여 Local minima를 효과적으로 빠져 나와 경로를 생성함으로써 Local minima에 빠져 역기구학 해를 찾지 못하는 경우나 부정확한 Goal Function으로 인하여 역기구학 해를 찾지 못하는 문제를 간단히 해결하여 장애물을 회피하기 위한 최적 동작 경로를 효과적으로 찾을 수 있음은 물론 해를 찾는 속도를 높여 최적 동작 경로를 찾는 데 소요되는 시간을 단축시킬 수 있다.

Description

로봇의 경로 계획방법 및 장치{METHOD AND APPARATUS OF PATH PLANING FOR A ROBOT}
로봇의 경로 계획방법 및 장치에 관한 것으로, 더욱 상세하게는 로봇과 작업 환경 내의 장애물이 간섭하지 않는 로봇의 동작 경로를 계획하는 로봇의 경로 계획방법 및 장치에 관한 것이다.
일반적으로, 전기적 또는 자기적인 작용을 이용하여 인간의 동작과 닮은 운동을 행하는 기계장치를 로봇이라고 한다. 초기의 로봇은 생산 현장에서의 작업 자동화ㆍ무인화 등을 목적으로 한 머니퓰레이터나 반송 로봇 등의 산업용 로봇으로 인간을 대신하여 위험한 작업이나 단순한 반복 작업, 큰 힘을 필요로 하는 작업을 수행하였으나, 최근에는 인간과 유사한 관절체계를 가지고 인간의 작업 및 생활공간에서 인간과 공존하며 다양한 서비스를 제공하는 인간형 로봇(humanoid robot)의 연구 개발이 활발하게 진행되고 있다.
이러한 인간형 로봇은 전기적ㆍ기계적 메카니즘에 의해서 팔이나 손의 동작에 가깝게 운동할 수 있도록 만들어진 머니퓰레이터(manipulator)를 이용하여 작업을 수행한다. 현재 사용되고 있는 대부분의 머니퓰레이터는 여러 개의 링크(link) 들이 서로 연결되어 구성된다. 각 링크들의 연결 부위를 관절(joint)이라 하는데 머니퓰레이터는 이러한 링크와 관절들 사이의 기하학적인 관계에 따라 운동 특성이 결정된다. 이 기하학적인 관계를 수학적으로 표현한 것이 기구학(Kinematics)이며 대부분의 머니퓰레이터는 이러한 기구학적 특성(kinematics characteristic)을 가지고 작업을 수행하기 위한 방향(목표점)으로 로봇 선단(end-effector ; 이하 엔드 이펙터라 한다)을 이동시킨다.
머니퓰레이터가 주어진 작업(예를 들어, 물체를 잡는 작업)을 수행하기 위해서는 머니퓰레이터가 작업을 수행하기 전의 초기 위치(시작점)에서부터 작업을 수행할 수 있는 즉, 물체를 잡을 수 있는 최종 위치(목표점)까지 머니퓰레이터의 이동 경로를 생성하는 것이 중요하다. 이는 머니퓰레이터가 시작점에서 목표점까지 작업 영역 내의 장애물과 충돌하지 않고 이동할 수 있는 경로를 알고리즘에 의해 자동 생성하는 것으로, 장애물과의 충돌을 일으키지 않는 자유 공간을 찾는 과정과, 자유 공간에서 머니퓰레이터의 이동 경로를 계획하는 과정으로 나누어 볼 수 있다.
이하에서는 장애물 회피 등의 제약 조건을 만족하면서 주어진 시작점과 목표점을 연결하는 최적 경로를 계획하는 경로 계획(Sampling Based Path Planning) 알고리즘에 있어서 자유도가 높거나 복잡한 제약 조건이 있는 상황에서 RRT(Rapidly-exploring Random Tree) 알고리즘을 사용하는 방법에 대하여 기술한다.
RRT 알고리즘은 머니퓰레이터가 작업을 수행하는 형상 공간(Configuration Space ; C-Space)에서 무작위로 샘플링한 형상을 이용하여 초기 시작점에서부터 가 장 가까운 노드를 선택하는 과정을 반복하여 트리(tree)를 확장해 나가면서 최종 목표점까지 이동 경로를 찾는 방법으로, 이 경우 Goal Function은 목표점에서 엔드 이펙터까지의 거리와 방향 벡터의 함수로 이루어져 트리 중에서 Goal Score가 가장 작은 노드를 선택하여 트리를 확장해 나가는 것이다.
그러나 종래의 RRT 알고리즘은 가장 가까운 노드를 선택하여 최종 목표점에 도달하는 트리를 확장해 나갈 때 Goal Score에 크게 의존하므로 Goal Function이 정확하게 정해지지 않으면 Local Minima에 빠져 해(Solution)를 찾지 못하는 문제점이 있다.
본 발명의 일측면에 따라 Local Minima에 빠진 경우, Goal Function을 변화시켜 Local Minima에서 효과적으로 빠져나오게 하여 경로 계획의 성능을 향상시킬 수 있는 로봇의 경로 계획 방법 및 장치를 제공한다.
시작점, 목표점, 제약조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획방법에 있어서, 상기 트리 확장시 로컬 미니마(Local MInima)인지를 판단하고, 상기 로컬 미니마(Local Minima)인 경우, 임의의 점을 선택하고, 상기 임의의 점과 트리에서 가장 가까운 노드를 선택하고, 상기 임의의 점과 상기 선택된 노드사이의 라인에서 상기 제약조건 및 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 샘플을 얻고, 얻은 샘플을 트리에 추가하여 트리를 확장하는 것을 포함한다.
상기 로컬 미니마인지를 판단하는 것은, 다음 노드의 목표점수가 이전 노드의 목표점수보다 높은 경우를 반복하는 횟수가 미리 설정된 횟수이상인 경우 상기 로컬 미니마로 판단하는 것을 포함한다.
상기 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 샘플을 판단하는 것은 상기 샘플의 목표 점수(Goal Score)와 이전 노드의 목표 점수(Goal Score)를 비교하여 상기 샘플의 목표 점수(Goal Score)가 상기 이전 노드 목표 점수(Goal Score)보다는 작으면 상기 샘플이 상기 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 것으로 판단하는 것을 포함한다.
시작점, 목표점, 제약조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획방법에 있어서, 상기 트리 확장시 로컬 미니마(Local MInima)인지를 판단하고, 상기 로컬 미니마(Local Minima)인 경우, 상기 목표 함수(Goal Function)를 새로운 목표 함수(Goal Function)로 변경하고, 상기 변경된 목표 함수(Goal Function)를 적용하여 트리 중에서 목표 점수가 가장 낮은 노드를 선택하고, 임의의 점을 선택하고, 상기 선택된 노드와 임의의 점사이의 라인에서 상기 제약조건 및 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 샘플을 얻고, 얻은 샘플을 트리에 추가하여 트리를 확장하는 것을 포함한다.
상기 목표 함수(Goal Function)로 변경하는 것은, 장애물과 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것과, 로컬 미니마(Local Minima)에 빠진 상기 머니퓰레이터의 엔드이펙터와 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것 중 적어도 하나를 수행하는 것을 포함한다.
시작점, 목표점, 제약조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획장치에 있어서, 상기 트리 확장시 로컬 미니마(Local MInima)인지를 판단하고, 상기 로컬 미니마(Local Minima)인 경우, 임의의 점을 선택하고, 상기 임의의 점과 트리에서 가장 가까운 노드를 선택하고, 상기 임의의 점과 상기 선택된 노드사이의 라인에서 상기 제약조건 및 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 샘플을 얻고, 얻은 샘플을 트리에 추가하여 트리를 확장하는 경로 계획 생성부를 포함한다.
시작점, 목표점, 제약조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획 장치에 있어서, 상기 트리 확장시 로컬 미니마(Local MInima)인지를 판단하고, 상기 로컬 미니마(Local Minima)인 경우, 상기 목표 함수(Goal Function)를 새로운 목표 함수(Goal Function)로 변경하고, 상기 변경된 목표 함수(Goal Function)를 적용하여 트리 중에서 목표 점수가 가장 낮은 노드를 선택하고, 임의의 점을 선택하고, 상기 선택된 노드와 임의의 점사이의 라인에서 상기 제약조건 및 미리 설정된 목표 점수(Goal Score) 조건을 만족하는 샘플을 얻고, 얻은 샘플을 트리에 추가하여 트리를 확장하는 경로 계획 생성부를 포함한다.
머니퓰레이터가 Local minima에 빠진 경우, 랜덤 탈출 방식과 Goal Function 변경방식 중 어느 하나 혹은 그 조합을 이용하여 Local minima를 효과적으로 빠져 나오게 하여 해를 찾을 수 있게 함으로써 Local minima에 빠져 역기구학 해를 찾지 못하는 경우나 부정확한 Goal Function으로 인하여 역기구학 해를 찾지 못하는 문 제를 간단히 해결하여 장애물을 회피하기 위한 최적 동작 경로를 효과적으로 찾을 수 있음은 물론 해를 찾는 속도를 높여 최적 동작 경로를 찾는 데 소요되는 시간을 단축시킬 수 있다.
이하, 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시예에 의한 로봇의 일례를 나타낸 외관도이다.
도 1에서, 본 발명의 실시예에 의한 로봇(100)은 인간과 마찬가지로 두 개의 다리(110R, 110L)에 의해 직립 이동하는 이족 보행 로봇으로, 몸통(120)과, 몸통(120)의 상부에 두 개의 팔(130R, 130L)과 머리(140)를 구비하며, 두 개의 다리(110R, 110L)와 팔(130R, 130L) 선단에는 각각 발(111R, 111L)과 핸드(131R, 131L)를 구비한다. 참조부호에서 R과 L은 로봇(100)의 오른쪽(Right)과 왼쪽(Left)을 나타낸다.
도 2는 도 1에 나타낸 로봇의 주요 관절 구조를 나타낸 도면이다.
도 2에서, 두 개의 팔(130R, 130L)은 로봇(100)의 어깨, 팔꿈치, 손목에 해당하는 부분이 회전할 수 있도록 어깨 관절(132R, 132L), 팔꿈치 관절(133R, 133L), 손목 관절(134R, 134L)을 각각 구비하고, 어깨 관절(132R, 132L)은 몸통(120) 상부의 양 쪽 끝에 위치한다.
각 팔(130R, 130L)의 어깨 관절(132R, 132L)은 x축(roll axis)과 y축(pitch axis), z축(yaw axis)로 움직임이 가능하고, 팔꿈치 관절(133R, 133L)은 y축(pitch axis)로 움직임이 가능하며, 손목 관절(134R, 134L)은 x축(roll axis)과 y축(pitch axis), z축(yaw axis)로 움직임이 가능하다.
또한, 두 개의 팔(130R, 130L)에는 어깨 관절(132R, 132L)과 팔꿈치 관절(133R, 133L)을 연결하는 상부 링크(135R, 135L)와, 팔꿈치 관절(133R, 133L)과 손목 관절(134R, 134L)을 연결하는 하부 링크(136R, 136L)를 각각 포함하여 각 관절((132R, 132L), (133R, 133L), (134R, 134L))의 가동각 범위에 따라 일정 수준의 자유도를 가지고 이동이 가능하도록 한다.
그리고, 두 개의 다리(110R, 110L)와 연결되는 몸통(120)에는 로봇(100)의 허리에 해당하는 부분이 회전할 수 있도록 허리 관절(121)을 구비하며, 몸통(120)에 연결되는 머리(140)에는 로봇(100)의 목에 해당하는 부분이 회전할 수 있도록 목 관절(141)을 구비한다.
본 발명의 실시예에서 두 개의 팔(130R, 130L)은 모션이 가능한 작업을 수행하는 머니퓰레이터(130; manipulator)로, 머니퓰레이터(130)의 선단에 마련되는 두 개의 핸드(131R, 131L)가 작업 대상물(물체)을 잡는 엔드 이펙터(131; end effector)에 해당한다. 이를 도 3에 간략하게 도식화하였다.
도 3은 본 발명의 실시예에 의한 로봇의 기구학적 여유구동 머니퓰레이터의 형상을 간략하게 도식화한 구성도이다.
도 3에서, 머니퓰레이터(130)는 전기적 혹은 기계적 메카니즘에 의해서 인간의 팔이나 손의 동작에 가깝게 운동할 수 있도록 만들어진 것으로, 현재 사용되고 있는 대부분의 머니퓰레이터(130)는 여러 개의 링크(구체적으로, 상부 링크 또는 하부 링크)가 여러 개의 관절(구체적으로, 어깨 관절, 팔꿈치 관절 또는 손목 관 절)을 통해 서로 연결되어 구성된다. 머니퓰레이터(130)는 이러한 링크와 관절들 사이의 기하학적인 관계에 따라 운동 특성이 결정된다. 이 기하학적인 관계를 수학적으로 표현한 것이 기구학(Kinematics)이며 대부분의 머니퓰레이터(130)는 이러한 기구학적 특성(kinematics characteristic)을 가지고 작업을 수행하기 위한 방향으로 엔드 이펙터(131)를 이동시킨다. 본 발명의 실시예에 의한 머니퓰레이터(130)는 위치와 방향 조절이 가능한 링크들을 이용하여 물체를 잡기 위한 목표점으로 엔드 이펙터(131)를 이동시킨다.
도 3에서 알 수 있듯이, 동일한 물체를 잡기 위하여 목표점으로 이동하는 머니퓰레이터(130)의 형상은 (A) 또는 (B)과 같이 여러 가지 형상으로 변화될 수 있다.
도 4는 본 발명의 실시예에 의한 로봇에서 머니퓰레이터의 이동 경로를 계획하기 위한 제어 블록도로서, 사용자 인터페이스부(200), 경로 계획 생성부(210), 인식부(220), 로봇 제어부(230) 및 구동부(240)를 포함하여 구성된다.
사용자 인터페이스부(200)는 로봇 특히, 머니퓰레이터(130)에서 수행하기 위한 작업 명령(예를 들어, 테이블 위에 놓여진 물체를 잡기 위한 파지 명령)을 사용자가 스위치 조작이나 음성 등을 통해 입력한다.
경로 계획 생성부(210)는 사용자 인터페이스부(200)를 통해 입력되는 작업 명령에 따라 머니퓰레이터(130)의 이동을 제어하기 위한 경로 계획을 생성하여 이를 로봇 제어부(230)에 전달한다. 경로 계획 생성부(210)에서 경로 계획을 생성하는 방법은 크게 공간 형성 단계와, 그래프 탐색 단계와, 경로 생성 단계를 포함한 다.
공간 형성 단계는 충돌 회피 경로를 생성하기 위한 형상 공간(C-Space)을 찾아내는 과정으로, 여기에서 형상이란 움직이는 머니퓰레이터(130)의 위치 및 방향을 표현할 수 있는 변수의 집합을 말하며, 형상들이 점유할 수 있는 모든 공간을 형상 공간(C-Space)이라 한다.
그래프 탐색 단계는 최적 경로를 생성하기 위한 탐색 가능 경로를 나타내는 연결 망(connected network)을 생성하는 과정으로, 움직이는 머니퓰레이터(130)에 대해서 트리와 같은 셀 분해(cell decompositon) 방식으로 형성된 형상 공간(C-Space)을 바탕으로 랜덤하게 형상을 추출하여 장애물 공간과 충돌을 일으키는 형상은 제외시키는 방법으로 노드를 생성하고, 생성된 노드들 사이를 연결하는 탐색 트리를 생성하여 경로 생성을 위한 탐색 그래프를 찾아내는 것이다.
경로 생성 단계는 주어진 탐색 공간의 연결 망에서 충돌을 일으키지 않도록 장애물 공간을 회피하여 시작점과 목표점을 연결하는 최적 경로를 생성하는 과정이다.
인식부(220)는 머니퓰레이터(130)가 작업 명령을 수행하기 위해 주어진 정보 즉, 작업 명령을 수행하기 전의 머니퓰레이터(130)의 초기 위치에서의 형상(시작점)과 작업 명령을 수행할 수 있는 머니퓰레이터(130)의 목표 위치에서의 형상(목표점), 그리고 시작점과 목표점 사이에 있는 장애물들을 형상 공간(C-Space)에서 인식하여 경로 계획 생성부(210)에 전달하고, 이 인식 정보는 경로 계획 생성부(210)에서 머니퓰레이터(130)의 이동 경로를 계획하는데 근거가 된다.
로봇 제어부(230)는 경로 계획 생성부(210)에서 전달받은 경로 계획에 따라 구동부(240)를 제어하여 머니퓰레이터(130)를 구동시킴으로서 머니퓰레이터(130)의 이동을 제어한다.
이하, 상기와 같이 구성된 로봇 및 그 경로 계획 방법의 동작과정 및 작용효과를 설명한다.
도 5는 본 발명의 실시예에 의한 형상 공간을 나타낸 도면이다.
도 5에서, 형상 공간(C-Space)은 머니퓰레이터(130)가 작업을 수행하는 동적 공간으로, S는 머니퓰레이터(130)가 작업을 수행하기 전 초기 위치에서의 형상을 형상 공간(C-Space)에서 하나의 노드로 형성한 시작점을 나타내고, G는 머니퓰레이터(130)가 작업을 수행할 수 있는 즉, 물체를 잡을 수 있는 목표 위치에서의 형상을 형상 공간(C-Space)에서 하나의 노드로 형성한 목표점을 나타내며, K는 시작점(S)과 목표점(G) 사이에 있는 장애물의 형상 공간을 나타낸다.
장애물에 대한 충돌 회피 등의 제약 조건을 만족하면서, 경로를 계획하는 방법 중 하나로 샘플링을 이용한 동작 계획(Sampling Based Motion Planning)이 있다.
이 방법 중의 하나로 RRT(Rapidly Random Tree) 탐색방법이 있다.
이 RRT의 트리 확장 방법도 싱글 RRT(Single RRT), BI-RRT(Bi-Directional RRT), BF-RRT(Best First Search & RRT)등으로 크게 3개로 나뉘어져 있다. Single RRT은 초기 형상에서 목표 형상까지 도달하는 게 목표이다. 초기 형상, 목표 형상, 제약조건들이 명시된 형상 공간(C-Space)상에서 랜덤하게 한 가지 형상을 선택 후, 랜덤 선택한 형상에서 가장 가까운 노드를 선택하고, 가상선을 이은 후 가상선 안의 샘플이 제약 조건을 만족하면 그 샘플을 트리에 포함시키고 샘플이 목표 형상과 같아 질 때까지 계속 트리를 확장해 나간다.
상기한 Single-RRT의 경우 목표 형상까지 가기 위해 임의의 점을 선택하여 확장해 나감으로 인하여 상대적으로 많은 노드 수를 생성하게 되고 이에 따라 경로를 찾는 속도가 느려진다. 이러한 단점을 개선하기 위하여 BI-RRT의 경우 시작 형상뿐만이 아니라 목표 형상에서도 트리를 확장해 나간다(트리를 스왑(Swap)하면서 수행). 이를 수행하던 중 트리가 연결이 되면 그래프 탐색 알고리즘을 수행하여 경로를 구한다.
상기한 Single RRT와 BI-RRT는 모두 목표 형상이 정해져 있다는 특징이 있다. 하지만 여유 자유도가 있는 로봇의 경우 목표점에 도달하는 형상이 여러 가지가 있을 수 있다(도 3 참조).
또한, 목표점에 도달한 형상이 중간에 장애물과 충돌이 존재하는 형상인 경우, 목표 형상까지 도달하는 경로를 생성하는 것이 불가능할 수 있다.
BF-RRT는 목표점의 형상이 아니라 목표점의 Goal Score를 만족시키는 방법이다. 이 방법은 여유 구동 머니퓰레이터(redundant manipulator)의 경우 초기에 역기구학을 풀지 않고 샘플을 확장해 나가면서 최종 위치에 도달하는 방법이다. 여유 구동 머니퓰레이터는 작업공간에서 작업을 수행하는 데 있어 필요한 자유도보다 더 많은 자유도를 가지는 로봇 팔을 말한다.
도 6에 도시된 바와 같이, 로봇이 대상 물체를 잡는다고 가정했을 때 만족해 야 하는 Goal Function은 목표점(G)과 로봇의 엔드 이펙터(End Effector)까지의 거리(∥ G - H ∥)와 방향의 함수| (G-H) * xH - 1 |로 이루어진다.
Goal Function = ∥ G - H ∥ + α*| (G-H) * xH - 1 |----- 식 [1]
여기서, ∥ G - H ∥ 는 엔드 이펙터에서 목표점까지의 거리이며, | (G-H) * xH - 1 |는 방향 벡터이고, α는 상수이다.
BF-RRT는 다음의 스텝을 수행한다.
스텝 0 : 초기점(S), 목표점(G), 제약조건, Goal Function 등이 명시된 형상 공간(C-Space)을 형성한다. 시작점(S), 목표점(G), 그리고, 장애물(K)과 충돌 회피하기 위한 제약조건을 인식한다. 또한, 목표점(G)에서 엔드 이펙터까지의 거리와 방향 벡터의 함수인 Goal Function을 인식한다. 그리고, 시작점(S), 목표점(G), 제약조건, Goal Function으로부터 형상 공간(C-Space)을 형성한다(도 7 참조).
스텝 1 : 형상 공간(C-Space)상에서 임의의 한 점을 랜덤하게 샘플링 선택한다.
스텝 2 : 트리 중에서 Goal Score가 가장 작은 노드를 선택한다. 초기 상태에서는 트리 중에서 Goal Score가 가장 작은 노드는 시작점(S)이다.
스텝 3 : 선택된 노드와 임의의 점을 이어준다. 이때 Goal Function이 이전의 Goal Function보다 작을 경우에만 새로운 샘플을 저장한다.
도 8 내지 도 9에 도시된 바와 같이, 임의의 점을 샘플링하고(도 8 참조), 샘플링된 점과, Goal Score가 가장 작은 노드를 점선의 가상선으로 연결한 후 일정 간격으로 떨어진 새로운 샘플을 생성하고(도 9 참조), 이 새로운 샘플에 대하여 제약 조건(관절 한계(Joint limit), 충돌 회피 등) 및 Goal Score를 체크하여 제약 조건 및 Goal Score 조건을 만족하면 트리에 추가한다(도 10, 도 11 참조). 이러한 방식으로 새로운 샘플을 일정하게 확장될 때까지 반복해서 트리 T1에서 트리 T2로 확장한다.
도 12 내지 도 15는 상기한 스텝 1, 2, 3을 반복해서 새로운 샘플들을 트리에 추가하는 동작을 보여주고 있다.
스텝 4 : 확장된 노드가 Goal Score의 기준을 만족하면 마지막 노드가 Goal Function을 만족한다고 판단하여 그래프 탐색을 통해 경로를 만들어준다(도 16 및 도 17 참조).
BF-RRT 의 경우, 역기구학(Inverse Kinematics)의 해(Solution)가 존재하지 않거나, 역기구학의 해가 장애물을 거쳐 가야 하는 경로에 있는 경우에도 해를 찾을 수 있는 장점이 있다. 하지만, 트리 확장 시 Goal Score가 가장 작은 점을 택하여 확장하기 때문에 Goal Function이 적절하게 정해지지 않은 경우, Local Minima에 빠지게 되는 특성을 가지고 있다.
도 18 내지 도 21은 트리를 확장해 나가던 중 다양한 형태로 Local minima에 빠지는 형상을 보여주고 있다.
BF-RRT의 스텝 1 내지 3을 반복해서 수행하던 중 Local Minima에 빠졌다고 판단된 경우, 부분적으로 Single RRT의 방법을 적용한다. 이 방법을 적용함으로써 역기구학 해를 찾지 못한 경우, Local minima에 빠지는 경우, Goal Function의 방 향 벡터가 정확하지 않은 경우 등에서도 최종적으로는 해를 찾을 수 있게 된다.
좀더 자세히 살펴보면, 기존 BF-RRT의 스텝 1 내지 3을 반복해서 수행하던 중 Local MInima에 빠지는 경우,
스텝 4 : Local Minima인지 판단한다.
스텝 5 : Local Minima인 경우, 기존 트리에서 임의의 방향으로 트리를 확장한다.
스텝 6 : 가장 가까운 노드를 선택하여 트리와 이어준다.
도 22에 도시된 바와 같이, 트리를 확장하던 중 Local Minima에 빠진 경우,
도 23에 도시된 바와 같이, 무작위로 임의의 점을 선택 후 가장 가까운 노드와 연결한다.
도 24 내지 도 27에 도시된 바와 같이, 계속해서 Local Minima에 빠진 경우, 기존 트리에서 임의의 방향으로 트리를 확장한 후 가장 가까운 노드를 선택하여 트리를 다시 이어준다. Local Minima가 아닌 경우, 스텝 1, 2, 3을 수행하여 형상 공간(C-Space)상에서 임의의 한 점을 랜덤하게 샘플링 선택하고, 트리 중에서 Goal Score가 가장 작은 노드를 선택하고, 선택된 노드와 임의의 점을 이어준다. 스텝 1, 2, 3을 반복하다가 Goal 조건을 만족하면 최종 노드를 목표점으로 인정한 후 그래프 탐색을 하여 경로를 만든다.
위에서 설명한 방법은 도 24 내지 도 27과 같이 Local Minima에 빠진 경우 랜덤하게 선택하여 확장해 나가는 특성으로 인하여, Single RRT와 같이 탐색 공간(search space)이 커지는 경향이 있다.
이로 인하여 최종 해를 찾는 시간이 오래 걸릴 수 있다.
이에 반해, Local Minima에 빠진 경우 Goal Function을 변경하여 새로운 방향 벡터들을 적용한다면 좀더 효율적으로 역기구학 해를 찾을 수 있게 된다.
좀더 자세히 살펴보면, BF-RRT의 스텝 1,2,3을 수행하던 중
스텝 4 : local minima 인지 판단한다.
스텝 5 : local minima 인 경우 현재의 접근 방향 대신 목표점과 중간 장애물 혹은 목표점과 Local minima에 빠진 노드와 일정한 각도를 이룬 새로운 방향 벡터로 선정하고 Goal Score를 다시 매긴다.
스텝 6 : 새로운 Goal Score로 판단한 Goal에서 가장 가까운 점과 임의의 점을 이어준다.
스텝 5-1 : 만약 local minima에 또 다시 빠진 경우 방향 벡터를 바꾸어준다.
스텝 5-1 : 새로운 방향 벡터가 없는 경우 임의의 방향 벡터를 선정한다.
스텝 7 : 목표점과의 거리가 일정거리 이하가 되면 기존의 엔드 이펙터의 방향 벡터를 사용하여 Goal Score를 다시 매긴다.
스텝 8 : 확장 중 Goal Score가 Goal 기준을 만족하면 최종 노드를 목표점으로 인정하고, 그래프 탐색 알고리즘을 수행하여 경로를 찾는다.
도 28에 도시된 바와 같이, 기존 Goal Function을 이용하여 확장하던 중 Local Minima에 빠진 경우 기존 Goal Vector를 새로운 Goal Vector로 변경한다.
새로운 Goal Vector를 적용하는 것에 의해 Goal Score가 가장 작은 새로운 노드를 선택하고 이를 임의로 선택된 점을 이어준다(도 29 참조).
Goal Score가 작아지는 새로운 Node들 선택한다(도 30 참조).
계속해서 Goal Score가 작아지는 새로운 Node들 선택한다(도 31 참조).
노드가 목표점으로부터 일정거리 안에 존재하게 되면 변경된 Goal Vector를 변경 전 Goal Vector로 바꾸어주고 이어준다(도 32 참조).
Goal Score가 일정 값 수렴하면 최종 노드를 목표점으로 인정하고 그래프 탐색을 통해 경로를 찾는다(도 33 참조).
이하에서는 Goal Vector를 변경하는 방법을 설명한다.
Goal Vector를 설정해 주는 방법은 여러 가지가 있을 수 있으나, 그 중 장애물과 목표점과 일정한 각도를 이루는 벡터를 선정하는 방법(도 34 참조)과, Local Minima에 빠진 End Effector와 목표점과 일정한 각도를 이루는 벡터를 선정하는 방법(도 35 참조)에 대하여 설명한다.
위의 두 가지 방법을 모두 저장해둔 다음, 첫 번째 방법이 실패하면 두 번째 방법을 선택하는 방식으로 진행할 수 있다.
Goal Function은 다음과 같다.
Goal Function = ∥ G - H ∥ + α*| (G-H) * xH - 1 |
여기서, ∥ G - H ∥ 는 엔드 이펙터에서 목표점까지의 거리이며, | (G-H) * xH - 1 |는 방향 벡터이고, α는 상수이다.
그 중 (G-H) 부분을 Goal Vector로 칭한다.
새로 정의된 Goal Vector 및 Goal Function은 아래의 과정을 통하여 정한다.
먼저, 도 34에 도시된 바와 같이, 장애물과 목표점을 이용하는 방법에서는 새로운 Goal Function은 다음 식에 의해 정해진다.
New Goal Function = ∥ G - H ∥ + α*| A2 * xH - 1 |
A1 = Normalize(목표점-obs)
θ1 = acos(A1·A2)
여기서, | A2 * xH - 1 |는 새로 정의된 방향 벡터이고, ∥ G - H ∥ 는 엔드 이펙터에서 목표점까지의 거리이며, α는 상수이다.
A1은 장애물의 중심(obs)과 목표점간의 방향 벡터이다.
A2는 위의 조건을 만족하는 새로운 방향 벡터이고, 이 벡터를 이용하여 새로운 Goal Function을 설정한다.
한편, 도 35에 도시된 바와 같이, Local Minima에 빠진 엔드 이펙터와 목표점을 이용하는 방법에서는 새로운 Goal Function은 다음 식에 의해 정해진다.
New Goal Function = ∥ G - H ∥ + α*| B2 * xH - 1 |
B1 = Normalize(목표점-EE)
θ2 = acos(B1·B2)
여기서, | B2 * xH - 1 | 는 새로 정의된 방향 벡터이고, ∥ G - H ∥ 는 엔드 이펙터에서 목표점까지의 거리이며, EE는 엔드 이펙터 위치이며, α는 상수이다.
B2는 위의 조건을 만족하는 새로운 방향 벡터이고, 이 벡터를 이용하여 새로운 Goal Function을 설정한다.
이때, 위 전환된 방향 벡터를 이용한 경우에도 Local Minima를 빠져 나가지 못하는 경우 랜덤한 방향을 설정하거나 혹은 가장 가까운 점을 선택하여 확장해 나간다.
도 36은 머니퓰레이터(130)가 테이블 위에 놓인 작업 대상 물체인 공을 장애물인 실린더와의 충돌을 회피하면서 잡는 작업을 수행하는 경우, 초기 조건과 장애물 형상을 나타낸 것이다.
도 37은 머니퓰레이터(130)가 공을 잡으려 할 때 Local minima에 빠져 동작 경로를 나타내는 트리를 확장하지 못하는 것을 나타낸 것이다.
도 38은 머니퓰레이터(130)가 랜덤 탈출을 통해 Local minima를 빠져 나와 역기구학 해를 찾는 과정을 나타낸 것으로, 노드의 생성 수가 많고 실린더를 회피하기 위한 동작 경로가 공으로부터 멀어지게 생성되었음을 알 수 있다. 이는 역기구학 해를 찾는 속도가 그만큼 느려져 동작 경로를 찾는데 상대적으로 많은 시간이 소요된다.
도 39는 머니퓰레이터(130)가 Goal Function 변화를 통해 Local minima를 빠져 나와 역기구학 해를 찾는 과정을 나타낸 것으로, 도 38에 비해 노드의 생성 수가 적고 실린더를 회피하기 위한 동작 경로가 공으로부터 가깝게 생성되었음을 알 수 있다. 이는 역기구학 해를 찾는 속도가 그만큼 빨라져 동작 경로를 찾는데 소요되는 시간이 짧아진다.
이상에서와 같이, 머니퓰레이터(130)가 Local minima에 빠져 역기구학 해를 찾지 못하는 경우나 부정확한 Goal Function으로 인하여 역기구학 해를 찾지 못하는 경우, 랜덤 탐색이나 방향 전환을 통하여 빠른 시간내에 역기구학 해를 찾는 것을 볼 수 있다.
도 40은 본 발명의 실시예에 의한 로봇의 경로 계획 방법을 나타낸 동작 순서도이다.
도 40을 살펴보면, 경로 계획 생성부(210)는 인식부(220)를 통해 머니퓰레이터(130)가 작업 명령을 수행하기 위해 주어지는 정보 즉, 즉, 작업 명령을 수행하기 전의 머니퓰레이터(130)의 초기 위치에서의 형상(시작점; S)과 작업 명령을 수행할 수 있는 머니퓰레이터(130)의 목표 위치에서의 형상(목표점; G), 그리고 시작점(S)과 목표점(G) 사이에 있는 장애물을 회피하기 위한 제약 조건들을 형상 공간(C-Space)에서 인식한다(300).
경로 계획 생성부(210)는 시작점(S)과 목표점(G)의 거리와 방향 차이에 따른 함수인 Goal Function을 설정한다(301).
Goal Function 설정 후 경로 계획 생성부(210)는 형상 공간(C-Space)에서 제약 조건을 만족하는 동작 경로를 계획하기 위해 트리를 생성하는 경우에 있어서 무작위로 샘플링된 임의의 한 점을 선택한다(302).
기존 트리 중에서 Goal Function에 따른 Goal Score가 가장 작은 노드를 얻는다(303).
샘플링된 임의의 점과 Goal Score가 기존 트리 중에서 Goal Score 가장 작은 노드사이를 연결하는 라인 상에서 새로운 샘플을 얻는다(304).
그리고, 새로운 샘플의 Goal Score 와 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score를 비교하여 새로운 샘플의 Goal Score가 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은지를 판단한다(305).
만약, 작동모드 305의 판단결과 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은 경우, 새로운 샘플을 트리에 추가한다(306).
한편, 작동모드 306의 판단결과 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 큰 경우, 새로운 샘플을 버린다(307).
이와 함께, 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 큰 경우를 반복하는 반복횟수가 미리 설정된 제1 국부최소횟수이상인지를 판단한다(308). 반복횟수가 미리 설정된 제1 국부최소횟수이상인 경우, Local Minima에 빠진 경우이므로 무작위로 임의의 점을 선택하고(309), 이 임의의 점과 트리 중에서 가장 가까운 노드를 새로운 노드로 얻는다(310). 이 새로운 노드와 위에서 선택한 임의의 점을 연결하는 라인 상에 새로운 샘플을 얻는다(311). 이 새로운 샘플을 트리에 추가한다(306).
새로운 샘플을 트리에 추가한 후 새로운 샘플이 목표점에 도달하였는지를 알기 위해 새로운 샘플의 Goal Score와 목표점의 Goal Score를 비교하여 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 작은지를 판단한다(312).
만약, 작동모드 312의 판단결과 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 작은 경우, 새로운 샘플이 목표점에 도달한 것으로 판단하여 트리 상의 여러 노드들로부터 로봇의 머니퓰레이터(130)가 이동할 동작 경로를 생성한다(313).
한편, 작동모드 312의 판단결과 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 큰 경우, 새로운 샘플이 목표점에 도달하지 않은 것으로 판단하여 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 큰 경우를 반복하는 반복횟수가 미리 설정된 최대횟수이상인지를 판단한다(314). 만약, 작동모드 314의 판단결과 반복횟수가 미리 설정된 최대횟수이상인 경우, 로봇의 머니퓰레이터(130)에 대한 경로 생성에 실패했음을 사용자에게 경고한다(315). 한편, 작동모드 314의 판단결과 반복횟수가 미리 설정된 최대횟수미만인 경우, 작동모드 308로 이동하여 상기한 반복횟수가 미리 설정된 제1 국부최소횟수이상인지를 판단한다(308). 만약, 작동모드 308의 판단결과 반복횟수가 미리 설정된 제1 국부최소횟수이상인 경우, Local Minima에 빠진 경우이므로 무작위로 임의의 점을 선택하기 위해서 작동모드 309로 이동한다. 한편, 작동모드 308의 판단결과 상기한 반복횟수가 미리 설정된 제1 국부최소횟수미만인 경우, 상기한 반복횟수가 미리 설정된 제1 국부최소횟수보다 낮게 설정된 제2 국부최소횟수이상인지를 판단한다(316). 만약, 작동모드 316의 판단결과 상기한 반복횟수가 미리 설정된 제2 국부최소횟수미만인 경우, 작동모드 302로 이동하여 이하의 단계를 수행한다. 한편, 작동모드 316의 판단결과 상기한 반복횟수가 미리 설정된 제2 국부최소횟수이상인 경우, 기존 선행노드(q_front)를 버림 과 함께 이 선행노드(q_front)의 부모 노드를 선행노드(q_front)를 대체한다(317). 그리고, 작동모드 302로 이동하여 이하의 단계를 수행한다.
상기한 방식을 통하여 로봇의 머니퓰레이터(130)의 동작을 경로를 형성한 후 그래프 탐색 단계를 통해 머니퓰레이터(130)의 이동 경로를 찾아 경로 계획을 생성한 후 로봇 제어부(230)가 생성된 경로 계획에 따라 구동부(240)를 제어하여 머니퓰레이터(130)의 이동을 제어한다.
도 41은 본 발명의 다른 실시예에 의한 로봇의 경로 계획 방법을 나타낸 동작 순서도이다.
도 41을 살펴보면, 경로 계획 생성부(210)는 인식부(220)를 통해 머니퓰레이터(130)가 작업 명령을 수행하기 위해 주어지는 정보 즉, 즉, 작업 명령을 수행하기 전의 머니퓰레이터(130)의 초기 위치에서의 형상(시작점; S)과 작업 명령을 수행할 수 있는 머니퓰레이터(130)의 목표 위치에서의 형상(목표점; G), 그리고 시작점(S)과 목표점(G) 사이에 있는 장애물을 회피하기 위한 제약 조건들을 형상 공간(C-Space)에서 인식한다(400).
경로 계획 생성부(210)는 시작점(S)과 목표점(G)의 거리와 방향 차이에 따른 함수인 Goal Function을 설정한다(401).
Goal Function 설정 후 경로 계획 생성부(210)는 형상 공간(C-Space)에서 제약 조건을 만족하는 동작 경로를 계획하기 위해 트리를 생성하는 경우에 있어서 무작위로 샘플링된 임의의 한 점을 선택한다(402).
기존 트리 중에서 Goal Function에 따른 Goal Score가 가장 작은 노드를 얻 는다(403).
샘플링된 임의의 점과 Goal Score가 기존 트리 중에서 Goal Score 가장 작은 노드사이를 연결하는 라인 상에서 새로운 샘플을 얻는다(404).
그리고, 새로운 샘플의 Goal Score 와 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score를 비교하여 새로운 샘플의 Goal Score가 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은지를 판단한다(405).
만약, 작동모드 405의 판단결과 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은 경우, 새로운 샘플을 트리에 추가한다(406).
한편, 작동모드 405의 판단결과 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 큰 경우, 새로운 샘플을 버린다(407).
이와 함께, 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 큰 경우를 반복하는 반복횟수가 미리 설정된 제1 국부최소횟수이상인지를 판단한다(408). 반복횟수가 미리 설정된 제1 국부최소횟수이상인 경우, Local Minima에 빠진 경우이므로 무작위로 임의의 점을 선택하고(409), 현재의 Goal Function을 미리 설정된 새로운 Goal Function으로 변경함과 함께 이 변경된 Goal Function을 적용했을 때 기존 트리 중에서 이 변경된 Goal Function에 의해 가장 낮은 Goal score인 노드를 새로운 노드로 얻는다(410). 이 새로운 노드와 위에서 선택한 임의의 점을 연결하는 라인 상에 새로운 샘플을 얻는다(411). 그리 고, 새로운 샘플의 Goal Score 와 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score를 비교하여 새로운 샘플의 Goal Score가 기존 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은지를 판단한다(405).
만약, 작동모드 405의 판단결과 새로운 샘플의 Goal Score가 트리 중에서 Goal Score가 가장 낮은 노드의 Goal Score보다 작은 경우, 새로운 샘플을 트리에 추가한다(406).
새로운 샘플을 트리에 추가한 후 새로운 샘플이 목표점에 도달하였는지를 알기 위해 새로운 샘플의 Goal Score와 목표점의 Goal Score를 비교하여 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 작은지를 판단한다(412). 만약, 작동모드 312의 판단결과 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 작은 경우, 새로운 샘플이 목표점에 도달한 것으로 판단하여 트리 상의 여러 노드들로부터 로봇의 머니퓰레이터(130)가 이동할 동작 경로를 생성한다(413).
한편, 작동모드 312의 판단결과 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 큰 경우, 추가된 새로운 샘플이 목표점과 일정거리 이내인지를 판단한다(414). 만약, 추가된 새로운 샘플이 목표점과 일정거리 이내인 경우, 작동모드 410으로 이동하여 Goal Function을 원래의 Goal Function으로 변경함과 함께 이하의 단계를 수행한다.
한편, 추가된 새로운 샘플이 목표점과 일정거리 이내에 있지 않는 경우, 새로운 샘플의 Goal Score가 목표점의 Goal Score보다 큰 경우를 반복하는 반복횟수가 미리 설정된 최대횟수이상인지를 판단한다(415). 만약, 작동모드 415의 판단결 과 반복횟수가 미리 설정된 최대횟수이상인 경우, 로봇의 머니퓰레이터(130)에 대한 경로 생성에 실패했음을 사용자에게 경고한다(416).
한편, 작동모드 415의 판단결과 반복횟수가 미리 설정된 최대횟수미만인 경우, 작동모드 408로 이동하여 상기한 반복횟수가 미리 설정된 제1 국부최소횟수이상인지를 판단한다(408). 만약, 작동모드 408의 판단결과 반복횟수가 미리 설정된 제1 국부최소횟수이상인 경우, Local Minima에 빠진 경우이므로 무작위로 임의의 점을 선택하기 위해서 작동모드 409로 이동한다.
한편, 작동모드 408의 판단결과 상기한 반복횟수가 미리 설정된 제1 국부최소횟수미만인 경우, 상기한 반복횟수가 미리 설정된 제1 국부최소횟수보다 낮게 설정된 제2 국부최소횟수이상인지를 판단한다(417). 만약, 작동모드 417의 판단결과 상기한 반복횟수가 미리 설정된 제2 국부최소횟수미만인 경우, 작동모드 402로 이동하여 이하의 단계를 수행한다.
한편, 작동모드 417의 판단결과 상기한 반복횟수가 미리 설정된 제2 국부최소횟수이상인 경우, 기존 선행노드(q_front)를 버림과 함께 이 선행노드(q_front)의 부모 노드를 선행노드(q_front)를 대체한다(317). 그리고, 작동모드 302로 이동하여 이하의 단계를 수행한다.
상기한 방식을 통하여 로봇의 머니퓰레이터(130)의 동작을 경로를 형성한 후 그래프 탐색 단계를 통해 머니퓰레이터(130)의 이동 경로를 찾아 경로 계획을 생성한 후 로봇 제어부(230)가 생성된 경로 계획에 따라 구동부(240)를 제어하여 머니퓰레이터(130)의 이동을 제어한다.
도 1은 본 발명의 실시예에 따른 로봇의 일례를 나타낸 외관도이다.
도 2는 도 1에 나타낸 로봇의 주요 관절 구조를 나타낸 도면이다.
도 3은 본 발명의 실시예에 의한 로봇의 기구학적 여유구동 머니퓰레이터의 형상을 간략하게 도식화한 구성도이다.
도 4는 본 발명의 실시예에 의한 로봇에서 머니퓰레이터의 이동 경로를 계획하기 위한 제어 블록도이다.
도 5는 본 발명의 실시예에 의한 형상 공간을 나타낸 도면이다.
도 6은 본 발명의 실시예에서 로봇이 물체를 잡는 과정을 모델링한 도면이다.
도 7 내지 도 17은 본 발명의 실시예에서 BF-RRT 방법을 이용하여 경로를 생성하는 과정을 나타낸 도면이다.
도 18 내지 도 21은 본 발명의 실시예에서 RF-RRF 방법을 이용하여 경로를 생성하는 과정에서 발생할 수 있는 다양한 형태의 Local Minima 상황을 나타낸 도면이다.
도 22 내지 도 27은 본 발명의 실시예에서 RF-RRF 방법을 이용하여 경로를 생성하는 과정에서 Local Minima 에 빠진 경우, 이를 탈출하여 경로를 생성하는 과정을 나타낸 도면이다.
도 28 및 도 29는 본 발명의 다른 실시예에서 RF-RRF 방법을 이용하여 경로를 생성하는 과정에서 Local Minima 에 빠진 경우, 이를 탈출하는 개념을 나타낸 도면이다.
도 30 내지 도 33은 본 발명의 다른 실시예에서 RF-RRF 방법을 이용하여 경로를 생성하는 과정에서 Local Minima 에 빠진 경우, 이를 탈출하여 경로를 생성하는 과정을 나타낸 도면이다.
도 34 및 도 35는 본 발명의 다른 실시예에서 RF-RRF 방법을 이용하여 경로를 생성하는 과정에서 Local Minima 에 빠진 경우, 이를 탈출하는 개념을 보다 자세히 설명하기 위한 도면이다.
도 36 내지 도 39는 본 발명의 실시예에서 제시한 경로 계획에 대한 시뮬레이션 동작을 작업 공간에 나타낸 도면이다.
도 40은 본 발명의 실시예에 의한 로봇의 경로 계획 방법을 나타낸 동작 순서도이다.
도 41은 본 발명의 다른 실시예에 의한 로봇의 경로 계획 방법을 나타낸 동작 순서도이다.
*도면의 주요 기능에 대한 부호의 설명*
10 : 로봇 130 : 머니퓰레이터
131 : 엔드 이펙터 132, 133, 134 : 관절
135, 136 : 링크 210 : 경로 계획 생성부
220 : 인식부 230 : 로봇 제어부
240 : 구동부

Claims (9)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 시작점, 목표점, 제약 조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획방법에 있어서,
    상기 트리 확장 시 로컬 미니마(Local Minima)인지를 판단하고;
    상기 로컬 미니마인 경우, 상기 목표 함수를 새로운 목표 함수로 변경하고;
    상기 변경된 목표 함수를 적용하여 상기 트리 중에서 상기 목표 점수가 가장 낮은 노드를 선택하고;
    임의의 점을 선택하고;
    상기 선택된 노드와 상기 임의의 점 사이의 라인에서 상기 제약 조건 및 미리 설정된 목표 점수 조건을 만족하는 샘플을 획득하고, 상기 획득된 샘플을 상기 트리에 추가하여 상기 트리를 확장하는 것을 포함하는 로봇의 경로 계획방법.
  5. 제4항에 있어서,
    상기 로컬 미니마인지를 판단하는 것은, 다음 노드의 목표 점수가 이전 노드의 목표점수보다 높은 경우를 반복하는 횟수가 미리 설정된 횟수 이상인 경우 상기 로컬 미니마로 판단하는 것을 포함하는 로봇의 경로 계획방법.
  6. 제5항에 있어서,
    상기 목표 함수를 새로운 목표 함수로 변경하는 것은, 장애물과 상기 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것과, 상기 로컬 미니마에 빠진 상기 머니퓰레이터의 엔드 이펙터와 상기 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것 중 적어도 하나를 수행하는 것을 포함하는 로봇의 경로 계획방법.
  7. 삭제
  8. 시작점, 목표점, 제약 조건, 목표 함수(Goal Function) 정보를 가진 형상 공간을 형성하고, 상기 형상 공간에서 선택된 임의의 점과 트리에서 목표 점수(Goal Score)가 가장 낮은 노드를 이용하여 트리를 확장하여 로봇 머니퓰레이터의 경로를 계획하는 로봇의 경로 계획장치에 있어서,
    상기 트리 확장 시 로컬 미니마(Local Minima)인지를 판단하고, 상기 로컬 미니마인 경우, 상기 목표 함수를 새로운 목표 함수로 변경하고, 상기 변경된 목표 함수를 적용하여 상기 트리 중에서 상기 목표 점수가 가장 낮은 노드를 선택하고, 임의의 점을 선택하고, 상기 선택된 노드와 상기 임의의 점 사이의 라인에서 상기 제약 조건 및 미리 설정된 목표 점수 조건을 만족하는 샘플을 획득하고, 상기 획득된 샘플을 상기 트리에 추가하여 상기 트리를 확장하는 경로 계획 생성부를 포함하는 로봇의 경로 계획장치.
  9. 제8항에 있어서,
    상기 경로 계획 생성부는 장애물과 상기 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것과, 상기 로컬 미니마에 빠진 상기 머니퓰레이터의 엔드이펙터와 상기 목표점과 일정한 각도를 이루는 방향 벡터를 변경하여 상기 목표 함수를 변경하는 것 중 적어도 하나를 수행하는 것을 포함하는 로봇의 경로 계획장치.
KR1020090073258A 2009-08-10 2009-08-10 로봇의 경로 계획방법 및 장치 KR101691939B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090073258A KR101691939B1 (ko) 2009-08-10 2009-08-10 로봇의 경로 계획방법 및 장치
US12/805,271 US8825209B2 (en) 2009-08-10 2010-07-21 Method and apparatus to plan motion path of robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090073258A KR101691939B1 (ko) 2009-08-10 2009-08-10 로봇의 경로 계획방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110015834A KR20110015834A (ko) 2011-02-17
KR101691939B1 true KR101691939B1 (ko) 2017-01-02

Family

ID=43535428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090073258A KR101691939B1 (ko) 2009-08-10 2009-08-10 로봇의 경로 계획방법 및 장치

Country Status (2)

Country Link
US (1) US8825209B2 (ko)
KR (1) KR101691939B1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1972416B1 (en) * 2007-03-23 2018-04-25 Honda Research Institute Europe GmbH Robots with occlusion avoidance functionality
EP1972415B1 (en) * 2007-03-23 2019-01-02 Honda Research Institute Europe GmbH Robots with collision avoidance functionality
EP1974869A1 (en) * 2007-03-26 2008-10-01 Honda Research Institute Europe GmbH Apparatus and method for generating and controlling the motion of a robot
WO2008154228A1 (en) * 2007-06-08 2008-12-18 Honda Motor Co., Ltd. Multi-modal push planner for humanoid robots
KR101667030B1 (ko) * 2009-08-10 2016-10-17 삼성전자 주식회사 로봇의 경로 계획 장치 및 그 방법
KR101667029B1 (ko) * 2009-08-10 2016-10-17 삼성전자 주식회사 로봇의 경로 계획방법 및 장치
KR101275533B1 (ko) * 2011-09-15 2013-06-20 대우조선해양 주식회사 교시나 사전 프로그래밍을 통한 착용로봇의 동작 제어 방법
US8589013B2 (en) 2011-10-25 2013-11-19 Jaybridge Robotics, Inc. Method and system for dynamically positioning a vehicle relative to another vehicle in motion
US9188986B2 (en) 2013-10-01 2015-11-17 Jaybridge Robotics, Inc. Computer-implemented method and system for dynamically positioning a vehicle relative to another vehicle in motion for on-the-fly offloading operations
KR102165437B1 (ko) * 2014-05-02 2020-10-14 한화디펜스 주식회사 이동 로봇의 경로 계획 장치
US9375853B1 (en) * 2014-12-03 2016-06-28 Google Inc. Methods and systems to provide feedback based on a motion per path metric indicative of an effect of motion associated with components of a robotic device
US9724826B1 (en) * 2015-05-28 2017-08-08 X Development Llc Selecting physical arrangements for objects to be acted upon by a robot
US20170165835A1 (en) * 2015-12-09 2017-06-15 Qualcomm Incorporated Rapidly-exploring randomizing feedback-based motion planning
JP6606442B2 (ja) * 2016-02-24 2019-11-13 本田技研工業株式会社 移動体の経路計画生成装置
JP6860863B2 (ja) * 2017-07-05 2021-04-21 オムロン株式会社 経路出力方法
US10803314B2 (en) 2018-10-10 2020-10-13 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10678264B2 (en) * 2018-10-10 2020-06-09 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10816994B2 (en) 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control
US11192253B2 (en) * 2018-10-12 2021-12-07 Toyota Research Institute, Inc. Systems and methods for conditional robotic teleoperation
CN110515094B (zh) * 2019-07-11 2022-12-16 同济大学 基于改进rrt*的机器人点云地图路径规划方法及***
CN111061215B (zh) * 2019-12-26 2021-01-22 北京市商汤科技开发有限公司 控制机器人脱困的方法、装置、机器人
US11407109B2 (en) 2020-04-16 2022-08-09 Boston Dynamics, Inc. Global arm path planning with roadmaps and precomputed domains
CN111752306B (zh) * 2020-08-14 2022-07-12 西北工业大学 一种基于快速扩展随机树的无人机航路规划方法
CN114474034B (zh) * 2020-10-26 2024-05-28 腾讯科技(深圳)有限公司 足式机器人运动控制方法、装置、设备及介质
CN112923944A (zh) * 2021-01-29 2021-06-08 的卢技术有限公司 一种自动驾驶路径规划方法、***及计算机可读存储介质
CN112947459B (zh) * 2021-02-26 2023-03-28 西安交通大学 一种高效的基于快速随机扩展树的路径规划方法
CN112902971B (zh) * 2021-03-22 2022-10-04 中国长江三峡集团有限公司 基于高斯采样和目标偏向引导的快速扩展随机树算法的机器人运动轨迹计算方法、电子设备及存储介质
CN113103236B (zh) * 2021-04-22 2022-06-10 山东大学 一种快速渐进最优的机械臂避障路径规划方法
CN113359748B (zh) * 2021-06-22 2022-05-10 杭州奇派自动化设备有限公司 一种融合预测的改进Multi-RRT路径规划方法及AGV小车
CN113485240B (zh) * 2021-07-27 2022-07-01 华南理工大学 基于带标志位分层搜索树的机器人在线焊接路径规划方法
CN117124335B (zh) * 2023-10-25 2024-01-05 山东工商学院 一种基于路径标记回溯策略的改进式rrt路径规划方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008105132A (ja) * 2006-10-25 2008-05-08 Toyota Motor Corp アームの関節空間における経路を生成する方法と装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865437B1 (en) * 1998-12-31 2005-03-08 Asml Holdings N.V. Robot pre-positioning in a wafer processing system
US7429843B2 (en) * 2001-06-12 2008-09-30 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
US7447593B2 (en) * 2004-03-26 2008-11-04 Raytheon Company System and method for adaptive path planning
JP2009032189A (ja) * 2007-07-30 2009-02-12 Toyota Motor Corp ロボットの動作経路生成装置
US20100017026A1 (en) * 2008-07-21 2010-01-21 Honeywell International Inc. Robotic system with simulation and mission partitions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008105132A (ja) * 2006-10-25 2008-05-08 Toyota Motor Corp アームの関節空間における経路を生成する方法と装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proc. 2000 IEEE Int’l Conf. on Robotics and Automation (ICRA 2000), RRT-Connect: An Efficient Approach to Single-Query Path Planning (2000)*
Proc. 2006 IEEE Int’l Conf. on Robotics and Automation (ICRA 2006), An Integrated Approach to Inverse Kinematics and Path Planning for Redundant Manipulators (2006.5.)*

Also Published As

Publication number Publication date
US20110035050A1 (en) 2011-02-10
US8825209B2 (en) 2014-09-02
KR20110015834A (ko) 2011-02-17

Similar Documents

Publication Publication Date Title
KR101691939B1 (ko) 로봇의 경로 계획방법 및 장치
KR101667029B1 (ko) 로봇의 경로 계획방법 및 장치
KR101667031B1 (ko) 로봇의 경로 계획 장치 및 그 방법
KR101667030B1 (ko) 로봇의 경로 계획 장치 및 그 방법
KR101667032B1 (ko) 로봇의 경로 계획 장치 및 그 방법
KR101732902B1 (ko) 로봇의 경로 계획 장치 및 그 방법
Huang et al. Particle swarm optimization for solving the inverse kinematics of 7-DOF robotic manipulators
US8666548B2 (en) Path planning apparatus of robot and method thereof
JP6170285B2 (ja) マニピュレータ及びその経路生成方法
JP2011183527A (ja) 冗長ロボットの関節目標値決定方法及び冗長ロボットの制御装置
US20110106309A1 (en) Humanoid robot and control method of controlling joints thereof
Koo et al. Development of a wire harness assembly motion planner for redundant multiple manipulators
Mishra et al. Kinematic stability based afg-rrt path planning for cable-driven parallel robots
Sanchez et al. Four-arm collaboration: Two dual-arm robots work together to manipulate tethered tools
Seredyński et al. Grasp planning taking into account the external wrenches acting on the grasped object
Vahrenkamp et al. Adaptive motion planning for humanoid robots
JP2020049554A (ja) 軌道生成方法、軌道生成装置、およびロボットシステム
Tang et al. Coordinated motion planning of dual-arm space robot with deep reinforcement learning
Aldrich et al. Time-energy optimal control of hyper-actuated mechanical systems with geometric path constraints
Weber et al. An improved approach for inverse kinematics and motion planning of an industrial robot manipulator with reinforcement learning
Qian et al. Path planning approach for redundant manipulator based on Jacobian pseudoinverse-RRT algorithm
Li et al. An Efficient Approach for Solving Robotic Task Sequencing Problems Considering Spatial Constraint
Romiti et al. Minimum-effort task-based design optimization of modular reconfigurable robots
Fang et al. RRT-based motion planning with sampling in redundancy space for robots with anthropomorphic arms
Ayaz et al. Planning footsteps in obstacle cluttered environments

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant