KR101363092B1 - 로봇시스템의 rils 구현 방법 및 시스템 - Google Patents

로봇시스템의 rils 구현 방법 및 시스템 Download PDF

Info

Publication number
KR101363092B1
KR101363092B1 KR1020120104509A KR20120104509A KR101363092B1 KR 101363092 B1 KR101363092 B1 KR 101363092B1 KR 1020120104509 A KR1020120104509 A KR 1020120104509A KR 20120104509 A KR20120104509 A KR 20120104509A KR 101363092 B1 KR101363092 B1 KR 101363092B1
Authority
KR
South Korea
Prior art keywords
robot
avatar
real
hardware
virtual
Prior art date
Application number
KR1020120104509A
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 KR1020120104509A priority Critical patent/KR101363092B1/ko
Application granted granted Critical
Publication of KR101363092B1 publication Critical patent/KR101363092B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

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

Abstract

본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법은 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성하는 단계; 상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택하는 단계; 상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입하는 단계; 및 상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계를 포함한다.

Description

로봇시스템의 RILS 구현 방법 및 시스템{IMPLEMENTATION METHOD OF RILS(Robot-in-the-loop Simulation) IN ROBOT SYSTEM}
본 발명은 RILS(Robot-in-the-loop Simulation) 구현 시스템 및 그 방법에 관한 것으로, 보다 구체적으로 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 기술에 관한 것이다.
로봇시스템에서 시뮬레이션 기법은 실제 로봇의 동작에 대한 검증을 위해 실제 로봇을 가상의 로봇으로 대체하여 로봇 동작을 검증하는 기술로써, 실제 로봇 하드웨어의 일부를 시뮬레이션으로 대체하는 HILS(Hardware-in-the-loop Simulation) 기술을 포함한다.
또한, 본 발명의 실시예들은 OPRoS 컴포넌트에 적응적으로 적재 가능하며, 실제 로봇 및 가상의 아바타 로봇을 제어하는 디바이스 드라이버를 제공한다.
또한, 본 발명의 실시예들은 특정 동작에 대한 실제 로봇의 수행 결과 및 아바타 로봇의 수행 결과를 동기적으로 참조하여 실제 로봇 또는 아바타 로봇을 제어하는 OPRoS 기반 로봇시스템의 RILS 구현 방법, 장치 및 시스템을 제공한다.
또한, 본 발명의 실시예들은 실제 로봇의 정보 및 아바타 로봇의 정보를 지속적으로 감지하여 오차를 계산함으로써, 실제 로봇의 동작을 기반으로 하여 아바타 로봇의 동작을 보정하는 방법, 장치 및 시스템을 제공한다.
본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법은 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성하는 단계; 상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택하는 단계; 상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입하는 단계; 및 상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계를 포함한다.
RILS에서 아바타 로봇은 중요한 동작을 수행한다. 이 때, 아바타 로봇은 실제 로봇의 동작을 센싱하고 제어하는 HIL 드라이버 부분과 가상 로봇 환경에서 동작을 센싱하고 제어하는 가상 로봇용 드라이버 부분, HIL 드라이버 부분과 가상 로봇용 드라이버 부분을 동기화시키는 부분, 그리고 실제 네비게이션 등이 동작하는 SW 모듈(가상 로봇과 실제 로봇이 공통으로 가지는 모듈)로 구성된다.
상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계는 상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈, 가상 하드웨어 제어 모듈 및 동기화 모듈을 이용하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계일 수 있다.
상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계는 상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작을 수행하는 단계; 상기 특정 동작에 대한 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 지속적으로 감지하는 단계; 상기 감지된 수행 정보에 기초하여 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과 사이의 오차를 계산하는 단계; 및 상기 오차를 기초로 상기 아바타 로봇의 동작을 보정하는 단계를 포함할 수 있다.
상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작을 수행하는 단계는 상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈 및 가상 하드웨어 제어 모듈을 이용하여 상기 실제 로봇 및 상기 아바타 로봇이 상기 특정 동작을 동시에 수행하는 단계일 수 있다.
상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 지속적으로 감지하는 단계는 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 단계일 수 있다.
상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 지속적으로 감지하는 단계는 상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈을 이용하여 상시 실제 로봇의 수행 정보를 동기화 모듈로 전송하는 단계; 및 상기 HIL 드라이버에 포함되는 가상 하드웨어 제어 모듈을 이용하여 상기 아바타 로봇의 수행 정보를 동기화 모듈로 전송하는 단계를 포함할 수 있다.
상기 실제 로봇의 동작 또는 상기 아바타 로봇의 동작을 보정하는 단계는 상기 오차를 기초로 상기 HIL 드라이버에 포함되는 동기화 모듈을 이용하여 상기 아바타 로봇의 동작을 보정하는 단계일 수 있다.
상기 가상의 아바타 로봇을 생성하는 단계는 상기 아바타 로봇이 동작하는 가상의 시뮬레이션 환경을 상기 실제 로봇이 동작하는 실제 환경에 대응하도록 생성하는 단계를 더 포함할 수 있다.
상기 복수의 컴포넌트들은 상기 실제 로봇 및 상기 아바타 로봇을 제어하도록 설계된 로봇 소프트웨어일 수 있다.
본 발명의 일실시예에 따른 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법은 실제 로봇에 대응하는 가상의 아바타 로봇을 생성하는 단계; 상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작에 대해 수행하는 단계; 상기 특정 동작에 대한 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 지속적으로 감지하는 단계; 상기 감지된 수행 정보에 기초하여 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과 사이의 오차를 계산하는 단계; 및 상기 오차를 기초로 상기 아바타 로봇의 동작을 보정하는 단계를 포함한다.
상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 지속적으로 감지하는 단계는 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 단계일 수 있다.
본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 시스템은 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성하는 생성부; 상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택하는 선택부; 상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입하는 삽입부; 및 상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 제어부를 포함한다.
또한, 본 발명의 실시예들은 OPRoS 컴포넌트에 적응적으로 적재 가능하며, 실제 로봇 및 가상의 아바타 로봇을 제어하는 디바이스 드라이버를 제공할 수 있다.
또한, 본 발명의 실시예들은 특정 동작에 대한 실제 로봇의 수행 결과 및 아바타 로봇의 수행 결과를 동기적으로 참조하여 실제 로봇 또는 아바타 로봇을 제어하는 OPRoS 기반 로봇시스템의 RILS 구현 방법, 장치 및 시스템을 제공할 수 있다.
또한, 본 발명의 실시예들은 실제 로봇의 정보 및 아바타 로봇의 정보를 지속적으로 감지하여 오차를 계산함으로써, 실제 로봇의 동작을 기반으로 하여 아바타 로봇의 동작을 보정하는 방법, 장치 및 시스템을 제공할 수 있다.
도 1은 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 컴포넌트를 나타낸 도면이다.
도 2는 OPRoS(Open Platform Robotic Services) 기반 실제 로봇시스템의 구조를 나타낸 도면이다.
도 3은 OPRoS(Open Platform Robotic Services) 기반 가상 로봇시스템의 구조를 나타낸 도면이다.
도 4는 OPRoS(Open Platform Robotic Services) 기반 로봇시스템에서 실제 로봇과 가상 로봇의 동작 차이를 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 구조를 나타낸 도면이다.
도 6은 도 5에 도시된 HIL 드라이버(530)를 구체적으로 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법을 나타낸 플로우 차트이다.
도 8은 도 7에 실제 로봇 또는 아바타 로봇을 제어하는 단계(640)를 구체적으로 나타낸 플로우 차트이다.
도 9는 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템에서 실제 로봇과 가상 로봇의 동작 차이를 나타낸 도면이다.
도 10은 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 시스템을 나타낸 블록도이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 컴포넌트를 나타낸 도면이다.
도 1을 참조하면, LaserScanner 컴포넌트(130), WheelController 컴포넌트(120) 및 RobotControl 컴포넌트(110)를 포함한다. OPRoS 기반 로봇시스템의 컴포넌트는 실제 로봇 및 가상 로봇을 제어하도록 설계된 로봇 소프트웨어로, 외부 컴포넌트와의 인터페이스가 포트를 통해 이루어진다. 여기서, LaserScanner 컴포넌트(130)는 레이저 스캐너 센서를 제어하여 장애물 측정을 하고, WheelController 컴포넌트(120)는 실제 로봇 및 가상 로봇을 주행시키는 동작을 수행한다. RobotControl 컴포넌트(110)는 LaserScanner 컴포넌트(130) 및 WheelController 컴포넌트(120)를 제어한다. 이 때, RobotControl 컴포넌트(110)와 WheelController 컴포넌트(120)는 서비스 포트로 연결되고, RobotControl 컴포넌트(110)와 LaserScanner 컴포넌트(130)는 서비스, 데이터 포트로 연결된다.
OPRoS 기반 로봇시스템의 컴포넌트는 확장자가 *.dll(윈도우즈) 혹은 *.so(리눅스)인 바이너리 파일과 수행에 필요한 속성정보가 xml로 저장되는 컴포넌트 프로파일로 구성된다. 그 중 컴포넌트 프로파일의 경우에는 컴포넌트의 개략적인 설명, 수행에 필요한 정보, 그리고 포트 정보가 기록되며 속성 정보의 예는 표 1와 같다. 표 1은 로봇의 바퀴를 제어하는 WheelController 컴포넌트 프로파일 속성 정보의 내용이며 하드웨어 제어를 위한 디바이스 드라이버(*.dll)의 정보와 바퀴 제어에 필요한 바퀴 지름, 길이, 방향 등의 정보로 구성된다.
Figure 112012076357049-pat00001
도 2는 OPRoS(Open Platform Robotic Services) 기반 실제 로봇시스템의 구조를 나타낸 도면이다.
도 2를 참조하면, OPRoS(Open Platform Robotic Services) 기반 실제 로봇시스템은 OPRoS 컴포넌트 실행 엔진(210), 컴포넌트(220), 디바이스 드라이버(230) 및 이에 대응하는 실제 로봇(240)을 포함한다. 여기서 컴포넌트(220)는 WheelController 컴포넌트(221), LaserScanner 컴포넌트(222) 및 WheelControllerTest 컴포넌트(223)을 포함할 수 있다.
OPRoS 컴포넌트는 순수 알고리즘 소프트웨어로 이루어진 컴포넌트와 하드웨어와 연관된 컴포넌트로 구성되며, WheelController 컴포넌트(221)는 하드웨어와 연관된 컴포넌트로 KNU_HRC01_MCV20_1(231) 다바이스 드라이버의 KNU_HRC01_MC_V20_1(231)와 연결되어 실제 로봇(240)의 모터(241)를 작동시킴으로써 실제 로봇의 주행 동작을 제어한다. 또한, LaserScanner 컴포넌트(222)는 HokuyoScipV2_V1.0(232) 디바이스 드라이버와 연결되어 실제 로봇(240)의 레이저 센서(242)를 작동시킴으로써 실제 로봇의 주행에 있어서, 장애물을 측정할 수 있다.
실제 로봇시스템에서 하드웨어와 연관된 컴포넌트는 하드웨어 추상화 모델을 사용하는 OPRoS 디바이스 드라이버 정보를 컴포넌트 프로파일에 입력시켜 적재하며, 컴포넌트의 호출에 따라 실제 하드웨어를 제어함으로써 실제 환경에서 실제 로봇을 동작시킬 수 있다.
특히 OPRoS 디바이스 드라이버는 실제 디바이스 드라이버에서 제공하는 API를 캡슐화시키는 역할을 함으로써, 하드웨어의 변경 시에도 별도의 컴포넌트를 변경하지 않고 사용할 수 있도록 도와준다. 즉, 디바이스 드라이버를 변경할 때, OPRoS 컴포넌트 프로파일의 디바이스 드라이버 속성을 변경함으로써 다양한 하드웨어를 지원할 수 있다.
도 3은 OPRoS(Open Platform Robotic Services) 기반 가상 로봇시스템의 구조를 나타낸 도면이다.
도 3을 참조하면, OPRoS(Open Platform Robotic Services) 기반 가상 로봇시스템은 OPRoS 컴포넌트 실행엔진(310), 컴포넌트(320), 디바이스 드라이버(330) 및 OPRoS 시뮬레이터(340)를 포함한다. 여기서 컴포넌트(220)는 WheelController 컴포넌트(321), LaserScanner 컴포넌트(322) 및 RobotControl 컴포넌트(323)를 포함할 수 있다.
위에서 상술한 바와 같이, OPRoS 컴포넌트들은 OPRoS 기반 가상 로봇시스템에서도 실제 로봇시스템에서와 같이 동작한다. 다만, KNU_HRC01_MCV20_1 다바이스 드라이버 대신에 Sim_WheelController 디바이스 드라이버로 대체되고, HokuyoScipV2_V1.0(232) 디바이스 드라이버 대신에 Sim_LaserScanner(332) 디바이스 드라이버로 대체된다. 또한, 실제 로봇의 모터 대신에, Velocity_motor(341)를 작동시켜서 가상 로봇의 주행 동작을 제어하고, 실제 로봇의 레이저 센서 대신에, LRF_Sensor(342)를 작동시켜 가상 로봇의 주행에 있어서 장애물을 측정할 수 있다.
가상 로봇시스템에서 하드웨어와 연관된 컴포넌트는 컴포넌트 프로파일의 속성 정보에 시뮬레이션 가상 하드웨어의 제어 기능을 갖는 디바이스 드라이버와 가상 로봇 모델의 정보 및 시뮬레이션 포트 정보를 함께 입력하여 적재한다.
이와 같이, 하드웨어와 연관된 OPRoS 컴포넌트는 추상화된 인터페이스를 통해 로봇의 하드웨어를 제어함으로써 컴포넌트의 구조는 항상 동일하며, 실제 로봇 또는 가상 로봇을 제어하는 디바이스 드라이버를 사용할 수 있다.
도 4는 OPRoS(Open Platform Robotic Services) 기반 로봇시스템에서 실제 로봇과 가상 로봇의 동작 차이를 나타낸 도면이다.
도 4를 참조하면, 로봇시스템은 실제 및 가상의 환경에서 동작하는 로봇이 위치한 환경의 중력, 마찰 등의 변수와 실제 및 가상의 로봇 하드웨어의 특성에 영향을 받아 동작하므로 동일한 명령에도 실제 로봇과 가상 로봇은 다르게 동작할 수 있다.
실제 로봇 및 가상 로봇이 1m 전진하는 동일한 주행 동작을 수행한 결과는 실제 로봇(420)의 그래프 및 가상 로봇(430)의 그래프를 통해 확인할 수 있다. 여기서 실제 로봇의 주행 그래프(420) 및 가상 로봇의 주행 그래프(430)의 차이(410)는 실제 환경에서 주행 동작을 수행하는 실제 로봇의 경우, 모터를 동작하는 시동에 관련된 시간이 소요되는 반면, 가상의 시뮬레이션 환경에서 주행 동작을 수행하는 가상 로봇의 경우, 시동 시간없이 즉시 반응하여 주행 동작을 수행하기 때문에 발생할 수 있다.
따라서, 실제 로봇의 동작을 기준으로 가상 로봇의 동작을 보정하는 기능이 요구되며, 결과적으로 보정 기능을 통하여 환경 및 하드웨어 특성에 따른 실제 로봇의 동작이 가상 로봇에서 유사하게 구현할 수 있다.
본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템은 RILS(Robot-in-the-loop Simulation)를 구현하는데, 이 때, RILS란 적어도 하나 이상의 실제 로봇시스템들이 시뮬레이션 상에서 가상의 로봇과 동시에 동작하는 시뮬레이션 기법을 나타낸다. 여기서, 가상의 로봇은 아바타 로봇을 의미할 수 있다. 또한, RILS는 실제 하드웨어의 일부를 시뮬레이션으로 대체하는 HILS(Hardware-in-the-loop Simulation)와 달리, 로봇시스템 전체를 대상으로 시뮬레이션할 수 있다.
도 5는 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 구조를 나타낸 도면이다.
도 5를 참조하면, OPRoS(Open Platform Robotic Services) 기반 로봇시스템은 OPRoS 컴포넌트 실행 엔진(510), 컴포넌트(520), 디바이스 드라이버(530), 이에 대응하는 실제 로봇(240) 및 OPRoS 시뮬레이터(550)를 포함한다. 여기서 컴포넌트(520)는 WheelController 컴포넌트(521), LaserScanner 컴포넌트(522) 및 RobotControl 컴포넌트(523)를 포함할 수 있다. 또한, 아바타 로봇은 실제 로봇과 일대일 대응되는 로봇 모델로서 실제 로봇의 외형과 장착된 하드웨어 종류 및 위치까지 동일하게 모델링 된 가상 로봇이며 실제 로봇의 동작을 시뮬레이션 환경에서 재현한다.
*OPRoS 기반 로봇시스템의 RILS를 구현하는 시스템에 있어서, OPRoS 컴포넌트는 동일한 구조를 가지는 반면, 디바이스 드라이버는 실제 로봇의 하드웨어 또는 가상의 아바타 로봇의 하드웨어에 모두 접근 및 처리하기 위한 HIL(Hardware-in-the-loop) 드라이버를 사용한다.
하드웨어와 연관된 컴포넌트인 WheelController 컴포넌트(521)는 HIL 드라이버(HIL_WheelController 드라이버)(531)와 연결되어 실제 로봇(540)의 모터(541)를 작동시킴으로써 실제 로봇의 주행 동작을 제어하고, OPRoS 시뮬레이터(550)의 Velocity_motor(551)를 작동시켜서 아바타 로봇의 주행 동작을 제어한다.
도 6은 도 5에 도시된 HIL 드라이버(530)를 구체적으로 나타낸 도면이다.
도 6을 참조하면, HIL 드라이버(610), 실제 로봇(320) 및 아바타 로봇에 대응하는 OPRoS 시뮬레이터(630)를 포함한다. 여기서 HIL 드라이버(610)는 동기화 모듈(611), 실제 하드웨어 제어 모듈(612) 및 가상 하드웨어 제어 모듈(613)을 포함한다.
본 발명에 따른 실제 로봇 또는 아바타 로봇 제어 과정에서, OPRoS 컴포넌트는 HIL 드라이버(610)를 디바이스 드라이버와 동일하게 인식하므로 결과적으로 컴포넌트는 디바이스 드라이버를 사용하는 방식과 동일하게 실제 HIL 드라이버를 사용할 수 있다.
실제 하드웨어 제어 모듈(612)은 HIL 드라이버에서 실제 하드웨어와 연관된 모든 기능을 포함한다. 실제 하드웨어 제어 모듈(612)은 실제 로봇과 연결되어 실제 로봇(620)의 모터(621)를 작동시킴으로써 실제 로봇의 특정 동작을 제어하고, 미리 설정된 주기 정보에 기초하여 지속적으로 실제 로봇의 수행 정보를 동기화 모듈(611)로 전송할 수 있다.
가상 하드웨어 제어 모듈(613)은 HIL 드라이버에서 가상 하드웨어와 연관된 모든 기능을 포함한다. 가상 하드웨어 제어 모듈(613)은 아바타 로봇과 연결되어 OPRoS 시뮬레이터(630)의 Velocity_motor(631)를 작동시킴으로써 아바타 로봇의 특정 동작을 제어하고, 미리 설정된 주기 정보에 기초하여 지속적으로 아바타 로봇의 수행 정보를 동기화 모듈(611)로 전송할 수 있다.
동기화 모듈은 실제 하드웨어 제어 모듈(612) 및 가상 하드웨어 제어 모듈(613)이 전송하는 실제 로봇 및 아바타 로봇의 수치화된 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지한다. 다시 말해, 로봇의 하드웨어는 동작에 따라 활성 상태와 유휴 상태로 구분될 수 있지만 동기화 모듈에서는 로봇의 상태와 관계없이 지속적으로 실제 로봇 및 아바타 로봇의 정보를 감지할 수 있다. 예를 들어, 로봇이 주행 동작을 수행할 경우, 로봇은 제어 명령에 따라 도착 완료 후에 유휴 상태가 될 수 있지만, 로봇의 가속도에 따라 유휴 상태 이후에도 로봇이 이동할 수 있으므로, 로봇의 모든 상태에 대해 지속적으로 하드웨어 정보를 감지해야 한다.
여기서, 실제 로봇 및 아바타 로봇의 수치화된 정보는 실제 로봇이 동작하는 실제 환경 및 아바타 로봇이 동작하는 가상의 시뮬레이션 환경에 대한 정보를 포함할 수 있다.
동기화 모듈에서 관심의 대상은 OPRoS 컴포넌트에서 발생하는 일련의 실행 흐름이 아닌 현재 하드웨어의 정보이다. 즉, 하드웨어와 연관된 컴포넌트라 하여도 하드웨어 제어와 관련 없는 작업을 수행할 수 있기 때문에, 컴포넌트의 실행 흐름에 따라 동기화를 수행하는 것은 무의미하며, 만약 하드웨어 제어가 블로킹 상태로 수행될 경우, 실제 로봇 및 아바타 로봇의 동기화에는 시간 지연이 증가할 수 있다. 여기서 동기화는 본 발명의 실시예에 따른 실제 로봇 및 아바타 로봇의 동작의 차이를 보정하기 위한 기능을 의미할 수 있다.
또한, 동기화 모듈은 감지된 정보에 기초하여 실제 로봇(620)의 수행 결과 및 아바타 로봇(630)의 수행 결과 사이의 오차를 계산하고, 계산된 오차를 기초로 아바타 로봇의 동작을 제어하여 보정한다.
도 7은 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법을 나타낸 플로우 차트이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 방법은 복수의 컴포넌트들을 사용하는 실제 로봇에 대응하는 가상의 아바타 로봇을 생성한다(710). 이 때, 아바타 로봇이 동작하는 가상의 시뮬레이션 환경을 실제 로봇이 동작하는 실제 환경에 대응하도록 생성하는 과정을 포함할 수 있다.
또한, 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트인 WheelController 컴포넌트를 선택한다(720).
이어서, 하드웨어와 관련된 적어도 하나의 컴포넌트인 WheelController 컴포넌트에 대응하는 컴포넌트 프로파일에 실제 하드웨어 및 가상의 하드웨어 모두에 접근 및 처리하기 위한 새로운 디바이스 드라이버인, HIL 드라이버의 정보를 삽입한다(730).
HIL 드라이버를 이용하여 특정 동작에 대한 실제 로봇의 수행 결과 및 아바타 로봇의 수행 결과를 동기적으로 참조하여 실제 로봇 또는 아바타 로봇을 제어한다(740). 이에 대해서는 도 8을 참조하여 자세히 설명한다.
도 8은 도 7에 실제 로봇 또는 아바타 로봇을 제어하는 단계(640)를 구체적으로 나타낸 플로우 차트이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 방법은 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈 및 가상 하드웨어 제어 모듈을 이용하여 실제 로봇 또는 아바타 로봇이 특정 동작을 동시에 수행하도록 제어한다(810).
특정 동작에 대한 실제 로봇의 수행 정보 및 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지한다(820). 이 때, 수행 정보를 비롯한 환경 정보들도 감지할 수 있다.
감지된 수행 정보에 기초하여 실제 로봇의 수행 결과 및 아바타 로봇의 수행 결과 사이의 오차를 계산하고(830), 계산된 오차를 기초로 아바타 로봇의 동작을 제어하여 보정한다(840).
도 9는 본 발명의 일실시예에 따른 OPRoS(Open Platform Robotic Services) 기반 로봇시스템에서 실제 로봇과 가상 로봇의 동작 차이를 나타낸 도면이다.
본 발명에 따른 OPRoS 기반 로봇시스템의 RILS의 유효성을 검증하기 위하여 도 4 및 도 9를 참조하여 다음의 실험을 진행한다.
실험은 표 2에 나타낸 실제 로봇 및 아바타 로봇에 사용된 모듈 및 설정 변수 값을 기초로 하며, 실제 로봇 하드웨어의 정보를 기준으로 아바타 로봇의 동작을 보정함으로써, OPRoS 기반 로봇시스템의 RILS의 유효성을 검증한다.
실제 로봇 아바타 로봇
바퀴
제어장치
HRB-MTC-B10 모션보드
12V DC 모터
Velocity_motor
센서 X LaserRange Finder
축 지름(m) 0.21 0.21
축 길이(m) 0.46 0.46
반지름(m) 0.3 0.3
실제 로봇은 한울 로보틱스사의 HRB-MTC-B10 모션 보드와 디엔지사의 IG-32PGM 01TYPE DC 모터로 구성되고 아바타 로봇은 OPRoS 시뮬레이터의 Velocity_motor 가상 장치를 사용하여 구성되며, 실제 로봇 및 아바타 로봇 모두 차륜 방식으로 구동된다. 또한, 아바타 로봇의 경우, 실제 로봇과 달리 LaserRange Finder 가상 센서를 부착하여 시뮬레이션 환경에서 거리측정을 가능하게 하였다. 실제 로봇 및 아바타 로봇은 32비트 MS 윈도우7 운영체제, 4Gb 메모리 환경의 노트북에서 동작한다. 또한, 아바타 로봇은 실제 로봇과 동일한 외형으로 설계되었다.
OPRoS 로봇 응용은 이동 로봇의 주행과 관련되며, 바퀴 제어를 위한 WheelController 컴포넌트와 거리측정을 위한 LaserScanner 컴포넌트, 그리고 WheelController 컴포넌트와 LaserScanner 컴포넌트를 이용하여 장애물을 회피하기 위한 RobotControl 컴포넌트로 구성되며 연결되어 있다.
로봇 응용의 컴포넌트 중 LaserScanner 컴포넌트는 아바타 로봇에 부착된 가상 LRF 센서를 통해 가상환경에서 측정한 거리정보를 입력 받으며 이 정보를 이용하여 실제 로봇의 주행을 제어한다. 즉 실제 로봇의 주행과 동기화된 아바타 로봇은 가상 환경에서 동작하므로, 아바타 로봇의 LRF 센서에서 측정한 거리정보를 이용하여 실제 로봇의 주행을 제어하면 실제 로봇은 시뮬레이션의 환경에서 주행하는 것과 동일하다고 할 수 있다. 또한, 시뮬레이션 도구로는 OPRoS 시뮬레이터를 사용하였으며, 시뮬레이션에서 아바타 로봇을 동작시킨다. 예제로 사용될 HIL 드라이버는 실제 로봇과 아바타 로봇의 주행을 동기화하기 위한 HIL_WheelController이며 OPRoS 공통 하드웨어 추상화 인터페이스 중 WheelController를 상속하여 구현된다. 따라서 OPRoS의 WheelController 컴포넌트는 일반적인 디바이스 드라이버를 적재하는 방식과 동일하게 HIL 드라이버를 적재할 수 있으며, HIL 드라이버의 실제 하드웨어 제어 모듈을 이용하여 실제 로봇의 주행을 제어할 수 있다.
HIL_WheelController 초기화 시에 설정되는 속성값은 WheelController 컴포넌트 프로파일에 입력되는 속성정보이며 표 3과 같다. 물론, 아래의 표 3은 OPRoS의 예이지만, XML로 표현되었기 때문에 실제로 OPRoS와는 관계없이 당업자라면 자명하게 확장될 수 있다.
Figure 112012076357049-pat00002
HIL_WheelController에서는 실제 장치 하드웨어 모듈과 가상 하드웨어 제어 모듈이 동시에 동작하기 때문에 실제 로봇의 구동을 위한 표 1의 컴포넌트 프로파일과 비교하여 시뮬레이션 접속을 위한 정보와 아바타 로봇의 하드웨어 정보 등이 추가된다. 프로파일에서 물리 장치 관련 정보는 실제 하드웨어 제어 모듈에 설정되며, 아바타 로봇의 하드웨어 정보와 포트 및 ip 정보는 가상 하드웨어 제어 모듈에 설정된다.
WheelController 컴포넌트는 초기화 시점에 드라이버 소프트웨어인 HIL_WheelController를 적재하며, 컴포넌트 프로파일 속성 정보를 이용하여 HIL_WheelController를 초기화한다. HIL_Wheel Controller에서는 실제 로봇의 하드웨어와 아바타 로봇의 하드웨어를 동시에 접근 및 제어하므로, 표 4과 같이 HIL_ WheelController의 초기화 시점에 실제 로봇과 아바타 로봇의 하드웨어 제어 모듈을 생성하며 WheelController 컴포넌트 프로파일의 속성정보를 이용하여 초기화한다.
Figure 112012076357049-pat00003
로봇 하드웨어 제어 모듈의 초기화 시에 설정되는 속성값은 표 3와 같이 OPRoS 컴포넌트의 프로파일에 입력되는 속성 정보이며 실제 로봇 하드웨어 제어 모듈에 설정될 속성 정보는 물리 장치 관련 정보이다. 이와 달리 아바타 로봇 하드웨어 제어 모듈에 설정되는 속성 정보는 아바타 로봇의 가상 장치 관련 정보와 시뮬레이션과의 통신을 위한 정보이다.
본 실험은 OPRoS 로봇 응용의 수행에 따라 실제 로봇 및 아바타 로봇이 동작한다. 하지만 실제 로봇과 아바타 로봇은 환경에 따라 다르게 동작할 수 있으므로, 실제 로봇의 정보를 기반으로 아바타 로봇의 동작을 보정하기 위한 알고리즘이 개발되었으며 표 5와 같다.
Figure 112012076357049-pat00004
실제 로봇과 아바타 로봇이 동작하면 도 4와 같이 동작의 차이가 발생할 수 있으므로 두 로봇의 오차를 계산 후 보정 작업을 계속 수행한다. 만약 실제 로봇과 아바타 로봇의 주행 중에 동작의 차이가 발생하면, 아바타 로봇의 속도와 각도를 조절하여 동작을 변경한다. 표 5의 주행 동기화 알고리즘은 표 3의 컴포넌트 프로파일 속성 정보에 미리 입력된 주기 정보에 따라 100ms 마다 주기적으로 동작하며, 실제 로봇과 아바타 로봇의 차이에 따라 실제 로봇의 동작을 기준으로 아바타 로봇을 보정한다.
OPRoS 로봇 응용의 수행에 따라 실제 로봇 및 아바타 로봇은 각각 실제 환경 및 가상의 시뮬레이션 환경에서 동시에 주행을 시작하며, 동작 중인 실제 로봇은 사상 환경상의 측정 정보를 이용해 장애물을 회피하여 동작한다. 또한, 아바타 로봇은 주행 동기화 알고리즘을 통해 시뮬레이션에서 실제 로봇의 동작을 재현한다.
RILS를 이용하여 실제 로봇에 1m 전진하는 동일한 명령을 수행시켰을 경우 실제 로봇과 아바타 로봇의 동작은 도 9와 같다.
도 9를 참조하면, 도 4의 결과와 비교하여 아바타 로봇이 실제 로봇과 유사하게 동작함을 확인할 수 있다. 도 4에서 실제 로봇과 가상 로봇에 1m 전진하는 명령을 수행시킬 시에 두 로봇 사이에는 분명한 동작의 차이가 발생하지만, RILS를 사용한 경우에는 아바타 로봇의 동작이 실제 로봇 정보에 기반하여 수행되므로 도 9에서 나타내듯이 아바타 로봇의 주행 그래프(910)는 실제 로봇의 주행 그래프(920)와 거의 동일하여, 그 차이는 거의 미미한 것을 확인할 수 있다.
도 10은 OPRoS(Open Platform Robotic Services) 기반 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 시스템을 나타낸 블록도이다.
도 10을 참조하면, OPRoS 기반 로봇시스템의 RILS 구현 시스템은 생성부(1010), 선택부(1020), 삽입부(1030) 및 제어부(1040)를 포함한다.
생성부(1010)는 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성한다.
선택부(1020)는 상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택한다.
삽입부(1030)는 상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입한다.
제어부(1040)는 상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성하는 단계;
    상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택하는 단계;
    상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입하는 단계; 및
    상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계
    를 포함하고,
    상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계는
    상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작을 수행하는 단계;
    상기 특정 동작에 대한 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 단계;
    상기 감지된 수행 정보에 기초하여 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과 사이의 오차를 계산하는 단계; 및
    상기 오차를 기초로 상기 아바타 로봇의 동작을 보정하는 단계
    를 포함하는 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  2. 제1항에 있어서,
    상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계는
    상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈, 가상 하드웨어 제어 모듈 및 동기화 모듈을 이용하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 단계인 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작을 수행하는 단계는
    상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈 및 가상 하드웨어 제어 모듈을 이용하여 상기 실제 로봇 및 상기 아바타 로봇이 상기 특정 동작을 동시에 수행하는 단계인 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 단계는
    상기 HIL 드라이버에 포함되는 실제 하드웨어 제어 모듈을 이용하여 상시 실제 로봇의 수행 정보를 동기화 모듈로 전송하는 단계; 및
    상기 HIL 드라이버에 포함되는 가상 하드웨어 제어 모듈을 이용하여 상기 아바타 로봇의 수행 정보를 동기화 모듈로 전송하는 단계
    를 포함하는 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  7. 제1항에 있어서,
    상기 실제 로봇의 동작 또는 상기 아바타 로봇의 동작을 보정하는 단계는
    상기 오차를 기초로 상기 HIL 드라이버에 포함되는 동기화 모듈을 이용하여 상기 아바타 로봇의 동작을 보정하는 단계인 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  8. 제1항에 있어서,
    상기 가상의 아바타 로봇을 생성하는 단계는
    상기 아바타 로봇이 동작하는 가상의 시뮬레이션 환경을 상기 실제 로봇이 동작하는 실제 환경에 대응하도록 생성하는 단계
    를 더 포함하는 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  9. 제1항에 있어서,
    상기 복수의 컴포넌트들은
    상기 실제 로봇 및 상기 아바타 로봇을 제어하도록 설계된 로봇 소프트웨어인 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  10. 실제 로봇에 대응하는 가상의 아바타 로봇을 생성하는 단계;
    상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작에 대해 수행하는 단계;
    상기 특정 동작에 대한 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 단계;
    상기 감지된 수행 정보에 기초하여 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과 사이의 오차를 계산하는 단계; 및
    상기 오차를 기초로 상기 아바타 로봇의 동작을 보정하는 단계
    를 포함하는 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 방법.
  11. 삭제
  12. 제1항, 제2항, 제4항, 제6항 내지 제10항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  13. 실제 로봇에 대응하는 복수의 컴포넌트들을 포함하는 가상의 아바타 로봇을 생성하는 생성부;
    상기 복수의 컴포넌트들 중 하드웨어와 관련된 적어도 하나의 컴포넌트를 선택하는 선택부;
    상기 하드웨어와 관련된 적어도 하나의 컴포넌트에 대응하는 컴포넌트 프로파일에 HIL(Hardware-in-the-loop-simulation) 드라이버에 관한 정보를 삽입하는 삽입부; 및
    상기 HIL 드라이버를 이용하여 특정 동작에 대한 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과를 동기적으로 참조하여 상기 실제 로봇 또는 상기 아바타 로봇을 제어하는 제어부
    를 포함하고,
    상기 제어부는
    상기 실제 로봇 또는 상기 아바타 로봇이 특정 동작을 수행하는 특정 동작 수행부;
    상기 특정 동작에 대한 상기 실제 로봇의 수행 정보 및 상기 아바타 로봇의 수행 정보를 미리 설정된 주기 정보에 기초하여 지속적으로 감지하는 특정 동작 감지부;
    상기 감지된 수행 정보에 기초하여 상기 실제 로봇의 수행 결과 및 상기 아바타 로봇의 수행 결과 사이의 오차를 계산하는 오차 계산부; 및
    상기 오차를 기초로 상기 아바타 로봇의 동작을 보정하는 동작 보정부
    를 포함하는 로봇시스템의 RILS(Robot-in-the-loop Simulation) 구현 시스템.
KR1020120104509A 2012-09-20 2012-09-20 로봇시스템의 rils 구현 방법 및 시스템 KR101363092B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120104509A KR101363092B1 (ko) 2012-09-20 2012-09-20 로봇시스템의 rils 구현 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120104509A KR101363092B1 (ko) 2012-09-20 2012-09-20 로봇시스템의 rils 구현 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101363092B1 true KR101363092B1 (ko) 2014-02-14

Family

ID=50270989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120104509A KR101363092B1 (ko) 2012-09-20 2012-09-20 로봇시스템의 rils 구현 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101363092B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113924532A (zh) * 2019-05-30 2022-01-11 Abb瑞士股份有限公司 用于监测驱动器的状况的方法和系统
CN113954066A (zh) * 2021-10-14 2022-01-21 国电南瑞科技股份有限公司 一种基于数字孪生系统的配网作业机器人控制方法及装置
WO2022124477A1 (ko) * 2020-12-07 2022-06-16 삼성전자주식회사 전자 장치 및 그 제어 방법
WO2022256402A1 (en) * 2021-06-03 2022-12-08 Intrinsic Innovation Llc Workcell modeling using motion profile matching and swept profile matching
CN116300596A (zh) * 2023-03-03 2023-06-23 无锡积塔技术有限公司 一种模块化的自动化控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
KR101103586B1 (ko) * 2009-12-04 2012-01-09 재단법인 포항지능로봇연구소 로봇용 시뮬레이션 시스템 및 방법
KR20120064547A (ko) * 2010-12-09 2012-06-19 한국전자통신연구원 분산 임베디드 장치들을 위한 하드웨어-인-더-루프 시뮬레이션 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
KR101103586B1 (ko) * 2009-12-04 2012-01-09 재단법인 포항지능로봇연구소 로봇용 시뮬레이션 시스템 및 방법
KR20120064547A (ko) * 2010-12-09 2012-06-19 한국전자통신연구원 분산 임베디드 장치들을 위한 하드웨어-인-더-루프 시뮬레이션 시스템 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113924532A (zh) * 2019-05-30 2022-01-11 Abb瑞士股份有限公司 用于监测驱动器的状况的方法和系统
WO2022124477A1 (ko) * 2020-12-07 2022-06-16 삼성전자주식회사 전자 장치 및 그 제어 방법
WO2022256402A1 (en) * 2021-06-03 2022-12-08 Intrinsic Innovation Llc Workcell modeling using motion profile matching and swept profile matching
CN113954066A (zh) * 2021-10-14 2022-01-21 国电南瑞科技股份有限公司 一种基于数字孪生系统的配网作业机器人控制方法及装置
CN113954066B (zh) * 2021-10-14 2023-02-21 国电南瑞科技股份有限公司 一种基于数字孪生系统的配网作业机器人控制方法及装置
CN116300596A (zh) * 2023-03-03 2023-06-23 无锡积塔技术有限公司 一种模块化的自动化控制方法
CN116300596B (zh) * 2023-03-03 2023-11-14 无锡积塔技术有限公司 一种模块化的自动化控制方法

Similar Documents

Publication Publication Date Title
KR101363092B1 (ko) 로봇시스템의 rils 구현 방법 및 시스템
Allibert et al. Predictive control for constrained image-based visual servoing
Loianno et al. Smartphones power flying robots
EP3392834B1 (en) 3d model reconstruction method, electronic device, and non-transitory computer readable storage medium
Porzi et al. Visual-inertial tracking on android for augmented reality applications
US10967505B1 (en) Determining robot inertial properties
JP2021076605A (ja) ビジュアルローカリゼーションとオドメトリに基づく経路追跡方法およびシステム
CA3086559C (en) Method for predicting a motion of an object, method for calibrating a motion model, method for deriving a predefined quantity and method for generating a virtual reality view
WO2019227330A1 (zh) 一种无人机的仿真方法及装置
EP3884345A1 (en) Method and system for predicting motion-outcome data of a robot moving between a given pair of robotic locations
EP3711906A1 (en) Information processing device and information processing method, computer program, and program production method
CN112597612B (zh) 机器人优化方法、装置、终端设备及计算机可读存储介质
WO2018180148A1 (ja) 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法
KR20210065791A (ko) 로봇 매니퓰레이터를 제어하기 위한 장치 및 이를 위한 방법
Thilderkvist et al. Motion control of hexapod robot using model-based design
CN112975965B (zh) 仿人机器人的解耦控制方法、装置和仿人机器人
KR102412066B1 (ko) 상태 결정 방법 및 장치, 로봇, 저장 매체 및 컴퓨터 프로그램
US11620846B2 (en) Data processing method for multi-sensor fusion, positioning apparatus and virtual reality device
CN111708283B (zh) 一种机器人仿真方法、设备以及计算机可读存储介质
KR101529509B1 (ko) 티엠오(tmo)모델 기반의 무인 비행체의 항법 제어 시스템 및 이의 제어방법
CN112783142A (zh) 车道居中控制的仿真测试系统、方法、设备和存储介质
Hong et al. A general‐purpose task execution framework for manipulation mission of the 2017 Mohamed Bin Zayed International Robotics Challenge
JP7441981B2 (ja) 切り替え可能モデルを有する自律運転シミュレーションアーキテクチャを提供するためのシステムと方法
Khalif et al. Path following for atrs using embedded nonlinear model predictive control
Bis et al. Velocity occupancy space for differential drive vehicles

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180130

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200203

Year of fee payment: 7