KR20230048430A - 시뮬레이션 장치 및 시뮬레이션 시스템 - Google Patents

시뮬레이션 장치 및 시뮬레이션 시스템 Download PDF

Info

Publication number
KR20230048430A
KR20230048430A KR1020237008797A KR20237008797A KR20230048430A KR 20230048430 A KR20230048430 A KR 20230048430A KR 1020237008797 A KR1020237008797 A KR 1020237008797A KR 20237008797 A KR20237008797 A KR 20237008797A KR 20230048430 A KR20230048430 A KR 20230048430A
Authority
KR
South Korea
Prior art keywords
robot
data
simulation
model
server system
Prior art date
Application number
KR1020237008797A
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 카와사키 주코교 카부시키 카이샤
Publication of KR20230048430A publication Critical patent/KR20230048430A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/25Manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Accounting & Taxation (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

시뮬레이션 장치는, 처리 회로 및 기억 장치를 포함하고, 상기 기억 장치는 일련의 목표의 동작을 나타내는 목표 동작 데이터와 가상적인 로봇 모델과 관련된 데이터를 기억하고, 상기 처리 회로는, 상기 목표 동작 데이터에 따라 상기 로봇 모델을 동작시키고, 상기 로봇 모델의 화상 데이터를 표시 장치에 출력하는 시뮬레이터 기능부와, 상기 목표 동작 데이터에 따른 상기 로봇 모델의 동작이고 또한 상기 표시 장치에 표시되는 화상에 나타나는 제1 동작에 대한 변경의 입력을 접수하고, 상기 변경이 반영된 동작인 제2 동작에서의 상기 로봇 모델의 상태를 나타내는 정보를 상기 목표 동작 데이터에 포함되는 상기 제1 동작의 정보와 관련지어 상기 기억 장치에 기억시키는 정보 처리부를 포함하고, 상기 시뮬레이터 기능부는, 상기 로봇 모델에 상기 제1 동작을 시키는 경우에, 상기 제2 동작을 나타내는 화상 데이터를 상기 표시 장치에 출력한다.

Description

시뮬레이션 장치 및 시뮬레이션 시스템
본건 출원은, 2020년 8월 28일에 일본 특허청에 출원된 일본 특허출원 2020-144512호의 우선권 및 이익을 주장하는 것이며, 그 전체를 참조함으로써 본건 출원의 일부를 이루는 것으로 인용한다.
본 개시는 시뮬레이션 장치 및 시뮬레이션 시스템에 관한 것이다.
종래부터, 산업용 로봇 및 그 주변 환경을 설계하기 위해서, 컴퓨터 장치 상에서의 시뮬레이션이 이용되고 있다. 예를 들어, 특허문헌 1은 다관절 암을 구비하는 오프셋 로봇에 대한 가상 로봇 개발 시스템과 실제 로봇 운용 시스템을 동적으로 링크시키는 종합 관리 시스템을 개시한다. 실제 로봇 운용 시스템은 가상 로봇 개발 시스템으로부터 시뮬레이션에 의한 제어 명령을 수취하고, 오프셋 로봇의 운동 제어의 시뮬레이션을 수행할 수 있다. 실제 로봇 운용 시스템은 시뮬레이션에 의한 오프셋 로봇의 운동의 오차 등의 가상 운용 정보를 가상 로봇 개발 시스템에 피드백한다. 이러한 시뮬레이션과 피드백에 의해, 가상 로봇 개발 시스템에서 제어 프로그램이 개발된다.
일본 특허공개 특개2007-260834호 공보
예를 들어, 실기(實機)의 오프셋 로봇의 동작과 가상 로봇 개발 시스템에서 시뮬레이션되는 가상적인 오프셋 로봇의 모델의 동작 사이에는, 오프셋 로봇의 관성 및 강성, 오프셋 로봇의 관절의 점성, 및 관절의 구동 장치의 반응 시간 등의 특성의 차이에 기인하는 차이가 생길 수 있다. 특성의 차이를 완전히 없애는 것은 어렵다. 가상 운용 정보를 이용하여 개발되는 제어 프로그램도, 특성의 차이를 완전히 없애기는 어렵고, 오프셋 로봇의 모델로 실행시키는 동작과 실기의 오프셋 로봇로 실행시키는 동작 사이에 차이를 생길 가능성이 있다. 예를 들어, 제어 프로그램은, 오프셋 로봇의 모델이 의도한대로 동작할 수 없게 할 우려가 있다.
본 개시는 실기 로봇과 동일한 동작을 도시하는 가상적인 로봇 모델의 화상을 출력할 수 있는 시뮬레이션 장치 및 시뮬레이션 시스템을 제공하는 것을 목적으로 한다.
본 개시의 일 실시예에 따른 시뮬레이션 장치는, 처리 회로 및 기억 장치를 포함하고, 상기 기억 장치는 일련의 목표의 동작을 나타내는 목표 동작 데이터와 가상적인 로봇 모델과 관련된 데이터를 기억하고, 상기 처리 회로는, 상기 목표 동작 데이터에 따라 상기 로봇 모델을 동작시키고, 동작하는 상기 로봇 모델의 화상 데이터를 표시 장치에 출력하는 시뮬레이터 기능부와, 상기 목표 동작 데이터에 따른 상기 로봇 모델의 동작이고 또한 상기 표시 장치에 표시되는 화상에 나타나는 제1 동작에 대한 변경의 입력을 접수하고, 상기 변경이 반영된 동작인 제2 동작에서의 상기 로봇 모델의 상태를 나타내는 정보를 상기 목표 동작 데이터에 포함되는 상기 제1 동작의 정보와 관련지어 상기 기억 장치에 기억시키는 정보 처리부를 포함하고, 상기 시뮬레이터 기능부는, 상기 로봇 모델에 상기 제1 동작을 시키는 경우에, 상기 제2 동작을 나타내는 화상 데이터를 상기 표시 장치에 출력한다.
[도 1] 도 1은 예시적인 실시예에 따른 시뮬레이션 시스템의 구성의 일례를 도시하는 개략도이다.
[도 2] 도 2는 예시적인 실시예에 따른 로봇 작업 에어리어(area)의 일례를 도시하는 평면도이다.
[도 3] 도 3은 예시적인 실시예에 따른 컴퓨터 장치의 하드웨어 구성의 일례를 도시하는 블록도이다.
[도 4] 도 4는 예시적인 실시예에 따른 시뮬레이션 장치가 구성되는 컴퓨터 장치의 기능적인 구성의 일례를 도시하는 블록도이다.
[도 5] 도 5는 예시적인 실시예에 따른 컴퓨터 장치의 시뮬레이터 기능부의 기능적인 구성의 일례를 도시하는 블록도이다.
[도 6] 도 6은 로봇 및 로봇 모델 각각의 제1 동작의 상태의 일례를 동일 스케일로 도시하는 측면도이다.
[도 7] 도 7은 수정 제어 프로그램 데이터를 이용하여 시뮬레이션을 실행하는 경우에서의 로봇 모델의 제1 동작의 상태의 일례를 도시하는 측면도이다.
[도 8a] 도 8a는 예시적인 실시예에 따른 시뮬레이션 시스템의 동작의 일례를 도시하는 플로우 차트이다.
[도 8b] 도 8b는 예시적인 실시예에 따른 시뮬레이션 시스템의 동작의 일례를 도시하는 플로우 차트이다.
[도 8c] 도 8c는 예시적인 실시예에 따른 시뮬레이션 시스템의 동작의 일례를 도시하는 플로우 차트이다.
[도 9] 도 9는 예시적인 실시예의 변형예 1에 따른 시뮬레이션 시스템의 구성의 일례를 도시하는 개략도이다.
[도 10] 도 10은 예시적인 실시예의 변형예 2에 따른 시뮬레이션 시스템의 구성의 일례를 도시하는 개략도이다.
(실시예)
이하에서, 본 개시의 예시적인 실시예를 도면을 참조하여 설명한다. 여기서, 이하에서 설명하는 실시예는 모두 포괄적 또는 구체적인 예를 나타내는 것이다. 이하의 실시예에서 구성 요소 중, 최상위 개념을 나타내는 독립 청구항에 기재되어 있지 않은 구성 요소에 대해서는, 임의의 구성 요소로서 설명된다. 또한, 첨부의 도면에서 각각의 도면은, 개략적인 도면이고, 반드시 엄밀하게 도시된 것은 아니다. 나아가, 각각의 도면에서, 실질적으로 동일한 구성 요소에 대해서는 동일한 부호를 부여하고, 중복되는 설명은 생략 또는 간략화되는 경우가 있다. 본 명세서 및 청구항에서, 「장치」란, 1개의 장치를 의미할 수 있을 뿐 아니라, 복수의 장치로 이루어진 시스템도 의미할 수 있다.
[시뮬레이션 시스템의 구성]
예시적인 실시예에 따른 시뮬레이션 시스템(1)의 구성을 설명한다. 도 1은 예시적인 실시예에 따른 시뮬레이션 시스템(1)의 구성의 일례를 도시하는 개략도이다. 도 1에 도시된 바와 같이, 시뮬레이션 시스템(1)은, 시뮬레이션 컴퓨터(100)와, 실기의 로봇(200)과, 로봇 컨트롤러(300)와, 조작 입출력 장치(400)를 포함한다. 로봇 컨트롤러(300)는 실기 제어 장치의 일례이다.
이에 한정되지 않지만, 예시적인 본 실시예에서는, 로봇(200)은, 산업용 로봇이고, 로봇 암(210)과 엔드 이펙터(220)를 구비한다. 로봇 암(210)은, 적어도 1개의 관절을 구비하고, 적어도 1개의 자유도를 가진다. 엔드 이펙터(220)는, 워크(workpiece) 등의 작업의 대상물(W)에 작용을 가할 수 있도록 구성된다. 로봇 암(210)의 선단은, 엔드 이펙터(220)가 장착되도록 구성된다. 로봇 암(210)은 엔드 이펙터(220)의 위치 및 자세를 자유롭게 변경할 수 있다. 로봇(200)은 로봇 암(210) 및 엔드 이펙터(220)를 이용하여 대상물(W)을 처리한다. 본 실시예에서는, 로봇 암(210)의 형식은 수직 다관절형이지만, 이에 한정되지 않고, 어떠한 형식이라도 좋고, 예를 들어, 수평 다관절형, 극좌표형, 원통 좌표형 또는 직각 좌표형 등이라도 좋다.
로봇 컨트롤러(300)는 로봇(200)의 동작을 제어한다. 로봇 컨트롤러(300)는 조작 입출력 장치(400)에 입력되는 지령, 정보 및 데이터 등을 처리한다. 로봇 컨트롤러(300)는, 상기 지령, 정보 및 데이터 등에 따라서, 로봇(200)의 동작을 제어한다. 예를 들어, 로봇 컨트롤러(300)는 로봇(200)으로의 동력 등의 공급을 제어한다. 로봇 컨트롤러(300)는 각종의 지령, 정보 및 데이터 등을 조작 입출력 장치(400)에 출력한다. 이와 같은 로봇 컨트롤러(300)는 컴퓨터 장치(310)(도 3 참조)를 구비한다. 로봇 컨트롤러(300)는 로봇(200)에 공급하는 전력을 제어하는 전기 회로, 및 엔드 이펙터(220)에 공급하는 도료 등의 물질의 공급을 제어하기 위한 기기 등을 구비하여도 좋다.
로봇 컨트롤러(300)는 로봇(200) 및 조작 입출력 장치(400)와 유선 통신, 무선 통신, 또는 유선 통신 및 무선 통신의 조합을 통해 접속된다. 이들 사이의 통신은 임의의 유선 통신 및 무선 통신이라도 좋다. 본 실시예에서는, 로봇 컨트롤러(300) 및 조작 입출력 장치(400)는, 로봇(200)이 배치되는 로봇 작업 에어리어(RA)에 배치된다. 여기서, 로봇 컨트롤러(300) 및 조작 입출력 장치(400) 중 적어도 1개는, 로봇 작업 에어리어(RA)와 다른 장소, 예를 들어, 원격의 장소에 배치되어도 좋다.
조작 입출력 장치(400)는 입력 장치(410) 및 제시 장치(420)를 구비한다. 입력 장치(410)는 각종의 지령, 정보 및 데이터 등의 입력을 접수하고, 로봇 컨트롤러(300)에 출력한다. 입력 장치(410)는 기지(旣知)의 임의의 입력 장치라도 좋고, 예를 들어, 로봇(200)의 조작을 위한 입력이 가능한 장치라도 좋다. 제시 장치(420)는 로봇 컨트롤러(300) 등으로부터 수취한 지령, 정보 및 데이터 등을 유저(이하, 「조작자」라고도 부름)(P)에 지각 가능하게 제시한다. 예를 들어, 제시 장치(420)는 디스플레이, 스피커 등을 구비하여도 좋다.
또한, 이에 한정되지 않지만, 본 실시예에서는, 도 2에 도시된 바 같이, 로봇 작업 에어리어(RA)에는, 로봇(200)의 주변 기기로서, 대상물(W)을 로봇(200)에 반송하는 제1 반송 장치(510)와, 로봇(200)에 의해 처리된 후의 대상물(W)을 다른 에어리어(WAa, WAb 및 WAc)로 반송하는 제2 반송 장치(521, 522 및 523)가 배치되어 있다. 도 2는 예시적인 실시예에 따른 로봇 작업 에어리어(RA)의 일례를 도시하는 평면도이다.
본 실시예에서는, 로봇(200)은, 제1 반송 장치(510)에 의해 반송된 대상물(W)을, 당해 대상물(W)의 반송처의 에어리어(WAa, WAb 및 WAc)에 따라 제2 반송 장치(521, 522 및 523)로 이송하는 라인 작업이 수행된다고 한다. 이에 한정되지 않지만, 본 실시예에서는, 반송 장치(510, 521, 522 및 523)는, 벨트 컨베이어이고, 무단륜 형태의 반송 벨트(510a, 521a, 522a 및 523a)를 주회(周回) 이동시킨다. 로봇 컨트롤러(300)는, 로봇(200)의 제어의 외부축 제어로서, 반송 장치(510, 521, 522 및 523)의 동작 제어를, 로봇(200)의 동작 제어와 협조하여 실행하도록 구성된다.
도 1에 도시된 바와 같이, 시뮬레이션 컴퓨터(100)는, 로봇 작업 에어리어(RA)와 다른 장소에 있는 설계 작업 에어리어(DA)에 배치된다. 시뮬레이션 컴퓨터(100)는 로봇 작업 에어리어(RA)에 배치되는 로봇 및 그 주변 환경을 설계하는데 사용된다. 예를 들어, 시뮬레이션 컴퓨터(100)는 가상적인 로봇 모델, 가상적인 주변 환경 모델, 가상적인 작업 공간 모델 등을 포함하는 가상적인 작업 에어리어 모델을 구축하는 것이 가능하다. 주변 환경 모델은 가상적인 주변 기기 모델, 가상적인 주변 구조 모델 및 로봇 모델의 처리 대상인 가상적인 대상 모델 등을 포함할 수 있다. 예를 들어, 시뮬레이션 컴퓨터(100)는, 공장 및 창고 등에서의 라인의 설계 등을 위해서 이용되어, 가상적인 라인 등을 구축할 수 있다.
나아가, 시뮬레이션 컴퓨터(100)는, 로봇 모델 및 주변 기기 모델 등에 자동적으로 소정의 동작을 시키기 위한 제어 프로그램 데이터를 작성하는 것이 가능하다. 제어 프로그램 데이터는, 당해 소정의 동작의 모두를 자동으로 실행하기 위한 데이터라도 좋고, 당해 소정의 동작의 일부를 자동으로 실행하기 위한 데이터라도 좋다. 제어 프로그램 데이터는 로봇(200) 등의 동작을 제어하는 로봇 컨트롤러(300)에 의해 이용 가능하다. 로봇 컨트롤러(300)는, 제어 프로그램 데이터에 따라서, 로봇(200) 등에 자동으로 소정의 동작을 하게 한다. 시뮬레이션 컴퓨터(100)는 제어 프로그램 데이터에 따라서 로봇 모델 및 주변 기기 모델 등에 자동으로 소정의 동작을 시키는 것도 가능하다. 시뮬레이션 컴퓨터(100)는 작업 에어리어 모델의 구축 및 오프라인에서의 작업 에어리어 모델의 시뮬레이션을 가능하게 한다.
예를 들어, 로봇 모델, 주변 환경 모델 및 작업 공간 모델에는 3차원 CAD(Computer-Aided Design) 모델 및 3차원 CG(Computer Graphics) 모델 등의 3차원 모델이 사용되어도 좋고, 2차원 모델이 사용되어도 좋다. 3차원 모델 및 2차원 모델은 실물의 로봇, 주변 환경 및 작업 공간의 특징에 대응하는 특징을 가지도록 구성된다. 예를 들어, 3차원 모델 및 2차원 모델은, 실물의 형상 및 치수에 대응하는 형상 및 치수, 실물의 가동 부분에 대응하는 가동 부분, 및, 실물의 각 부분의 특성에 대응하는 각 부분의 특성 등을 가져도 좋다. 예를 들어, 3차원 모델 및 2차원 모델의 가동부의 동작 방향 및 동작 범위는, 실물의 동작 방향 및 동작 범위에 대응하여도 좋다. 예를 들어, 3차원 모델 및 2차원 모델의 각 부의 관성, 강성 및 점성 등의 임피던스 특성이 실물의 임피던스 특성에 대응하여도 좋다. 3차원 모델 및 2차원 모델의 각 부의 중량 특성 및 중량 분포는 실물의 중량 특성 및 중력 분포에 대응하여도 좋다.
시뮬레이션 컴퓨터(100)는 컴퓨터 장치(110)와, 입력 장치(120)와, 제시 장치(130)를 포함한다. 컴퓨터 장치(110)의 구성은 특별히 한정되지 않고, 예를 들어, 컴퓨터 장치(110)는 퍼스널 컴퓨터, 워크스테이션, 서버 등이라도 좋다. 시뮬레이션 장치(140)(도 4 참조)는 컴퓨터 장치(110) 내에 구성되고, 시뮬레이션 장치(140)의 기능은 컴퓨터 장치(110)에 의해 실현된다.
입력 장치(120)는 각종의 지령, 정보 및 데이터 등의 입력을 접수하고, 컴퓨터 장치(110)에 출력한다. 예를 들어, 입력 장치(120)는 레버, 버튼, 키, 키보드, 터치 패널, 터치 디스플레이, 조이스틱, 모션 캡처, 카메라 및 마이크와 같은 기지의 입력 수단을 포함하여도 좋다. 예를 들어, 입력 장치(120)는 스마트폰 및 태블릿 등의 스마트 디바이스, 개인정보 단말(PDA: Personal Data Assistant) 또는 그 밖의 단말 장치 등이라도 좋다.
제시 장치(130)는, 컴퓨터 장치(110) 등으로부터 수취한 지령, 정보 및 데이터 등을, 시뮬레이션 컴퓨터(100)의 유저(이하, 「설계자」라고도 부름)에 지각 가능하게 제시한다. 예를 들어, 제시 장치(130)는 디스플레이 및 스피커 등을 구비하여도 좋다. 예를 들어, 제시 장치(130)는 가상적인 작업 에어리어 모델 등의 화상을 표시한다. 입력 장치(120)가 터치 패널 또는 터치 디스플레이를 포함하는 경우, 입력 장치(120)는 제시 장치(130)의 기능을 겸하여도 좋다. 제시 장치(130)는 표시 장치의 일례이다.
본 실시예에서는, 컴퓨터 장치(110)는 유선 통신, 무선 통신 또는 유선 통신 및 무선 통신의 조합을 통해 서로 데이터 통신 가능하게 로봇 컨트롤러(300)에 접속된다. 이들 사이의 통신은 임의의 유선 통신 및 무선 통신이라도 좋지만, 본 실시예에서는, 통신 네트워크(N)를 통한 통신이다. 이 경우, 컴퓨터 장치(110) 및 로봇 컨트롤러(300)는 통신 네트워크(N)와 직접 접속하도록 구성되어도 좋고, 통신용 컴퓨터 등의 통신 기기를 통해 통신 네트워크(N)와 접속하도록 구성되어도 좋다.
예를 들어, 컴퓨터 장치(110)는 제어 프로그램 데이터를 로봇 컨트롤러(300)에 송신한다. 로봇 컨트롤러(300)는 당해 제어 프로그램 데이터에 따라 로봇(200) 등을 동작시킨다. 당해 제어 프로그램 데이터에 따른 로봇(200) 등의 동작이 조작자(P)에 의해 수정되면, 수정이 반영된 수정 제어 프로그램 데이터는 로봇 컨트롤러(300)에 의해 컴퓨터 장치(110)에 송신된다. 설계자는, 시뮬레이션 컴퓨터(100) 및 수정 제어 프로그램 데이터에 포함된 정보를 이용하여, 작업 에어리어 모델의 구축 및 당해 작업 에어리어 모델의 시뮬레이션을 수행할 수 있다.
통신 네트워크(N)는 특별히 한정되지 않고, 예를 들어, 근거리 통신망(Local Area Network: LAN), 광역 네트워크(Wide Area Network: WAN), 인터넷, 또는 이들의 2개 이상의 조합을 포함할 수 있다. 통신 네트워크(N)는 블루투스(Bluetooth(등록상표)) 및 ZigBee(등록상표) 등의 근거리 무선 통신, 네트워크 전용 회선, 통신 사업자의 전용 회선, 공중 교환 전화망(Public Switched Telephone Network: PSTN), 모바일 통신 네트워크, 인터넷 네트워크, 위성 통신, 또는 이들의 2개 이상의 조합을 사용하도록 구성될 수 있다. 모바일 통신 네트워크는 제4 세대 이동 통신 시스템, 제5 세대 이동 통신 시스템 등을 사용하는 것이라도 좋다. 통신 네트워크(N)는 1개 이상의 네트워크를 포함할 수 있다.
컴퓨터 장치(110)와 로봇 컨트롤러(300)는 기억 매체를 통해 서로 정보 등을 입출력하도록 구성되어도 좋다. 예를 들어, 기억 매체는, 반도체 베이스 또는 다른 집적 회로(IC: Integrated Circuit), 하드 디스크 드라이브(HDD: Hard Disk Drive), 하이브리드 하드 드라이브(HHD: Hybrid Hard Disk Drive), 광 디스크, 광 디스크 드라이브(ODD: Optical Disk Drive), 광 자기 디스크, 광 자기 드라이브, 플로피 디스크 드라이브(FDD: Floppy Disk Drive), 자기 테이프, 고체 드라이브(SSD: Solid State Drive), RAM 드라이브, 시큐어 디지털 카드 또는 드라이브, 임의의 다른 적절한 기억 매체, 또는 이들의 2개 이상의 조합을 포함할 수 있다.
시뮬레이션 컴퓨터(100)의 컴퓨터 장치(110) 및 로봇 컨트롤러(300)의 컴퓨터 장치(310)의 하드웨어 구성의 일례를 설명한다. 도 3은 예시적인 실시예에 따른 컴퓨터 장치(110 및 310)의 하드웨어 구성의 일례를 도시하는 블록도이다. 도 3에 도시된 바와 같이, 컴퓨터 장치(110 및 310)는 모두, 프로세서(11)와, 메모리(12)와, 스토리지(13)와, 입출력 I/F(인터페이스: Interface)(14)와, 통신 I/F(15)를 구성 요소로서 포함한다. 이에 한정되지 않지만, 이들의 구성 요소는, 예를 들어 버스(20)를 통해 서로 접속된다. 컴퓨터 장치(110 및 310)가 구비하는 구성 요소는 상기 구성 요소에 한정되지 않고, 예를 들어, 컴퓨터 장치(110 및 310)의 제어 대상 및 접속 대상에 대응하여 구성 요소가 추가되어도 좋다.
프로세서(11) 및 메모리(12)는 처리 회로 또는 회로를 구성한다. 처리 회로 또는 회로는 다른 장치와의 지령, 정보 및 데이터 등의 송수신을 수행한다. 처리 회로 또는 회로는 각종 기기로부터의 신호의 입력 및 각각의 제어 대상으로의 제어 신호의 출력을 수행한다. 회로는 처리 회로를 포함하여도 좋다.
메모리(12)는 프로세서(11)가 실행하는 프로그램, 및 각종 데이터 등을 기억한다. 메모리(12)는 휘발성 메모리 및 비휘발성 메모리 등의 반도체 메모리 등의 기억 장치로 구성되어도 좋다. 이에 한정되지 않지만, 본 실시예에서는, 메모리(12)는 휘발성 메모리인 RAM(Random Access Memory)과 비휘발성 메모리인 ROM(Read-Only Memory)을 포함한다.
스토리지(13)는 각종 데이터를 기억한다. 기억 장치(13)는 하드 디스크 드라이브 및 SSD 등의 기억 장치로 구성되어도 좋다.
프로세서(11)는 RAM 및 ROM과 함께 컴퓨터 시스템을 형성한다. 컴퓨터 시스템은, 프로세서(11)가 RAM을 워크 에어리어로 사용하여 ROM에 기록된 프로그램을 실행함으로써, 컴퓨터 장치(110 또는 310)의 기능을 실현하여도 좋다. 컴퓨터 장치(110 및 310)의 기능의 일부 또는 전부는, 상기 컴퓨터 시스템에 의해 실현되어도 좋고, 전자 회로 또는 집적 회로 등의 전용의 하드웨어 회로에 의해 실현되어도 좋으며, 상기 컴퓨터 시스템 및 하드웨어 회로의 조합에 의해 실현되어도 좋다. 컴퓨터 장치(110 및 310)는, 단일의 컴퓨터 장치에 의한 집중 제어에 의해 각 처리를 실행하여도 좋고, 복수의 컴퓨터 장치의 협동에 의한 분산 제어에 의해 각 처리를 실행하여도 좋다.
이에 한정되지 않지만, 예를 들어, 프로세서(11)는 CPU(중앙처리장치: Central Processing Unit), MPU(Micro Processing Unit), GPU(Graphics Processing Unit), 마이크로프로세서(microprocessor), 프로세서 코어(processor core), 멀티 프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등을 포함하고, IC(집적 회로) 칩, LSI(Large Scale Integration) 등에 형성된 논리 회로 또는 전용 회로에 의해 각 처리를 실현하여도 좋다. 복수의 처리는 복수의 집적 회로에 의해 실현되어도 좋고, 1개의 집적 회로에 의해 실현되어도 좋다.
통신 I/F(15)는 컴퓨터 장치(110 또는 310)와 통신 네트워크(N)를 접속하는 인터페이스이다. 통신 I/F(15)는 통신 네트워크(N)를 통해 다른 컴퓨터 장치 등과의 통신을 실행하고, 데이터 등을 송수신하는 기능을 가진다. 통신 I/F(15)는, 프로세서(11)로부터의 지령에 따라서, 데이터 등을 다른 컴퓨터 장치 등에 송신하고, 다른 컴퓨터 장치 등으로부터 송신된 데이터 등을 수신하여, 프로세서(11)에 전달한다.
입출력 I/F(14)는 컴퓨터 장치(110 또는 310)와 외부 장치(30)를 접속하는 인터페이스이다. 예를 들어, 외부 장치(30)는 입력 장치(120), 제시 장치(130), 및 조작 입출력 장치(400)의 입력 장치(410) 및 제시 장치(420) 등을 포함하지만, 그 밖의 장치도 포함할 수 있다. 예를 들어, 외부 장치(30)는 기억 장치 또는 기억 매체의 드라이브(보조 기억 장치)라도 좋다. 입출력 I/F(14)는 데이터 등의 입력을 접수하는 입력 I/F와 데이터 등을 출력하는 출력 I/F를 일체화하여 포함하여도 좋고, 분리하여 포함하여도 좋다.
컴퓨터 장치(110)의 기능적인 구성을 설명한다. 도 4는 예시적인 실시예에 따른 시뮬레이션 장치(140)가 구성되는 컴퓨터 장치(110)의 기능적인 구성의 일례를 도시하는 블록도이다. 도 5는 예시적인 실시예에 따른 컴퓨터 장치(110)의 시뮬레이터 기능부(1405)의 기능적인 구성의 일례를 도시하는 블록도이다.
도 4에 도시된 바와 같이, 컴퓨터 장치(110)는 시뮬레이션 장치(140)를 포함한다. 예를 들어, 시뮬레이션 장치(140)의 동작은 컴퓨터 장치(110)에 설치된 소프트웨어에 의해 실현되어도 좋다. 컴퓨터 장치(110)의 프로세서(11)는, 상기 소프트웨어를 실행함으로써 시뮬레이션 장치(140)로서 동작한다.
시뮬레이션 장치(140)는 입력부(1401)와, 출력부(1402)와, 구축부(1403)와, 데이터 생성부(1404)와, 시뮬레이터 기능부(1405)와, 데이터 송신부(1406)와, 데이터 수신부(1407)와, 데이터 갱신부(1408)와, 처리부(1409)와, 기억부(1410)를 기능적 구성 요소로서 포함한다. 기억부(1410)의 기능은 스토리지(13)에 의해 실현되지만, 기억부(1410)의 기능의 일부는 메모리(12)에 의해 실현되어도 좋다. 기억부(1410)를 제외한 시뮬레이션 장치(140)의 각각의 기능적 구성 요소의 기능은 프로세서(11) 및 메모리(12) 등에 의해 실현되어도 좋다. 처리부(1409)는 정보 처리부의 일례이다.
도 5에 도시된 바와 같이, 시뮬레이터 기능부(1405)는 시뮬레이션 실행부(140a)와, 가상 로봇 컨트롤러(140b)와, 변환부(140c)를 기능적인 구성 요소로서 포함한다.
도 4에 도시된 바와 같이, 입력부(1401)는 시뮬레이션 컴퓨터(100)의 입력 장치(120)로부터 지령, 정보 및 데이터 등의 입력을 접수하고, 시뮬레이션 장치(140) 내의 각각의 기능적인 구성 요소에 보낸다. 입력부(1401)의 기능은 입출력 I/F(14) 등에 의해 실현되어도 좋다.
출력부(1402)는 구축부(1403) 및 시뮬레이터 기능부(1405) 등으로부터 수취한 지령, 정보 및 데이터 등을 시뮬레이션 컴퓨터(100)의 제시 장치(130)에 출력한다. 출력부(1402)의 기능은 입출력 I/F(14) 등에 의해 실현되어도 좋다.
기억부(1410)는 각종 정보를 기억하고, 기억된 정보의 판독을 가능하게 한다. 기억부(1410)는 가상적인 작업 에어리어 모델을 형성하는 재료가 될 수 있는 가상적인 구성 요소 모델의 데이터를 포함하는 모델 데이터(Dm)를 기억한다. 예를 들어, 모델 데이터(Dm)는 각종 가상적인 로봇 모델, 각종 가상적인 주변 환경 모델 및 각종 가상적인 작업 공간 모델 등의 구성 요소 모델의 3차원 모델 데이터를 포함할 수 있다.
기억부(1410)는 구축부(1403) 등에 의해 구축된 작업 에어리어 모델(M)의 데이터를 기억한다. 기억부(1410)는 데이터 생성부(1404) 등에 의해 생성된 제어 프로그램 데이터(Dp)를 기억한다.
구축부(1403)는 가상적인 작업 에어리어 모델(M)을 구축한다. 구체적으로는, 구축부(1403)는 입력 장치(120)에 입력되는 지령 및 정보 등에 따라 가상적인 3차원 공간 모델을 설정하여 제시 장치(130)로 표시하게 한다. 나아가, 구축부(1403)는 입력 장치(120)를 통해 지정된 가상적인 작업 공간 모델, 가상적인 로봇 모델 및 가상적인 주변 환경 모델의 3차원 모델 데이터를 기억부(1410)의 모델 데이터(Dm)로부터 판독한다. 구축부(1403)는 가상적인 3차원 공간 모델을 제시 장치(130)로 표시하게 하면서, 입력 장치(120)를 통해 지정된 위치, 자세 및 사이즈 등에 따라서, 판독된 각각의 3차원 모델을 당해 3차원 공간 모델 내에 배치한다. 구축부(1403)는, 입력 장치(120)에 입력된 지령에 따라서, 각각의 3차원 모델이 배치된 3차원 공간 모델을 작업 에어리어 모델(M)으로서 기억부(1410)에 기억시킨다. 작업 에어리어 모델(M)은 가상적인 로봇 모델(Ma), 가상적인 주변 환경 모델(Mb) 및 가상적인 작업 공간 모델(Mc) 등을 포함한다. 예를 들어, 로봇 모델(Ma)은 로봇 암 모델(Maa) 및 엔드 이펙터 모델(Mab)을 구비한다. 기억부(1410)에는, 각종 작업 에어리어 모델(M)이 기억될 수 있다.
데이터 생성부(1404)는, 입력 장치(120)에 입력되는 지령 등에 따라서, 제어 프로그램 데이터(Dp)를 생성하고, 기억부(1410)에 기억시킨다. 데이터 생성부(1404)는 작업 에어리어 모델(M)마다 제어 프로그램 데이터(Dp)를 생성하고, 당해 제어 프로그램 데이터(Dp)와 작업 에어리어 모델(M)을 서로 관련짓기 위해서 ID 등의 식별 정보를 부여하여도 좋다.
제어 프로그램 데이터(Dp)는 작업 에어리어 모델(M) 내에서 로봇 모델(Ma) 및 주변 환경 모델(Mb)에 동작을 실행시키기 위한 제어 프로그램, 당해 제어 프로그램이 그 실행을 위해 사용하는 실행 데이터, 또는 이들의 양방을 포함할 수 있다. 이에 한정되지 않지만, 본 실시예에서는, 상기 제어 프로그램은, 로봇 모델(Ma) 및 주변 환경 모델(Mb)에 대응하는 실물의 로봇 및 주변 환경에 동작을 실행시키기 위한 프로그램이기도 하다.
실행 데이터는 목표 동작 데이터(Dt) 및 설정 데이터(Ds) 등을 포함한다. 설정 데이터(Ds)는 모델에 설정되는 데이터와 유저 환경에 설정된 데이터를 포함할 수 있다. 모델에 설정되는 데이터는, 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 종별마다 설정되는 데이터, 및 로봇 모델(Ma)의 엔드 이펙터 모델(Mab)의 종별마다 설정되는 데이터 등을 포함할 수 있다. 유저 환경에 설정되는 데이터는, 로봇 모델(Ma) 및 주변 환경 모델(Mb)에 대응하는 실물의 로봇 및 주변 환경을 조작하기 위한 조작 입출력 장치(400) 등의 조작기의 종류별로 설정되는 데이터, 및 조작기에 표시되는 화면에 설정된 데이터 등을 포함할 수 있다. 데이터 생성부(1404)는 입력 장치(120), 입력 장치(120) 이외의 외부 장치(30) 또는 이들의 양방으로부터 입력되는 지령, 정보 및 데이터 등에 따라 설정 데이터(Ds)를 생성한다.
목표 동작 데이터(Dt)는, 작업 에어리어 모델(M) 내에서 로봇 모델(Ma) 및 주변 환경 모델(Mb)이 실행하는 일련의 목표 동작을 나타내는 데이터이다. 목표 동작 데이터(Dt)는, 로봇 모델(Ma) 및 주변 환경 모델(Mb)에 대응하는 실기의 로봇 및 주변 환경의 주변 기기에 일련의 동작을 시키기 위한 교시 데이터로서 이용 가능한 데이터라도 좋다. 목표 동작 데이터(Dt)는, 일련의 목표 동작에 포함된 각각의 동작에 대해서, 로봇 모델(Ma)의 각 부의 위치, 자세 및 힘 정보와, 주변 환경 모델(Mb)의 각 부의 위치 및 자세 정보를 포함한다. 위치 및 자세 정보는 작업 에어리어 모델(M) 내에서의 3차원의 위치 및 자세를 나타내는 정보이고, 힘 정보는 작업 에어리어 모델(M) 내에서의 3차원의 힘의 방향 및 크기를 나타내는 정보이다.
예를 들어, 로봇 모델(Ma)이 도 1 및 도 2에 도시된 로봇(200)에 대응하는 경우, 로봇 모델(Ma)의 로봇 암 모델(Maa) 및 엔드 이펙터 모델(Mab)은 각각, 로봇(200)의 로봇 암(210) 및 엔드 이펙터(220)의 가상적인 모델이다. 로봇 모델(Ma)의 각 부의 위치, 자세 및 힘의 정보는, 엔드 이펙터 모델(Mab)의 위치, 자세 및 힘의 정보라도 좋다.
예를 들어, 주변 환경 모델(Mb)이 도 2에 도시된 반송 장치(510, 521, 522 및 523)의 가상적인 모델인 경우, 주변 환경 모델(Mb)의 각 부의 위치 및 자세의 정보는 반송 벨트(510a, 521a, 522a 및 523a)의 주회 위치, 이송 벨트(510a, 521a, 522a 및 523a)의 구동 장치의 구동량, 또는 이들의 양방에 대응할 수 있다.
데이터 생성부(1404)는, 입력 장치(120)에 입력되는 지령 및 정보 등에 따라서, 로봇 모델(Ma) 및 주변 환경 모델(Mb)을 동작시키고, 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 각 동작에서의 각 부의 위치, 자세 및 힘을 검출하고, 검출된 위치, 자세 및 힘의 정보를 이용하여 목표 동작 데이터(Dt)를 생성한다. 목표 동작 데이터(Dt)는 위치, 자세 및 힘의 정보와 실행 시각이 관련지어진 시계열 데이터이다.
데이터 생성부(1404)는 제어 프로그램을 생성하는 경우, 목표 동작 데이터(Dt)를 이용하여 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 제어 프로그램을 생성하여도 좋다. 데이터 생성부(1404)는, 컴퓨터 장치(110)가 다른 장치로부터 접수한 목표 동작 데이터를 이용하여 제어 프로그램을 생성하는 경우도 있다.
데이터 송신부(1406)는, 입력 장치(120)에 입력되는 지령 등에 따라서, 기억부(1410)에 기억되고 또한 입력 장치(120)를 통해 지정된 제어 프로그램 데이터(Dp) 등을, 통신 네트워크(N)를 통해 로봇 컨트롤러(300)에 송신한다.
데이터 수신부(1407)는 제어 프로그램 데이터(Dpa) 등을 로봇 컨트롤러(300)로부터 통신 네트워크(N)를 통해 수신하고, 데이터 갱신부(1408)에 보낸다. 제어 프로그램 데이터(Dpa)는 제어 프로그램 데이터(Dp)에 기초하여 로봇 컨트롤러(300)에 의해 결정된 제어 프로그램 데이터이다. 예를 들어, 제어 프로그램 데이터(Dp)는, 로봇 컨트롤러(300)에 의해 실행된 결과, 실물의 로봇(200) 및 반송 장치(510, 521, 522 및 523)의 동작을 목적의 동작으로 하도록, 수정을 받는 경우가 있다. 이 경우, 제어 프로그램 데이터(Dpa)는 수정 후의 제어 프로그램 데이터(Dp)이다. 제어 프로그램 데이터(Dp)의 수정이 불필요한 경우, 제어 프로그램 데이터(Dpa)는 미수정의 제어 프로그램 데이터(Dp)이다.
예를 들어, 로봇 작업 에어리어(RA)에서, 장애물이 로봇(200)의 측방 및 상방 등에 존재하는 경우가 있다. 로봇(200)의 임피던스 특성이 로봇 모델(Ma)의 임피던스 특성과 다른 경우가 있다. 이 경우, 로봇(200) 및 반송 장치(510, 521, 522 및 523)가 목적의 동작을 실행하도록, 로봇 컨트롤러(300)를 사용하여 제어 프로그램 데이터(Dp)를 수정할 수 있다.
데이터 갱신부(1408)는 데이터 수신부(1407)로부터 수취한 제어 프로그램 데이터(Dpa)를 기억부(1410)에 기억시킨다. 데이터 갱신부(1408)는, 입력 장치(120)에 입력된 갱신 지령에 따라서, 제어 프로그램 데이터(Dpa)에 대응하고 또한 기억부(1410)에 기억되어 있는 제어 프로그램 데이터(Dp)를, 제어 프로그램 데이터(Dpa)로 치환하여도 좋다. 데이터 갱신부(1408)는, 입력 장치(120)에 입력되는 보존 지령에 따라서, 제어 프로그램 데이터(Dpa)를 제어 프로그램 데이터(Dp)에 대응하는 제2 데이터로서 제어 프로그램 데이터(Dp)와 함께 기억부(1410)에 기억시켜도 좋다.
도 4 및 도 5에 도시된 바와 같이, 시뮬레이터 기능부(1405)의 시뮬레이션 실행부(140a)는, 입력 장치(120)에 입력되는 지령 등에 따라서, 기억부(1410)에 기억되어 있는 제어 프로그램 데이터(Dp)와 작업 에어리어 모델(M)을 이용하여, 작업 에어리어 모델(M)의 동작 시뮬레이션을 실행한다. 구체적으로는, 시뮬레이션 실행부(140a)는, 목표 동작 데이터(Dt)에 따라서 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 목표의 동작을 지령하기 위한 목표 동작 지령을 생성한다. 예를 들어, 목표 동작 지령은 위치 지령 및 힘 지령을 포함하여도 좋다. 예를 들어, 위치 지령은 로봇 모델(Ma)의 엔드 이펙터 모델(Mab) 및 주변 환경 모델(Mb)의 동작 부분의 위치, 자세, 위치 변화의 방향 및 속도, 자세 변화의 방향 및 속도 등을 포함하여도 좋다. 예를 들어, 힘 지령은 로봇 모델(Ma)의 엔드 이펙터 모델(Mab)이 대상물 모델(Md)에 부여하는 힘의 크기 및 방향 등을 포함하여도 좋다. 대상물 모델(Md)은 대상물(W)의 가상적인 모델이다. 시뮬레이션 실행부(140a)는 목표 동작 지령을 변환부(140c)로 보낸다.
시뮬레이션 실행부(140a)는, 목표 동작 명령에 대응하는 제어 명령을 변환부(140c)를 통해 가상 로봇 컨트롤러(140b)로부터 수취하고, 당해 제어 명령에 따라 로봇 모델(Ma) 및 주변 환경 모델(Mb)을 동작시킨다. 나아가, 시뮬레이션 실행부(140a)는, 당해 제어 지시에 따라 동작하는 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 화상 데이터를 생성하여 제시 장치(130)에 출력하고, 당해 화상 데이터에 대응하는 화상을 제시 장치(130)로 표시하게 한다. 시뮬레이션 컴퓨터(100)의 유저인 설계자는 제어 프로그램 데이터(Dp)에 따른 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 동작을 시인할 수 있다.
가상 로봇 컨트롤러(140b)는, 로봇 컨트롤러(300)에 대응하여 설치되고, 로봇 컨트롤러(300)와 마찬가지의 처리를 수행하도록 구성된다. 가상 로봇 컨트롤러(140b)는 변환부(140c)에 의한 처리를 받은 후의 목표 동작 지령인 변환 동작 지령을 변환부(140c)로부터 수취한다. 가상 로봇 컨트롤러(140b)는 변환 동작 지령에 따라 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 각 부를 동작시키기 위한 제어 지령을 생성하여 변환부(140c)에 보낸다.
예를 들어, 가상 로봇 컨트롤러(140b)는, 변환 동작 지령에 기초하여, 로봇 모델(Ma)의 로봇 암 모델(Maa)의 각각의 관절, 엔드 이펙터 모델(Mab)의 동작 부분, 및 주변 환경 모델(Mb)의 각각의 동작 부분의 동작량, 동작 속도 및 동작 토크 등의 지령값을 포함하는 제어 지령을 생성하여도 좋다.
변환부(140c)는, 시뮬레이션 실행부(140a)와 가상 로봇 컨트롤러(140b) 사이에서, 일방으로부터 출력된 데이터를 타방에 이용 가능한 데이터로 변환한다.
여기서, 이에 한정되지 않지만, 본 실시예에서는, 시뮬레이션 장치(140)는, 시뮬레이션의 대상인 로봇 모델의 종류에 관계없이 구축된다. 시뮬레이션 실행부(140a)는 시뮬레이션 장치(140)와 함께 시뮬레이션 장치(140)의 일부로서 구축된다.
가상 로봇 컨트롤러(140b)는 시뮬레이션 대상의 로봇 모델의 종류에 따라 구축된다. 로봇 컨트롤러(300)는 제어 대상 로봇의 종류에 따라 생성된다. 예를 들어, 로봇 컨트롤러(300)의 사양은 제어 대상 로봇의 제조업자마다 다르고, 로봇 컨트롤러(300)의 송수신 신호는 제어 대상 로봇의 제조업자마다 다르다. 가상 로봇 컨트롤러(140b)의 사양도 대응하는 로봇 컨트롤러(300)마다 다르고, 가상 로봇 컨트롤러(140b)의 입출력 신호도 대응하는 로봇 컨트롤러(300)마다 다르다. 가상 로봇 컨트롤러(140b)의 사양은, 제어 대상의 로봇 모델에 대응하는 실기의 로봇의 제조업자마다 다르다.
가상 로봇 컨트롤러(140b) 및 변환부(140c)는 시뮬레이션 장치(140)에 소프트웨어 등으로서 통합될 수 있다. 가상 로봇 컨트롤러(140b)와 시뮬레이션 실행부(140a)는 서로 직접적으로 신호를 송수신할 수 없지만, 변환부(140c)를 통함으로써, 서로 신호를 송수신할 수 있다. 이에 따라서, 시뮬레이션 장치(140)의 범용성이 향상된다. 여기서, 시뮬레이션 실행부(140a)와 가상 로봇 컨트롤러(140b)가 서로 직접적으로 신호를 송수신할 수 있도록, 시뮬레이션 실행부(140a)가 가상 로봇 컨트롤러(140b)에 대응하여 구축되어도 좋다.
도 4에 도시된 바와 같이, 처리부(1409)는, 제시 장치(130)의 화면에 표시되는 화상에 나타나 있는 로봇 모델(Ma)의 동작으로 변경의 입력을 접수할 수 있도록 구성된다. 구체적으로는, 처리부(1409)는, 제시 장치(130)의 화면에 표시되어 있는 로봇 모델(Ma)의 화상에 대해서, 당해 로봇 모델(Ma)의 동작의 상태를 변경하는 입력을 접수할 수 있다. 상기 화면은, 시뮬레이터 기능부(1405)가 제어 프로그램 데이터(Dp)를 이용하여 시뮬레이션을 실행하여 제시 장치(130)로 표시하게 하는 작업 에어리어 모델(M)의 화면이다.
예를 들어, 처리부(1409)는, 입력 장치(120)에 입력되는 변경의 지령 등에 따라서, 로봇 모델(Ma)의 동작 중 제1 동작을 나타내는 제1 화상에서, 제1 동작을 제2 동작으로 변경하도록, 제1 화상을 제2 화상으로 변경 처리하고, 제시 장치(130)의 화면에 표시시킨다. 제2 동작은, 입력된 변경이 반영된 동작이고, 제2 화상은, 제2 동작에서의 로봇 모델(Ma)을 나타내는 화상이다. 예를 들어, 제2 동작은 제1 동작과 다르다. 예를 들어, 제1 동작 및 제2 동작 등의 로봇 모델(Ma)의 동작은 1 프레임의 화상에서 나타나도록 순간적인 동작, 및 복수의 프레임의 화상에서 나타나고 복수의 순간적인 동작을 포함하는 일련의 동작 등을 포함할 수 있다.
나아가, 처리부(1409)는, 제2 동작에서의 로봇 모델(Ma)의 상태를 나타내는 정보를, 상태 정보(Di)로서, 목표 동작 데이터(Dt)에 포함되는 제1 동작의 정보와 관련지어 기억부(1410)에 기억시킨다. 처리부(1409)는 상태 정보(Di)를 작업 에어리어 모델(M)의 정보의 일부로서 기억부(1410)에 기억시켜도 좋다. 예를 들어, 제2 동작에서의 로봇 모델(Ma)의 상태를 나타내는 정보는, 제2 동작에서의 로봇 모델(Ma)의 각 부의 위치 및 자세 등을 나타내는 정보, 및 제2 동작에서의 로봇 모델(Ma)를 나타내는 제2 화상의 데이터 등을 포함할 수 있다.
여기서, 로봇 모델(Ma)의 임피던스 특성을 로봇(200)의 임피던스 특성과 완전히 일치하도록 설정하는 것은 매우 곤란하다. 나아가, 로봇(200)의 임피던스 특성은 로봇(200)에 작용하는 중력 및 로봇(200)의 주위의 열 등의 영향을 받을 수 있다. 예를 들어, 연산량을 저감하기 위해서, 로봇 모델(Ma)에 임피던스 특성이 설정되지 않는 경우도 있다. 따라서, 도 6에 도시된 바와 같이, 제어 프로그램 데이터(Dp)에 따라서, 대상물(W) 및 대상물 모델(Md)을 파지하는 제1 동작을 로봇(200) 및 로봇 모델(Ma) 각각에 실행시키는 경우, 로봇(200)의 로봇 암(210)(실선 표시)과 로봇 모델(Ma)의 로봇 암 모델(Maa)(파선 표시) 사이에 처짐량의 차이가 생긴다. 본 예에서는, 로봇 암 모델(Maa)의 강성이 로봇 암(210)의 강성보다 크기 때문에, 엔드 이펙터(220)의 위치는 목표의 위치인 엔드 이펙터 모델(Mab)의 위치로부터 하방으로 어긋난다. 도 6은 로봇(200) 및 로봇 모델(Ma) 각각의 제1 동작의 상태의 일례를 동일 스케일로 도시하는 측면도이다.
따라서, 조작자(P)는, 제어 프로그램 데이터(Dp)에 따라 제1 동작을 실행하는 로봇(200)에 대해서, 엔드 이펙터(220)의 위치 및 자세가 목표의 위치 및 자세와 일치하도록, 로봇 컨트롤러(300)의 제어 프로그램 데이터(Dp)를 수정한다. 예를 들어, 조작자(P)는, 엔드 이펙터(220)를 목표의 위치 및 자세로 이동시킴으로써, 로봇 컨트롤러(300)에 목표의 위치 및 자세를 교시하여도 좋다. 로봇 컨트롤러(300)는, 상기 교시에 따라 제어 프로그램 데이터(Dp)를 수정함으로써, 수정 제어 프로그램 데이터(Dpa)를 생성하여도 좋다. 여기서, 교시 방법은 어떠한 방법이라도 좋다.
도 7에 도시된 바와 같이, 시뮬레이션 장치(140)의 시뮬레이터 기능부(1405)가, 수정 제어 프로그램 데이터(Dpa)를 이용하여 시뮬레이션을 실행하면, 로봇 모델(Ma)의 엔드 이펙터 모델(Mab)의 위치 및 자세(실선 표시)가 목표의 위치 및 자세(파선 표시)와 일치하지 않는 경우가 있다. 이는, 로봇(200)과 로봇 모델(Ma) 사이의 임피던스 특성의 차이에 기인한다. 목표의 위치 및 자세는 제어 프로그램 데이터(Dp)를 이용하는 경우의 위치 및 자세이다. 본 예에서는, 로봇 암 모델(Maa)의 강성이 로봇 암(210)의 강성보다 크기 때문에, 엔드 이펙터 모델(Mab)의 위치는 목표의 위치로부터 상방으로 어긋난다. 도 7은 수정 제어 프로그램 데이터(Dpa)를 이용하여 시뮬레이션을 실행하는 경우에서의 로봇 모델(Ma)의 제1 동작의 상태의 일례를 도시하는 측면도이다.
따라서, 설계자는, 수정 제어 프로그램 데이터(Dpa)를 이용한 시뮬레이션를 실행하는 중, 제시 장치(130)의 화면 상에서, 입력 장치(120)를 이용하여 엔드 이펙터 모델(Mab)을 목표의 위치 및 자세로 이동시킴으로써, 처리부(1409)에 로봇 모델(Ma)의 상태를 제1 동작에서 제2 동작으로 변동시킨다. 나아가, 설계자는, 처리부(1409)에, 제2 동작에서의 로봇 모델(Ma)의 상태를 나타내는 정보를 기억부(1410)에 기억시킨다.
이 후, 시뮬레이터 기능부(1405)는, 수정 제어 프로그램 데이터(Dpa)를 이용한 시뮬레이션을 실행하는 경우, 로봇 모델(Ma)의 동작을 나타내는 화상의 선택을 설계자에게 요구한다. 시뮬레이터 기능부(1405)는, 입력 장치(120)를 통해 접수되는 지령에 따라서, 로봇 모델(Ma)에 제1 동작을 시키는 경우에, 제2 동작을 나타내는 제2 화상의 화상 데이터 또는 제1 동작을 나타내는 제1 화상의 화상 데이터를 출력한다.
예를 들어, 모델 및 모델의 레이아웃 등의 작업 에어리어 모델(M)의 일부를 변경하는 경우, 및 작업 에어리어 모델(M)의 로봇 모델(Ma) 등을 이용하여 새로운 작업 에어리어 모델을 생성하는 경우, 시뮬레이터 기능부(1405)는, 실기의 로봇(200)의 특성이 반영된 수정 제어 프로그램 데이터(Dpa)를 이용하여, 작업 에어리어 모델의 동작을 시뮬레이션할 수 있다. 나아가, 시뮬레이터 기능부(1405)는, 제1 동작을 화상 표시하기 위해, 제2 동작을 나타내는 제2 화상의 화상 데이터를 출력함으로써, 설계자에게 위화감이 없는 화상을 제시할 수 있다. 따라서, 시뮬레이션을 사용하는 작업 에어리어 모델의 정확한 검증이 가능해진다.
[시뮬레이션 시스템의 동작]
실시예에 따른 시뮬레이션 시스템(1)의 동작을 설명한다. 도 8a, 도 8b 및 도 8c는 예시적인 실시예에 따른 시뮬레이션 시스템(1)의 동작의 일례를 도시하는 플로우 차트이다. 도 8a, 도 8b 및 도 8c에서, 스텝(S101 내지 S110)의 처리는 작업 에어리어 모델 및 제어 프로그램 데이터의 생성에 관한 처리이고, 스텝(S111 내지 S115)의 처리는 실물의 로봇(200)을 이용한 제어 프로그램 데이터의 검증에 관한 처리이며, 스텝(S116 내지 S126)의 처리는 검증 후의 제어 프로그램 데이터에 관한 처리이다.
도 8a, 도 8b 및 도 8c에 도시된 바와 같이, 먼저, 설계 작업 에어리어(DA)의 설계자는, 입력 장치(120)에의 입력을 통해, 컴퓨터 장치(110)의 시뮬레이션 장치(140)로, 모델 데이터(Dm) 및 설정 데이터(Ds)를 기억하게 한다(스텝(S101)).
다음으로, 설계자는, 입력 장치(120)에 대한 입력을 통해서, 시뮬레이션 장치(140)로, 작업 에어리어 모델(M)의 레이아웃을 구축하게 한다(스텝(S102)). 구체적으로는, 설계자는, 시뮬레이션 장치(140)에 의해 형성되는 가상적인 3차원 공간 내에서, 모델 데이터(Dm)를 이용하여, 로봇 모델(Ma), 주변 환경 모델(Mb) 및 작업 공간 모델(Mc)의 위치 및 자세를 지정하고, 각각의 모델을 배치한다. 설계자는, 시뮬레이션 장치(140)로, 각각의 모델이 배치된 작업 에어리어 모델(M)을 기억하게 한다.
다음으로, 설계자는 각 모델의 간섭을 검증한다(스텝(S103)). 구체적으로, 설계자는 간섭 체크의 지령을 입력 장치(120)에 입력한다. 시뮬레이션 장치(140)는, 설정 데이터(Ds) 등에 기초하여, 작업 에어리어 모델(M)의 각 모델을 동작시키고, 각 모델에서의 간섭의 유무를 체크한다. 간섭이 있는 경우, 시뮬레이션 장치(140)는 간섭 개소 등을 제시하고, 설계자는 입력 장치(120)에 대한 입력을 통해 모델의 배치를 수정한다.
다음으로, 설계자는, 시뮬레이션 장치(140)로, 작업 에어리어 모델(M)의 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 개략적인 목표 동작 데이터를 결정하게 하여 기억하게 한다(스텝(S104)). 구체적으로는, 설계자는, 입력 장치(120)에의 입력을 통하여, 작업 에어리어 모델(M) 내에서의 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 개략적인 목표 동작을 지정하고, 시뮬레이션 장치(140)로, 당해 목표 동작에 기초하여 개략적인 목표 동작 데이터를 생성하게 한다.
다음으로, 설계자는, 개략적인 목표 동작 데이터에 따른 택트 타임(tact time)을 시뮬레이션 장치(140)로 제시하게 한다(스텝(S105)). 구체적으로, 설계자는, 시뮬레이션 장치(140)로, 개략적인 목표 동작 데이터에 따라 작업 에어리어 모델(M)의 시뮬레이션을 실행하게 한다. 시뮬레이션 장치(140)는 개략적인 목표 동작 데이터에 따른 일련의 동작에 필요한 택트 타임과 택트 타임의 목표 시간 범위를 설계자에게 제시한다.
택트 타임이 목표 시간 범위를 벗어나는 경우(스텝(S106)에서 No), 설계자는 시뮬레이션 장치(140)에 각 모델의 레이아웃의 변경을 지령하고, 스텝(S102 내지 S105)을 반복하게 한다.
택트 타임이 목표 시간 범위 내에 들어가는 경우(스텝(S106)에서 Yes), 설계자는 시뮬레이션 장치(140)로 제어 프로그램을 생성하게 한다(스텝(S107)). 구체적으로, 설계자는, 시뮬레이션 장치(140)로, 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 상세한 목표 동작 데이터(Dt)를 결정하게 하여 기억하게 한다. 설계자는, 입력 장치(120)에의 입력을 통해서, 로봇 모델(Ma) 및 주변 환경 모델(Mb)의 상세한 목표 동작을 지정하고, 시뮬레이션 장치(140)로, 당해 목표 동작에 기초하여 상세한 목표 동작 데이터(Dt)를 생성하게 한다. 나아가, 설계자는, 시뮬레이션 장치(140)로, 상세한 목표 동작 데이터(Dt)를 이용한 제어 프로그램을 생성하게 한다. 시뮬레이션 장치(140)는 목표 동작 데이터(Dt) 및 제어 프로그램을 포함하는 제어 프로그램 데이터(Dp)를 기억한다.
다음으로, 설계자는, 스텝(S105)과 마찬가지로, 상세한 목표 동작 데이터에 따른 최종적인 택트 타임을 시뮬레이션 장치(140)로 제시하게 한다(스텝(S108)).
택트 타임이 목표 시간 범위를 벗어나는 경우(스텝(S109)에서 No), 설계자는 시뮬레이션 장치(140)에 상세한 목표 동작 데이터(Dt)의 변경을 지령하고, 스텝(S107 및 S108)을 반복하게 한다.
택트 타임이 목표 시간 범위 내에 들어가는 경우(스텝(S109)에서 Yse), 설계자는 시뮬레이션 장치(140)로 제어 프로그램 데이터(Dp)를 로봇 작업 에어리어(RA)의 로봇 컨트롤러(300)에 송신하게 한다(스텝(S110)). 로봇 컨트롤러(300)는 수신한 제어 프로그램 데이터(Dp)를 기억한다.
다음으로, 로봇 작업 에어리어(RA)의 조작자(P)는, 조작 입출력 장치(400)에의 입력을 통해서, 로봇 컨트롤러(300)로, 제어 프로그램 데이터(Dp)에 따라 로봇(200) 및 반송 장치(510, 521, 522 및 523)를 동작하게 한다(스텝(S111)).
로봇(200)의 동작의 수정이 필요한 경우(스텝(S112)에서 Yes), 조작자(P)는 로봇(200)의 동작을 수정한다(스텝(S113)). 로봇(200)의 동작과 목표 동작이 일치하지 않는 경우, 및 로봇(200)이 주위의 물체와 간섭하는 경우 등에, 상기 수정이 필요하다.
다음으로, 조작자(P)는, 조작 입출력 장치(400)에의 입력을 통해서, 로봇 컨트롤러(300)로, 로봇(200)의 동작의 수정을 제어 프로그램 데이터(Dp)에 반영하게 함으로써, 수정 제어 프로그램 데이터(Dpa)를 생성하게 하여 기억하게 한다(스텝(S114)).
다음으로, 조작자(P)는, 로봇 컨트롤러(300)로, 보정 제어 프로그램 데이터(Dpa)를 컴퓨터 장치(110)의 시뮬레이션 장치(140)에 송신하게 한다(스텝(S115)). 여기서, 조작자(P)는, 로봇(200)의 동작을 보정할 필요가 없는 경우(스텝(S112)에서 No)에 본 스텝에서, 로봇 컨트롤러(300)가 제어 프로그램 데이터(Dp)를 보정 제어 프로그램 데이터(Dpa)로서 송신하게 한다.
다음으로, 시뮬레이션 장치(140)는 수신한 보정 제어 프로그램 데이터(Dpa)를 기억한다(스텝(S116)).
다음으로, 설계 작업 에어리어(DA)의 설계자는, 시뮬레이션 장치(140)로, 수정 제어 프로그램 데이터(Dpa)에 따라 시뮬레이션을 실행하게 한다(스텝(S117)).
제시 장치(130)에 표시되는 로봇 모델(Ma)의 동작에 이상이 있는 경우(스텝(S118)에서 Yes), 설계자는, 입력 장치(120)에 지령을 입력함으로써, 시뮬레이션 장치(140)로, 제시 장치(130)의 화면 상에서 로봇 모델(Ma)의 해당하는 동작인 제1 동작을 목표 동작인 제2 동작으로 수정하게 한다(스텝(S119)).
다음으로, 시뮬레이션 장치(140)는, 제2 동작에서의 로봇 모델(Ma)의 상태를 나타내는 정보를, 상태 정보(Di)로서, 수정 제어 프로그램 데이터(Dpa)의 제1 동작의 정보와 관련지어 기억한다(스텝(S120)).
여기서, 로봇 모델(Ma)의 동작에 이상이 없는 경우(스텝(S118)에서 No), 설계자에 의한 수정이 없기 때문에, 시뮬레이션 장치(140)는, 기억하고 있는 수정 제어 프로그램 데이터(Dpa)를 그대로 유지한다(스텝(S121)).
그 후, 설계자에 의해, 수정 제어 프로그램 데이터(Dpa)에 따른 시뮬레이션의 실행 지령이 입력 장치(120)에 입력되면(스텝(S122)), 시뮬레이션 장치(140)는, 로봇 모델(Ma)의 동작을 나타내는 화상에, 상태 정보(Di)를 사용할 것인지 여부를 설계자에 요구한다(스텝(S123)).
상태 정보(Di)의 사용의 지령이 있는 경우(스텝(S124)에서 Yes), 시뮬레이션 장치(140)는 상태 정보(Di)를 이용하여 시뮬레이션을 실행하고, 상태 정보(Di)에 대응하는 로봇 모델(Ma)의 동작을, 상태 정보(Di)가 반영된 화상을 이용하여 제시 장치(130)로 표시하게 한다(스텝(S125)).
상태 정보(Di)의 사용의 지령이 없는 경우(스텝(S124)에서 No), 시뮬레이션 장치(140)는 상태 정보(Di)를 사용하지 않고 시뮬레이션을 실행하고, 상태 정보(Di)에 대응하는 로봇 모델(Ma)의 동작을, 상태 정보(Di)가 반영되지 않은 화상을 이용하여 제시 장치(130)로 표시하게 한다(스텝(S126)).
시뮬레이션 시스템(1)에서, 시뮬레이션 장치(140)는, 실기의 로봇(200)에서의 동작 결과가 반영된 수정 제어 프로그램 데이터(Dpa)를 사용하여, 작업 에어리어 모델(M)의 시뮬레이션을 실행 가능하다. 나아가, 로봇(200)과 로봇 모델(Ma) 사이에 특성의 차이가 있는 경우에도, 시뮬레이션 장치(140)는, 화상 상에서의 로봇 모델(Ma)의 동작을, 로봇(200)의 동작과 일치시킬 수 있다. 나아가, 시뮬레이션 장치(140)는, 작업 에어리어 모델(M)을 수정하는 경우, 및 새로운 작업 에어리어 모델을 생성하는 경우, 수정 제어 프로그램 데이터(Dpa)를 이용하여 새로운 제어 프로그램 데이터를 생성할 수 있다. 새로운 제어 프로그램 데이터는 실기의 로봇의 특성을 반영하기 때문에, 실기의 로봇의 동작에 대해 높은 정밀도를 가질 수 있다.
여기서, 시뮬레이션 장치(140)는 스텝(S123 내지 S126)의 처리를 반복하도록 구성되어도 좋다. 예를 들어, 시뮬레이션 장치(140)는, 시뮬레이션의 실행 중, 상태 정보(Di)에 대응하는 로봇 모델(Ma)의 동작이 출현할 때마다, 상태 정보(Di)의 사용의 유무를 설계자에게 요구하고, 설계자의 지시에 따라서, 당해 동작을 나타내는 화상을 결정하여도 좋다.
(변형예 1)
예시적인 실시예의 변형예 1에 따른 시뮬레이션 시스템(1A)은, 시뮬레이션 컴퓨터의 일부가 클라우드 상에 존재한다는 점에서 실시예와 다르다. 이하에서, 변형예 1에 대해서, 실시예와 다른 점을 중심으로 설명하고, 실시예와 동일한 점의 설명을 적절히 생략한다.
도 9는 예시적인 실시예의 변형예 1에 따른 시뮬레이션 시스템(1A)의 구성의 일례를 도시하는 개략도이다. 도 9에 도시된 바와 같이, 시뮬레이션 시스템(1A)은 시뮬레이션 단말(101A)과, 서버 시스템(102A)과, 로봇(200)과, 로봇 컨트롤러(300)와, 조작 입출력 장치(400)를 포함한다. 시뮬레이션 단말(101A)과, 서버 시스템(102A)과, 로봇 컨트롤러(300)는 서로 다른 위치에 배치되고, 통신 네트워크(N)를 통해 서로 데이터 통신 가능하게 접속된다. 예를 들어, 복수의 시뮬레이션 단말(101A), 복수의 로봇(200) 각각을 제어하는 복수의 로봇 컨트롤러(300), 또는 이들의 양방이, 통신 네트워크(N)를 통해 서버 시스템(102A)과 접속 가능하다. 시뮬레이션 단말(101A)은 단말 장치의 일례이다.
서버 시스템(102A)은, 실시예에 따른 시뮬레이션 장치(140)의 기능을 구비하고, 예를 들어 복수의 시뮬레이션 장치(140)의 기능을 실현 가능하다. 서버 시스템(102A)은 1개 또는 복수의 시뮬레이션 단말(101A) 각각에 대해 시뮬레이션 장치(140)로서 기능하고, 1개 또는 복수의 로봇 컨트롤러(300)에 대해 시뮬레이션 장치(140)로서 기능하도록 구성된다. 서버 시스템(102A)은, 서버(102Aa) 및 스토리지(102Ab)를 포함한다. 여기서, 서버(102Aa)가 스토리지(102Ab)를 포함하여도 좋다. 서버(102Aa)는 컴퓨터 장치이고, 스토리지(102Ab)는 기억 장치이다. 이에 한정되지 않지만, 본 변형예에서는, 서버(102Aa)는, 기억부(1410) 이외의 시뮬레이션 장치(140)의 모든 기능적 구성 요소의 기능을 구비하고, 스토리지(102Ab)는, 기억부(1410)의 기능을 구비한다. 서버(102Aa)의 입력부(1401) 및 출력부(1402)는 통신 네트워크(N)에 접속되어 시뮬레이션 단말(101A)과 데이터 등을 송수신한다.
시뮬레이션 단말(101A)은 입력 장치(120) 및 제시 장치(130)를 구비하는 컴퓨터 장치이고, 통신 네트워크(N)와 접속 가능한 통신 인터페이스를 구비한다. 시뮬레이션 단말(101A)은 퍼스널 컴퓨터, 스마트 폰, 태블릿 등의 스마트 디바이스, 개인 정보 단말 또는 다른 단말 장치 등이라도 좋다. 시뮬레이션 단말(101A)은 통신 네트워크(N)를 통해 서버 시스템(102A)에 원하는 처리를 수행시킬 수 있다. 복수의 시뮬레이션 단말(101A)이 서버 시스템(102A)에 액세스하여, 각각의 원하는 처리를 서버 시스템(102A)으로 실행하게 할 수 있다.
예를 들어, 시뮬레이션 단말(101A)은 전용의 어플리케이션이 인스톨될 수 있도록 구성되고, 당해 어플리케이션이 기동됨으로써 서버 시스템(102A)과 접속되도록 구성되어도 좋다. 시뮬레이션 단말(101A)은, 당해 어플리케이션을 통해 서버 시스템(102A)에 지령을 보낼 수 있고, 서버 시스템(102A)으로, 실시예에 따른 시뮬레이션 장치(140)가 실행 가능한 각종 처리를 실행하게 하여 각 처리의 결과를 당해 어플리케이션의 화면에 출력하게 할 수 있다.
예를 들어, 시뮬레이션 단말(101A)은 전용의 웹 사이트에 액세스 가능하도록 구성되고, 당해 웹 사이트에 로그인하여 서버 시스템(102A)과 접속되도록 구성되어도 좋다. 시뮬레이션 단말(101A)은 당해 웹사이트 상에서 서버 시스템(102A)에 지령을 보낼 수 있고, 서버 시스템(102A)으로, 시뮬레이션 장치(140)가 실행 가능한 각종 처리를 실행하게 하여 각 처리의 결과를 당해 웹 사이트에 출력하게 할 수 있다.
서버 시스템(102A)은 각종 작업 에어리어 모델, 모델 데이터 및 제어 프로그램 데이터 등의 각종 데이터를 스토리지(102Ab)에 기억하기 때문에, 시뮬레이션 단말(101A)은 많은 기억 용량을 가질 필요가 없다. 서버 시스템(102A)은 작업 에어리어 모델의 구축, 제어 프로그램 데이터의 생성, 및 시뮬레이션의 실행 등의 많은 처리량을 필요로 하는 처리를 실행하기 때문에, 시뮬레이션 단말(101A)은 높은 처리 능력을 가질 필요가 없다. 따라서, 각종 유저가 각종 시뮬레이션 단말(101A)을 이용하여 시뮬레이션 시스템(1A)을 이용할 수 있다. 서버 시스템(102A)은 복수의 로봇 컨트롤러(300)와 데이터 통신함으로써, 각각의 로봇 컨트롤러(300)의 수정 제어 프로그램 데이터(Dpa)를 이용한 각종 로봇 모델의 시뮬레이션을 실행 가능하다.
(변형예 2)
예시적인 실시예의 변형예 2에 따른 시뮬레이션 시스템(1B)은 로봇 컨트롤러의 적어도 일부가 클라우드 상에 존재한다는 점에서 변형예 1과 다르다. 이하에서, 변형예 2에 대해서, 실시예 및 변형예 1과 다른 점을 중심으로 설명하고, 실시예 및 변형예 1과 동일한 점의 설명을 적절히 생략한다.
도 10은 예시적인 실시예의 변형예 2에 따른 시뮬레이션 시스템(1B)의 구성의 일례를 도시하는 개략도이다. 도 10에 도시된 바와 같이, 시뮬레이션 시스템(1B)은 시뮬레이션 단말(101A)과, 제1 서버 시스템으로서의 서버 시스템(102A)과, 로봇(200)과, 제2 서버 시스템(301B)과, 전력 제어 장치(302B)과, 중계 장치(303B)와, 조작 입출력 장치(400)를 포함한다. 시뮬레이션 단말(101A)과, 제1 서버 시스템(102A)과, 제2 서버 시스템(301B)과, 중계 장치(303B)는 서로 다른 위치에 배치되고, 통신 네트워크(N)를 통해 서로 데이터 통신 가능하게 접속된다. 예를 들어, 복수의 로봇(200) 각각과 접속된 복수의 중계 장치(303B)가 통신 네트워크(N)를 통해 제2 서버 시스템(301B)과 접속 가능하다.
제2 서버 시스템(301B)은 실시예에 따른 로봇 컨트롤러(300)의 컴퓨터 장치(310)의 기능을 구비하고, 예를 들어, 복수의 컴퓨터 장치(310)의 기능을 실현 가능하다. 제2 서버 시스템(301B)은, 1개 또는 복수의 로봇(200) 각각과, 1개 또는 복수의 전력 제어 장치(302B) 각각과, 1개 또는 복수의 조작 입출력 장치(400) 각각에 대해서, 로봇 컨트롤러(300)로서 기능하도록 구성된다. 제2 서버 시스템(301B)은 제1 서버 시스템(102A)에 대하여 로봇 컨트롤러(300)로서 기능하도록 구성된다.
제2 서버 시스템(301B)은 서버(301Ba) 및 스토리지(301Bb)를 포함한다. 여기서, 서버(301Ba)는 스토리지(301Bb)를 포함하여도 좋다. 서버(301Ba)는 컴퓨터 장치이고, 스토리지(301Bb)는 기억 장치이다. 이에 한정되지 않지만, 본 변형예에서는, 서버(301Ba)는 컴퓨터 장치(310)의 프로세서(11) 및 메모리(12)의 기능을 구비하고, 스토리지(301Bb)는 스토리지(13)의 기능을 구비한다.
서버(301Ba)에는, 각종 로봇(200) 및 그 주변 기기를 제어하기 위한 소프트웨어가 인스톨되어 있다. 스토리지(301Bb)는 각종 로봇(200) 및 주변 기기의 데이터, 각종 로봇(200) 및 주변 기기를 제어하기 위한 제어 프로그램 데이터, 각종 로봇(200) 및 주변 기기의 로그 데이터 등의 정보를 기억한다. 서버(301Ba)는 스토리지(301Bb)에 기억된 정보를 이용하여 외부로부터 수취한 지령에 따라 로봇(200) 등을 동작시키기 위한 지령을 생성하고, 당해 로봇(200)의 중계 장치(303B)에 송신한다. 서버(301Ba)는 제1 서버 시스템(102A)으로부터 제어 프로그램 데이터(Dp)를 수신하고, 스토리지(301Bb)에 기억시키고, 수정 제어 프로그램 데이터(Dpa)를 제1 서버 시스템(102A)에 송신한다.
중계 장치(303B)는 통신 네트워크(N)와 접속 가능한 통신 인터페이스를 구비한다. 중계 장치(303B)는 통신 네트워크(N)를 통해 제2 서버 시스템(301B)과 접속 가능하다. 중계 장치(303B)는, 로봇(200)에 탑재되는 센서 등, 전력 제어 장치(302B) 및 조작 입출력 장치(400)와 접속된다. 중계 장치(303B)는 당해 센서, 전력 제어 장치(302B) 및 조작 입출력 장치(400)와 제2 서버 시스템(301B) 사이의 통신을 중개한다. 중계 장치(303B)는, 예를 들어, 모뎀, ONU(광회선의 종단 장치) 및 라우터 등의 기기를 포함하여도 좋다.
전력 제어 장치(302B)는 외부 전원에 접속되고, 중계 장치(303B) 및 통신 네트워크(N)을 통해 제2 서버 시스템(301B)으로부터 수취한 지령 등에 따라서, 로봇(200) 및 그 주변 장치에 공급하는 전력을 제어한다. 전력 제어 장치(302B)는 앰프, 인버터 및 컨버터 등을 포함하여도 좋다. 제2 서버 시스템(301B)은, 로봇(200)의 각 부 및 주변 기기의 각 모터의 전류의 지령값 등을 전력 제어 장치(302B)에 송신하도록 구성되어도 좋고, 로봇(200)의 엔드 이펙터(220)의 목표 동작 지령 등을 전력 제어 장치(302B)에 송신하도록 구성되어도 좋다. 후자의 경우, 목표 동작 지령을 모터의 전류의 지령값으로 변환하는 연산 장치가 전력 제어 장치(302B)에 설치되어도 좋고, 전력 제어 장치(302B)와 별개의 장치로서 설치되어도 좋다. 전력 제어 장치(302B)는 각각의 모터의 전류값 및 회전량 등을 피드백 정보로서 제2 서버 시스템(301B)에 송신하여도 좋다.
조작 입출력 장치(400)의 입력 장치(410)는, 입력된 지령에 따라서, 지령, 정보 및 데이터 등을 중계 장치(303B) 및 통신 네트워크(N)을 통해 제2 서버 시스템(301B)에 송신한다. 조작 입출력 장치(400)의 제시 장치(420)는 중계 장치(303B) 및 통신 네트워크(N)을 통해 제2 서버 시스템(301B)으로부터 수취하는 지령, 정보 및 데이터 등을 제시한다. 조작 입출력 장치(400)는 통신 네트워크(N)를 통해 제2 서버 시스템(301B)에 원하는 처리를 수행시킬 수 있다. 복수의 조작 입출력 장치(400)가 제2 서버 시스템(301B)에 액세스하고, 각각의 원하는 처리를 제2 서버 시스템(301B)에 실행시킬 수 있다.
조작 입출력 장치(400)는 컴퓨터 장치를 포함하여도 좋다. 예를 들어, 조작 입출력 장치(400)는, 티치 펜던트, 퍼스널 컴퓨터, 스마트폰 및 태블릿 등의 스마트 디바이스, 개인정보 단말 또는 다른 단말 장치 등이라도 좋다.
예를 들어, 조작 입출력 장치(400)는 전용의 어플리케이션이 인스톨될 수 있도록 구성되고, 당해 어플리케이션이 기동됨으로써 중계 장치(303B)와 제2 서버 시스템(301B)의 접속을 확립하도록 구성되어도 좋다. 조작 입출력 장치(400)는, 당해 어플리케이션을 통해 제2 서버 시스템(301B)으로 각종 처리를 실행하게 하여 각 처리의 결과를 당해 어플리케이션의 화면에 출력하게 할 수 있다.
예를 들어, 조작 입출력 장치(400)는 전용의 웹 사이트에 액세스 가능하도록 구성되고, 당해 웹 사이트에 로그인하여 중계 장치(303B)와 제2 서버 시스템(301B)의 접속을 확립하도록 구성되어도 좋다. 조작 입출력 장치(400)는, 당해 웹사이트 상에서 제2 서버 시스템(301B)에 각종 처리를 실행하게 하여 각 처리의 결과를 당해 어플리케이션의 화면에 출력하게 할 수 있다.
제2 서버 시스템(301B)은 각종 로봇(200), 주변 장치 및 제어 프로그램 데이터 등의 각종 데이터를 스토리지(301Bb)에 기억하기 때문에, 전력 제어 장치(302B), 중계 장치(303B) 및 조작 입출력 장치(400) 등은 많은 기억 용량을 가질 필요가 없다. 제2 서버 시스템(301B)은, 로봇(200)의 동작 제어 및 제어 프로그램 데이터의 수정 등의 많은 처리량을 필요로 하는 처리를 실행하기 때문에, 전력 제어 장치(302B), 중계 장치(303B) 및 조작 입출력 장치(400) 등은 높은 처리 능력을 가질 필요가 없다. 따라서, 각종 유저가 제2 서버 시스템(301B)을 사용하여 각종 로봇(200)을 동작시킬 수 있다.
또한, 변형예 2에서, 조작 입출력 장치(400)는, 통신 네트워크(N)를 통하여, 제2 서버 시스템(301B), 중계 장치(303B) 또는 이들의 양방과 데이터 등을 송수신하도록 구성되어도 좋다. 이에 따라서, 로봇 작업 에어리어(RA) 이외의 장소에 배치된 조작 입출력 장치(400)에 의한 로봇(200)의 조작이 가능하다.
또한, 제2 변형예에서, 제1 서버 시스템(102A)이 설치되지 않아도 좋다. 예를 들어, 시뮬레이션 단말(101A) 및 제1 서버 시스템(102A) 대신에, 실시예에 따른 시뮬레이션 컴퓨터(100)가 설치되어도 좋다. 시뮬레이션 컴퓨터(100)는, 통신 네트워크(N)를 통해서, 제2 서버 시스템(301B)과 데이터 통신 가능하게 접속되어도 좋다.
(그 밖의 실시예)
이상, 본 개시의 예시적인 실시예를 설명하였지만, 본 개시는 상기 실시예 및 변형예에 한정되지 않는다. 즉, 본 개시의 범위 내에서 각종 변형 및 개량이 가능하다. 예를 들어, 실시예 및 변형예에 각종 변형을 실시한 것, 및 다른 실시예 및 변형예의 구성 요소를 조합하여 구성하는 형태도 본 개시의 범위 내에 포함된다.
예를 들어, 실시예에 따른 시뮬레이션 시스템에서, 시뮬레이션 장치(140)는, 복수의 로봇(200) 각각을 제어하는 복수의 로봇 컨트롤러(300)와, 통신 네트워크(N)를 통해 데이터 통신 가능하게 접속되고, 각각의 로봇 컨트롤러(300)와 데이터 등을 송수신하도록 구성되어도 좋다.
실시예 및 변형예에 따른 시뮬레이션 시스템은 산업용 로봇(200) 및 그 로봇 모델을 대상으로 하지만, 이에 한정되지 않는다. 예를 들어, 시뮬레이션 시스템이 대상으로 하는 로봇은 서비스용 로봇, 의료용 로봇, 신약 개발용 로봇 및 휴머노이드와 같은 다른 유형의 로봇이라도 좋다. 서비스용 로봇은 간호, 의료, 청소, 경비, 안내, 구조, 조리, 상품 제공 등의 각종 서비스업에서 사용되는 로봇이다.
또한, 본 개시의 기술의 각 실시예는, 이하와 같이 들 수 있다. 본 개시의 일 실시예에 따른 시뮬레이션 장치는, 처리 회로 및 기억 장치를 포함하고, 상기 기억 장치는 일련의 목표의 동작을 나타내는 목표 동작 데이터 및 가상적인 로봇 모델과 관련된 데이터를 기억하고, 상기 처리 회로는, 상기 목표 동작 데이터에 따라 상기 로봇 모델을 동작시키고, 동작하는 상기 로봇 모델의 화상 데이터를 표시 장치에 출력하는 시뮬레이터 기능부와, 상기 목표 동작 데이터에 따른 상기 로봇 모델의 동작이고 또한 상기 표시 장치에 표시되는 화상에 나타나는 제1 동작에 대한 변경의 입력을 접수하고, 상기 변경이 반영된 동작인 제2 동작에서의 상기 로봇 모델의 상태를 나타내는 정보를 상기 목표 동작 데이터에 포함되는 상기 제1 동작의 정보와 관련지어 상기 기억 장치에 기억시키는 정보 처리부를 포함하고, 상기 시뮬레이터 기능부는 상기 로봇 모델에 상기 제1 동작을 수행시키는 경우에, 상기 제2 동작을 나타내는 화상 데이터를 상기 표시 장치에 출력한다.
상기 실시예에 따르면, 예를 들어, 목표 동작 데이터가 실기 로봇의 동작 결과에 기초하는 경우, 목표 동작 데이터에는, 실기 로봇의 강성, 관성 및 점성 등의 특성이 반영될 수 있다. 실기 로봇과 로봇 모델 사이에는, 특성의 차이가 존재하고, 따라서, 동일한 목표 동작 데이터에 따라 이러한 동작 간에 차이가 발생할 수 있다. 시뮬레이션 장치는 표시 장치의 표시 화상에 나타나고 또한 목표 동작 데이터에 따라 로봇 모델의 제1 동작으로 변경의 입력을 접수한다. 상기 변경이 반영된 로봇 모델의 제2 동작은, 예를 들어, 목표 동작 데이터에 따라 제1 동작을 수행하는 실기 로봇과 마찬가지의 동작이라도 좋다. 시뮬레이션 장치는, 로봇 모델에 제1 동작을 수행하게 하는 경우, 제2 동작을 나타내는 화상을 표시 장치로 표시하게 한다. 따라서, 시뮬레이션 장치는 목표 동작 데이터에 따라 로봇 모델을 동작시키면서, 실기 로봇과 마찬가지의 동작을 나타내는 로봇 모델의 화상을 표시 장치로 표시하게 할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 장치에서, 상기 시뮬레이터 기능부는, 상기 로봇 모델에 상기 제1 동작을 시키는 경우에, 상기 시뮬레이션 장치의 유저로부터 접수한 지령에 따라서, 상기 제2 동작을 나타내는 화상 데이터 또는 상기 제1 동작을 나타내는 화상 데이터를 선택적으로 출력하여도 좋다. 상기 실시예에 따르면, 시뮬레이션 장치는, 로봇 모델에 제1 동작을 시키는 경우, 제2 동작 및 제1 동작을 어느 하나를 나타내는 화상도 표시 장치로 표시하게 할 수 있다. 따라서, 시뮬레이션 장치는, 유저가 원하는 화상을 표시할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 장치에서, 상기 처리 회로는, 상기 로봇 모델 및 상기 로봇 모델의 가상적인 주변 환경 모델의 설정을 접수하고, 상기 로봇 모델 및 상기 주변 환경 모델을 구축하는 구축부와, 상기 로봇 모델 및 상기 주변 환경 모델을 이용한 상기 로봇 모델의 목표의 동작의 설정을 접수하고 상기 목표 동작 데이터를 생성하여 상기 기억 장치에 기억시키는 데이터 생성부와, 외부 디바이스로부터의 상기 목표 동작 데이터의 입력을 접수하고, 접수한 상기 목표 동작 데이터를 이용하여, 상기 기억 장치에 기억된 상기 목표 동작 데이터를 갱신하는 데이터 갱신부를 더 포함하여도 좋다.
상기 실시예에 따르면, 시뮬레이션 장치는, 로봇 모델 및 주변 환경 모델의 구축과, 당해 로봇 모델 및 주변 환경 모델을 이용한 목표 동작 데이터의 생성을 가능하게 한다. 나아가, 시뮬레이션 장치는 외부로부터의 목표 동작 데이터의 입력과, 당해 목표 동작 데이터를 이용한 로봇 모델 및 주변 환경 모델의 동작을 가능하게 한다. 예를 들어, 시뮬레이션 장치에 의해 생성된 목표 동작 데이터가 실기 로봇의 실기 제어 장치 등의 외부 디바이스에 의해 실행되는 과정에서 변경을 받는 경우, 시뮬레이션 장치는 변경 후의 목표 동작 데이터를 이용하여 기존의 목표 동작 데이터를 갱신할 수 있다. 나아가, 시뮬레이션 장치는, 갱신 후의 목표 동작 데이터를 이용하여 로봇 모델 및 주변 환경 모델의 구축을 가능하게 한다. 따라서, 시뮬레이션 장치는, 실기 로봇의 동작 결과가 반영된 로봇 모델 및 주변 환경 모델의 구축을 가능하게 한다.
본 개시의 일 실시예에 따른 시뮬레이션 장치에서, 상기 처리 회로는, 통신 네트워크를 통해서, 상기 로봇 모델에 대응하는 실기 로봇의 실기 제어 장치에 상기 목표 동작 데이터를 송신하는 데이터 송신부를 더 포함하고, 상기 데이터 갱신부는, 상기 통신 네트워크를 통해 상기 실기 제어 장치로부터 상기 목표 동작 데이터를 접수하고, 접수한 상기 목표 동작 데이터를 이용하여, 상기 기억 장치에 기억된 상기 목표 동작 데이터를 갱신하여도 좋다. 상기 실시예에 따르면, 시뮬레이션 장치는 실기 제어 장치와의 목표 동작 데이터의 송수신을 용이하게 한다. 시뮬레이션 장치는 실기 제어 장치에 의해 생성된 목표 동작 데이터를 이용하여 목표 동작 데이터의 갱신을 용이하게 한다.
본 개시의 일 실시예에 따른 시뮬레이션 장치에서, 상기 목표 동작 데이터는, 상기 로봇 모델에 대응하는 실기 로봇에 동작을 실행시키기 위한 교시 데이터이고, 상기 데이터 갱신부는 상기 실기 로봇의 실기 제어 장치에 의해 수정된 상기 교시 데이터의 입력을 접수하고, 수정 후의 상기 교시 데이터를 이용하여, 상기 기억 장치에 기억된 상기 교시 데이터를 갱신하여도 좋다. 상기 실시예에 따르면, 시뮬레이션 장치는 실기 제어 장치에 의해 갱신된 교시 데이터를 이용하여 로봇 모델의 시뮬레이션을 실행할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 장치에서, 상기 시뮬레이터 기능부는, 상기 목표 동작 데이터에 따라 상기 로봇 모델의 목표의 동작을 지령하기 위한 목표 동작 지령을 생성하고, 상기 목표 동작 지령에 대응하는 제어 지령에 따라 상기 로봇 모델을 동작시키고, 상기 제어 지령에 따라 동작하는 상기 로봇 모델의 상기 화상 데이터를 상기 표시 장치에 출력하는 시뮬레이션 실행부와, 상기 시뮬레이션 실행부로부터 상기 목표 동작 지령을 수취하고, 상기 목표 동작 지령에 따라 상기 로봇 모델의 각 부를 동작시키기 위한 상기 제어 지령을 생성하여 상기 시뮬레이션 실행부에 보내는 가상 로봇 컨트롤러와, 상기 시뮬레이션 실행부와 상기 가상 로봇 컨트롤러 사이에서, 일방으로부터 출력된 데이터를 타방에 이용 가능한 데이터로 변환하는 변환부를 포함하여도 좋다.
상기 실시예에 따르면, 예를 들어, 가상 로봇 컨트롤러는 실기 제어 장치에 대응하고, 실기 로봇의 형식 및 제조 메이커 등의 실기 로봇의 사양에 대응하여 설정될 수 있다. 변환부가 설치됨으로써, 시뮬레이션 실행부는 각종 가상 로봇 컨트롤러 각각에 대응하여 설정할 필요가 없다. 따라서, 시뮬레이션 장치는 각종 가상 로봇 컨트롤러에 따라 변환부의 설정을 받음으로써 기능하는 것이 가능하고, 범용성을 향상시킬 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 시스템은, 본 개시의 일 실시예에 따른 시뮬레이션 장치의 상기 처리 회로의 상기 시뮬레이터 기능부 및 상기 정보 처리부 및 상기 기억 장치의 기능을 포함하는 제1 서버 시스템과, 상기 표시 장치와, 상기 시뮬레이션 장치의 유저로부터 입력을 접수하는 입력 장치를 구비하는 단말 장치를 구비하고, 상기 제1 서버 시스템과 상기 단말 장치는, 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고, 상기 제1 서버 시스템은 상기 단말 장치에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성된다. 상기 실시예에 따르면, 단말 장치가 시뮬레이션 장치의 기능을 구비하지 않아도, 유저는 단말 장치를 이용하여 제1 서버 시스템에 액세스하여 로봇의 시뮬레이션을 수행할 수 있다. 예를 들어, 유저는 제1 서버 시스템보다 낮은 처리 능력을 가지는 단말 장치를 이용하여 로봇 시뮬레이션을 수행할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 시스템은, 복수의 상기 단말 장치를 구비하고, 상기 복수의 단말 장치는 상기 통신 네트워크를 통해 상기 제1 서버 시스템과 서로 데이터 통신 가능하게 접속되며, 상기 제1 서버 시스템은 상기 복수의 단말 장치 각각에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되어도 좋다. 상기 실시예에 따르면, 복수의 유저가 각각의 단말 장치를 이용하여 제1 서버 시스템에 액세스하여 로봇 시뮬레이션을 수행할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 시스템에서, 상기 제1 서버 시스템은, 상기 통신 네트워크를 통해서, 상기 로봇 모델에 대응하는 실기 로봇의 실기 제어 장치와 서로 데이터 통신 가능하게 접속되고, 상기 제1 서버 시스템은, 상기 실기 제어 장치에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되어도 좋다. 상기 실시예에 따르면, 제1 서버 시스템은, 통신 네트워크를 통해서, 상기 로봇 모델에 대응하는 실기 제어 장치와 정보를 송수신 할 수 있다. 예를 들어, 제1 서버 시스템은 실기 제어 장치와 목표 동작 데이터의 송수신을 수행할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 시스템에서, 상기 제1 서버 시스템은, 상기 통신 네트워크를 통해서, 실기 로봇의 실기 제어 장치의 연산 기능 및 기억 기능을 포함하는 제2 서버 시스템과 서로 데이터 통신 가능하게 접속되고, 상기 제1 서버 시스템은 상기 제2 서버 시스템에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되고, 상기 제2 서버 시스템은 상기 실기 로봇의 전력 제어 장치와, 상기 실기 로봇의 조작 입출력 장치와, 상기 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고, 상기 제2 서버 시스템은 상기 전력 제어 장치, 상기 조작 입출력 장치 및 상기 제1 서버 시스템에 대하여, 상기 실기 제어 장치의 연산 기능 및 기억 기능을 실현하도록 구성되어도 좋다.
상기 실시예에 따르면, 실기 제어 장치와 전력 제어 장치와 조작 입출력 장치 중 적어도 2개가 서로 근방에 배치되어 있지 않은 경우에도, 유저는 조작 입출력 장치를 이용하여 제2 서버 시스템에 액세스하여 실기 로봇을 동작시킬 수 있다. 나아가, 제1 서버 시스템은 통신 네트워크를 통해 제2 서버 시스템과 정보의 송수신을 수행할 수 있다.
본 개시의 일 실시예에 따른 시뮬레이션 시스템에서, 상기 제2 서버 시스템은, 복수의 상기 전력 제어 장치와, 복수의 상기 조작 입출력 장치와, 상기 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고, 상기 제2 서버 시스템은, 복수의 상기 실기 제어 장치의 연산 기능 및 기억 기능을 포함하고, 복수의 상기 전력 제어 장치, 복수의 상기 조작 입출력 장치 및 상기 제1 서버 시스템에 대하여, 복수의 상기 실기 제어 장치의 연산 기능 및 기억 기능을 실현하도록 구성되어도 좋다. 상기 실시예에 따르면, 복수의 유저가 각각의 조작 입출력 장치를 이용하여 제2 서버 시스템에 액세스하여, 복수의 로봇 중 대상으로 하는 로봇을 동작시킬 수 있다.
본 명세서에 개시된 요소의 기능은 개시된 기능을 실행하도록 구성되거나 또는 프로그램된 범용 프로세서, 전용 프로세서, 집적 회로, ASIC(Application-Specific Integrated Circuit), 종래의 회로 및/또는, 이들의 조합을 포함하는 회로 또는 처리 회로를 사용하여 실행할 수 있다. 프로세서는 트랜지스터 및 다른 회로를 포함하기 때문에, 처리 회로 또는 회로로 간주된다. 본 개시에서, 회로, 유닛 또는 수단은 열거된 기능을 실행하는 하드웨어이거나, 또는 열거된 기능을 실행하도록 프로그램된 하드웨어이다. 하드웨어는, 본 명세서에 개시되어 있는 하드웨어라도 좋고, 또는, 열거된 기능을 실행하도록 프로그램 또는 구성되어 있는 그 밖의 기지의 하드웨어라도 좋다. 하드웨어가 회로의 일종으로 고려되는 프로세서인 경우, 회로, 수단 또는 유닛은 하드웨어와 소프트웨어의 조합이며, 소프트웨어는 하드웨어 및/또는 프로세서의 구성에 사용된다.
상기에서 사용한 서수, 수량 등의 숫자는, 모두 본 개시의 기술을 구체적으로 설명하기 위해서 예시하는 것이며, 본 개시는 예시된 숫자에 한정되지 않는다. 또한, 구성 요소 간의 접속 관계는, 본 개시의 기술을 구체적으로 설명하기 위하여 예시한 것이고, 본 개시의 기능을 실현하는 접속 관계는 이에 한정되지 않는다.
본 개시는, 그 본질적인 특징의 사상으로부터 벗어나지 않고, 다양한 형태로 실시될 수 있도록, 본 개시의 범위는 명세서의 설명보다 첨부된 청구항에 의해 정의되기 때문에, 예시적인 실시예 및 변형예는 예시적인 것이며 한정적인 것은 아니다. 청구항 및 그 범위 내에 있는 모든 변경, 또는 청구항 및 그 범위의 균등물은, 청구항에 의해 포함되는 것으로 의도된다.
1, 1A, 1B: 시뮬레이션 시스템
101A: 시뮬레이션 단말(단말 장치)
102A: 제1 서버 시스템
110: 컴퓨터 장치
130: 제시 장치(표시 장치)
140: 시뮬레이션 장치
140a: 시뮬레이션 실행부
140b: 가상 로봇 컨트롤러
140c: 변환부
200: 로봇(실기 로봇)
300: 로봇 컨트롤러(실기 제어 장치)
301B: 제2 서버 시스템
302B: 전력 제어 장치
400: 조작 입력 장치
1403: 구축부
1404: 데이터 생성부
1405: 시뮬레이터 기능부
1406 데이터 송신부
1408: 데이터 갱신부
1409: 처리부(정보 처리부)
1410: 기억부
N: 통신 네트워크
W: 대상물

Claims (11)

  1. 시뮬레이션 장치로서,
    처리 회로와 기억 장치를 포함하고,
    상기 기억 장치는 일련의 목표의 동작을 나타내는 목표 동작 데이터와 가상적인 로봇 모델과 관련된 데이터를 기억하고,
    상기 처리 회로는,
    상기 목표 동작 데이터에 따라 상기 로봇 모델을 동작시키고, 동작하는 상기 로봇 모델의 화상 데이터를 표시 장치에 출력하는 시뮬레이터 기능부와,
    상기 목표 동작 데이터에 따른 상기 로봇 모델의 동작이고 또한 상기 표시 장치에 표시되는 화상에 나타나는 제1 동작으로 변경의 입력을 접수하고, 상기 변경이 반영된 동작인 제2 동작에서의 상기 로봇 모델의 상태를 나타내는 정보를, 상기 목표 동작 데이터에 포함되는 상기 제1 동작의 정보와 관련지어서 상기 기억 장치에 기억시키는 정보 처리부를 포함하고,
    상기 시뮬레이터 기능부는, 상기 로봇 모델에 상기 제1 동작을 시킬 경우에, 상기 제2 동작을 나타내는 화상 데이터를 상기 표시 장치에 출력하는 것을 특징으로 하는 시뮬레이션 장치.
  2. 제1항에 있어서,
    상기 시뮬레이터 기능부는, 상기 로봇 모델에 상기 제1 동작을 시킬 경우에, 상기 시뮬레이션 장치의 유저로부터 접수하는 지령에 따라서, 상기 제2 동작을 나타내는 화상 데이터 또는 상기 제1 동작을 나타내는 화상 데이터를 선택 가능하게 출력하는 것을 특징으로 하는 시뮬레이션 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 처리 회로는,
    상기 로봇 모델 및 상기 로봇 모델의 가상적인 주변 환경 모델의 설정을 접수하고, 상기 로봇 모델 및 상기 주변 환경 모델을 구축하는 구축부와,
    상기 로봇 모델 및 상기 주변 환경 모델을 이용한 상기 로봇 모델의 목표의 동작의 설정을 접수하고 상기 목표 동작 데이터를 생성하여 상기 기억 장치에 기억시키는 데이터 생성부와,
    외부 디바이스로부터의 상기 목표 동작 데이터의 입력을 접수하고, 접수한 상기 목표 동작 데이터를 이용하여, 상기 기억 장치에 기억된 상기 목표 동작 데이터를 갱신하는 데이터 갱신부를 더 포함하는 것을 특징으로 하는 시뮬레이션 장치.
  4. 제3항에 있어서,
    상기 처리 회로는, 통신 네트워크를 통해서, 상기 로봇 모델에 대응하는 실기 로봇의 실기 제어 장치에 상기 목표 동작 데이터를 송신하는 데이터 송신부를 더 포함하고,
    상기 데이터 갱신부는, 상기 통신 네트워크를 통해서 상기 실기 제어 장치로부터 상기 목표 동작 데이터를 접수하고, 접수한 상기 목표 동작 데이터를 이용하여, 상기 기억 장치에 기억된 상기 목표 동작 데이터를 갱신하는 것을 특징으로 하는 시뮬레이션 장치.
  5. 제3항 또는 제4항에 있어서,
    상기 목표 동작 데이터는, 상기 로봇 모델에 대응하는 실기 로봇에 동작을 실행시키기 위한 교시 데이터이고,
    상기 데이터 갱신부는, 상기 실기 로봇의 실기 제어 장치에 의해 수정된 상기 교시 데이터의 입력을 접수하고, 수정 후의 상기 교시 데이터를 이용하여, 상기 기억 장치에 기억된 상기 교시 데이터를 갱신하는 것을 특징으로 하는 시뮬레이션 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 시뮬레이터 기능부는,
    상기 목표 동작 데이터에 따라 상기 로봇 모델의 목표의 동작을 지령하기 위한 목표 동작 지령을 생성하고, 상기 목표 동작 지령에 대응하는 제어 지령에 따라 상기 로봇 모델을 동작시키고, 상기 제어 지령에 따라 동작하는 상기 로봇 모델의 상기 화상 데이터를 상기 표시 장치에 출력하는 시뮬레이션 실행부와,
    상기 시뮬레이션 실행부로부터 상기 목표 동작 지령을 수취하고, 상기 목표 동작 지령에 따라 상기 로봇 모델의 각 부를 동작시키기 위한 상기 제어 지령을 생성하여 상기 시뮬레이션 실행부에 보내는 가상 로봇 컨트롤러와,
    상기 시뮬레이션 실행부와 상기 가상 로봇 컨트롤러 사이에서, 일방으로부터 출력된 데이터를 타방에 이용 가능한 데이터로 변환하는 변환부를 포함하는 것을 특징으로 하는 시뮬레이션 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 따른 시뮬레이션 장치의 상기 처리 회로의 상기 시뮬레이터 기능부 및 상기 정보 처리부, 및 상기 기억 장치의 기능을 포함하는 제1 서버 시스템과,
    상기 표시 장치와, 상기 시뮬레이션 장치의 유저로부터 입력을 접수하는 입력 장치를 구비하는 단말 장치를 구비하고,
    상기 제1 서버 시스템과 상기 단말 장치는, 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고,
    상기 제1 서버 시스템은, 상기 단말 장치에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되는 것을 특징으로 하는 시뮬레이션 시스템.
  8. 제7항에 있어서,
    복수의 상기 단말 장치를 구비하고,
    상기 복수의 단말 장치는 상기 통신 네트워크를 통해 상기 제1 서버 시스템과 서로 데이터 통신 가능하게 접속되고,
    상기 제1 서버 시스템은 상기 복수의 단말 장치 각각에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되는 것을 특징으로 하는 시뮬레이션 시스템.
  9. 제7항 또는 제8항에 있어서,
    상기 제1 서버 시스템은, 상기 통신 네트워크를 통해서, 상기 로봇 모델에 대응하는 실기 로봇의 실기 제어 장치와 서로 데이터 통신 가능하게 접속되고,
    상기 제1 서버 시스템은 상기 실기 제어 장치에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되는 것을 특징으로 하는 시뮬레이션 시스템.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 서버 시스템은, 상기 통신 네트워크를 통해서, 실기 로봇의 실기 제어 장치의 연산 기능 및 기억 기능을 포함하는 제2 서버 시스템과 서로 데이터 통신 가능하게 접속되고,
    상기 제1 서버 시스템은 상기 제2 서버 시스템에 대하여 상기 시뮬레이션 장치로서 기능하도록 구성되고,
    상기 제2 서버 시스템은 상기 실기 로봇의 전력 제어 장치와, 상기 실기 로봇의 조작 입출력 장치와, 상기 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고,
    상기 제2 서버 시스템은 상기 전력 제어 장치, 상기 조작 입출력 장치 및 상기 제1 서버 시스템에 대하여 상기 실기 제어 장치의 연산 기능 및 기억 기능을 실현하도록 구성되는 것을 특징으로 하는 시뮬레이션 시스템.
  11. 제10항에 있어서,
    상기 제2 서버 시스템은 복수의 상기 전력 제어 장치와, 복수의 상기 조작 입출력 장치와, 상기 통신 네트워크를 통해 서로 데이터 통신 가능하게 접속되고,
    상기 제2 서버 시스템은 복수의 상기 실기 제어 장치의 연산 기능 및 기억 기능을 포함하고, 복수의 상기 전력 제어 장치, 복수의 상기 조작 입출력 장치 및 상기 제1 서버 시스템에 대하여, 복수의 상기 실기 제어 장치의 연산 기능 및 기억 기능을 실현하도록 구성되는 것을 특징으로 하는 시뮬레이션 시스템.
KR1020237008797A 2020-08-28 2021-08-30 시뮬레이션 장치 및 시뮬레이션 시스템 KR20230048430A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020144512A JP7442413B2 (ja) 2020-08-28 2020-08-28 シミュレーション装置及びシミュレーションシステム
JPJP-P-2020-144512 2020-08-28
PCT/JP2021/031659 WO2022045320A1 (ja) 2020-08-28 2021-08-30 シミュレーション装置及びシミュレーションシステム

Publications (1)

Publication Number Publication Date
KR20230048430A true KR20230048430A (ko) 2023-04-11

Family

ID=80355217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237008797A KR20230048430A (ko) 2020-08-28 2021-08-30 시뮬레이션 장치 및 시뮬레이션 시스템

Country Status (5)

Country Link
US (1) US20240037294A1 (ko)
JP (1) JP7442413B2 (ko)
KR (1) KR20230048430A (ko)
CN (1) CN115997182A (ko)
WO (1) WO2022045320A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007260834A (ja) 2006-03-28 2007-10-11 Japan Aerospace Exploration Agency オフセット・ロボット総合管理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0929673A (ja) * 1995-07-10 1997-02-04 Mitsubishi Heavy Ind Ltd マニピュレータ制御装置
JP2001100834A (ja) 1999-09-29 2001-04-13 Nissan Motor Co Ltd ロボット教示データの作成装置およびその方法
JP7117237B2 (ja) 2018-12-27 2022-08-12 川崎重工業株式会社 ロボット制御装置、ロボットシステム及びロボット制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007260834A (ja) 2006-03-28 2007-10-11 Japan Aerospace Exploration Agency オフセット・ロボット総合管理システム

Also Published As

Publication number Publication date
US20240037294A1 (en) 2024-02-01
CN115997182A (zh) 2023-04-21
JP2022039471A (ja) 2022-03-10
JP7442413B2 (ja) 2024-03-04
WO2022045320A1 (ja) 2022-03-03

Similar Documents

Publication Publication Date Title
US11305431B2 (en) System and method for instructing a robot
Guhl et al. Concept and architecture for programming industrial robots using augmented reality with mobile devices like microsoft HoloLens
JP7281349B2 (ja) 遠隔操作システム
Wang et al. Real-time process-level digital twin for collaborative human-robot construction work
CN112847336B (zh) 动作学习方法、装置、存储介质及电子设备
KR102518766B1 (ko) 데이터 생성 장치, 데이터 생성 방법, 데이터 생성 프로그램 및 원격 조작 시스템
Gkournelos et al. Model based reconfiguration of flexible production systems
US10786898B2 (en) Method for the automatic configuration of an external control system for the open-loop and/or closed-loop control of a robot system
JP6905651B1 (ja) ロボットシステム及びワークの3次元モデルの形成方法
KR20230048430A (ko) 시뮬레이션 장치 및 시뮬레이션 시스템
Villaverde et al. Passive internet-based crane teleoperation with haptic aids
Sunesson et al. PREDICTOR: A Physical emulatoR enabling safEty anD ergonomICs evaluation and Training of physical human-rObot collaboRation
CN116600952A (zh) 控制装置、机器人系统以及学习装置
US20220283568A1 (en) System and method for controlling at least one machine, more particularly a collective of machines
JP2021045816A (ja) 冗長自由度ロボットアームの操作支援装置、方法及びプログラム
KR101858108B1 (ko) 로봇을 위한 동작 시뮬레이션 장치 및 방법
US20230166403A1 (en) An industrial robot system
WO2023068351A1 (ja) ロボットデータ処理サーバ及び軌跡データ算出方法
Bonci et al. ROS 2 for enhancing perception and recognition in collaborative robots performing flexible tasks
Kousi et al. Dynamic, Model-based Reconfiguration for Flexible Robotic Assembly Lines
KR102387778B1 (ko) 매장 픽업 서비스를 제공하기 위한 로봇 시스템 및 그 방법
WO2022138724A1 (ja) ロボットシステム及びロボット作業方法
Nahari Creating a Data Acquisition Platform for Robot Skill Training
CN117245648A (zh) 一种机器人虚拟建模与触觉控制方法及装置
Ribeiro et al. RAMBO—Robotic Anthropomorphic Manipulator for Bimanual Operations