KR102320659B1 - 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법 - Google Patents

로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법 Download PDF

Info

Publication number
KR102320659B1
KR102320659B1 KR1020200119050A KR20200119050A KR102320659B1 KR 102320659 B1 KR102320659 B1 KR 102320659B1 KR 1020200119050 A KR1020200119050 A KR 1020200119050A KR 20200119050 A KR20200119050 A KR 20200119050A KR 102320659 B1 KR102320659 B1 KR 102320659B1
Authority
KR
South Korea
Prior art keywords
module
robot
image
learning
deep learning
Prior art date
Application number
KR1020200119050A
Other languages
English (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 KR1020200119050A priority Critical patent/KR102320659B1/ko
Application granted granted Critical
Publication of KR102320659B1 publication Critical patent/KR102320659B1/ko

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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 작업자의 행동을 다가가기, 잡기, 옮기기, 삽입하기 및 조이기를 포함하는 n개의 단위행동으로 구분하여, 상기 단위행동마다 각각 직접 교시(direct teaching) 및 관찰(observation)을 포함하는 시연으로부터 정답 이미지를 획득하고, 로봇으로부터 입력되는 추가 학습용 이미지와 상기 정답 이미지를 이용하여 학습하는 방법으로서, 상기 로봇은, 타겟 물체를 파지하며, 한 개 이상으로 형성되며 다축으로 이동가능한 로봇암(11)을 포함하는 로봇 모듈(10);타겟 물체를 추가로 파지하는 보조 엔드 이펙터(22)를 포함하는 로봇 보조 모듈(20); 및 상기 로봇 모듈(10), 상기 로봇 보조 모듈(20) 및 타겟 물체를 촬영하여, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 포함하는 추가 학습용 이미지를 생성하는 센서 모듈(30); 를 포함한다.

Description

로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법{Unit action deep learning model learning method using robot and robot control method using the same}
본 발명은 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법에 관한 것이다.
종래의 로봇 자동화는 지그-고정구(jig-fixture)를 사용하여 불확실성을 감소시켜 정확도를 높이는 방법을 사용해 왔다. 다만, 이 방법은 다품종 소량 생산과 같이 로봇의 작업 라인의 변화가 빈번하게 발생하는 환경에서 사용하는 것이 어려웠다.
이를 해결하기 위한 방법으로, 이미지를 이용하는 비전-기반의 오토메이션 방법이 활용되고 있다. 비전-기반 오토메이션의 경우 다양한 이미지가 입력될 수 있는 바, 다양성을 높여 불확실성에 대처할 수 있다는 장점이 있는 반면 높은 정확도가 요구되는 작업에 활용이 어려운 단점이 있다.
비전-기반 오토메이션의 경우에도 정확도가 요구되는 작업에서 정확도를 향상시키기 위해, 지그-고정구를 활용하나 지그-고정구의 활용과 비전 시스템은 정확도와 다양성 사이의 트레이드-오프가 존재하는 바, 정확도와 다양성을 동시에 높이기는 어렵다는 문제가 있다.
예를 들어, 일본등록특허공보 제6374993호는 로봇 시스템이 물체가 환경 내의 어디에 있는지의 소정의 지식에 기반하여 물체를 들어 올리도록 로봇 암에 지시할 수 있고, 제어 시스템은 기계 학습 프로세스 중의 임의의 것 또는 모두를 적용할 수 있으나, 지그-고정구를 활용하는 바 정확도와 다양성을 동시에 높이기는 어렵다는 문제가 있다.
(특허문헌 1) 일본등록특허공보 제6374993호
(특허문헌 2) 일본공개특허공보 제2020-28909호
(특허문헌 3) 일본등록특허공보 제6438450호
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것이다.
본 발명은 로봇 자동화 과정에서 별도의 지그-고정구를 설치하지 않고, 필요에 따라 효과적으로 움직임을 생성하기 위함이다.
구체적으로, 로봇 보조 모듈은 자유롭게 이동이 가능한바, 고정되어 있는 지그-고정구를 사용하는 것에 비해 작업의 다양성을 제공하기 위함이다.
또한, 각 단위행동 마다 로봇 모듈 및 로봇 보조 모듈의 위치와 각도를 학습한 단위행동 딥러닝 모델을 생성하고, 단위행동 딥러닝 모델을 이용하여 로봇 행동 생성 딥러닝 모델을 생성하기 위함이다.
또한, 로봇 모듈의 구조적 제한에 의해 생성할 수 없는 자세로 작업을 수행해야 하는 경우, 로봇 모듈이 단독으로 할 수 없는 자세의 작업에 대해 로봇 보조 모듈의 도움을 통해 작업을 수행하기 위함이다.
상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예는, 작업자의 행동을 다가가기, 잡기, 옮기기, 삽입하기 및 조이기를 포함하는 n개의 단위행동으로 구분하여, 상기 단위행동마다 각각 직접 교시(direct teaching) 및 관찰(observation)을 포함하는 시연으로부터 정답 이미지를 획득하고, 로봇으로부터 입력되는 추가 학습용 이미지와 상기 정답 이미지를 이용하여 학습하는 방법으로서, 상기 로봇은, 타겟 물체를 파지하며, 한 개 이상으로 형성되며 다축으로 이동가능한 로봇암(11)을 포함하는 로봇 모듈(10);타겟 물체를 추가로 파지하는 보조 엔드 이펙터(22)를 포함하는 로봇 보조 모듈(20); 및 상기 로봇 모듈(10), 상기 로봇 보조 모듈(20) 및 타겟 물체를 촬영하여, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 포함하는 추가 학습용 이미지를 생성하는 센서 모듈(30); 를 포함하고, (a) 전처리 모듈(100)은 작업자의 시연으로부터 로우 이미지가 입력되면 상기 로우 이미지에서 단위행동을 각각 구분하고, 상기 구분된 단위행동마다 각각 정답 이미지와 그 외의 배경을 추출하고, 상기 구분된 단위행동마다 상기 정답 이미지와 배경을 포함하는 각각의 이미지 세트를 생성하는 단계;(b) 모델링 수행 모듈(200)이 상기 각각의 이미지 세트를 입력받아, 각각 딥러닝 학습하여 다수의 레이어를 포함하는 제1 내지 제n 단위행동 딥러닝 모델(n은 2이상의 자연수)을 상기 단위행동마다 각각 생성하는 단계;(c) 데이터 처리 모듈(300)에서 상기 제1 내지 제n 단위행동 딥러닝 모델의각각 제1 내지 제n 비용함수(cost function)를 판단하고, 상기 제1 내지 제n 비용함수의 정답 벡터를 결정하는 단계;(d) 상기 전처리 모듈(100)에 상기 추가 학습용 이미지가 입력되고, 상기 전처리 모듈(100)은 상기 추가 학습용 이미지에서 단위행동을 각각 구분하고, 상기 각각의 제1 내지 제n 단위행동 딥러닝 모델 중 상기 단위행동에 대응되는 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터와 상기 (c)단계에서 결정한 정답 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및 (e) 상기 추가 학습 모듈(400)에서 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만이면, 상기 추가 학습용 이미지의 임베딩된 특징 벡터로 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 추가 학습시키는 단계;를 포함하는, 학습 방법을 제공한다.
일 실시예에서, 상기 (e)단계는, (e1) 상기 추가 학습 모듈(400)이 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이가 기설정된 값 이상이면, 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터를 전송하고, 이에 따라 상기 로봇 제어 모듈(600)은 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 제어하는 단계; 및 (e2) 상기 추가 학습 모듈(400)은 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이가 기설정된 값 미만이면, 상기 추가 학습용 이미지의 임베딩된 특징 벡터로 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 추가 학습시키는 단계; 를 포함할 수 있다.
일 실시예에서, 상기 (e1)단계는, (e11) 상기 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 이에 따라 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 제어하는 단계;(e12) 상기 센서 모듈(30)은, 상기 (e11)단계에서 제어된 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성하는 단계;(e13) 상기 전처리 모듈(100)에 상기 (e12) 단계에서 생성된 추가 학습용 이미지를 입력하면, 상기 전처리 모듈(100)이 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및 (e14) 상기 추가 학습 모듈(400)에서 상기 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만일 때까지, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치의 값을 변경하여 제어하면서 상기 (e12) 내지 (e14)단계가 반복 수행되는 단계; 를 포함할 수 있다.
일 실시예에서, 상기 (e1)단계는, (e15) 상기 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 이에 따라 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치에 도달하는 경로를 더 제어하는 단계;(e16) 상기 센서 모듈(30)은, 상기 (e11)단계에서 제어된 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성하는 단계;(e17) 상기 전처리 모듈(100)에 상기 (e16) 단계에서 생성된 추가 학습용 이미지를 입력하면, 상기 전처리 모듈(100)이 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및 (e18) 상기 추가 학습 모듈(400)에서 상기 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만일 때까지, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치에 도달하는 경로를 더 변경하여 제어하면서 상기 (e16) 내지 (e18)단계가 반복 수행되는 단계; 를 더 포함하고, 상기 (e2)단계는, (e21) 상기 로봇 제어 모듈(600)은 상기 (e15)단계에서 획득한 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 경로를 이용하여 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 더 추가 학습시키는 단계; 를 포함할 수 있다.
일 실시예에서, 상기 (e21)단계 이후, (e22) 상기 로봇 제어 모듈(600)은 상기 (e1)단계에서 획득한 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 경로를 학습하여, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 판단하고, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 이용하여 상기 제1 내지 제n 단위행동 딥러닝 모델을 더 추가 학습시키는 단계; 를 더 포함할 수 있다.
일 실시예에서, 상기 (e)단계 이후, (f) 상기 전처리 모듈(100)에 다른 추가 학습용 이미지가 더 입력되고, 이를 이용하여 상기 (d) 내지 (e)단계가 반복되어 상기 제1 내지 제n 단위행동 딥러닝 모델 중 다른 하나를 추가 학습시키는 단계;를 더 포함할 수 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 다른 실시예는 전술한, 상기 학습 방법으로 생성된 제1 내지 제n 단위행동 딥러닝 모델을 이용한 로봇 제어 방법으로서, (g) 상기 전처리 모듈(100)에 실시간 이미지가 입력되면, 상기 전처리 모듈(100)이 상기 실시간 이미지를 상기 제1 내지 제n 단위행동 딥러닝 모델 각각에 전송하고, 상기 제1 내지 제n 단위행동 딥러닝 모델 각각은 전송된 실시간 이미지에서 특징 벡터를 추출하여 상기 데이터 처리 모듈(300)로 전송하는 단계;(h) 상기 데이터 처리 모듈(300)은 상기 (g)단계에서 전송된 특징 벡터를 각각 임베딩하고, 상기 임베딩된 특징 벡터 각각을 상기 제1 내지 제n 비용함수에 대입하여 제1 내지 제n 비용함수값을 각각 연산하고, 상기 연산된 제1 내지 제n 비용함수값 각각을 리모델링 모듈(500)로 전송하는 단계; 및 (i) 상기 리모델링 모듈(500)은 상기 데이터 처리 모듈(300)에서 전송된 상기 제1내지 제n 비용함수값을 이용하여 기설정된 방법으로 로봇 제어값을 각각 연산하고, 상기 로봇 제어값들 중 가장 큰 값에 해당하는 상기 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나를 선택하는 단계; 를 포함하는, 제어 방법을 제공한다.
일 실시예에서, 상기 (i)단계는, (i1) 상기 리모델링 모듈(500)은 각각의 상기 제1 내지 제n 비용함수값이 모두 기설정된 값 이상이면, 1에서 제1 비용함수값을 차감한 값에 1을 더한 후 상기 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산하는 단계;(i2) 상기 리모델링 모듈(500)이 상기 제1 내지 제n 비용함수값이 중 어느 하나라도 기설정된 값 미만이면, 1에서 제1 비용함수값을 차감한 값에 상기 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산하는 단계; 및 (i3) 상기 리모델링 모듈(500)이, 1에서 제n 비용함수값을 차감한 값과 1에제n-1 비용함수값을 더한 값을 더한 후 여기에 제n 비용함수값을 곱하여 상기 제n 단위행동 딥러닝 모델(n은 2 이상의 자연수)의 로봇 제어값을 연산하는 단계; 를 포함할 수 있다.
일 실시예에서, 상기 (g) 단계 이전에, 상기 전처리 모듈(100)에 실시간 이미지가 입력되면, 상기 전처리 모듈(100)이 상기 실시간 이미지를 하나 이상의 실시간 이미지로 분류하는 단계를 더 포함하며, 상기 분류된 하나 이상의 실시간 이미지마다 각각 상기 (g) 내지 (i) 단계가 반복되어, 상기 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나 이상이 선택되고, 상기 (i) 단계 이후, 상기 로봇이, 상기 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어되는 단계; 를 포함할 수 있다.
일 실시예에서, 상기 로봇이, 상기 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어되는 단계는, 상기 (e22) 단계에서 학습된 결과인, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 이동하도록 제어된 경우, 제어된 각도와 위치로 상기 로봇 제어 모듈(600)이 제어되는 단계를 포함할 수 있다.
한편 본 발명은 전술한, 학습 방법에 의해 생성된 딥러닝 모델을 포함한 프로그램으로서, 저장 매체에 기록된 프로그램을 제공한다.
또한, 전술한, 학습 방법이 수행되는, 시스템을 제공한다.
또한, 전술한, 제어 방법이 수행되도록 저장 매체에 기록된 프로그램을 제공한다.
또한, 전술한, 제어 방법이 수행되는, 로봇을 제공한다.
일 실시예에서, 상기 로봇은, 상기 로봇 모듈(10)과 로봇 보조 모듈(20)이 위치되는 이동 모듈(40);을 더 포함하고, 상기 엔드 이펙터(12)는 상기 로봇암(11)으로부터 탈착가능하고, 상기 보조 엔드 이펙터(22)는 고정부(21)로부터 탈착가능할 수 있다.
본 발명에 따라, 다음과 같은 효과가 달성된다.
본 발명은 로봇 자동화 과정에서 별도의 지그-고정구를 설치하지 않고 필요에 따라 효과적으로 움직임을 생성하는 효과가 달성된다.
또한, 로봇 보조 모듈은 자유롭게 이동이 가능한바, 고정되어 있는 지그-고정구를 사용하는 것에 비해 작업의 다양성을 제공하는 효과가 달성된다.
또한, 각 단위행동 마다 로봇 모듈, 로봇 보조 모듈, 타겟 물체의 위치와 각도를 학습한 단위행동 딥러닝 모델을 생성하고, 단위행동 딥러닝 모델을 이용하여 로봇 행동 생성 딥러닝 모델을 생성 하는 효과가 달성된다.
또한, 로봇 모듈의 구조적 제한에 의해 생성할 수 없는 자세로 작업을 수행해야 하는 경우, 로봇 모듈이 단독으로 할 수 없는 자세의 작업에 대해 로봇 보조 모듈의 도움을 통해 작업을 수행하는 효과가 달성된다.
도 1 내지 3은 본 발명에 따른 시스템을 설명하기 위한 도면이다.
도 4은 본 발명에 따른 센서 모듈의 배면도이다.
도 5 내지 도 7은 본 발명에 따른 본 발명에 따른 딥러닝 모델 생성 방법을 설명하기 위한 도면이다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
또한, 본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, "로봇 모듈 및/또는 로봇 보조 모듈"의 각도와 위치는, 로봇 모듈 및/또는 로봇 보조 모듈이 다축인 경우, 해당 축의 각도 또는 해당 축의 위치 또는 각각의 모듈의 위치를 의미할 수 있다. 예컨대, 로봇 모듈의 각도를 제어한다는 것은, 로봇 모듈이 다축인 경우 해당 축 각각의 각도를 독립적 또는 종속적으로 제어함을 의미한다.
산업현장에서 작업하는 작업자의 행동은 작업의 종류에 따라 다양한 행동을 포함할 수 있다.
작업자의 행동을 다수의 단위행동으로 구분할 수 있다. 예를 들어, 단위행동은 다가가기, 잡기, 옮기기, 삽입하기, 조이기를 포함할 수 있으나, 이에 제한되어 해석되는 것은 아니다.
본 발명에서는 작업자의 단위행동 마다 각각 직접 교시(direct teaching) 및 관찰(observation)을 포함하는 시연을 수행하여, 작업자의 단위행동으로부터 단위행동 딥러닝 모델을 생성하고, 로봇을 이용하여 딥러닝 모델을 추가학습하고, 작업자의 작업을 모사하거나 작업을 도와주도록 로봇 모듈(10) 및 로봇 보조 모듈(20)의 각도와 위치를 조절한다.
도 1 내지 도 4를 참조하여, 본 발명의 로봇의 구성요소를 설명한다.
본 발명에 따른 로봇은 로봇 모듈(10), 로봇 보조 모듈(20), 센서 모듈(30), 이동 모듈(40)을 포함한다.
로봇 모듈(10)은 작업을 수행하기 위한 모듈이다.
로봇 모듈(10)은 로봇암(11)와 엔드 이펙터(12)를 포함한다.
로봇암(11)은 한 개 이상으로 형성되며 다축으로 이동가능하다.
이 때, 로봇암(11)의 형상은 도시된 바에 제한되는 것은 아니다.
이 때, 타겟 물체는 작업에 사용되는 물체를 의미하는 것이고, 특정한 물체에 제한되는 것은 아니다.
엔드 이펙터(12)는 로봇암(11)의 말단에 결합되어, 타겟 물체를 파지할 수 있다. 엔드 이펙터(12)는 로봇암(11)으로부터 탈착될 수 있다.
로봇 보조 모듈(20)은 로봇 모듈(10)을 보조하기 위한 모듈이다.
로봇 모듈(10)과 로봇 보조 모듈(20)은 각각 독립적으로 동작된다.
로봇 보조 모듈(20)은 로봇 모듈(10)을 보조하기 위한 로봇암의 형상일 수 있으나 이에 제한되는 것은 아니고, 로봇 보조 모듈(20)은 후술하는 로봇 제어 모듈(600)에 의해 제어된다.
로봇 보조 모듈(20)은 고정부(21), 보조 엔드 이펙터(22)를 포함한다.
고정부(21)는 후술하는 고정부(21)에 연결되어 연장된다.
고정부(21)는 다축으로 이동가능하며, 고정부(21)는 다축으로 이동가능한 바, 로봇 모듈(10)과의 거리와 각도를 조절하기 용미만이다. 이 때, 다축은 3축일 수 있으나 이에 제한되는 것은 아니다.
보조 엔드 이펙터(22)는 고정부(21)의 말단에 결합된다.
보조 엔드 이펙터(22)는 하나 이상의 축으로 형성되어 타겟 물체를 파지할 수 있다.
보조 엔드 이펙터(22)는 고정부(21)로부터 탈착될 수 있어, 작업의 종류, 타겟 물체의 종류 및 크기에 따라 다양하게 결합되어 사용될 수 있다.
이에 따라, 지그-고정구를 사용하는 것과 같이 로봇의 작업 정확도를 향상시킬 수 있다.
이 때, 로봇 보조 모듈(20)의 위치 및 형상은 도시된 바에 제한되는 것은 아니다.
센서 모듈(30)은 로봇 모듈(10), 로봇 보조 모듈(20) 및 타겟 물체를 촬영하여 이미지를 출력할 수 있다.
센서 모듈(30)은 로봇 모듈(10)과 로봇 보조 모듈(20)의 동작을 각각 촬영할 수 있다.
이 때, 센서 모듈(30)은 로봇암(11)의 엔드이펙터(12)의 일측으로 위치될 수 있으나, 로봇 모듈(10), 로봇 보조 모듈(20) 및 타겟 물체를 촬영할 수 있는 위치이고 작업을 수행하는 것을 촬영할 수 있는 위치이면 이에 제한되는 것은 아니다.
이 때, 센서 모듈(30)은 도시된 형상과 개수에 제한되는 것은 아니다.
또한, 센서 모듈(30)은 안전용 거리센서를 포함할 수 있다.
또한, 센서 모듈(30)은 조명을 포함할 수 있으며, 조명은 링-타입일 수 있으나 이에 제한되는 것은 아니다. 이에 대하여는 도 4에 도시된다.
이동 모듈(40)은 로봇 모듈(10)과 로봇 보조 모듈(20) 이 위치되며, 이동수단을 포함하는 바, 작업이 필요한 위치로 이동할 수 있다.
이동 모듈(40)은 상하로도 움직여, 높이를 조절할 수 있는 바, 작업이 필요한 위치 및 공간에 맞추어 적절하게 조절될 수 있다.
이 때, 이동 수단은 휠과 같이 움직일 수 있는 수단이면, 특정 기구나 장치에 제한되는 것은 아니다.
이 때, 이동 모듈(40)은 수동으로 이동될 수 있는 카트의 형태일 수 있으나 이에 제한되는 것은 아니고 다양한 형태로 이동될 수 있다. 또한, 이동 모듈(40)은 자동으로 이동되도록 제어될 수도 있고 미리 입력된 작업의 위치 및 작업의 종류에 따라 이동되어 제어될 수도 있다.
도 5 내지 도 7을 참조하여, 본 발명에 따른 방법을 설명한다.
작업자의 시연으로부터 전처리 모듈(100)에 로우(raw) 이미지가 입력된다.
전처리 모듈(100)은 로우 이미지에서 단위행동을 각각 구분하고, 구분된 단위행동 마다 각각 정답 이미지와 그 외의 배경을 추출한다.
전처리 모듈(100)이 정답 이미지에서 기 설정된 방법에 따라 로봇과 장애물을 분리한다.
전처리 모듈(100)이 분리된 로봇과 장애물을 배경에 배열하되 로봇과 장애물의 위치, 방향 및 자세를 변경하면서 배열함으로써, 새로운 이미지 세트 생성한다.
전처리 모듈(100)은 구분된 단위행동마다 정답 이미지와 배경을 포함하는 각각의 이미지 세트를 생성한다.
전처리 모듈(100)은 생성된 각각의 이미지 세트를 모델링 수행모듈(200)로 전송한다.
이 때, 전처리 모듈(100)에 입력되는 작업자의 행동에 대한 이미지는 하나의 단위행동을 포함하도록 미리 구분될 수도 있다. 이 경우에는, 전처리 모듈(100)에서는 하나의 정답 이미지만이 추출되고, 이후 과정에서 하나의 단위행동 딥러닝 모델이 생성되고, 로우 이미지를 다수번 전처리 모듈(100)에 입력하여, 제1 내지 제n 단위행동 딥러닝 모델을 생성할 수도 있다. 여기서, n은 단위행동의 개수를 의미한다.
제1 내지 제n 단위행동 딥러닝 모델이 생성된 후, 각각의 모델에서 비용함수를 결정하는 것을 설명한다.
전처리 모듈(100)로부터 추출된 각각의 정답 이미지가 제1 내지 제n 단위행동 딥러닝 모델로 입력된다.
제1 내지 제n 단위행동 딥러닝 모델은 다수의 레이어 중에서 중간 레이어에서 생성되는 특징 벡터 세트를 각각 추출한다.
이 때, 중간 레이어의 계층은 임의로 선택되어도 무관하다.
제1 내지 제n 단위행동 딥러닝 모델은 각각의 정답 이미지에서 추출된 특징 벡터를 데이터 처리 모듈(300)로 전송한다.
데이터 처리 모듈(300)은 제1 내지 제n 단위행동 딥러닝 모델에서 전송된 정답 이미지에서 추출된 특징 벡터를 임베딩 공간에서 임베딩하여 차원을 축소한다.
이 때, 임베딩 방법은 특정 방법에 제한되는 것은 아니고, 임베딩은 가령 u-map과 같은 프로그램에 의해 이루어질 수 있으나 이에 제한되는 것은 아니다.
데이터 처리 모듈(300)은 제1 내지 제n 단위행동 딥러닝 모델에 따라 각각 제1 내지 제n 비용함수(cost function)를 판단하고, 정답 이미지에서 추출되어 임베딩된 벡터를 각각의 정답 벡터(reference vector)로 결정한다.
이 때, 임베딩된 특징 벡터는 2차원의 벡터이나, 이에 제한되는 것은 아니다.
이 때, 비용함수는 오차를 측정하는 함수로서, 이후 비용함수의 정답 벡터를 기준으로, 제1 내지 제n 단위행동 딥러닝 모델로 입력되는 추가 학습용 이미지에서의 임베딩 공간에서의 벡터와 비용함수의 정답 벡터와 차이를 비교하여, 차이가 적은 값이 해당 작업자의 단위행동과 유사하게 수행되었음을 판단하는 기준으로 사용될 수 있다.
이후, 도 5 및 6을 참조하여, 추가 학습 모듈(400)이 생성된 제1 내지 제n 비용함수를 이용하여 제1 내지 제n 단위행동 딥러닝 모델을 추가 학습시키는 것을 설명한다.
추가 학습용 이미지가 전처리 모듈(100)에 입력된다.
추가 학습용 이미지는 로봇의 동작으로부터 생성되는 이미지를 의미한다. 즉, 로봇이 단위행동을 수행할 때 로봇의 각도와 위치를 포함하는 이미지를 의미할 수 있다.
전처리 모듈(100)은 추가 학습용 이미지에서 단위행동을 각각 구분하고, 각각의 제1 내지 제n 단위행동 딥러닝 모델 중 단위행동에 대응되는 어느 하나의 단위행동 딥러닝 모델에 추가 학습용 이미지를 전송한다.
예를 들어, 전처리 모듈(100)이 추가 학습용 이미지에서 구분된 단위행동은 제3 단위행동일 수 있고, 전처리 모듈(100)은 제3 단위행동 딥러닝 모델에 추가 학습용 이미지를 전송한다. 이후, 제3 단위행동 딥러닝 모델이 추가 학습되는 것을 의미한다.
이 때, 추가 학습용 이미지에서 구분된 단위행동이 다수일 수 있고, 이 경우에는 학습용 이미지를 구분하고, 구분된 추가 학습용 이미지를 각각의 단위행동 딥러닝 모델에 전송하여 추가 학습시킬 수 있다.
상기 어느 하나의 단위행동 딥러닝 모델은 추가 학습용 이미지에서 특징 벡터를 추출하고, 추출된 특징 벡터는 데이터 처리 모듈(300)로 전송한다.
데이터 처리 모듈(300)은 추가 학습용 이미지에서 특징 벡터를 임베딩한다.
데이터 처리 모듈(300)은 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터와 정답 벡터를 추가 학습 모듈(400)로 전송한다.
데이터 처리 모듈(300)은 정답 벡터와 실시간 이미지의 임베딩된 특징 벡터를 추가 학습 모듈(400)로 전송한다.
추가 학습 모듈(400)은 추가 학습용 이미지의 임베딩된 특징 벡터와, 정답 벡터와의 차이가 기설정된 값 미만인지 판단한다.
추가 학습 모듈(400)이 전송된 정답 벡터와 추가 학습용 이미지의 임베딩된 특징 벡터의 차이가 기설정된 값 이상이면, 로봇 제어 모듈(600)로 추가 학습용 이미지의 임베딩된 특징 벡터를 전송하고, 이에 따라 로봇 제어 모듈(600)은 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 각도와 위치를 제어한다.
여기서, 로봇 제어 모듈(600)은 추가 학습용 이미지의 임베딩된 특징 벡터가 입력되면, 현재의 로봇 모듈(10) 및 로봇 보조 모듈(300)의 각도와 위치를 변경해야한다고 판단하고, 기설정된 각도 크기와 기설정된 크기만큼 각각 로봇 모듈(10) 및 로봇 보조 모듈(20)의 각도와 위치를 이동하도록 제어할 수 있다.
또는, 로봇 제어 모듈(600)은 전송된 정답 벡터와 추가 학습용 이미지의 임베딩된 특징 벡터의 차이값을 전송받아, 차이값으로부터 로봇 모듈(10) 및 로봇 보조 모듈(20)의 제어할 각도 크기와 위치를 연산할 수도 있다.
이에 따라, 로봇 제어 모듈(600)은 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 각도와 위치를 제어할 수 있다.
이후, 센서 모듈(30)은, 제어된 로봇 모듈(10) 및 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성한다.
전처리 모듈(100)에 생성된 추가 학습용 이미지를 입력하면, 전처리 모듈(100)이 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나의 단위행동 딥러닝 모델에 추가 학습용 이미지를 전송한다.
어느 하나의 단위행동 딥러닝 모델은 추가 학습용 이미지에서 특징 벡터를 추출한다. 추출된 특징 벡터는 데이터 처리 모듈(300)로 전송하고, 데이터 처리 모듈(300)이 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송한다.
추가 학습 모듈(400)에서 정답 벡터와 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 차이가 기설정된 값 미만일 때까지, 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 각도와 위치의 값을 변경하여 제어하면서 상기 단계가 반복 수행된다.
이에 따라, 어느 하나의 단위행동 딥러닝 모델은 정답 이미지와 대응되도록 생성된 추가 학습용 이미지에 따라 추가 학습되는 바, 로봇 모듈(10) 및 로봇 보조 모듈(20)의 동작의 정확도가 더욱 증가될 수 있다.
로봇 제어 모듈(600)로 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 이에 따라 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 경로를 더 제어할 수 있다.
센서 모듈(30)은, 제어된 로봇 모듈(10) 및 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성한다. 즉, 센서 모듈(30)은 로봇 모듈(10) 및 로봇 보조 모듈(20)이 제어되어 각도와 위치가 변경되는 바, 다시 촬영하여 추가 학습용 이미지를 생성한다.
전처리 모듈(100)에 생성된 추가 학습용 이미지를 입력하면, 전처리 모듈(100)이 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송한다.
어느 하나의 단위행동 딥러닝 모델은 추가 학습용 이미지에서 특징 벡터를 추출하고, 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 데이터 처리 모듈(300)이 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송한다.
추가 학습 모듈(400)에서 정답 벡터와 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 차이가 기설정된 값 미만일 때까지, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 경로를 더 변경하여 제어하면서 상기 단계가 반복되어 수행된다.
로봇 제어 모듈(600)은 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 각도와 위치에 도달하는 경로를 이용하여 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 더 추가 학습시킨다.
또한, 로봇 제어 모듈(600)은 로봇 모듈(10) 및 로봇 보조 모듈(20) 각각의 경로를 학습하여, 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 판단하고, 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 이용하여 제1 내지 제n 단위행동 딥러닝 모델을 더 추가 학습시킨다.
로봇 제어 모듈(600)에서 로봇 모듈(10) 및 로봇 보조 모듈(20)의 각각의 각도와 위치에 도달하는 경로를 추가 학습하면, 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 판단할 수 있다.
이 때, 로봇 모듈(10)이 위치될 수 없는 각도와 위치란, 로봇 모듈(10)의 구조적 제한으로 위치될 수 없는 각도와 위치를 의미한다. 로봇 모듈(10)이 다축으로 구성되는 암의 형태인 바, 다축 간의 형성될 수 없는 각도와 위치를 의미할 수 있다. 이후, 로봇 모듈(10)이 위치될 수 없는 각도와 위치가 판단되면, 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 로봇 보조 모듈(20)이 위치하도록 로봇 제어 모듈(600)이 제어될 수 있다.
이에 따라, 어느 하나의 단위행동 딥러닝 모델은 정답 이미지와 대응되도록 생성된 추가 학습용 이미지에 따라 추가 학습되는 바, 로봇 모듈(10) 및 로봇 보조 모듈(20)의 동작의 정확도가 더욱 증가될 수 있다.
전처리 모듈(100)에 추가 학습용 이미지가 더 입력되고, 상기 단계가 반복되어 상기 제1 내지 제n 단위행동 딥러닝 모델 중 다른 하나를 추가 학습시킬 수 있다. 이에 따라, 제1 내지 제n 단위행동 딥러닝 모델이 각각 추가 학습될 수 있다.
상기의 과정을 통하여, 제1 내지 제n 단위행동 딥러닝 모델이 생성되고, 추가 학습되는 것을 설명하였다.
도 7을 참조하여, 상기 학습 방법으로 생성된 제1 내지 제n 단위행동 딥러닝 모델을 이용한 로봇 제어 방법을 설명한다.
작업자의 단위행동 별로 각각 제1 내지 제n 단위행동 딥러닝 모델을 생성한 것을, 로봇이 이를 단순히 순서대로만 학습할 경우에는 작업을 수행하다가 예기치 못한 상황이 발생할 경우 처음부터 학습된 단위행동부터 다시 작업을 수행해야 한다.
따라서, 본 발명에서는 단위행동들 사이의 전이가 일어날 수 있도록 구성하여, 로봇이 완전 연결 상태 머신(fully-connected state machine)과 같이 행동하도록 로봇 행동 생성 딥러닝 모델을 생성한다.
전처리 모듈(100)에 실시간 이미지가 입력되면, 전처리 모듈(100)이 상기 실시간 이미지를 제1 내지 제n 단위행동 딥러닝 모델 각각에 전송하고, 제1 내지 제n 단위행동 딥러닝 모델 각각은 전송된 실시간 이미지에서 특징 벡터를 추출하여 데이터 처리 모듈(300)로 전송한다.
이 때, 실시간 이미지는 작업자의 시연 또는 작업에 따른 이미지일 수 있으나, 이에 제한되는 것은 아니다.
데이터 처리 모듈(300)은 전송된 특징 벡터를 각각 임베딩하고, 임베딩된 특징 벡터 각각을 제1 내지 제n 비용함수에 대입하여 제1 내지 제n 비용함수값을 각각 연산하고, 연산된 제1 내지 제n 비용함수값 각각을 리모델링 모듈(500)로 전송한다.
리모델링 모듈(500)은 데이터 처리 모듈(300)에서 전송된 상기 제1 내지 제n 비용함수값을 이용하여 기설정된 방법으로 로봇 제어값을 각각 연산하고, 로봇 제어값들 중 가장 큰 값에 해당하는 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나를 선택한다.
.
리모델링 모듈(500)은 제1 내지 제n 비용함수값을 전송받고, 1에서 차감한 제1 내지 제n 비용함수값을 각각 연산한다.
리모델링 모듈(500)이 제1 내지 제n 비용함수값이 각각 기설정된 값 이상인지 판단한다.
리모델링 모듈(500)이 제1 내지 제n 비용함수값이 각각 기설정된 값 이상이면, 1에서 제1 비용함수값을 차감한 값에 1을 더한 후 상기 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산한다.
또한, 리모델링 모듈(500)이 제1 내지 제n 비용함수값이 중 어느 하나라도 기설정된 값 미만이면, 1에서 제1 비용함수값을 차감한 값에 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산한다.
제n 단위행동 딥러닝 모델(n은 2 이상의 자연수)의 로봇 제어값은, 1에서 제n 비용함수값을 차감한 값과 1에 제n-1 비용함수값을 더한 값을 더한 후 여기에 제n 비용함수값을 곱하여 연산한다.
상기의 연산 과정에서는, 각각의 제1 내지 제n 단위행동 딥러닝 모델에서의 비용함수값이 높으면 로봇이 행동을 수행해야 하는 것을 의미하는 바, 해당 제1 내지 제n 단위행동 딥러닝 모델에서의 비용함수를 곱해준다.
또한, 상기의 연산 과정에서는 이전의 단위행동의 비용함수가 낮다는 의미는 그 다음 단위행동을 수행해야 함을 의미하는 바, 제n 단위행동 딥러닝 모델의 로봇 제어값을 연산할 때 제n-1 단위행동 딥러닝 모델의 1에서 차감한 제n-1 비용함수값을 더해주는 바, 제n-1 단위행동 딥러닝 모델의 비용함수값이 낮아 제n-1 단위행동을 수행하는 것이 바람직하지 않음을 제n+1 단위행동 딥러닝 모델에 반영하여, 제n 단위행동 딥러닝 모델의 로봇 제어값의 수치를 증가시킬 수 있다.
리모델링 모듈(500)이 제1 내지 제n 단위행동 딥러닝 모델에서 연산된 로봇 제어값이 가장 큰 단위행동 딥러닝 모델을 선택한다.
상기와 같은 과정은 반복되어 수행될 수 있다.
즉, 전처리 모듈(100)에 실시간 이미지가 입력되면, 전처리 모듈(100)이 상기 실시간 이미지를 하나 이상의 실시간 이미지로 분류한 후, 분류된 하나 이상의 실시간 이미지마다 각각 상기 과정이 반복되고, 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나 이상이 선택되는 과정이 반복된다.
이후, 로봇이, 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어되고, 이와 같은 과정을 반복하여 로봇은 입력된 실시간 이미지에 대응되는 단위행동을 연속적으로 수행하도록 제어될 수 있다.
또한, 로봇이, 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어될 때, 전술한 학습된 결과인 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 이동하도록 제어된 경우, 제어된 각도와 위치로 로봇 제어 모듈(600)이 제어될 수 있다.
즉, 로봇 제어 모듈(600)은 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 이동하도록 제어된 경우, 로봇 모듈(10)이 위치될 수 있는 각도와 위치로 이동하도록 제어할 수 있다. 또한, 로봇 제어 모듈(600)은 로봇 보조 모듈(20)이 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 이동하도록 제어할 수 있어, 로봇 보조 모듈(20)이 로봇 모듈(10)을 보조하여 작업을 수행할 수 있도록 제어할 수 있다.
다만, 이에 대한 제어 동작은 이에 제한되는 것은 아니고, 로봇 보조 모듈(20)은 로봇 모듈(10)을 보조하여 작업을 수행할 수 있는 최적의 각도와 위치로 이동되도록 제어될 수 있다. 즉, 해당 단위행동을 수행하도록 로봇 모듈(10)이 위치될 수 있는 각도와 위치로 이동하였을 때, 로봇 보조 모듈(20)은 해당 단위행동을 수행할 수 있는 학습된 각도와 위치로 이동하도록 제어될 수 있다.
위 설명한 본 발명의 일 실시예에 따른 학습 방법과 제어방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.
상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기된 하드웨어 장치는 본 발명을 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 위 설명한 본 발명의 일 실시예에 따른 학습 방법은 상기 학습 방법이 수행되는 시스템에 의해 수행될 수 있다.
또한, 위 설명한 본 발명의 일 실시예에 따른 제어 방법은 상기 제어 방법이 로봇에 의해 수행될 수 있다.
이상, 본 명세서에는 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 도면에 도시한 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당업자라면 본 발명의 실시예로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 보호범위는 특허청구범위에 의해서 정해져야 할 것이다.
10: 로봇 모듈
11: 로봇암
12: 엔드 이펙터
20: 로봇 보조 모듈
21: 고정부
22: 보조 엔드 이펙터
30: 센서 모듈
40: 이동 모듈
100: 전처리 모듈
200: 모델링 수행 모듈
300: 데이터 처리 모듈
400: 추가 학습 모듈
500: 리모델링 모듈
600: 로봇 제어 모듈

Claims (15)

  1. 작업자의 행동을 다가가기, 잡기, 옮기기, 삽입하기 및 조이기를 포함하는 n개의 단위행동으로 구분하여, 상기 단위행동마다 각각 직접 교시(direct teaching) 및 관찰(observation)을 포함하는 시연으로부터 정답 이미지를 획득하고, 로봇으로부터 입력되는 추가 학습용 이미지와 상기 정답 이미지를 이용하여 학습하는 방법으로서,
    상기 로봇은,
    타겟 물체를 파지하며, 한 개 이상으로 형성되며 다축으로 이동가능한 로봇암(11)을 포함하는 로봇 모듈(10);
    타겟 물체를 추가로 파지하는 보조 엔드 이펙터(22)를 포함하는 로봇 보조 모듈(20); 및
    상기 로봇 모듈(10), 상기 로봇 보조 모듈(20) 및 타겟 물체를 촬영하여, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 포함하는 추가 학습용 이미지를 생성하는 센서 모듈(30); 를 포함하고,
    (a) 전처리 모듈(100)은 작업자의 시연으로부터 로우 이미지가 입력되면 상기 로우 이미지에서 단위행동을 각각 구분하고, 상기 구분된 단위행동마다 각각 정답 이미지와 그 외의 배경을 추출하고, 상기 구분된 단위행동마다 상기 정답 이미지와 배경을 포함하는 각각의 이미지 세트를 생성하는 단계;
    (b) 모델링 수행 모듈(200)이 상기 각각의 이미지 세트를 입력받아, 각각 딥러닝 학습하여 다수의 레이어를 포함하는 제1 내지 제n 단위행동 딥러닝 모델(n은 2이상의 자연수)을 상기 단위행동마다 각각 생성하는 단계;
    (c) 데이터 처리 모듈(300)에서 상기 제1 내지 제n 단위행동 딥러닝 모델의각각 제1 내지 제n 비용함수(cost function)를 판단하고, 상기 제1 내지 제n 비용함수의 정답 벡터를 결정하는 단계;
    (d) 상기 전처리 모듈(100)에 상기 추가 학습용 이미지가 입력되고, 상기 전처리 모듈(100)은 상기 추가 학습용 이미지에서 단위행동을 각각 구분하고, 상기 각각의 제1 내지 제n 단위행동 딥러닝 모델 중 상기 단위행동에 대응되는 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터와 상기 (c)단계에서 결정한 정답 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및
    (e) 상기 추가 학습 모듈(400)에서 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만이면, 상기 추가 학습용 이미지의 임베딩된 특징 벡터로 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 추가 학습시키는 단계;를 포함하는,
    학습 방법.
  2. 제1항에 있어서,
    상기 (e)단계는,
    (e1) 상기 추가 학습 모듈(400)이 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이가 기설정된 값 이상이면, 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터를 전송하고, 이에 따라 상기 로봇 제어 모듈(600)은 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 제어하는 단계; 및
    (e2) 상기 추가 학습 모듈(400)은 상기 전송된 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이가 기설정된 값 미만이면, 상기 추가 학습용 이미지의 임베딩된 특징 벡터로 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 추가 학습시키는 단계; 를 포함하는,
    학습 방법.
  3. 제2항에 있어서,
    상기 (e1)단계는,
    (e11) 상기 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 이에 따라 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치를 제어하는 단계;
    (e12) 상기 센서 모듈(30)은, 상기 (e11)단계에서 제어된 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성하는 단계;
    (e13) 상기 전처리 모듈(100)에 상기 (e12) 단계에서 생성된 추가 학습용 이미지를 입력하면, 상기 전처리 모듈(100)이 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및
    (e14) 상기 추가 학습 모듈(400)에서 상기 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만일 때까지, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치의 값을 변경하여 제어하면서 상기 (e12) 내지 (e14)단계가 반복 수행되는 단계; 를 포함하는,
    학습 방법.
  4. 제3항에 있어서,
    상기 (e1)단계는,
    (e15) 상기 로봇 제어 모듈(600)로 상기 추가 학습용 이미지의 임베딩된 특징 벡터가 전송되면, 이에 따라 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치에 도달하는 경로를 더 제어하는 단계;
    (e16) 상기 센서 모듈(30)은, 상기 (e11)단계에서 제어된 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20)에 대하여 추가 학습용 이미지를 더 생성하는 단계;
    (e17) 상기 전처리 모듈(100)에 상기 (e16) 단계에서 생성된 추가 학습용 이미지를 입력하면, 상기 전처리 모듈(100)이 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나의 단위행동 딥러닝 모델에 상기 추가 학습용 이미지를 전송하고, 상기 어느 하나의 단위행동 딥러닝 모델은 상기 추가 학습용 이미지에서 특징 벡터를 추출하고, 상기 추출된 특징 벡터는 상기 데이터 처리 모듈(300)로 전송하고, 상기 데이터 처리 모듈(300)이 상기 추가 학습용 이미지에서 추출된 특징 벡터를 임베딩한 특징 벡터를 추가 학습 모듈(400)로 전송하는 단계; 및
    (e18) 상기 추가 학습 모듈(400)에서 상기 정답 벡터와 상기 추가 학습용 이미지의 임베딩된 특징 벡터의 차이를 비교하고, 상기 차이가 기설정된 값 미만일 때까지, 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 각도와 위치에 도달하는 경로를 더 변경하여 제어하면서 상기 (e16) 내지 (e18)단계가 반복 수행되는 단계; 를 더 포함하고,
    상기 (e2)단계는,
    (e21) 상기 로봇 제어 모듈(600)은 상기 (e15)단계에서 획득한 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 경로를 이용하여 상기 제1 내지 제n 단위행동 딥러닝 모델 중 상기 어느 하나를 더 추가 학습시키는 단계; 를 포함하는,
    학습 방법.
  5. 제4항에 있어서,
    상기 (e21) 단계 이후,
    (e22) 상기 로봇 제어 모듈(600)은 상기 (e1)단계에서 획득한 상기 로봇 모듈(10) 및 상기 로봇 보조 모듈(20) 각각의 경로를 학습하여, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 판단하고, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치를 이용하여 상기 제1 내지 제n 단위행동 딥러닝 모델을 더 추가 학습시키는 단계; 를 더 포함하는,
    학습 방법.
  6. 제1항에 있어서,
    상기 (e)단계 이후,
    (f) 상기 전처리 모듈(100)에 다른 추가 학습용 이미지가 더 입력되고, 이를 이용하여 상기 (d) 내지 (e) 단계가 반복되어 상기 제1 내지 제n 단위행동 딥러닝 모델 중 다른 하나를 추가 학습시키는 단계;를 더 포함하는,
    학습 방법.
  7. 제5항 또는 제6항에 따른 학습 방법으로 생성된 제1 내지 제n 단위행동 딥러닝 모델을 이용한 로봇 제어 방법으로서,
    (g) 상기 전처리 모듈(100)에 실시간 이미지가 입력되면, 상기 전처리 모듈(100)이 상기 실시간 이미지를 상기 제1 내지 제n 단위행동 딥러닝 모델 각각에 전송하고, 상기 제1 내지 제n 단위행동 딥러닝 모델 각각은 전송된 실시간 이미지에서 특징 벡터를 추출하여 상기 데이터 처리 모듈(300)로 전송하는 단계;
    (h) 상기 데이터 처리 모듈(300)은 상기 (g)단계에서 전송된 특징 벡터를 각각 임베딩하고, 상기 임베딩된 특징 벡터 각각을 상기 제1 내지 제n 비용함수에 대입하여 제1 내지 제n 비용함수값을 각각 연산하고, 상기 연산된 제1 내지 제n 비용함수값 각각을 리모델링 모듈(500)로 전송하는 단계; 및
    (i) 상기 리모델링 모듈(500)은 상기 데이터 처리 모듈(300)에서 전송된 상기 제1 내지 제n 비용함수값을 이용하여 기설정된 방법으로 로봇 제어값을 각각 연산하고, 상기 로봇 제어값들 중 가장 큰 값에 해당하는 상기 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나를 선택하는 단계; 를 포함하는,
    제어 방법.
  8. 제7항에 있어서,
    상기 (i)단계는,
    (i1) 상기 리모델링 모듈(500)은 각각의 상기 제1 내지 제n 비용함수값이 모두 기설정된 값 이상이면, 1에서 제1 비용함수값을 차감한 값에 1을 더한 후 상기 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산하는 단계;
    (i2) 상기 리모델링 모듈(500)이 상기 제1 내지 제n 비용함수값이 중 어느 하나라도 기설정된 값 미만이면, 1에서 제1 비용함수값을 차감한 값에 상기 제1 비용함수값을 곱하여 상기 제1 단위행동 딥러닝 모델의 로봇 제어값을 연산하는 단계; 및
    (i3) 상기 리모델링 모듈(500)이, 1에서 제n 비용함수값을 차감한 값과 1에제n-1 비용함수값을 더한 값을 더한 후 여기에 제n 비용함수값을 곱하여 상기 제n 단위행동 딥러닝 모델(n은 2 이상의 자연수)의 로봇 제어값을 연산하는 단계; 를 포함하는,
    제어 방법.
  9. 제8항에 있어서,
    상기 (g)단계 이전에,
    상기 전처리 모듈(100)에 실시간 이미지가 입력되면, 상기 전처리 모듈(100)이 상기 실시간 이미지를 하나 이상의 실시간 이미지로 분류하는 단계를 더 포함하며,
    상기 분류된 하나 이상의 실시간 이미지마다 각각 상기 (g) 내지 (i) 단계가 반복되어, 상기 제1 내지 제n 단위행동 딥러닝 모델 중 어느 하나 이상이 선택되고,
    상기 (i)단계 이후,
    상기 로봇이, 상기 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어되는 단계; 를 포함하는,
    제어 방법.
  10. 제8항에 있어서,
    상기 로봇이, 상기 선택된 제1 내지 제n 단위행동 딥러닝 모델 각각에 대응되는 하나 이상의 단위행동을 수행하도록 제어되는 단계는,
    상기 (e22)단계에서 학습된 결과인, 상기 로봇 모듈(10)이 위치될 수 없는 각도와 위치로 이동하도록 제어된 경우, 제어된 각도와 위치로 상기 로봇 제어 모듈(600)이 제어되는 단계를 포함하는,
    제어 방법.
  11. 제1항 내지 제6항 중 어느 한 항에 따른 학습 방법에 의해 생성된 딥러닝 모델을 포함한 프로그램으로서, 저장 매체에 기록된 프로그램.
  12. 제1항 내지 제6항 중 어느 한 항에 따른 학습 방법이 수행되는, 시스템.
  13. 제7항에 따른 제어 방법이 수행되도록 저장 매체에 기록된 프로그램.
  14. 제7항에 따른 제어 방법이 수행되는, 로봇.
  15. 제14항에 있어서,
    상기 로봇은,
    상기 로봇 모듈(10)과 로봇 보조 모듈(20)이 위치되는 이동 모듈(40);을 더 포함하고,
    상기 로봇 모듈(10)은 상기 로봇암(11)의 말단에 결합되는 엔드 이펙터(12)를 더 포함하고,
    상기 엔드 이펙터(12)는 상기 로봇암(11)으로부터 탈착가능하고,
    상기 보조 엔드 이펙터(22)는 고정부(21)로부터 탈착가능한,
    로봇.
KR1020200119050A 2020-09-16 2020-09-16 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법 KR102320659B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200119050A KR102320659B1 (ko) 2020-09-16 2020-09-16 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200119050A KR102320659B1 (ko) 2020-09-16 2020-09-16 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법

Publications (1)

Publication Number Publication Date
KR102320659B1 true KR102320659B1 (ko) 2021-11-03

Family

ID=78505072

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200119050A KR102320659B1 (ko) 2020-09-16 2020-09-16 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법

Country Status (1)

Country Link
KR (1) KR102320659B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520417A (ja) * 2014-07-16 2017-07-27 エックス デベロップメント エルエルシー 複数の吸着カップの制御
JP2019512757A (ja) * 2015-12-31 2019-05-16 ヴィート エヌブイ ニューラルネットワークアーキテクチャを用いた分配システムの制御のための方法、制御装置およびシステム
KR102093327B1 (ko) * 2018-10-10 2020-03-26 한국생산기술연구원 인공지능을 이용한 공장 프로세스 모델링 방법
JP2020082332A (ja) * 2018-11-30 2020-06-04 オムロン株式会社 制御装置、制御方法、及び制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520417A (ja) * 2014-07-16 2017-07-27 エックス デベロップメント エルエルシー 複数の吸着カップの制御
JP2019512757A (ja) * 2015-12-31 2019-05-16 ヴィート エヌブイ ニューラルネットワークアーキテクチャを用いた分配システムの制御のための方法、制御装置およびシステム
KR102093327B1 (ko) * 2018-10-10 2020-03-26 한국생산기술연구원 인공지능을 이용한 공장 프로세스 모델링 방법
JP2020082332A (ja) * 2018-11-30 2020-06-04 オムロン株式会社 制御装置、制御方法、及び制御プログラム

Similar Documents

Publication Publication Date Title
CN110198813B (zh) 机器人路径生成装置和机器人系统
CN110573308B (zh) 用于机器人设备的空间编程的基于计算机的方法及系统
US11745355B2 (en) Control device, control method, and non-transitory computer-readable storage medium
Pervez et al. Learning deep movement primitives using convolutional neural networks
CN109397285B (zh) 一种装配方法、装配装置及装配设备
CN111015649B (zh) 一种驱控一体化控制系统
KR102239186B1 (ko) 인공지능 기반 로봇 매니퓰레이터의 자동 제어 시스템 및 방법
JP7034035B2 (ja) 自律学習型ロボット装置及び自律学習型ロボット装置の動作生成方法
Gao et al. Contextual task-aware shared autonomy for assistive mobile robot teleoperation
Di Lillo et al. Advanced ROV autonomy for efficient remote control in the DexROV project
KR102228525B1 (ko) 뉴럴 네트워크를 이용하는 파지 방법, 파지 학습 방법 및 파지 로봇
US20220063091A1 (en) Robot control device, robot system and robot control method
CN111152227A (zh) 一种基于引导式dqn控制的机械臂控制方法
Lober et al. Multiple task optimization using dynamical movement primitives for whole-body reactive control
Sanfilippo et al. A universal control architecture for maritime cranes and robots using genetic algorithms as a possible mapping approach
Pettinger et al. Reducing the teleoperator’s cognitive burden for complex contact tasks using affordance primitives
KR102320659B1 (ko) 로봇을 이용한 단위행동 딥러닝 모델 학습방법과 이를 이용한 로봇 제어 방법
Jha et al. Generalizable human-robot collaborative assembly using imitation learning and force control
Deng et al. Learning human compliant behavior from demonstration for force-based robot manipulation
US11897142B2 (en) Method and device for creating a robot control program
Tanzini et al. A novel human-machine interface for working machines operation
Pérez et al. FPGA-based visual control system using dynamic perceptibility
KR102644164B1 (ko) 단위행동 딥러닝 모델의 학습 방법과 이를 이용한 로봇 제어 방법
Ogenyi et al. An intuitive robot learning from human demonstration
Lin Embedding Intelligence into Robotic Systems-Programming, Learning, and Planning

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