KR102331315B1 - METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF - Google Patents

METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF Download PDF

Info

Publication number
KR102331315B1
KR102331315B1 KR1020190147582A KR20190147582A KR102331315B1 KR 102331315 B1 KR102331315 B1 KR 102331315B1 KR 1020190147582 A KR1020190147582 A KR 1020190147582A KR 20190147582 A KR20190147582 A KR 20190147582A KR 102331315 B1 KR102331315 B1 KR 102331315B1
Authority
KR
South Korea
Prior art keywords
path
partial
partial paths
paths
improved
Prior art date
Application number
KR1020190147582A
Other languages
Korean (ko)
Other versions
KR20210060036A (en
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 KR1020190147582A priority Critical patent/KR102331315B1/en
Publication of KR20210060036A publication Critical patent/KR20210060036A/en
Application granted granted Critical
Publication of KR102331315B1 publication Critical patent/KR102331315B1/en

Links

Images

Classifications

    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

본 개시(disclosure)의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터(manipulator) 장치의 동작 방법은, 기존 경로에서 부분 경로들을 결정하는 과정과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정과, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, a method of operating a manipulator device for improving a motion path includes a process of determining partial paths in an existing path, and determining joint combinations corresponding to each of the partial paths. and generating improved partial paths corresponding to each of the partial paths by performing path improvement on the joint combinations, and a path corresponding to each of the partial paths among the improved partial paths. The method may include determining partial paths having the greatest improvement effect, and changing the partial paths to corresponding partial paths having the greatest path improvement effect.

Figure R1020190147582
Figure R1020190147582

Description

고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현 방법 및 그 장치{METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF}A method and apparatus for implementing a parallel processing algorithm for real-time path generation of a high degree of freedom robot manipulator

본 개시(disclosure)는 고자유도 로봇 매니퓰레이터(high-depth of fields robot manipulator)의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현 방법 및 그 장치 에 관한 것이다.The present disclosure relates to a method for implementing a parallel processing algorithm for real-time path generation of a high-depth of fields robot manipulator and an apparatus therefor.

로봇의 동작계획은 협업로봇 연구분야의 핵심 영역 중 하나이다. 동작계획에서 샘플링 기반 접근 방식은 일반적으로 구성 공간(configuration space)의 차원이 높은 산업용 로봇에 가장 일반적으로 사용되는 기술이다. 샘플링 기반 동작계획 기법을 이용하는 것은 경로를 찾기 어려운 높은 자유도의 구성 공간을 처리하는 것에 탁월하지만 계획된 경로가 일반적으로 매끄럽지 않고 작업 공간에서 부분적으로 불필요한 로봇 자세 변화를 생성할 수 있다는 단점을 가질 수 있다. 따라서 계획된 경로는 후처리 과정을 통해 매끄럽게 하고 경로에 포함되어 있는 로봇의 불필요한 자세 변화를 제거할 필요가 있다Robot motion planning is one of the key areas of collaborative robot research. The sampling-based approach in motion planning is the most commonly used technique for industrial robots, which typically have a high level of configuration space. Using a sampling-based motion planning technique is excellent for handling high-degree-of-freedom construction space where it is difficult to find a path, but it may have the disadvantage that the planned path is generally not smooth and may generate partially unnecessary robot posture changes in the working space. Therefore, the planned path needs to be smoothed through post-processing and unnecessary changes in the posture of the robot included in the path need to be removed.

후처리 경로 개선(path-smoothing) 기술 중 높은 자유도를 갖는 로봇에 적합한 기술로 APSC(adaptive partial shortcuts) 기법이 있다. APSC(adaptive partial shortcuts) 기법의 경로 개선 효과는 우수하나 동적 환경에서 적용하기에 충분하지 않고, 반복적인 경로개선 작업을 수행하기 때문에, 반복 횟수가 증가함에 따라 알고리즘의 전체 계산 시간이 길어지는 문제점이 있다.Among the post-processing path-smoothing techniques, there is an adaptive partial shortcuts (APSC) technique as a technique suitable for a robot having a high degree of freedom. Although the path improvement effect of the adaptive partial shortcuts (APSC) technique is excellent, it is not sufficient to apply it in a dynamic environment, and since it performs iterative path improvement, the problem that the overall computation time of the algorithm increases as the number of iterations increases have.

상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는 APSC(adaptive partial shortcuts) 등 기존의 후처리 경로 개선 기법 대비, 빠른 경로 개선 후처리 과정을 통해 동적 환경에서 적용이 용이한 경로 개선 알고리즘을 제안함으로써, 고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현 방법 및 그 장치를 제공한다.Based on the above discussion, the present disclosure provides a path improvement algorithm that is easy to apply in a dynamic environment through a fast path improvement post-processing process compared to existing post-processing path improvement techniques such as adaptive partial shortcuts (APSC). By proposing, a parallel processing algorithm implementation method and apparatus for real-time path generation of a high degree of freedom robot manipulator are provided.

본 개시(disclosure)의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터(manipulator) 장치의 동작 방법은, 기존 경로에서 부분 경로들을 결정하는 과정과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정과, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, a method of operating a manipulator device for improving a motion path includes a process of determining partial paths in an existing path, and determining joint combinations corresponding to each of the partial paths. and generating improved partial paths corresponding to each of the partial paths by performing path improvement on the joint combinations, and a path corresponding to each of the partial paths among the improved partial paths. The method may include determining partial paths having the greatest improvement effect, and changing the partial paths to corresponding partial paths having the greatest path improvement effect.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치에 있어서, 상기 장치는 경로 개선을 위한 적어도 하나 이상의 프로세서를 포함하고, 상기 적어도 하나 이상의 프로세서는, 기존 경로에서 부분 경로들을 결정하고, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하고, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하고, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하고, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하도록 구성될 수 있다.According to various embodiments of the present disclosure, in a manipulator device for improving an operation path, the device includes at least one or more processors for path improvement, the at least one processor determines partial paths from an existing path, By determining joint combinations corresponding to each of the partial paths, and performing path improvement on the joint combinations, improved partial paths corresponding to each of the partial paths are generated, and among the improved partial paths, the It may be configured to determine partial paths having the greatest path improvement effect corresponding to each of the partial paths, and change the partial paths to partial paths having the largest path improvement effect.

본 발명의 실시 예들에 따르면, 고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘을 이용하면, APSC(adaptive partial shortcuts) 등 기존의 후처리 경로 개선 기법 대비, 신속한 경로개선 후처리 과정이 가능할 수 있다. According to embodiments of the present invention, if a parallel processing algorithm for real-time path generation of a high degree of freedom robot manipulator is used, a faster path improvement post-processing process is possible compared to existing post-processing path improvement techniques such as adaptive partial shortcuts (APSC). can

또한, 본 발명의 실시 예들에 따르면, 고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘은 후처리 경로 개선에 있어, 동적인 환경에서 적용하기 용이하므로, 인간-로봇 협동이 필요한 로봇 시스템 개발에 범용성 있게 사용될 수 있다.In addition, according to the embodiments of the present invention, the parallel processing algorithm for real-time path generation of the high degree of freedom robot manipulator is easy to apply in a dynamic environment in improving the post-processing path. Therefore, a robot system requiring human-robot cooperation is developed. can be used universally.

도 1a 및 도 1b는 다양한 실시 예들에 따른, 기존 샘플링 기반 경로 계획 기법으로 생성된 매니퓰레이터의 동작 경로를 나타내는 예시도이다.
도 2는 다양한 실시 예들에 따른, 고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현하기 위한 매니퓰레이터 장치의 예시적인 블록도이다.
도 3은 다양한 실시 예들에 따른, 매니퓰레이터 장치의 실시간 경로 개선 후처리를 위한 병렬처리를 나타내는 흐름도이다.
도 4는 다양한 실시 예들에 따른, 병렬 처리 알고리즘의 성능을 나타내는 그래프의 예시도이다.
도 5는 다양한 실시 예들에 따른, 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현을 설명하기 위한 흐름도의 일 예이다.
도 6은 다양한 실시 예들에 따른, 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현을 설명하기 위한 흐름도의 다른 예이다.
1A and 1B are exemplary diagrams illustrating an operation path of a manipulator generated by an existing sampling-based path planning technique, according to various embodiments of the present disclosure;
FIG. 2 is an exemplary block diagram of a manipulator device for implementing a parallel processing algorithm for generating a real-time path of a high degree of freedom robot manipulator, according to various embodiments of the present disclosure;
3 is a flowchart illustrating parallel processing for real-time path improvement post-processing of a manipulator device, according to various embodiments of the present disclosure;
4 is an exemplary diagram of a graph showing performance of a parallel processing algorithm according to various embodiments of the present disclosure;
5 is an example of a flowchart for explaining implementation of a parallel processing algorithm for generating a real-time path of a manipulator according to various embodiments of the present disclosure;
6 is another example of a flowchart for explaining implementation of a parallel processing algorithm for generating a real-time path of a manipulator according to various embodiments of the present disclosure;

본 개시(disclosure)는 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.The present disclosure (disclosure) can apply various transformations and can have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing the present invention, if it is determined that a detailed description of a related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.

이하의 실시 예에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In the following embodiments, terms such as first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

이하의 실시 예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수의 표현을 포함한다. 이하의 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the following examples are used only to describe specific examples, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the following embodiments, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more It should be understood that this does not preclude the possibility of addition or presence of other features or numbers, steps, operations, components, parts, or combinations thereof.

본 발명의 실시 예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명의 실시 예들은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명의 실시 예의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명의 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명의 실시 예들은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Embodiments of the present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in any number of hardware and/or software configurations that perform specific functions. For example, embodiments of the present invention may be implemented directly, such as memory, processing, logic, look-up table, etc., capable of executing various functions by the control of one or more microprocessors or other control devices. Circuit configurations may be employed. Similar to how components of an embodiment of the invention may be implemented as software programming or software elements, embodiments of the invention may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs. , C, C++, Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors. In addition, embodiments of the present invention may employ conventional techniques for electronic environment setting, signal processing, and/or data processing. Terms such as mechanism, element, means, and configuration may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in association with a processor or the like.

이하 설명에서 사용되는 데이터의 표시에 관련된 변수(예: 파라미터(parameter), 값)을 지칭하는 용어, 발명의 동작을 수행하는데 사용되는 객체(예: 전자 장치, 표시 장치, 디스플레이 장치 등)를 지칭하는 용어, 장치의 구성요소를 지칭하는 용어(예: 회로, 모듈, 컨트롤러, 프로세서, 수집부, 예측부, 추론부, 지원부, 처리부, 표시부, 센서 등) 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.A term that refers to a variable (eg, a parameter, a value) related to the display of data used in the following description, refers to an object (eg, an electronic device, a display device, a display device, etc.) used to perform the operation of the invention Terms that refer to components of a device (eg, circuit, module, controller, processor, collection unit, prediction unit, inference unit, support unit, processing unit, display unit, sensor, etc.) are exemplified for convenience of description. . Accordingly, the present disclosure is not limited to the terms described below, and other terms having equivalent technical meanings may be used.

매니퓰레이터(manipulator)의 동작 경로 개선하기 위한, 후처리 경로개선(path-smoothing) 기술 중 높은 자유도를 갖는 로봇에 적합한 기술로 APSC (adaptive partial shortcuts) 기법이 있다. Among the post-processing path-smoothing techniques for improving the motion path of a manipulator, there is an adaptive partial shortcuts (APSC) technique as a technique suitable for a robot having a high degree of freedom.

번호number 과정process 1One 루프(loop)loop 22 기존 경로에서 임의로 부분 경로 선택
(Random selection of a partial segment Πs)
Randomly select partial path from existing path
(Random selection of a partial segment Π s )
33 기존 경로 및 참조 경로를 사용하여 AWD 갱신
(Update AWD using Π and Πref)
Renew your AWD using existing and reference paths
(Update AWD using Π and Π ref )
44 AWD에 따라 고정된 수의 관절들 선택
(Select a fixed number of joints according to AWD)
Select a fixed number of joints according to AWD
(Select a fixed number of joints according to AWD)
55 선택된 관절에 대해 선형 보간법을 사용하여 부분 경로를 개선한 개선된 부분경로 생성
(Perform smoothing on Πs via linear interpolation on selected joints)
Improved partial path generation with improved partial path using linear interpolation for selected joints
(Perform smoothing on Π s via linear interpolation on selected joints)
66 개선된 부분 경로가 충돌이 없는 구성 공간에 포함되는지 여부 결정
(If Π's ∈ Cfree, then)
Determining whether an improved partial path is included in a collision-free composition space
(If Π' s ∈ C free , then)
77 부분 경로를 개선된 부분 경로로 변경
(Replace Πs with Π's)
Change partial path to improved partial path
(Replace Π s with Π' s )

표 1은 매니퓰레이터의 APSC 기법에 따른 동작 과정의 알고리즘에 대한 예시적인 설명을 나타낼 수 있다. 이 때, Π는 기존 경로(planned path)로써, 샘플링 기반 경로 계획 알고리즘으로부터 생성된 경로로 경로 내 인접 노드를 연결한 일련의 노드와 간선으로 구성될 수 있다. Πref는 참조 경로(reference path)로써, 경로 내 장애물을 고려하지 않은 Π의 첫 번째 노드와 마지막 노드를 연결하는 구성 공간(configuration space)의 직선 경로일 수 있다. Cfree는 충돌이 없는 구성 공간일 수 있다. Πs는 부분 경로(partial segment of path)로써, Π 내 노드들 중 임의의 2개의 노드를 경계로 하는 경로일 수 있다. Π's는 개선된 부분 경로로써, Πs에 대해 경로 개선을 수행하여 생성된 경로일 수 있다. AWD 는 적응 가중치 분포(adaptive weighting distribution, AWD)로써, 경로 개선에 대한 각 관절의 효과를 반영하기 위한 가중치일 수 있다.Table 1 may show an exemplary description of an algorithm of an operation process according to the APSC technique of the manipulator. In this case, Π is an existing path (planned path), which is a path generated from a sampling-based path planning algorithm and may be composed of a series of nodes and trunks connecting adjacent nodes in the path. Π ref is a reference path, and may be a straight path in a configuration space connecting the first and last nodes of Π that does not consider obstacles in the path. C free can be a conflict-free configuration space. Π s is a partial segment of path, and may be a path bordering on any two nodes among nodes in Π. Π' s is an improved partial path, and may be a path generated by performing path improvement on Π s. AWD is an adaptive weighting distribution (AWD), and may be a weight to reflect the effect of each joint on path improvement.

종래의 APSC 기법은 표 1과 같이 반복적인 과정일 수 있다. 우선, 과정 2를 참고하면, 주어진 기존 경로 Π에 대해 경로 개선 후처리를 수행할 부분경로를 선택하기 위해 기존 경로 Π에서 경로의 노드들 중 임의로 2개의 노드를 선택하고 선택된 두 노드를 경계로 하는 부분 경로 Πs가 정해질 수 있다.The conventional APSC technique may be an iterative process as shown in Table 1. First, referring to process 2, in order to select a partial path for which path improvement post-processing is to be performed for a given existing path Π, two nodes are randomly selected among the nodes of the path in the existing path Π, and the selected two nodes are used as boundaries. A partial path Π s can be determined.

선택된 부분경로 Πs에 대해 경로 개선을 수행하기 위해 로봇의 관절을 선택하고 이 관절에 대해 선형 보간법(linear interpolation)을 사용하여 새로운 부분경로 Π's를 생성할 수 있다. 과정 3 내지 5를 참고하면, 선택될 관절의 수는 미리 결정되고 고정될 수 있다. 또한 경로 개선에 대한 각 관절의 효과를 반영하기 위해 AWD에 따라 관절들을 선택할 수 있다. AWD는 Π와 Πs의 경로 차이가 다른 관절보다 더 큰 관절이 선택되도록 매 반복 단계에서 갱신될 수 있다. 과정 6 내지 7을 참고하면, 새로운 부분경로 Π's에 대해 외부 장애물과의 충돌로부터 자유로운지 여부에 판단함으로써, 유효성 판단을 수행하고, 자유롭다면 기존 경로 Π의 부분 경로 Πs을 Π's로 교체할 수 있다. 본 기법은 상기 과정 1 내지 7의 과정을 반복함으로써, 매니퓰레이터의 동작 경로를 점진적으로 개선해 나갈 수 있다.To perform path improvement on the selected partial path Π s , we can select a joint of the robot and generate a new partial path Π' s for this joint by using linear interpolation. Referring to steps 3 to 5, the number of joints to be selected may be predetermined and fixed. Also, joints can be selected according to AWD to reflect the effect of each joint on path improvement. The AWD can be updated at every iteration so that a joint with a path difference between Π and Π s greater than that of other joints is selected. Referring to steps 6 to 7 , the validity judgment is performed by determining whether the new partial path Π' s is free from collision with an external obstacle, and if free, the partial path Π s of the existing path Π is converted to Π' s Can be replaced. In this technique, by repeating steps 1 to 7, the operation path of the manipulator can be gradually improved.

상술한 바와 같이 종래의 APSC 기법은 경로 개선 효과는 우수하나 동적 환경에서 적용하기에 충분하지 않을 수 있다. 기본적으로 APSC 기법은 반복적인 경로 개선 작업을 수행하기 때문에, 반복 횟수가 증가함에 따라 알고리즘의 전체 계산 시간이 길어질 수 있다. 표 1을 참고하면, 반복 횟수에 기여하는 주요 과정은 과정 6 내지 7의 충돌 점검 부분일 수 있다. 개선된 부분 경로 Π's가 충돌이 없을 확률은 선택된 부분경로 Πs에 크게 의존할 수 있고, 선택된 부분경로 Πs에 대해 경로개선을 수행할 관절들이 선택되는 과정도 경로 개선 시간에 있어 중요할 수 있다. APSC 기법의 알고리즘에서는 관절 선택을 위해 AWD를 활용하여 고정된 수의 관절을 선택하는 방식이므로, 주어진 부분 경로 Πs에 대해 선택된 관절의 조합이 선택된 부분경로 Πs에 대한 최선의 선택이 아닐 확률이 높기 때문에, 과정 6에서 충돌 검사 단계를 통과하지 못 할 가능성이 높을 수 있다.As described above, the conventional APSC technique has an excellent path improvement effect, but may not be sufficient to be applied in a dynamic environment. Basically, since the APSC technique performs iterative path improvement, the overall computation time of the algorithm may increase as the number of iterations increases. Referring to Table 1, a main process contributing to the number of iterations may be a collision check part of processes 6 to 7 . Improvements path Π 's probability there is no conflict can be highly dependent on the selected portion of the path Π s, the process of joints are selected to perform the path improvement for the selected partial path Π s also important on the path to improve times can Since the algorithm of APSC method selects a fixed number of joints using AWD for joint selection, the probability that the combination of joints selected for a given partial path Π s is not the best choice for the selected partial path Π s is low. Because it is high, there is a high probability that it will not pass the collision check step in process 6.

따라서, 본 개시에서 제안하는 병렬처리 알고리즘은 매 반복 단계에서 하나의 부분경로에 대해 경로개선 작업을 수행하는 기존 기법 대비 다중 부분경로에 대해 경로 개선을 병렬적으로 처리하는 알고리즘을 제공할 수 있다. 또한 가중치 분포 (예: APSC의 경우 AWD)에 따라 무작위로 고정된 수의 관절을 선택하는 것에 대비, 병렬적으로 가능한 모든 관절 조합을 동시에 탐색하고 충돌이 없는 최대 효율의 관절을 선택하여 경로개선작업에 필요한 위한 반복 계산 과정을 획기적으로 줄일 수 있는 알고리즘을 제공할 수 있다.Therefore, the parallel processing algorithm proposed in the present disclosure can provide an algorithm for processing path improvement for multiple partial paths in parallel compared to the existing technique for performing path improvement for one partial path at every iteration step. In addition, in contrast to selecting a fixed number of joints at random according to a weight distribution (eg, AWD in APSC), path improvement works by simultaneously exploring all possible joint combinations in parallel and selecting the joint with maximum efficiency without collision. It is possible to provide an algorithm that can dramatically reduce the iterative calculation process required for

도 1a 및 도 1b는 다양한 실시 예들에 따른, 기존 샘플링 기반 경로 계획 기법으로 생성된 매니퓰레이터의 동작 경로를 나타내는 예시도이다. 도 1a를 참고하면, 6 자유도 로봇 매니퓰레이터 장치와 장치의 기존 경로의 예시(100a)가 도시된다. 도 1a의 (a)에서 나타내는 기존 경로 Π는 첫번째 노드 1 내지 마지막 노드 15를 경계로 하는 동작 경로일 수 있다. 도 1b를 참고하면, 6 자유도 로봇 매니퓰레이터 장치와 장치의 기존 경로 내 임의의 2개의 노드를 경계로 하는 부분 경로들의 예시(100b)가 도시된다. 도 1b의 (b)에서 나타내는 부분 경로 Πs는 기존 경로 내 노드 1 내지 노드 4를 경계로 하는 동작 경로일 수 있고, (c)에서 나타내는 부분 경로 Πs는, 기존 경로 내 노드 4 내지 노드 11을 경계로 하는 동작 경로일 수 있고, (d)에서 나타내는 부분 경로 Πs는, 기존 경로 내 노드 8 내지 노드 15를 경계로 하는 동작 경로일 수 있다.1A and 1B are exemplary diagrams illustrating an operation path of a manipulator generated by an existing sampling-based path planning technique, according to various embodiments of the present disclosure; Referring to FIG. 1A , an example 100a of a six-degree-of-freedom robotic manipulator device and a conventional path of the device is shown. The existing path Π shown in (a) of FIG. 1A may be an operation path having the first node 1 to the last node 15 as a boundary. Referring to FIG. 1B , an example 100b of partial paths bounded by a 6 degree of freedom robotic manipulator device and any two nodes in an existing path of the device is shown. The partial path Π s shown in (b) of FIG. 1B may be an operation path bordering on nodes 1 to 4 in the existing path, and the partial path Π s shown in (c) is, in the existing path, nodes 4 to 11 It may be an operation path bordering on , and the partial path Π s shown in (d) may be an operation path bordering on nodes 8 to 15 in the existing path.

APSC 기법을 이용할 경우, 부분경로 Πs가 다를 경우 충돌 없이 개선된 부분경로 Π's를 생성할 수 있는 최대 관절의 수가 다를 수 있고, 따라서, 도 1b의 (b), (c), (d)에서 나타내는 부분 경로 각각은 충돌 없이 개선된 부분경로를 생성할 수 있는 최대 관절의 수가 다를 수 있다.When using the APSC technique, if the partial path Π s is different, the maximum number of joints that can generate the improved partial path Π' s without collision may be different. ), the maximum number of joints that can generate an improved partial path without collision may be different for each partial path.

관절 개수/
총 관절 조합 개수
number of joints/
Total number of joint combinations
충돌 없이 경로개선이 가능한 관절 조합 개수Number of joint combinations that can improve the path without collision
도 1b의 (b)1b (b) 도 1b의 (c)1b (c) 도 1b의 (d)1b (d) 1/61/6 55 33 22 2/152/15 1111 22 22 3/203/20 1313 00 22 4/154/15 99 00 1One 5/65/6 44 00 00 6/16/1 1One 00 00

표 2는, 부분 경로들에 대한 경로 개선이 가능한 관절 조합의 수를 나타낸다. 표 2를 참고하면, 도 1b의 부분경로들에 대해서 선택 관절의 개수별로 충돌 없이 성공적인 경로개선이 가능한 관절 조합의 수를 나타낼 수 있다. 예를 들어 도 1b의 (b)의 부분경로 의 경우, 충돌이 없는 Π's에 대해 선택 가능한 최대 관절 수는 6 개이고, (c)의 경우는 2개, (d)의 경우는 4개일 수 있다. 예를 들어, APSC 기법에서는 선택할 관절의 수를 고정하여 선택하기 때문에, 선택할 관절의 수를 3개로 고정하는 경우, 도 1b의 (c)의 부분 경로는 표 1, 과정 6의 충돌 검사 단계에서 조건을 만족하기 못하여 개선된 부분 경로를 생성할 수 없으므로, 알고리즘 수행 반복 횟수가 증가할 수 있다. 다른 예를 들어, 관절의 수를 2개로 고정하는 경우라도, AWD에 따라 임의로 관절을 선택하므로 도 1b의 (c)의 부분 경로는 2개의 충돌 없이 경로개선이 가능한 관절 조합 중 하나를 선택할 것이라 보장할 수 없을 수 있다. 따라서, APSC의 방식과 같이 고정된 수의 관절을 AWD를 활용하여 확률적으로 선택하게 되면 성공적인 부분경로 개선에 대한 확률이 낮아질 수 있고, 경로 개선 시간이 증가할 수 있다.Table 2 shows the number of joint combinations for which path improvement is possible for partial paths. Referring to Table 2, the number of joint combinations capable of successfully improving the route without collision for each of the selected joints for the partial routes of FIG. 1B may be represented. For example, in the case of the partial path in (b) of Fig. 1b, the maximum number of selectable joints for Π' s without collision is 6, in (c), 2, and in (d), 4 have. For example, in the APSC technique, since the number of joints to be selected is fixed and the number of joints to be selected is fixed, when the number of joints to be selected is fixed to three, the partial path of FIG. Since it is not possible to generate an improved partial path by not satisfying For another example, even when the number of joints is fixed to two, since joints are arbitrarily selected according to the AWD, the partial route of FIG. may not be able to Therefore, if a fixed number of joints are selected probabilistically using AWD like the APSC method, the probability of successful partial path improvement may be lowered and the path improvement time may be increased.

도 2는 다양한 실시 예들에 따른, 고자유도 로봇 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현하기 위한 매니퓰레이터 장치의 예시적인 블록도이다. 도 2를 참고하면, 예시적인 블록도(200)에 매니퓰레이터 장치(210)는 프로세서(211), 센서부(213), 메모리(215)를 포함할 수 있다. 본 개시에서는, 매니퓰레이터 장치(210)의 경로 개선 동작을 매니퓰레이터 장치(210) 내 프로세서를 통해 수행하는 방법을 설명하나, 매니퓰레이터 장치(210) 외부 또는 내부 장치에 의해 동작이 수행되거나, 매니퓰레이터 장치(210)와 연결된 다른 장치에 의해 수행될 수 있다.FIG. 2 is an exemplary block diagram of a manipulator device for implementing a parallel processing algorithm for generating a real-time path of a high degree of freedom robot manipulator according to various embodiments of the present disclosure; Referring to FIG. 2 , in an exemplary block diagram 200 , the manipulator device 210 may include a processor 211 , a sensor unit 213 , and a memory 215 . In the present disclosure, a method of performing a path improvement operation of the manipulator device 210 through a processor in the manipulator device 210 is described. However, the operation is performed by an external or internal device of the manipulator device 210 or ) and other devices connected to it.

프로세서(211)는, 매니퓰레이터 장치(210)내 구성과 연결되어, 매니퓰레이터 장치(210) 장치의 실시간 경로 개선 후처리를 위한 병렬 처리 동작을 수행하도록 구성될 수 있다. 예를 들어, 프로세서(211)는 매니퓰레이터의 기존 동작 경로에서 부분 경로들을 선택하고, 부분 경로들의 관절 조합들에 대해 경로 개선을 수행함으로써 개선된 부분 경로들을 생성하고, 충돌 검사 단계의 조건을 만족한 개선된 부분 경로들 중에 경로 개선 효과가 가장 큰 부분경로들을 대응하는 부분 경로로 갱신하도록 구성될 수 있다. The processor 211 may be configured to be connected to a component in the manipulator device 210 to perform a parallel processing operation for real-time path improvement post-processing of the manipulator device 210 . For example, the processor 211 selects partial paths from the existing motion path of the manipulator, generates improved partial paths by performing path improvement on joint combinations of the partial paths, and satisfies the condition of the collision detection step. It may be configured to update the partial paths having the greatest path improvement effect among the improved partial paths with the corresponding partial paths.

표 3은 프로세서(211)의 매니퓰레이터 장치(210) 장치의 실시간 경로 개선 후처리를 위한 병렬 처리 경로 개선 알고리즘에 대한 예시적인 설명을 나타낼 수 있다.Table 3 may show an exemplary description of a parallel processing path improvement algorithm for real-time path improvement post-processing of the manipulator device 210 device of the processor 211 .

번호number 과정process 1One 루프(loop)loop 22 기존 경로를 n개의 부분 경로들로 분할
(Partition Π into n path segment, {Πs,1, Πs,2,..., Πs,n})
Split the existing path into n partial paths
(Partition Π into n path segment, {Π s,1 , Π s,2 ,..., Π s,n })
33 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합 내 데이터 초기화
(∑i=Φ, ∀i∈{1, 2,..., n})
Data initialization in a set of selected partial paths corresponding to each of the divided partial paths
(∑ i =Φ, ∀i∈{1, 2,..., n})
44 분할된 부분 경로들에 각각에 대응하는 모든 관절 조합들을 생성
(Run in Parallel: ∀i∈{1, 2,..., n}, ∀j∈{1, 2,..., m}
Generate all joint combinations corresponding to each of the divided partial paths
(Run in Parallel: ∀i∈{1, 2,..., n}, ∀j∈{1, 2,..., m}
55 분할된 부분 경로들에 각각에 대응하는 모든 관절 조합에 대해 선형 보간법을 사용하여 병렬적으로 개선된 부분경로 생성
(Perform smoothing on Πs,i via linear interpolation on joints in Yj)
Generates improved sub-paths in parallel using linear interpolation for all joint combinations corresponding to each of the divided sub-paths
(Perform smoothing on Π s,i via linear interpolation on joints in Y j )
66 개선된 부분 경로들이 충돌이 없는 구성 공간에 포함되는지 여부 결정하고, 충돌이 없는 구성 공간에 포함되는 개선된 부분 경로들은 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합에 추가
(If Π's,i ∈ Cfree, then ∑i =∑i ∪Π's,i)
It is determined whether or not the improved partial paths are included in the collision-free construction space, and the improved partial paths included in the collision-free construction space are added to the set of selected partial paths corresponding to each of the divided partial paths.
(If Π' s,i ∈ C free , then ∑ i =∑ i ∪Π' s,i )
77 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합이 공집합인지 여부 확인
(For each ∑i s.t ∑i≠Φ)
Checking whether a set of selected partial paths corresponding to each of the divided partial paths is an empty set
(For each ∑ i st ∑ i ≠Φ)
88 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합에서 경로 개선 효과가 가장 큰 부분 경로 선택
(Choose one Π's,i from ∑i w.r.t smoothing quality)
Selecting a partial path having the greatest path improvement effect from a set of selected partial paths corresponding to each of the divided partial paths
(Choose one Π' s,i from ∑ i wrt smoothing quality)
99 분할된 부분 경로들에 각각을, 분할된 부분 경로들에 각각에 대응하는 개선 효과가 가장 큰 부분 경로로 변경
(Replace Πs,i with Π's,i)
Each of the divided partial paths is changed to a partial path with the greatest improvement effect corresponding to each of the divided partial paths
(Replace Π s,i with Π' s,i )

이 때, Π는 기존 경로로써, 샘플링 기반 경로 계획 알고리즘으로부터 생성된 경로로 경로 내 인접 노드를 연결한 일련의 노드와 간선으로 구성될 수 있다. Cfree는 충돌이 없는 구성 공간일 수 있다. Πs,i는 부분 경로들로써, Π 내 노드들 중 임의의 2개의 노드를 경계로 하는 복수의 부분 경로들일 수 있다. Π's,i는 개선된 부분 경로들로써, Πs,i에 대해 경로 개선을 수행하여 생성된 경로들일 수 있다. Y는 부분 경로에 대한 관절들의 조합으로써, 복수의 부분 경로들 중 하나의 부분 경로에 대한 가능한 관절들의 모든 조합 Y들은 집합 {Y1, Y2, …, Ym}로 나타낼 수 있다. ∑i 는 선택된 부분 경로들의 집합으로써, 복수의 부분 경로들 중 경로 개선이 수행되고 충돌 점검된 개선된 부분 경로들의 집합일 수 있다.In this case, Π is an existing path, which is a path generated from a sampling-based path planning algorithm and may be composed of a series of nodes and trunks connecting adjacent nodes in the path. C free can be a conflict-free configuration space. Π s,i is partial paths, and may be a plurality of partial paths bordering on any two nodes among nodes in Π. Π' s,i are improved partial paths, and may be paths generated by performing path improvement on Π s,i. Y is a combination of joints for a partial path, and all combinations Y of possible joints for one partial path among a plurality of partial paths are the set {Y 1 , Y 2 , ... , Y m }. ∑ i is a set of selected partial paths, and may be a set of improved partial paths on which path improvement has been performed and collision-checked among a plurality of partial paths.

매니퓰레이터 장치(210) 장치의 실시간 경로 개선 후처리를 위한 병렬 처리 경로 개선 알고리즘은 표 3과 같이 반복적인 과정일 수 있다. 우선, 과정 2를 참고하면, 기존 경로 Π를 기존 경로 내 노드들 중에 무작위로 n-1개 노드를 선택하여 n개의 부분경로 Πs,i로 분할함으로써, n개의 부분 경로들을 결정할 수 있다. 이 때 기존 경로의 연속된 노드가 선택되는 것을 피함으로써, 선택된 부분경로들은 서로 중첩되는 부분이 없도록 할 수 있다. 과정 3 내지 6을 참고하면, 선택된 부분 경로들의 집합 ∑i 을 초기화하고, 각 부분경로 Πs,i에 대해서 가능한 모든 관절 조합에 대하여 경로개선 작업을 수행하고 그 중 장애물과의 충돌이 없는 개선된 부분경로들만 선택한다. 예를 들어, 선택된 부분 경로들의 집합 ∑i 을 초기화하고, 각 부분경로 Πs,i에 대해서 가능한 모든 관절 조합을 생성하고, 분할된 부분 경로들에 각각에 대응하는 모든 관절 조합에 대해 선형 보간법을 사용하여 병렬적으로 개선된 부분경로를 생성할 수 있다. 이후 과정 7 내지 9를 참고하면, 병렬화 과정을 통해 얻어진 개선된 부분경로들 중 경로개선 효과가 가장 큰 부분경로 Π's,i를 선택하여 기존의 부분경로 Πs,i를 갱신할 수 있다. 예를 들어, 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합이 공집합인지 여부를 확인하고, 분할된 부분 경로들에 각각에 대응하는 선택된 부분 경로들의 집합에서 경로 개선 효과가 가장 큰 부분 경로를 선택하고, 분할된 부분 경로들에 각각을 분할된 부분 경로들에 각각에 대응하는 개선 효과가 가장 큰 부분 경로로 변경할 수 있다. 이와 같은 과정을 모든 부분경로 n개에 대해 병렬 프로세스를 통해 동시에 처리한 후, 갱신된 부분경로를 모두 조합하여 기존 경로 Π를 갱신할 수 있다.The parallel processing path improvement algorithm for the real-time path improvement post-processing of the manipulator device 210 device may be an iterative process as shown in Table 3. First, referring to process 2, n partial paths can be determined by dividing the existing path Π into n partial paths Π s,i by randomly selecting n-1 nodes among nodes in the existing path. In this case, by avoiding the selection of consecutive nodes of the existing path, the selected partial paths may not overlap each other. Referring to processes 3 to 6, the set ∑ i of the selected partial paths is initialized, and the path improvement operation is performed on all possible joint combinations for each partial path Π s,i, and the improved Select only partial paths. For example, initialize a set of selected partial paths ∑ i , generate all possible joint combinations for each partial path Π s,i , and perform linear interpolation for all joint combinations corresponding to each of the divided partial paths. can be used to generate improved partial paths in parallel. Thereafter, referring to steps 7 to 9, the existing partial path Π s,i may be updated by selecting the partial path Π' s,i having the greatest path improvement effect among the improved partial paths obtained through the parallelization process. For example, it is checked whether a set of selected partial paths corresponding to each of the divided partial paths is an empty set, and the part having the greatest path improvement effect in the set of selected partial paths corresponding to each of the divided partial paths is an empty set. A path may be selected, and each of the divided partial paths may be changed to a partial path having the greatest improvement effect corresponding to each of the divided partial paths. After this process is simultaneously processed through a parallel process for all n partial paths, the existing path Π can be updated by combining all the updated partial paths.

프로세서(211)는, 예를 들면, 소프트웨어(예: 프로그램)를 실행하여 프로세서(211)에 연결된 매니퓰레이터 장치(210)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(211)는 다른 구성요소(예: 센서부(213) 또는 메모리(215))로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하고, 휘발성 메모리에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(211)는 메인 프로세서 (예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서 (예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서는 메인 프로세서보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서는 메인 프로세서와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 211 may, for example, execute software (eg, a program) to control at least one other component (eg, a hardware or software component) of the manipulator device 210 connected to the processor 211 . and can perform various data processing or operations. According to an embodiment, as at least part of data processing or operation, the processor 211 loads a command or data received from another component (eg, the sensor unit 213 or the memory 215) into the volatile memory, The command or data stored in the volatile memory may be processed, and the resulting data may be stored in the non-volatile memory. According to an embodiment, the processor 211 includes a main processor (eg, a central processing unit or an application processor), and a secondary processor (eg, a graphics processing unit, an image signal processor, a sensor hub processor, or a secondary processor capable of operating independently or together) communication processor). Additionally or alternatively, the auxiliary processor may be configured to use less power than the main processor or to specialize in a designated function. The coprocessor may be implemented separately from or as part of the main processor.

센서부(213)는, 매니퓰레이터 장치(210)가 경로 개선을 수행하는 데 있어 필요한 정보를 획득할 수 있다. 예를 들어, 매니퓰레이터 장치(210) 의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 외부 장치로부터 획득한 객체 정보를 수신하거나, 맵 데이터를 생성하거나, 동작 경로를 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다. 일 실시 예에서, 매니퓰레이터 장치(210)는 센서에서 획득한 센서 정보를 이용하여, 구성 공간에서 매니퓰레이터 장치(210)의 동작 경로가 외부 장애물과의 충돌로부터 자유로운지 여부에 판단할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 센서부(213)가 획득한 동작 경로의 장애물 존재 정보를 이용하여, 개선된 부분 경로 내 장애물이 있는 지 여부를 결정할 수 있고, 개선된 부분 경로의 충돌 점검을 수행할 수 있다. 매니퓰레이터 장치(210)는 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나 이상을 이용하여 동작 경로를 결정하고, 프로세서(211)가 제어하여 결정된 개선된 동작 경로에 따라 센싱 범위를 결정할 수 있다.The sensor unit 213 may acquire information necessary for the manipulator device 210 to perform path improvement. For example, obtaining state information of the manipulator device 210, detecting (recognizing) the surrounding environment and an object, receiving object information obtained from an external device, generating map data, determining an operation path, It may determine a response to a user interaction, or may determine an action. In an embodiment, the manipulator device 210 may determine whether an operation path of the manipulator device 210 is free from collision with an external obstacle in the configuration space using sensor information obtained from the sensor. For example, the manipulator device 210 may determine whether there is an obstacle in the improved partial path by using the obstacle existence information of the motion path acquired by the sensor unit 213 , and check collision of the improved partial path. can be performed. The manipulator device 210 determines an operation path by using at least one of map data, object information detected from sensor information, or object information obtained from an external device, and the processor 211 controls the determined improved motion path. The sensing range can be determined accordingly.

센서부(213)는 매니퓰레이터 장치(210)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서부(213)는, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor unit 213 detects an operating state (eg, power or temperature) of the manipulator device 210 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do. According to an embodiment, the sensor unit 213 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.

메모리(215)는, 매니퓰레이터 장치(210)가 실시간 경로 생성을 위한 병렬처리 알고리즘을 통해 동작하는 데 있어, 부분 경로들 및 부분 경로들 각각에 대응하는 관절 조합에 대한 정보를 저장할 수 있다. 예를 들어, 메모리(215)는 기존 경로에서 분할되어 결정된 부분 경로들의 집합을 포함하는 정보를 저장할 수 있다. 다른 예를 들어, 부분 경로들 각각에 대응하는 가능한 관절들의 모든 조합들의 집합을 포함하는 정보를 저장할 수 있다. 다른 예를 들어, 개선된 부분 경로들 또는 부분 경로들 중 충돌이 없는 구성 공간에 포함되는 개선된 부분 경로들의 집합을 포함하는 정보를 저장할 수 있다.The memory 215 may store partial paths and information on joint combinations corresponding to each of the partial paths when the manipulator device 210 operates through a parallel processing algorithm for real-time path generation. For example, the memory 215 may store information including a set of partial paths determined by dividing an existing path. For another example, information including a set of all combinations of possible joints corresponding to each of the partial paths may be stored. As another example, information including the improved partial paths or a set of the improved partial paths included in the configuration space without collision among the partial paths may be stored.

메모리(215)는, 매니퓰레이터 장치(210)의 적어도 하나의 구성요소(예: 프로세서(211) 또는 센서부(213))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(215)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 프로그램은 메모리(215)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제, 미들 웨어 또는 어플리케이션을 포함할 수 있다.The memory 215 may store various data used by at least one component (eg, the processor 211 or the sensor unit 213 ) of the manipulator device 210 . Data may include, for example, input data or output data for software (eg, a program) and instructions related thereto. The memory 215 may include a volatile memory or a non-volatile memory. The program may be stored as software in the memory 215 and may include, for example, an operating system, middleware, or an application.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치에 있어서, 상기 장치는 경로 개선을 위한 적어도 하나 이상의 프로세서를 포함하고, 상기 적어도 하나 이상의 프로세서는, 기존 경로에서 부분 경로들을 결정하고, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하고, 상기 관절 조합들에 대해 병렬적으로 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하고, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하고, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하도록 구성될 수 있다.According to various embodiments of the present disclosure, in a manipulator device for improving an operation path, the device includes at least one or more processors for path improvement, the at least one processor determines partial paths from an existing path, Determining joint combinations corresponding to each of the partial paths, and performing path improvement on the joint combinations in parallel, thereby generating improved partial paths corresponding to each of the partial paths, the improved partial path It may be configured to determine partial paths having the greatest path improvement effect corresponding to each of the partial paths among the partial paths, and change the partial paths to partial paths having the greatest path improvement effect.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 개선된 부분 경로들 중에 장애물과 충돌이 없는 개선된 부분 경로들을 선택하도록 더 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor may be further configured to select improved partial paths that do not collide with an obstacle from among the improved partial paths.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 상기 기존 경로가 포함하는 복수의 노드들 중 적어도 하나 이상의 노드를 선택함으로써 부분 경로들을 결정하고, 연속되지 않은 노드를 선택함으로써, 중복되지 않는 부분 경로들을 결정하도록 더 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor determines partial paths by selecting at least one node from among a plurality of nodes included in the existing path, and selects non-consecutive nodes so that there is no overlap. It may be further configured to determine partial paths that are not.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 개선된 부분 경로를 선택하도록 더 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor may be further configured to select an improved partial path in which the corresponding improved partial path is the shortest compared to the straight path of the first node and the last node of each partial path. have.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 개선된 부분 경로들 중에 구성 공간 상의 동작 경로의 길이가 가장 짧은 부분 경로를 선택하도록 더 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor may be further configured to select a partial path having the shortest length of an operation path in the configuration space from among the improved partial paths.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써, 상기 기존 경로를 갱신하도록 더 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor may be further configured to update the existing path by combining the changed partial paths with the partial paths having the greatest path improvement effect.

본 개시의 다양한 실시 예들에 따르면, 상기 적어도 하나 이상의 프로세서는, 상기 기존 경로에서 부분 경로들을 결정하고, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정하고, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하고, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 (1) 기설정된 시간 동안 반복하거나, (2) 기설정된 횟수 동안 반복하거나, (3) 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 때까지 반복하도록 구성될 수 있다.According to various embodiments of the present disclosure, the at least one processor determines partial paths in the existing path, determines joint combinations corresponding to each of the partial paths, and improves a path for the joint combinations generating improved partial paths corresponding to each of the partial paths by performing The process of changing to the corresponding partial paths having the greatest path improvement effect is repeated for (1) a preset time, (2) repeats for a preset number of times, or (3) the partial path with the greatest path improvement effect By combining the partial paths changed with the , the updated existing path may be configured to repeat until the same as the existing path before the update.

본 개시의 다양한 실시 예들에 따르면, 매니퓰레이터 장치의 동작 경로 개선을 위한 위해 컴퓨터에 의해 실행 가능한 소프트웨어를 나타내는 데이터가 저장된 컴퓨터 판독 가능 저장 매체로서, 상기 컴퓨터 판독 가능 저장 매체는, 기존 경로에서 부분 경로들을 결정하기 위한 명령들과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하기 위한 명령들과, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하기 위한 명령들과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하기 위한 명령들과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하기 위한 명령들을 포함하는 컴퓨터 판독 가능 저장 매체일 수 있다.According to various embodiments of the present disclosure, there is provided a computer-readable storage medium storing data representing software executable by a computer for improving an operation path of a manipulator device, the computer-readable storage medium comprising: instructions for determining, instructions for determining joint combinations corresponding to each of the partial paths, and performing path improvement on the joint combinations, thereby generating improved partial paths corresponding to each of the partial paths. instructions for generating, instructions for determining, among the improved partial paths, the partial paths having the greatest path improvement effect corresponding to each of the partial paths, and the path improving effect corresponding to the partial paths being the most It may be a computer-readable storage medium containing instructions for changing to large partial paths.

도 3은 다양한 실시 예들에 따른, 매니퓰레이터 장치의 실시간 경로 개선 후처리를 위한 병렬처리를 나타내는 흐름도이다. 도 3을 참고하면, 병렬처리를 나타내는 흐름도(300)는 매니퓰레이터 장치의 실시간 경로 개선 후처리를 위한 병렬화 기반 경로 개선 기법의 전체 구조를 나타낼 수 있다. 매니퓰레이터 장치의 실시간 경로 개선 후처리를 위한 병렬처리 기법은 기존 샘플링 기반 경로 계획 알고리즘(예: APSC)과 마찬가지로 반복적인 과정을 통해 경로 개선을 수행하지만 병렬화를 활용하여 훨씬 적은 수의 반복 횟수도로 동일한 수준의 경로개선 효과를 달성할 수 있다. 3 is a flowchart illustrating parallel processing for real-time path improvement post-processing of a manipulator device, according to various embodiments of the present disclosure; Referring to FIG. 3 , a flowchart 300 illustrating parallel processing may represent the overall structure of a parallelization-based path improvement technique for real-time path improvement post-processing of the manipulator device. The parallel processing technique for real-time path improvement post-processing of the manipulator device performs path improvement through an iterative process like the existing sampling-based path planning algorithm (e.g. APSC), but utilizes parallelism to achieve the same level with a much smaller number of iterations. path improvement effect can be achieved.

일 실시 예에서, 먼저, 매니퓰레이터 장치(210)가 동작하는 데 있어 기존 경로 정보가 병렬 처리 과정에 입력 값을 입력될 수 있다. 매니퓰레이터 장치(210)는 기존 경로 내 임의의 2개의 경로를 선택하여 복수의 부분 경로들을 생성할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 기존 경로 내 노드들 중 무작위로 n-1개의 노드를 선택함으로써, n개의 부분 경로를 결정하여 생성할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 부분 경로를 결정하는 데 있어, 연속된 노드를 선택하지 않음으로써, 각각이 중첩되지 않는 부분 경로들을 생성할 수 있다. In an embodiment, first, when the manipulator device 210 operates, existing path information may be input as an input value in a parallel processing process. The manipulator device 210 may generate a plurality of partial paths by selecting any two paths within an existing path. For example, the manipulator device 210 may determine and generate n partial paths by randomly selecting n-1 nodes from among nodes in an existing path. For example, in determining the partial paths, the manipulator device 210 may generate partial paths that do not overlap each other by not selecting consecutive nodes.

매니퓰레이터 장치(210)는 생성된 복수의 부분 경로들 각각에 대해서 가능한 모든 관절 조합을 결정하고, 선형 보간법에 기반하여 병렬적으로 경로 개선을 수행할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 하나의 부분 경로 Πs,j에 대해 가능한 모든 관절 조합 m개를 결정하고, 각 관절 조합에 대해 경로 개선을 수행함으로써 개선된 부분 경로들을 생성할 수 있다. 일 실시 예에서, 매니퓰레이터 장치(210)는 경로 개선된 부분 경로에 대해 장애물과의 충돌이 없는 유효한 부분 경로들만 선택하는 과정을 추가적으로 수행하여, 경로 내 장애물과 충돌이 없는 개선된 부분 경로들만 선택할 수 있다.The manipulator device 210 may determine all possible joint combinations for each of the plurality of generated partial paths, and perform path improvement in parallel based on linear interpolation. For example, the manipulator device 210 may generate improved partial paths by determining all possible joint combinations m for one partial path Π s,j , and performing path improvement for each joint combination. In an embodiment, the manipulator device 210 additionally performs a process of selecting only valid partial paths that do not collide with an obstacle for the improved partial path, so that only the improved partial paths that do not collide with an obstacle in the path can be selected. have.

매니퓰레이터 장치(210)는 복수의 부분 경로들 각각에 대응하여 모든 관절 조합에 대해 생성된 개선된 부분 경로들 중 경로 개선 효과가 가장 큰 부분 경로를 선택함으로써, 병렬적으로 부분 경로를 갱신할 수 있다. 예를 들어, 상기 기존 경로에서 결정된 복수의 부분 경로 들을, 복수의 부분 경로들 각각에 대응하여 모든 관절 조합에 대해 생성된 개선된 부분 경로들 중 경로 개선 효과가 가장 큰 부분 경로로 변경함으로써, 경로 갱신을 수행할 수 있다. 예를 들어, 하나의 부분 경로 Πs,j는, 가능한 모든 관절 조합에 대해 경로 개선이 수행되고 충돌 검사가 수행된 부분 경로들 중 가장 개선 효과가 큰 Π's,j로 변경됨으로써, 경로 갱신이 수행될 수 있다. The manipulator device 210 may update the partial paths in parallel by selecting the partial path having the greatest path improvement effect from among the improved partial paths generated for all joint combinations corresponding to each of the plurality of partial paths. . For example, by changing the plurality of partial paths determined in the existing path to the partial path having the greatest path improvement effect among the improved partial paths generated for all joint combinations corresponding to each of the plurality of partial paths, the path update can be performed. For example, one partial path Π s,j is changed to Π' s,j with the greatest improvement effect among the partial paths for which path improvement is performed for all possible joint combinations and collision check is performed, so that the path is updated. This can be done.

일 실시 예에서, 매니퓰레이터 장치(210)는 개선된 부분 경로 중 구성 공간 상의 경로의 길이를 기준으로 동작 경로가 가장 짧은 부분 경로를 개선 효과가 가장 큰 부분 경로로 결정할 수 있다. 다른 실시 예에서, 매니퓰레이터 장치(210)는 기존 경로로부터 분할된 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 경로 개선 효과가 가장 큰 부분 경로로 결정할 수 있다.In an embodiment, the manipulator device 210 may determine a partial path having the shortest motion path among the improved partial paths based on the length of the path in the configuration space as the partial path having the greatest improvement effect. In another embodiment, the manipulator device 210 may determine that the corresponding improved partial path is the shortest partial path with the greatest path improvement effect compared to the straight paths of the first and last nodes of each partial path divided from the existing path. have.

매니퓰레이터 장치(210)는 기존 경로 내 임의의 2개의 경로를 선택하여 복수의 부분 경로들에 대해 병렬적으로 동시간에 경로 개선을 수행한 후, 갱신된 복수의 부분경로를 결합함으로써, 기존 경로를 갱신할 수 있다. 예를 들어, 기존 경로에서 분할된 n개의 부분 경로들 Πs,j에 대해 병렬적으로 경로 개선을 수행함으로써, n개의 개선된 부분 경로들 Π's,j 를 생성하고, 각 부분 경로를 개선된 부분 경로로 변경하여, 부분 경로들을 갱신한 후, 개선된 부분 경로 Π's,j 를 결합하여 기존 경로 Π를 갱신할 수 있다.The manipulator device 210 selects any two paths in the existing path, performs path improvement on a plurality of partial paths in parallel at the same time, and then combines the updated partial paths to create an existing path. Can be updated. For example, by performing path improvement in parallel on n partial paths Π s,j divided in the existing path, n improved partial paths Π' s,j are generated, and each partial path is improved. After updating the partial paths by changing the partial path, the existing path Π can be updated by combining the improved partial path Π' s,j.

매니퓰레이터 장치(210)는 기존 경로에 대한 경로 개선 수행 후, 경로 개선 과정의 반복 여부를 결정할 수 있다. 일 실시 예에서, 매니퓰레이터 장치(210)는 반복 해제 조건이 만족하는지 여부를 결정함으로써, 경로 개선 과정을 반복할지 여부를 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 기존 경로가 입력되어 경로 개선이 시작된 시점을 기준으로 기설정된 시간이 지난 경우, 반복 해제 조건이 만족된 것으로 결정하고, 최종 동작 경로를 출력할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 기존 경로가 입력되어 경로 개선이 시작된 횟수를 기준으로 기설정된 횟수 동안이 경로 개선 과정이 반복된 경우, 반복 해제 조건이 만족된 것으로 결정하고, 최종 동작 경로를 출력할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 경우, 반복 해제 조건이 만족된 것으로 결정하고, 최종 동작 경로를 출력할 수 있다.The manipulator device 210 may determine whether to repeat the path improvement process after performing path improvement on an existing path. In an embodiment, the manipulator device 210 may determine whether to repeat the path improvement process by determining whether an iteration release condition is satisfied. For example, the manipulator device 210 may determine that the repeat release condition is satisfied and output the final motion path when a preset time elapses based on the time when the path improvement is started after the existing path is input. For another example, when the path improvement process is repeated for a predetermined number of times based on the number of times that the existing path is input and the path improvement is started, the manipulator device 210 determines that the repeat release condition is satisfied, and the final motion path can be printed out. As another example, the manipulator device 210 determines that the iteration release condition is satisfied when the updated existing path is the same as the existing path before the update by combining the changed partial paths with the partial paths having the greatest path improvement effect. and output the final motion path.

도 4는 다양한 실시 예들에 따른, 병렬 처리 알고리즘의 성능을 나타내는 그래프의 예시도이다. 도 4를 참고하면, 기존 샘플링 기반 경로 계획 기법(예: APSC)와 본 개시에서 제안된 병렬처리 알고리즘의 성능을 경로의 길이를 기준으로 비교한 결과가 도시된다. X축은 경로 개선이 반복된 횟수이고, Y축은 최초 기존 경로의 길이(Len(Π°)) 대비 경로 개선된 경로의 길이(Len(Π*)로써, 경로 개선 과정의 성능을 의미한다. 도 3을 참고하면, 본 개시에서 제안한 방법이 성능 한계점에 더 빠르게 수렴하므로, 기존 샘플링 기반 경로 계획 기법(예: APSC)보다 좋은 성능을 가짐을 확인할 수 있다.4 is an exemplary diagram of a graph showing performance of a parallel processing algorithm according to various embodiments of the present disclosure; Referring to FIG. 4 , a result of comparing the performance of the existing sampling-based path planning technique (eg, APSC) and the parallel processing algorithm proposed in the present disclosure based on the path length is shown. The X-axis is the number of times the path improvement is repeated, and the Y-axis is the length of the improved path (Len(Π * ) compared to the length of the original existing path (Len(Π°)), which means the performance of the path improvement process. Referring to , it can be confirmed that the method proposed in the present disclosure converges to the performance threshold faster, and thus has better performance than the existing sampling-based path planning method (eg, APSC).

도 5는 다양한 실시 예들에 따른, 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현을 설명하기 위한 흐름도의 일 예이다. 도 5의 흐름도(500)가 포함하는 과정은 매니퓰레이터 장치(210) (예: 프로세서(211))에 의해 수행될 수 있다.5 is an example of a flowchart for explaining implementation of a parallel processing algorithm for generating a real-time path of a manipulator according to various embodiments of the present disclosure; The process included in the flowchart 500 of FIG. 5 may be performed by the manipulator device 210 (eg, the processor 211 ).

501 단계에서, 매니퓰레이터 장치(210)는 기존 경로에서 부분 경로들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 기존 경로를 기존 경로 내 노드들 중에 임의의 2개의 노드들을 선택하여 복수의 부분경로로 분할함으로써, 복수의 부분 경로들을 결정할 수 있다. 이 때 기존 경로의 연속된 노드가 선택되는 것을 피함으로써, 선택된 부분경로들은 서로 중첩되는 부분이 없도록 할 수 있다.In operation 501 , the manipulator device 210 may determine partial paths from the existing path. For example, the manipulator device 210 may determine the plurality of partial paths by dividing the existing path into a plurality of partial paths by selecting two arbitrary nodes among nodes in the existing path. In this case, by avoiding the selection of consecutive nodes of the existing path, the selected partial paths may not overlap each other.

503 단계에서, 매니퓰레이터 장치(210)는 부분 경로들의 각각에 대응하는 관절 조합들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 결정된 부분 경로 각각에 경로개선이 가능한 모든 관절 조합들을 결정할 수 있다.In step 503 , the manipulator device 210 may determine joint combinations corresponding to each of the partial paths. For example, the manipulator device 210 may determine all joint combinations for which path improvement is possible in each of the determined partial paths.

505 단계에서, 매니퓰레이터 장치(210)는 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 각 부분경로에 대해서 가능한 모든 관절 조합에 대하여 선형 보간법을 사용하여 경로 개선 작업을 수행하고 병렬적으로 개선된 부분경로를 생성할 수 있다. 일 실시 예에서, 경로 개선 작업을 수행된 부분 경로들 중 장애물과의 충돌이 없는 개선된 부분경로들만 선택할 수 있다.In operation 505 , the manipulator device 210 may generate improved partial paths corresponding to each of the partial paths by performing path improvement on joint combinations. For example, the manipulator device 210 may perform a path improvement operation using linear interpolation for all possible joint combinations for each partial path and generate the improved partial path in parallel. In an embodiment, only the improved partial routes that do not collide with an obstacle among the partial routes on which the route improvement work has been performed may be selected.

507 단계에서, 매니퓰레이터 장치(210)는 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 개선된 부분 경로 중 구성 공간 상의 경로의 길이를 기준으로 동작 경로가 가장 짧은 부분 경로를 개선 효과가 가장 큰 부분 경로로 결정할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 기존 경로로부터 분할된 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 경로 개선 효과가 가장 큰 부분 경로로 결정할 수 있다.In operation 507 , the manipulator device 210 may determine, among the improved partial paths, the partial paths having the greatest path improvement effect corresponding to each of the partial paths. For example, the manipulator device 210 may determine a partial path having the shortest motion path as the partial path having the greatest improvement effect based on the length of the path in the configuration space among the improved partial paths. As another example, the manipulator device 210 may determine that the corresponding improved partial path is the shortest partial path with the greatest improvement effect compared to the straight paths of the first and last nodes of each partial path divided from the existing path. have.

509 단계에서, 매니퓰레이터 장치(210)는 상기 부분 경로들을, 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 분할된 부분 경로들 각각을 분할된 부분 경로들에 각각에 대응하는 개선 효과가 가장 큰 개선된 부분 경로들로 변경하고, 변경하여 갱신된 부분경로들 모두를 조합하여 기존 경로를 갱신할 수 있다. In operation 509 , the manipulator device 210 may change the partial paths to corresponding partial paths having the greatest path improvement effect. For example, the manipulator device 210 changes each of the divided partial paths into improved partial paths having the greatest improvement effect corresponding to each of the divided partial paths, and changes all of the updated partial paths. You can update existing routes by combining them.

도 6은 다양한 실시 예들에 따른, 매니퓰레이터의 실시간 경로 생성을 위한 병렬처리 알고리즘 구현을 설명하기 위한 흐름도의 다른 예이다. 도 6의 흐름도(600)가 포함하는 과정은 매니퓰레이터 장치(210) 또는 매니퓰레이터 장치(210)가 포함하는 구성(예: 프로세서(211))에 의해 수행될 수 있다.6 is another example of a flowchart for explaining implementation of a parallel processing algorithm for generating a real-time path of a manipulator according to various embodiments of the present disclosure; The process included in the flowchart 600 of FIG. 6 may be performed by the manipulator device 210 or a configuration (eg, the processor 211 ) included in the manipulator device 210 .

601 단계에서, 매니퓰레이터 장치(210)는 기존 경로에서 부분 경로들을 결정할 수 있다. 매니퓰레이터 장치(210)는 기존 경로에서 부분 경로들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 기존 경로를 기존 경로 내 노드들 중에 임의의 2개의 노드들을 선택하여 복수의 부분경로로 분할함으로써, 복수의 부분 경로들을 결정할 수 있다. In operation 601 , the manipulator device 210 may determine partial paths from the existing path. The manipulator device 210 may determine partial paths from the existing path. For example, the manipulator device 210 may determine the plurality of partial paths by dividing the existing path into a plurality of partial paths by selecting two arbitrary nodes among nodes in the existing path.

603 단계에서, 매니퓰레이터 장치(210)는 부분 경로들의 각각에 대응하는 관절 조합들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 결정된 부분 경로 각각에 경로개선이 가능한 모든 관절 조합들을 결정할 수 있다.In step 603 , the manipulator device 210 may determine joint combinations corresponding to each of the partial paths. For example, the manipulator device 210 may determine all joint combinations for which path improvement is possible in each of the determined partial paths.

605 단계에서, 매니퓰레이터 장치(210)는 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 각 부분경로에 대해서 가능한 모든 관절 조합에 대하여 선형 보간법을 사용하여 경로 개선 작업을 수행하고 병렬적으로 개선된 부분경로를 생성할 수 있다.In operation 605 , the manipulator device 210 may generate improved partial paths corresponding to each of the partial paths by performing path improvement on joint combinations. For example, the manipulator device 210 may perform a path improvement operation using linear interpolation for all possible joint combinations for each partial path and generate the improved partial path in parallel.

607 단계에서, 매니퓰레이터 장치(210)는 상기 개선된 부분 경로들 중에 장애물과 충돌이 없는 개선된 부분 경로들을 선택할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 센서부(213)에서 획득한 정보를 이용하여, 구성 공간에서 매니퓰레이터 장치(210)의 개선된 부분경로에 대해 외부 장애물과의 충돌로부터 자유로운지 여부에 판단함으로써, 유효성 판단을 수행할 수 있고, 장애물과의 충돌이 없는 개선된 부분경로들만 선택할 수 있다.In operation 607 , the manipulator device 210 may select improved partial paths that do not collide with obstacles from among the improved partial paths. For example, the manipulator device 210 uses the information obtained from the sensor unit 213 to determine whether the improved partial path of the manipulator device 210 is free from collision with an external obstacle in the configuration space. , the validity judgment can be performed, and only improved partial routes without collision with obstacles can be selected.

609 단계에서, 매니퓰레이터 장치(210)는 선택된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 개선된 부분 경로 중 구성 공간 상의 경로의 길이를 기준으로 동작 경로가 가장 짧은 부분 경로를 개선 효과가 가장 큰 부분 경로로 결정할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 기존 경로로부터 분할된 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 경로 개선 효과가 가장 큰 부분 경로로 결정할 수 있다.In operation 609 , the manipulator device 210 may determine partial paths having the greatest path improvement effect corresponding to each of the partial paths among the selected partial paths. For example, the manipulator device 210 may determine a partial path having the shortest motion path as the partial path having the greatest improvement effect based on the length of the path in the configuration space among the improved partial paths. As another example, the manipulator device 210 may determine that the corresponding improved partial path is the shortest partial path with the greatest improvement effect compared to the straight paths of the first and last nodes of each partial path divided from the existing path. have.

611 단계에서, 매니퓰레이터 장치(210)는 상기 부분 경로들을, 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 분할된 부분 경로들 각각을 분할된 부분 경로들에 각각에 대응하는 개선 효과가 가장 큰 개선된 부분 경로들로 변경할 수 있다.In operation 611 , the manipulator device 210 may change the partial paths to the corresponding partial paths having the greatest path improvement effect. For example, the manipulator device 210 may change each of the divided partial paths into improved partial paths having the greatest improvement effect corresponding to each of the divided partial paths.

613 단계에서, 매니퓰레이터 장치(210)는 갱신된 부분 경로들을 결합하여, 기존 경로 갱신할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 분할된 부분 경로들 각각을 분할된 부분 경로들에 각각에 대응하는 개선 효과가 가장 큰 개선된 부분 경로들로 변경하여 갱신된 부분경로들 모두를 조합하여 기존 경로를 갱신할 수 있다. 따라서, 매니퓰레이터 장치(210)는 601 내지 611 단계를 모든 부분경로들에 대해 동시에 병렬적으로 경로 개선함으로써 갱신된 부분경로를 모두 조합하여 기존 경로를 갱신할 수 있다.In operation 613 , the manipulator device 210 may update the existing path by combining the updated partial paths. For example, the manipulator device 210 changes each of the divided partial paths into improved partial paths that have the greatest improvement effect corresponding to each of the divided partial paths, and combines all of the updated partial paths. The path can be updated. Accordingly, the manipulator device 210 may update the existing path by combining all of the updated partial paths by simultaneously and parallelly improving the paths for all partial paths in steps 601 to 611 .

615 단계에서, 매니퓰레이터 장치(210)는 반복 해제 조건 만족하지는 여부를 결정할 수 있다. 예를 들어, 매니퓰레이터 장치(210)는 기존 경로가 입력되어 경로 개선이 시작된 시점을 기준으로 기설정된 시간이 지난 경우, 반복 해제 조건이 만족된 것으로 결정할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 기존 경로가 입력되어 경로 개선이 시작된 횟수를 기준으로 기설정된 횟수 동안이 경로 개선 과정이 반복된 경우, 반복 해제 조건이 만족된 것으로 결정할 수 있다. 다른 예를 들어, 매니퓰레이터 장치(210)는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 경우, 반복 해제 조건이 만족된 것으로 결정할 수 있다. 매니퓰레이터 장치(210)는 반복 해제 조건을 만족하는 것으로 결정할 경우, 경로 개선이 수행된 경로를 최종 경로로 결정할 수 있고, 만족하지 못하는 것으로 결정할 경우, 601 단계를 진행하여 동작 경로의 반복적인 경로 개선을 수행할 수 있다.In operation 615 , the manipulator device 210 may determine whether the iteration release condition is satisfied. For example, the manipulator device 210 may determine that the repeat release condition is satisfied when a preset time has elapsed from the time when the path improvement is started after the existing path is input. As another example, the manipulator device 210 may determine that the repetition cancellation condition is satisfied when the path improvement process is repeated for a predetermined number of times based on the number of times that an existing path is input and path improvement is started. For another example, the manipulator device 210 determines that the iteration release condition is satisfied when the updated existing path is the same as the existing path before the update by combining the changed partial paths with the partial paths having the greatest path improvement effect. can If it is determined that the iterative release condition is satisfied, the manipulator device 210 may determine the path on which the path improvement has been performed as the final path. can be done

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법은, 기존 경로에서 부분 경로들을 결정하는 과정과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정과, 상기 관절 조합들에 대해 병렬적으로 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, a method of operating a manipulator device for improving a motion path includes a process of determining partial paths in an existing path, a process of determining joint combinations corresponding to each of the partial paths, and the joint The process of generating improved partial paths corresponding to each of the partial paths by performing path improvement on the combinations in parallel, and a path improvement effect corresponding to each of the partial paths among the improved partial paths It may include a process of determining the largest partial paths, and a process of changing the partial paths to the corresponding partial paths having the greatest path improvement effect.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법에서, 상기 개선된 부분 경로들을 생성하는 과정은, 개선된 부분 경로들 중에 장애물과 충돌이 없는 개선된 부분 경로들을 선택하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, in the method of operating a manipulator device for improving an operation path, the process of generating the improved partial paths includes selecting improved partial paths that do not collide with an obstacle from among the improved partial paths. process may be included.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법에서, 상기 기존 경로에서 부분 경로들을 결정하는 과정은, 상기 기존 경로가 포함하는 복수의 노드들 중 적어도 하나 이상의 노드를 선택함으로써 부분 경로들을 결정하는 과정을 포함하고, 상기 적어도 하나 이상의 노드를 선택하는 과정은, 연속되지 않은 노드를 선택함으로써, 중복되지 않는 부분 경로들을 결정하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, in the method of operating a manipulator device for improving an operation path, the process of determining partial paths in the existing path includes selecting at least one node from among a plurality of nodes included in the existing path. and determining partial paths by doing so, and the selecting of the at least one node may include determining non-overlapping partial paths by selecting non-consecutive nodes.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법에서, 상기 경로 개선 효과가 가장 큰 부분경로를 결정하는 과정은, 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 개선된 부분 경로를 선택하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, in the method of operating a manipulator device for improving an operation path, the process of determining the partial path having the greatest path improvement effect comprises: a comparison of the straight path between the first node and the last node of each partial path; The corresponding improved partial path may include selecting the shortest improved partial path.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법에서, 상기 경로 개선 효과가 가장 큰 부분경로를 결정하는 과정은, 개선된 부분 경로들 중에 구성 공간 상의 동작 경로의 길이가 가장 짧은 부분 경로를 선택하는 과정을 포함할 수 있다.According to various embodiments of the present disclosure, in the method of operating a manipulator device for improving the motion path, the process of determining the partial path having the greatest path improvement effect includes the length of the motion path in the configuration space among the improved partial paths. It may include the process of selecting the shortest partial path.

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법은, 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써, 상기 기존 경로를 갱신하는 과정을 더 포함할 수 있다.According to various embodiments of the present disclosure, the method of operating a manipulator device for improving an operation path may further include updating the existing path by combining the changed partial paths with the partial paths having the greatest path improvement effect. can

본 개시의 다양한 실시 예들에 따르면, 동작 경로 개선을 위한 매니퓰레이터 장치의 동작 방법에서, 기존 경로에서 부분 경로들을 결정하는 과정과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정과, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정은 (1) 기설정된 시간 동안 반복되거나, (2) 기설정된 횟수 동안 반복되거나, (3) 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 때까지 반복될 수 있다.According to various embodiments of the present disclosure, in a method of operating a manipulator device for motion path improvement, a process of determining partial paths in an existing path, a process of determining joint combinations corresponding to each of the partial paths, and the joint A process of generating improved partial paths corresponding to each of the partial paths by performing path improvement on the combinations, and a portion of the improved partial paths having the greatest path improvement effect corresponding to each of the partial paths The process of determining the routes and the process of changing the partial routes to the corresponding partial routes having the greatest route improvement effect are (1) repeated for a preset time, (2) repeated for a preset number of times, (3) ) By combining the changed partial paths with the partial paths having the greatest path improvement effect, the updated existing path may be repeated until the same as the existing path before the update.

본 개시에 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트 폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments of the present disclosure may be devices of various types. The electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device. The electronic device according to the embodiment of this document is not limited to the above-described devices.

본 개시의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.Various embodiments of the present disclosure and terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar or related components. The singular form of the noun corresponding to the item may include one or more of the item, unless the relevant context clearly dictates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B,” “A, B or C,” “at least one of A, B and C,” and “A , B, or C" each may include any one of the items listed together in the corresponding one of the phrases, or all possible combinations thereof. Terms such as “first”, “second”, or “first” or “second” may simply be used to distinguish the component from other such components, and refer to those components in other aspects (e.g., importance or order) is not limited. that one (e.g. first) component is "coupled" or "connected" to another (e.g. second) component with or without the terms "functionally" or "communicatively" When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.

본 개시에서 사용된 용어 "모듈" 또는 “-부”는 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. As used herein, the term “module” or “-unit” may include a unit implemented in hardware, software, or firmware, and is, for example, interchangeable with terms such as logic, logic block, component, or circuit. can be used as A module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다. Methods according to the embodiments described in the claims or specifications of the present disclosure may be implemented in the form of hardware, software, or a combination of hardware and software.

소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다. When implemented in software, a computer-readable storage medium storing one or more programs (software modules) may be provided. One or more programs stored in the computer-readable storage medium are configured for execution by one or more processors in an electronic device (device). One or more programs include instructions for causing an electronic device to execute methods according to embodiments described in a claim or specification of the present disclosure.

이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(read only memory, ROM), 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다. Such programs (software modules, software) include random access memory, non-volatile memory including flash memory, read only memory (ROM), electrically erasable programmable ROM (electrically erasable programmable read only memory, EEPROM), magnetic disc storage device, compact disc-ROM (CD-ROM), digital versatile discs (DVDs), or other It may be stored in an optical storage device or a magnetic cassette. Alternatively, it may be stored in a memory composed of a combination of some or all thereof. In addition, each configuration memory may be included in plurality.

또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WAN(wide area network), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.In addition, the program is transmitted through a communication network consisting of a communication network such as the Internet, an intranet, a local area network (LAN), a wide area network (WAN), or a storage area network (SAN), or a combination thereof. It may be stored on an attachable storage device that can be accessed. Such a storage device may be connected to a device implementing an embodiment of the present disclosure through an external port. In addition, a separate storage device on the communication network may be connected to the device implementing the embodiment of the present disclosure.

상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성요소에 제한되는 것은 아니며, 복수로 표현된 구성요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성요소라 하더라도 복수로 구성될 수 있다.In the specific embodiments of the present disclosure described above, elements included in the disclosure are expressed in the singular or plural according to the specific embodiments presented. However, the singular or plural expression is appropriately selected for the context presented for convenience of description, and the present disclosure is not limited to the singular or plural element, and even if the element is expressed in plural, it is composed of the singular or singular. Even an expressed component may be composed of a plurality of components.

이제까지 본 발명에 대하여 바람직한 실시 예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명을 구현할 수 있음을 이해할 것이다. 그러므로 상기 개시된 실시 예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 특허청구범위에 의해 청구된 발명 및 청구된 발명과 균등한 발명들은 본 발명에 포함된 것으로 해석되어야 한다.So far, the present invention has been focused on preferred embodiments. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in modified forms without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive point of view. The scope of the present invention is indicated in the claims rather than the above description, and it should be construed that the invention claimed by the claims and inventions equivalent to the claimed invention are included in the present invention.

Claims (15)

동작 경로 개선을 위한 매니퓰레이터(manipulator) 장치의 동작 방법에 있어서,
기존 경로에서 부분 경로들을 결정하는 과정과,
상기 부분 경로들 각각을 구성하는 경로를 초기화하고,
상기 부분 경로들의 각각에 대응하는 관절 조합들로서, 상기 부분 경로들의 각 부분 경로마다 각 부분 경로에 대해 가능한 관절들의 모든 조합들인 상기 관절 조합들을 결정하는 과정과,
상기 관절 조합들의 각 모든 관절 조합에 대해 병렬적으로 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과,
상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과,
상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 포함하는 방법.
A method of operating a manipulator device for improving an operation path, the method comprising:
The process of determining partial paths from the existing path, and
Initializing a path constituting each of the partial paths,
determining, as joint combinations corresponding to each of the partial paths, the joint combinations that are all combinations of possible joints for each partial path for each partial path of the partial paths;
The process of generating improved partial paths corresponding to each of the partial paths by performing path improvement in parallel for each and every joint combination of the joint combinations;
determining, among the improved partial paths, partial paths having the greatest path improvement effect corresponding to each of the partial paths;
and changing the partial paths to the corresponding partial paths having the greatest path improvement effect.
청구항 1에 있어서,
상기 개선된 부분 경로들을 생성하는 과정은, 개선된 부분 경로들 중에 장애물과 충돌이 없는 개선된 부분 경로들을 선택하는 과정을 포함하는 방법.
The method according to claim 1,
The generating of the improved partial routes includes selecting the improved partial routes that do not collide with an obstacle from among the improved partial routes.
청구항 1에 있어서,
상기 기존 경로에서 부분 경로들을 결정하는 과정은, 상기 기존 경로가 포함하는 복수의 노드들 중 적어도 하나 이상의 노드를 선택함으로써 부분 경로들을 결정하는 과정을 포함하고,
상기 적어도 하나 이상의 노드를 선택하는 과정은, 연속되지 않은 노드를 선택함으로써, 중복되지 않는 부분 경로들을 결정하는 과정을 포함하는 방법.
The method according to claim 1,
The process of determining partial paths in the existing path includes determining partial paths by selecting at least one or more nodes from among a plurality of nodes included in the existing path,
The selecting of the at least one or more nodes may include determining non-overlapping partial paths by selecting non-consecutive nodes.
청구항 1에 있어서,
상기 경로 개선 효과가 가장 큰 부분경로를 결정하는 과정은, 각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 개선된 부분 경로를 선택하는 과정을 포함하는 방법
The method according to claim 1,
The process of determining the partial path having the greatest path improvement effect includes selecting an improved partial path having the shortest corresponding improved partial path compared to the straight path of the first node and the last node of each partial path;
청구항 1에 있어서,
상기 경로 개선 효과가 가장 큰 부분경로를 결정하는 과정은, 개선된 부분 경로들 중에 구성 공간(configuration space) 상의 동작 경로의 길이가 가장 짧은 부분 경로를 선택하는 과정을 포함하는 방법.
The method according to claim 1,
The determining of the partial path having the greatest path improvement effect includes selecting a partial path having the shortest length of an operation path in a configuration space from among the improved partial paths.
청구항 1에 있어서,
상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써, 상기 기존 경로를 갱신하는 과정을 더 포함하는 방법.
The method according to claim 1,
and updating the existing path by combining the changed partial paths with the partial paths having the greatest path improvement effect.
청구항 1에 있어서,
기존 경로에서 부분 경로들을 결정하는 과정과, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정과, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하는 과정과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하는 과정과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정은 (1) 기설정된 시간 동안 반복되거나, (2) 기설정된 횟수 동안 반복되거나, (3) 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 때까지 반복되는 것을 특징으로 하는 방법.
The method according to claim 1,
An improved part corresponding to each of the partial paths by determining partial paths in the existing path, determining joint combinations corresponding to each of the partial paths, and performing path improvement on the joint combinations The process of generating routes, the process of determining partial routes having the greatest route improvement effect corresponding to each of the partial routes among the improved partial routes, and the part having the greatest route improvement effect corresponding to the partial routes The process of changing the routes is (1) repeated for a preset time, (2) repeated for a preset number of times, or (3) the existing updated by combining the changed partial routes with the partial routes having the greatest route improvement effect. A method, characterized in that it is repeated until the path is the same as the existing path before the update.
동작 경로 개선을 위한 매니퓰레이터 장치에 있어서,
상기 장치는 경로 개선을 위한 적어도 하나 이상의 프로세서를 포함하고,
상기 적어도 하나 이상의 프로세서는,
기존 경로에서 부분 경로들을 결정하고,
상기 부분 경로들 각각을 구성하는 경로를 초기화하고,
상기 부분 경로들의 각각에 대응하는 관절 조합들로서, 상기 부분 경로들의 각 부분 경로마다 각 부분 경로에 대해 가능한 관절들의 모든 조합들인 상기 관절 조합들을 결정하고,
상기 관절 조합들의 각 모든 관절 조합에 대해 병렬적으로 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하고,
상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하고,
상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하도록 구성된 장치.
A manipulator device for improving a motion path, comprising:
The device comprises at least one or more processors for path improvement,
The at least one or more processors,
Determining partial paths from an existing path,
Initializing a path constituting each of the partial paths,
determine the joint combinations corresponding to each of the partial paths, for each partial path of the partial paths, the joint combinations being all combinations of possible joints for each partial path,
by performing path improvement in parallel for each and every joint combination of the joint combinations, thereby generating improved partial paths corresponding to each of the partial paths;
determining, among the improved partial paths, partial paths having the greatest path improvement effect corresponding to each of the partial paths;
an apparatus configured to change the partial paths to the corresponding partial paths having the greatest path improvement effect.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
개선된 부분 경로들 중에 장애물과 충돌이 없는 개선된 부분 경로들을 선택하도록 더 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
The apparatus further configured to select improved partial paths free from obstacles and collisions among the improved partial paths.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
상기 기존 경로가 포함하는 복수의 노드들 중 적어도 하나 이상의 노드를 선택함으로써 부분 경로들을 결정하고,
연속되지 않은 노드를 선택함으로써, 중복되지 않는 부분 경로들을 결정하도록 더 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
determining partial paths by selecting at least one or more nodes among a plurality of nodes included in the existing path;
The apparatus further configured to determine non-overlapping partial paths by selecting non-contiguous nodes.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
각 부분 경로들의 첫번째 노드와 마지막 노드의 직선 경로 대비, 대응하는 개선된 부분 경로가 가장 짧은 개선된 부분 경로를 선택하도록 더 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
The apparatus further configured to select an improved partial path having a shortest corresponding improved partial path compared to the straight path of the first node and the last node of each partial path.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
개선된 부분 경로들 중에 구성 공간 상의 동작 경로의 길이가 가장 짧은 부분 경로를 선택하도록 더 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
The apparatus further configured to select a partial path having the shortest length of the motion path on the construction space from among the improved partial paths.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써, 상기 기존 경로를 갱신하도록 더 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
The apparatus further configured to update the existing route by combining the changed partial routes into the partial routes having the greatest route improvement effect.
청구항 8에 있어서,
상기 적어도 하나 이상의 프로세서는,
상기 기존 경로에서 부분 경로들을 결정하고, 상기 부분 경로들의 각각에 대응하는 관절 조합들을 결정하는 과정하고, 상기 관절 조합들에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하고, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하는 과정을 (1) 기설정된 시간 동안 반복하거나, (2) 기설정된 횟수 동안 반복하거나, (3) 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경된 부분 경로들을 결합함으로써 갱신된 기존 경로가 갱신 전 기존 경로와 동일할 때까지 반복하도록 구성된 장치.
9. The method of claim 8,
The at least one or more processors,
An improved partial path corresponding to each of the partial paths by determining partial paths in the existing path, determining joint combinations corresponding to each of the partial paths, and performing path improvement on the joint combinations generating the partial paths, determining the partial paths having the greatest path improvement effect corresponding to each of the partial paths among the improved partial paths, and changing the partial paths to the partial paths having the greatest path improvement effect. By repeating the process (1) for a preset time, (2) repeating for a preset number of times, or (3) combining the changed partial paths with the partial paths having the greatest path improvement effect, the updated existing path is restored to the existing path before the update. A device configured to repeat until it is identical to a path.
매니퓰레이터 장치의 동작 경로 개선을 위한 위해 컴퓨터에 의해 실행 가능한 소프트웨어를 나타내는 데이터가 저장된 컴퓨터 판독 가능 저장 매체로서, 상기 컴퓨터 판독 가능 저장 매체에 있어서,
기존 경로에서 부분 경로들을 결정하기 위한 명령들과, 상기 부분 경로들 각각을 구성하는 경로를 초기화하는 명령들과, 상기 부분 경로들의 각각에 대응하는 관절 조합들로서, 상기 부분 경로들의 각 부분 경로마다 각 부분 경로에 대해 가능한 관절들의 모든 조합들인 상기 관절 조합들을 결정하기 위한 명령들과, 상기 관절 조합들의 각 모든 관절 조합에 대해 경로 개선을 수행함으로써, 상기 부분 경로들의 각각에 대응하는 개선된 부분 경로들을 생성하기 위한 명령들과, 상기 개선된 부분 경로들 중에 상기 부분 경로들의 각각에 대응하는 경로 개선 효과가 가장 큰 부분경로들을 결정하기 위한 명령들과, 상기 부분 경로들을 대응하는 상기 경로 개선 효과가 가장 큰 부분 경로들로 변경하기 위한 명령들을 포함하는 컴퓨터 판독 가능 저장 매체.
A computer-readable storage medium storing data representing software executable by a computer for improving an operation path of a manipulator device, the computer-readable storage medium comprising:
Commands for determining partial paths in an existing path, commands for initializing a path constituting each of the partial paths, and joint combinations corresponding to each of the partial paths, respectively, for each partial path of the partial paths Improved partial paths corresponding to each of the partial paths by instructions for determining the joint combinations that are all combinations of possible joints for the partial path, and performing path improvement on each and every joint combination of the joint combinations. instructions for generating, instructions for determining, among the improved partial paths, the partial paths having the greatest path improvement effect corresponding to each of the partial paths, and the path improving effect corresponding to the partial paths being the most A computer readable storage medium comprising instructions for changing to large partial paths.
KR1020190147582A 2019-11-18 2019-11-18 METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF KR102331315B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190147582A KR102331315B1 (en) 2019-11-18 2019-11-18 METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190147582A KR102331315B1 (en) 2019-11-18 2019-11-18 METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF

Publications (2)

Publication Number Publication Date
KR20210060036A KR20210060036A (en) 2021-05-26
KR102331315B1 true KR102331315B1 (en) 2021-11-24

Family

ID=76137567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147582A KR102331315B1 (en) 2019-11-18 2019-11-18 METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF

Country Status (1)

Country Link
KR (1) KR102331315B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014073550A (en) * 2012-10-04 2014-04-24 Seiko Epson Corp Path searching method, path searching device, robot control device, robot, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014073550A (en) * 2012-10-04 2014-04-24 Seiko Epson Corp Path searching method, path searching device, robot control device, robot, and program

Also Published As

Publication number Publication date
KR20210060036A (en) 2021-05-26

Similar Documents

Publication Publication Date Title
JP6644890B2 (en) Execution order determination of neural network
CN108229655B (en) Convolutional neural network (CNN) processing method and device
JP5998816B2 (en) Route search method, route search device, robot control device, robot, and program
US8849559B2 (en) Apparatus and method for generating and using a grid map path
KR20180109619A (en) Convolutional neural network processing method and apparatus
US10984155B2 (en) Accelerating particle-swarm algorithms
EP2828044A1 (en) Trajectory generation device, moving object, trajectory generation method
JP6892424B2 (en) Hyperparameter tuning methods, devices and programs
JP2021073606A (en) Crowd state recognition device, method, and program
JP6342465B2 (en) A method for rule-based context retrieval
JP6195342B2 (en) Information processing apparatus and memory access control method
JP2017010475A (en) Program generation device, program generation method, and generated program
CN111783692A (en) Action recognition method and device, electronic equipment and storage medium
JP2006309519A (en) Reinforcement learning system and reinforcement learning program
KR102331315B1 (en) METHOD FOR A PARALLELIZATION ALGORITHM FOR REAL-TIME PATH PLANNING OF HIGH-DOFs ROBOT MANIPULATOR AND DEVICE THEREOF
CN113326356B (en) Natural countermeasure sample generation method for text classifier and related device
JP2017068577A (en) Arithmetic unit, method and program
CN110751284A (en) Heterogeneous information network embedding method and device, electronic equipment and storage medium
WO2013027782A1 (en) Anonymization device, anonymization method, and recording medium in which program therefor is recorded
JP7301801B2 (en) Hyperparameter tuning method, device and program
JP7211430B2 (en) Machine learning device, machine learning method, and program
WO2020110273A1 (en) Route search assistance device, route search assistance method, and computer-readable recording medium
WO2022181251A1 (en) Articulation point detection device, articulation point detection method, and computer-readable recording medium
WO2022181252A1 (en) Joint detection device, training model generation device, joint detection method, training model generation method, and computer-readable recording medium
AU2015205874A1 (en) An image processing system and method for identifying content within image data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant