KR20240083288A - 로봇 제어용 코어엔진을 이용한 모션 제어 시스템 - Google Patents

로봇 제어용 코어엔진을 이용한 모션 제어 시스템 Download PDF

Info

Publication number
KR20240083288A
KR20240083288A KR1020220167078A KR20220167078A KR20240083288A KR 20240083288 A KR20240083288 A KR 20240083288A KR 1020220167078 A KR1020220167078 A KR 1020220167078A KR 20220167078 A KR20220167078 A KR 20220167078A KR 20240083288 A KR20240083288 A KR 20240083288A
Authority
KR
South Korea
Prior art keywords
core engine
layer
robot
control unit
control system
Prior art date
Application number
KR1020220167078A
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 KR1020220167078A priority Critical patent/KR20240083288A/ko
Publication of KR20240083288A publication Critical patent/KR20240083288A/ko

Links

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/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Numerical Control (AREA)

Abstract

본 발명은 로봇 제어용 코어엔진을 이용한 모션 제어 시스템에 관한 것으로, 제1 내지 제5 레이어를 포함하고, 상호 인접한 레이어간에만 통신 가능한 것을 특징으로 하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
본 발명의 실시 예에 따르면, 실시간성이 필요한 로봇 제어 시스템에 있어서, 동일한 하드웨어 제어에 대한 여러 독립적 프로세스들이 공존할 수 있으면서도, 이에 따른 로봇의 동작이 안정적으로 제어될 수 있고, 상호 충돌가능성을 줄일 수 있고 강인한 실시간성을 확보할 수 있으며, 각각의 장치, 장치 컨트롤부, 쉐어 메모리 및 작업부들 간에 코어엔진을 제공하여, 통제된 시스템을 통해서 안정화되고 체계적인 시스템을 유지할 수 있는 효과가 있다.
한편, 본 명세서는 인천 연구개발 활성화 사업(과제번호 : 2022-연구개발성과사업화-01)의 도움을 받아 작성 되었다.

Description

로봇 제어용 코어엔진을 이용한 모션 제어 시스템{MOTION CONTROL SYSTEM USING CORE ENGINE FOR ROBOT CONTROL}
본 발명은 로봇 제어용 코어엔진을 이용한 모션 제어 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 정확한 실시간 처리가 가능하며, 개발 및 디버깅이 용이하고, 하드웨어적으로 강인한 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템 및 이를 이용한 실시간 로봇 모션 제어 시스템에 관한 것이다.
산업계는 노동력 부족 대비 및 생산성 향상 등을 목적으로 다양한 지능형 로봇을 산업현장에 적극 도입하고 있다. 이에 따라 국내 지능형 로봇의 문제점 개선에 대한 요구가 끊임없이 이어지고 있다. 특히, ROS 기반 솔루션의 한계와 불안정한 동작 제어에 대한 요구가 가장 큰 상황이며, 이 외에도 로봇 조작의 어려움과 낮은 내구성을 극복하기 위한 시도가 계속되고 있다.
본 발명에서는 이러한 종래 로봇의 한계를 극복하고 시장의 요구를 충족하기 위해, 다양한 기구학적 형상의 로봇에 확장 가능하도록 로봇의 동작이 안정적으로 제어될 수 있는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템에 대해 개시하고자 한다.
본 발명의 기술적 과제는 기구학적 형상의 로봇에 확장 가능하도록 개발된 로봇의 동작이 안정적으로 제어될 수 있는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공하는 것이다.
본 발명은 로봇 제어용 코어엔진을 이용한 모션 제어 시스템에 있어서, 하나 이상의 제어 대상 장치를 포함하는 제1 레이어, 제1 레이어의 상위단에서 장치를 직접적으로 제어하는 장치 컨트롤부를 포함하는 제2 레이어, 제2 레이어의 상위단에서 장치 컨트롤부와 연결되는 쉐어 메모리를 포함하는 제3 레이어, 제3 레이어의 상위단에서 쉐어 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 작업부들을 포함하는 제4 레이어 및 제4 레이어의 상위단에서 사용자 명령에 따라 하나 이상의 작업부들을 제어하는 제5 레이어를 포함하고,
쉐어 메모리는 제2 레이어의 장치 컨트롤부의 동작을 위한 정보를 저장하는 하드웨어 추상화 자료부 및 제4 레이어의 작업부들간 쉐어되는 작업부 쉐어 데이터를 저장하는 사용자 정의 자료부를 포함하는 것을 특징으로 하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
또한, 제1 내지 제5 레이어들은 상호 인접한 계층간에만 통신 가능한 것을 특징으로 하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
또한, 제2 레이어의 장치 컨트롤부는, 시스템의 백그라운드에서 상주하며, 쉐어 메모리로부터 획득되는 레퍼런스로부터 장치를 제어하기 위한 제어 신호를 제1 레이어로 전달하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
또한, 장치 컨트롤부는, 장치 제어 시스템과 연결된 운영 체제상에, 하나 이상의 작업부들과 동기화된 제어 주기를 갖는 실시간 쓰레드를 생성하는 모듈인 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
또한, 제4 레이어의 작업부들은 각각 시스템과 연결된 실시간 운영체제상에 실시간 쓰레드를 생성하고, 실시간 쓰레드의 동작 주기는 장치 컨트롤부와 동기화되는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
본 발명의 실시 예에 따르면, 실시간성이 필요한 로봇 제어 시스템에 있어서, 동일한 하드웨어 제어에 대한 여러 독립적 프로세스들이 공존할 수 있으면서도, 이에 따른 로봇의 동작이 안정적으로 제어될 수 있다.
이에 따른 본 발명의 실시 예에 따르면, 각 작업부를 독립적으로 개발하더라도, 쉐어 메모리를 통해 레퍼런스의 합성 및 선별이 가능하게 되어, 상호 충돌가능성을 줄일 수 있고 강인한 실시간성을 확보할 수 있다.
또한, 본 발명의 실시 예에 따르면, 각각의 장치, 장치 컨트롤부, 쉐어 메모리 및 작업부들 간에 코어엔진을 제공하여, 통제된 시스템을 통해서 안정화되고 체계적인 시스템을 유지할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 3 내지 도 4는 본 발명의 실시 예에 따른 쉐어 메모리 및 시스템간 관계를 설명하기 위한 도면들이다.
도 5는 본 발명의 다른 일 실시 예에 따른 로봇 제어 시스템의 제어 동작을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
본 발명의 목적 및 효과는 하기의 설명에 의해서 자연스럽게 이해되거나 보다 분명해질 수 있으며, 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다.
본 발명의 목적, 특징 및 장점은 다음의 상세한 설명을 통하여 보다 분명해질 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 전체 시스템은, 하나 이상의 장치(100), 장치 컨트롤부(200), 쉐어 메모리(300), 하나 이상의 작업부(400) 및 사용자 시스템(500)을 포함한다.
장치(100)는 최종적으로 로봇 제어 시스템의 동작을 수행하는 하나 이상의 구동 장치를 포함할 수 있다. 구동 장치는 하드웨어 장치 또는 프로그램 장치를 포함할 수 있다.
또한, 장치(100)는 장치 컨트롤부(200)로부터 수신되는 제어 신호에 따라 제어되고, 상기 장치 컨트롤부(200)로 센서 데이터와 같은 다양한 데이터를 출력할 수 있다. 또한, 여기서 장치(100)라는 용어는 하드웨어에 한정되는 것이 아니라, 실제 하드웨어 장치를 구동하기 위한 프로그램 드라이버를 포함하는 개념으로 이용될 수 있다. 따라서, 각 장치(100)는 장치 컨트롤부(200)와 물리적 및 프로그램적으로도 연결될 수 있다.
그리고, 각 장치(100)는 장치 컨트롤부(200)와의 통신 네트워크를 형성할 수 있다. 통신 네트워크는 시스템 안정성을 위해 CAN(Controller Area Network)방식의 프로토콜을 이용한 시스템 네트워크를 형성할 수 있다.
그리고, 장치 컨트롤부(200)는 상기 복수의 작업부(400)들로부터 생성되어 상기 쉐어 메모리에 저장된 각각의 레퍼런스로부터, 하나 이상의 장치(100) 제어를 위한 하드웨어 제어 데이터를 획득하고, 상기 하드웨어 제어 데이터로부터 선택되는 상기 하나 이상의 장치(100)로 상기 레퍼런스에 따른 제어 신호를 전달한다.
장치 컨트롤부(200)는 로봇 제어 시스템의 제어를 위한 운영 시스템상에 항상 상주할 수 있으며, 백그라운드에서 실행될 수 있다.
장치 컨트롤부(200)는 상기 쉐어 메모리(300)를 참조하여 장치(100)를 유일하게 직접적으로 통신할 수 있고, 상기 통신 채널을 통해 제어 신호를 전달하거나 센서 신호를 수신할 수 있다.
또한, 상기 장치 컨트롤부(200)는 상기 운영 시스템상에 생성된 실시간 쓰레드(thread)를 포함할 수 있다. 그리고, 상기 쓰레드는 시스템의 모션 생성 동작 주기와 동기화됨으로써 실시간 처리를 가능하게 한다. 또한, 장치 컨트롤부(200)에는 데이터 리딩 및 변환 등의 처리를 위한 비실시간 쓰레드를 더 포함할 수 있다.
그리고, 상기 복수의 작업부(400)들은 상호 독립적인 프로세스를 갖는 독립적인 프로그램 모듈로 구현될 수 있다.
상기와 같은 작업부(400)들은 기능적으로 프로세스가 분리되어 있기 때문에, 힙(heap), 데이터(data) 및 스태틱(static) 메모리를 쉐어하지 않고, 각각의 쓰레드를 생성하여 동작할 수 있으며, 상호 쉐어를 위한 필요 데이터는 각각 쉐어 메모리(300)로 제공할 수 있으며, 이에 따른 상호 충돌 없이 유기적인 처리가 가능하게 되며, 프로그램 개발 및 처리가 용이하게 된다.
특히, 본 발명의 실시 예에 따르면, 상기 복수의 작업부(400)들은 상호 독립된 프로세스의 동작에 따라, 상기 쉐어 메모리(300)로부터 센서 데이터를 본 발명의 실시 예에 따르면, 각각의 작업부(400)들은 각각 정의된 프로세스에 따라 쉐어 메모리(300)의 하드웨어 추상화 데이터 및 사용자 정의 데이터를 참조하고, 이에 기초하여 생성되는 레퍼런스 데이터를 쉐어 메모리(300)의 하드웨어 추상화 데이터에 저장할 수 있다.
여기서, 사용자 정의 데이터는 작업부(400)간 정보 쉐어를 위한 쉐어 데이터 및 사용자 정의 가능한 기타 시스템 구동을 위한 다양한 데이터를 포함할 수 있다.
그리고, 하드웨어 추상화 데이터는 장치(100)를 제어하기 위해 추상화된 레퍼런스, 센서 데이터, 모션 오너 변수 및 명령 데이터를 포함할 수 있다. 그리고, 장치 컨트롤부(200)는 상기 하드웨어 추상화 데이터와 하드웨어 데이터베이스(250)에 미리 저장된 하드웨어 정보를 이용하여, 각 장치(100)별 제어 신호를 생성할 수 있다.
이에 따라, 장치 컨트롤부(200)는 상기 쉐어 메모리(300)로부터 추출되는 하드웨어 추상화 데이터를 이용하여, 제어 대상 장치(100)를 식별하고, 제어 대상 장치(100)들에 대한 제어 신호를 생성하여, 제어 대상 장치(100)로 상기 레퍼런스에 따른 제어 신호를 출력할 수 있다.
그리고, 강인한 실시간성의 보장을 위해, 각 작업부(400)들의 처리 주기는 시스템의 모션 정보를 처리하는 동작 주기보다 짧을 필요성이 있다. 이에 따라, 상기 작업부(400)들이 센서 데이터로부터 레퍼런스를 생성하고, 쉐어 메모리(300)를 통해 상기 장치 컨트롤부(200)가 레퍼런스로부터 제어 신호를 생성 및 출력하며, 센서 데이터를 갱신하는 시간은 상기 시스템의 제1 동작 주기 내에 포함될 수 있다. 따라서, 상기 일련의 동작들은 상기 제1 동작 주기 내에 모두 처리될 수 있다.
한편, 사용자 시스템(500)은 작업부(400) 및 장치 컨트롤부(200)의 제어 및 모니터링을 위한 유저 인터페이스를 제공할 수 있다. 또한, 사용자 시스템(500)은 작업부(400)의 제어를 위한 미들웨어를 포함할 수도 있으며, 기타 외부 시스템과 연결될 수 있는 다양한 인터페이스를 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법을 설명하기 위한 흐름도이다.
그리고, 도 3 내지 도 4는 본 발명의 실시 예에 따른 쉐어 메모리 및 시스템간 관계를 설명하기 위한 도면들이다.
이하에서는 상기 도 1 내지 도 4를 참조하여 본 발명의 로봇 제어 시스템과 그 제어 방법에 대해 보다 구체적으로 설명하도록 한다.
도 1를 참조하면, 본 발명의 실시 예에 따른 로봇 제어 시스템의 제어 방법은 먼저 상호 독립적인 프로세스를 갖는 복수의 작업부(400)들의 동작이 수행된다(S101).
그리고, 장치 컨트롤부(200)는 쉐어 메모리(300)에 저장된 레퍼런스로부터 하드웨어 추상화 데이터를 획득한다(S103).
그리고, 장치 컨트롤부(200)는 하드웨어 추상화 데이터로부터 하드웨어 제어를 위한 제어 신호를 생성하며(S107), 생성된 제어 신호를 하나 이상의 장치(100)들로 전달한다(S109).
한편, 장치 컨트롤부(200)는 센서에 대응하는 장치(100)들로부터 센서 데이터를 수신하고(S111), 상기 수신된 센서 데이터를 쉐어 메모리(300)에 업데이트한다(S113).
그리고, 상기 일련의 동작 단계들은 로봇 제어 시스템의 실시간 동작 주기에 대응하는 제1 주기 내에 모두 처리될 수 있어, 실시간성을 보장할 수 있다.
이와 같은 프로세스를 위해, 도 3에 도시된 바와 같이, 각각의 작업부(400)들과 장치 컨트롤부(200)는 쉐어 메모리(300)를 이용하여 데이터 교환 및 전달 처리를 수행할 수 있다.
각 작업부(400)들의 동작에 따라, 쉐어 메모리(300)에는 각 장치(100)에 대응하는 레퍼런스들이 저장될 수 있고, 장치 컨트롤부(200)는 레퍼런스를 획득하여 제어 신호를 출력하는데 이용할 수 있다.
이와 같은 복수의 작업부(400)와 장치 컨트롤부(200)는 쉐어 메모리(300)를 중심으로 멀티 작업부 시스템을 구성할 수 있다. 이에 따라 독립된 일을 수행하는 각각의 파트를 여러 개발자들이 분리해서 개발할 수도 있고, 협업할 수도 있는 로봇 제어 시스템 개발 환경에서의 유리한 구조를 가질 수 있다.
본 발명의 실시 예에 따른 작업부(400)를 이용하면, 개발자들은 프로세스 동시 개발 모델로부터 독립된 개발 공간을 보장 받으면서도, 쉐어 메모리(300)를 이용함으로써 다른 작업부(400)의 연산 결과물과 상호 작용하거나 데이터를 주고 받을 수 있게 된다.
한편, 도 4에 도시된 바와 같이, 쉐어 메모리(300)상에는 하드웨어 추상화 데이터 및 사용자 정의 데이터가 포함될 수 있다.
하드웨어 추상화 데이터는 센서 데이터, 레퍼런스 데이터, 모션 오너 (motion own-er) 및 명령 데이터를 포함할 수 있으며, 장치 컨트롤부(200)는 쉐어 메모리(300)의 상기 하드웨어 추상화 데이터 영역에만 접근할 수 있다.
이에 따라, 장치 컨트롤부(200)는 쉐어 메모리(300)의 하드웨어 추상화 데이터 영역에 접근하여 장치(100)로부터 수신한 센서 데이터를 업데이트하거나, 갱신된 레퍼런스 데이터를 획득하여 장치(100)에 대한 제어 신호를 생성할 수 있다.
여기서, 하드웨어 추상화 데이터는 로봇 장치 제어에 관한 세부적인 데이터를 추상화하여 변환된 데이터 포맷을 가질 수 있으며, 장치 컨트롤부(200)는 이를 실제 하드웨어 제어 신호로 변환하여 적절한 장치(100)들로 전달할 수 있다.
이에 따라, 작업부(400) 개발자나 사용자는 하드웨어에 대한 깊은 이해 없이도 제어를 용이하게 할 수 있다. 개발자나 사용자자는 쉐어 메모리(300)를 통해서 추상화된 하드웨어 입력 정보를 레퍼런스로 전달하고, 장치 컨트롤부(200)는 상기 하드웨어 추상화 데이터로부터 장치(100) 제어를 위한 저수준 제어 신호를 생성할 수 있다.
또한 하드웨어의 확장성과 하드웨어의 변경 및 수정이 있을 수 있으므로, 장치 컨트롤부(200)는 전술한 하드웨어 데이터베이스(250)를 이용하여 상기 제어 신호를 생성하는데 필요한 하드웨어 정보를 관리할 수 있다. 하드웨어 정보는 예를 들어, 장치(100)들의 리스트, 관절 모터 정보(감속비, 엔코더 펄스, 구동기 채널 수 등) 또는 통신 규약 등을 포함할 수 있다.
장치 컨트롤부(200)는 상기 하드웨어 데이터베이스(250)를 로드하여 구동 대상 장치(100)의 하드웨어 정보를 파악할 수 있고, 이에 따라, 이 구동 대상 장치(100)의 제어를 위한 최적의 제어 신호를 생성할 수 있다. 또한 하드웨어의 변경이 있거나 새로운 구성의 하드웨어를 사용하더라도, 하드웨어 데이터베이스(250)의 수정만으로도 적용 가능하게 되므로, 하드웨어 변화에 강인하고, 하드웨어가 확장 가능한 특성을 제공할 수 있다.
그리고, 하드웨어 추상화 데이터는 레퍼런스 데이터, 센서 데이터, 모션 오너 및 명령 데이터를 포함할 수 있다.
여기서, 상기 레퍼런스 데이터는 각 작업부(400)에서 연산 결과에 따라 업데이트될 수 있으며, 장치 컨트롤부(200)가 각 장치(100)들을 제어하기 위한 현재 스텝에서의 목표 값을 포함할 수 있다.
또한, 센서 데이터는 장치 컨트롤부(200)가 각 장치(100)들로부터 수신되는 측정 데이터를 포함할 수 있다. 여기서 측정 데이터는 예를 들어, 관절 장치의 엔코더 값, 센싱 데이터를 포함하는 현재 스텝에서의 상태 정보를 포함할 수 있다.
한편, 명령 데이터는 장치 컨트롤부(200) 및 작업부(400)를 상위 시스템 레벨에서 제어하기 위한 명령 정보를 포함할 수 있으며, 명령 대상 프로세스 정보 및 매개변수 정보를 포함할 수 있다.
한편, 다른 쉐어 메모리(300)의 데이터들은 작업부(400)가 리드하는 값이기 때문에 혼동의 여지가 없지만, 레퍼런스 데이터의 경우에는 동일한 관절 장치(100)에 대해 각 작업부(400)마다 출력하는 값들이 다를 수 있다. 이에 따른 충돌 여지를 제거하기 위해, 쉐어 메모리(300)는 모션 오너(owner) 정보를 포함할 수 있다.
도 5는 본 발명의 다른 일 실시 예에 따른 로봇 제어 시스템의 제어 동작을 설명하기 위한 흐름도이다.
일반적으로 로봇을 사용한 실제 실험에서 문제가 발생하게 되면 일반적으로 로봇을 다시 처음부터 구동시켜야 한다. 모바일 플랫폼의 경우에는 로봇 초기화 과정이 간단하지만, 휴머노이드와 같이 다관절 시스템이나 지면에서 초기화를 수행하기 어렵고 크레인 등을 이용해서 공중에서 초기화를 해야 하는 경우에는 전체적인 초기화 과정이 매우 번거롭고 많은 시간을 소요하게 된다.
따라서, 도 5에 도시된 바와 같이, 본 발명의 실시 예에 따른 장치 컨트롤부(200)는 이러한 로봇을 초기화 하는 과정이 없이 디버깅을 하고 다시 로봇을 테스트할 수 있다.
이를 위해, 먼저 시스템 초기화가 수행되고(S201), 각각의 상호 독립적 프로세스를 갖는 복수의 작업부(400)들이 동작한다(S202).
이후, 오류가 발생된 특정 작업부가 존재하는 경우(S203), 상기 오류 발생된 작업부의 동작은 중단되고, 장치 컨트롤부(200) 또는 다른 작업부(400)가 상기 모션 오너 변수를 다른 작업부로 변경한다(S205).
이에 따라, 사용자가 작업부(400)를 통해 모션 알고리즘을 테스트하다가 문제가 발행하면 단지 다른 작업부(400) 또는 장치 컨트롤부(200)로 모션 오너를 넘겨주고, 중단된 작업부(400)에 대한 코드를 수정할 수 있다.
그리고 작성한 코드를 컴파일하여 디버깅이 완료된 경우(S207), 다시 모션 오너 변수를 원래의 작업부(400)로 스위치할 수 있다(S209).
이와 같이, 개발자는 모션 오너를 가져온 이후에 실험을 계속할 수 있다. 이는 결과적으로 개발을 가속시킬 수 있고, 사용자의 입장에서 이를 좀 더 활용하여 다른 특수한 알에서 로봇의 관절 레퍼런스를 지속적으로 관찰하여 충돌이 일어나는 것을 감지하여 충돌이 발생할 경우에 모션 오너를 스위칭하여 로봇을 안전하게 실험하도록 할 수도 있게 되는 효과를 갖는다.
본 발명의 실시 예에 따르면, 범용적으로 로봇 프로그램이 쓰이기 위해서는 단 하나의 로봇 플랫폼만을 동작시킬 수 있는 프로그램이 아닌 여러 다양한 형태의 로봇을 동작시킬 수 있어야 하기 때문에 확장 가능하면서 로봇 하드웨어의 변화에 쉽게 적응할 수 있어야 하며, 실제적인 로봇 플랫폼뿐만 아니라 로봇 시뮬레이터도 같은 프로그램으로도 제어될 필요성이 있다.
이에 따라, 본 발명의 실시 예에 따른 로봇 제어 시스템은 미국의 ROS(Robot Operation System)나, 한국의 OPRoS(Open Platform for Robotics Services)와 같은 다른 유용한 로봇 미들웨어들의 기능들을 이용할 수 있는 범융 시스템을 구축할 수 있다. 이에 따라 클라우드 로봇 체계상의 프로그램에서 제공하는 여러 가지 비전 솔루션이나 로봇의 태스크를 관리하는 기능들을 본 발명의 시스템에 쉽게 적용할 수 있는 환경을 제공할 수 있다.
이를 위해, 로봇 제어 시스템의 각 작업부(400)들이 모션을 생성하면, 이에 따라 각 로봇 장치(100)들을 제어하는 장치 컨트롤부(200)가 동작하여 전체 시스템의 실시간 제어를 제공할 수 있다. 또한, 상위의 다른 로봇 프로그램들에서 모션들 간의 연결 혹은 판단 기준 등을 제시하거나 여러 개의 로봇들을 동시에 운용할 수도 있다.
상기와 같이 다른 일반적 외부 프로세스에서, 본 발명의 실시 예에 따른 복수 작업부에 접근하거나 임의의 작업부를 생성하여, 독립적으로 동작시킬 수 있는 환경을 제공하기 위해, 로봇 제어 시스템은 각 데이터 처리모듈들이 계층(layer)화된 구조를 포함할 수 있다.
그리고, 각 계층화된 구조는 상기 로봇 제어 시스템과 연결되거나, 상기 로봇 제어 시스템을 탑재하거나 설치된 실시간 운영 시스템(RTOS)상에서 프로그램 또는 하드웨어적으로 구현될 수 있다. 또한, 각 계층간 동작 주기 동가화를 위해, 실시간 운영 시스템은 글로벌한 타이머 인터럽트(Timer Interupt)를 제 4계층 및 제2 레이어로 제공할 수 있다.
이와 같이 실시간 운영 시스템상에서 구현가능한 본 발명의 실시 예에 따른 로봇 제어 시스템은 로봇 플랫폼 또는 시뮬레이터에 포함된 하나 이상의 제어 대상 장치(joint 또는 Sensor)를 포함하는 제1 레이어와, 상기 제1 레이어의 상위단에서 상기 장치를 직접적으로 제어하는 장치 컨트롤부를 포함하는 제2 레이어와, 상기 제2 레이어의 상위단에서 상기 장치 컨트롤부와 연결되는 쉐어 메모리를 포함하는 제3 레이어와, 상기 제3 레이어의 상위단에서 상기 쉐어 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 작업부들을 포함하는 제4 레이어; 및 상기 제4 레이어의 상위단에서 사용자 명령에 따라 상기 하나 이상의 작업부들을 제어하는 제5 레이어를 포함하는 코어엔진으로 구성될 수 있다.
여기서, 상기 제1 내지 제5 레이어들은 상호 인접한 계층간에만 통신 가능하도록, 각각의 통신 프로토콜이 미리 설정될 수 있다. 각 계층은 상위 또는 하위 계층을 통해서만 그 다음 계층에 접근할 수 있고, 이렇게 통제된 시스템을 통해서 안정화되고 체계적인 시스템을 유지할 수 있다.
먼저, 제1 레이어에는 각 장치들이 포함될 수 있다. 장치들은 실질적인 제어의 대상들인 저수준 로봇 장치들을 포함할 수 있으며, 예를 들어 구동기의 제어기, 센서 보드 또는 로봇 시뮬레이터의 장치들이 포함될 수 있다.
그리고, 제4 레이어는 외부 프로세스의 사용자가 자신만의 로봇 모션 등을 생성하기 위한 각 작업부 프로세스들을 구동시키는 계층으로서, 작업부 프로세스들은 포도 알과 같이 계층 내에서 상호 독립적으로 실행되기 때문에, 특별히 알 (AL)이라고도 할 수 있다. 각 작업부들은 상호 독립적으로 제3 레이어의 쉐어메모리부터 센서 데이터를 읽어서 모션을 생성하고, 생성된 모션의 관절 레퍼런스를 쉐어메모리에 업데이트 할 수 있다.
또한, 제4 레이어의 작업부 프로세스들은 그리고, 모션 오너에 어떤 알이 해당 관절의 레퍼런스에 대한 소유권을 가지고 있는지를 설정할 수 있다.
또한, 각 작업부들은 실시간 운영체제(RTOS)로부터 매우 짧은 주기의 빠른 실시간 쓰레드를 생성할 수 있으며, 빠른 쓰레드는 각 작업부들의 모션 생성 쓰레드를 전술한 제4 레이어의 장치 컨트롤부의 실시간 쓰레드와의 동기화하는데 이용될 수 있다.
여기서, 모든 작업부들이 로봇의 모션을 직접적으로 생성하는 것은 아니며, 충돌을 감지하여 모션 오너를 다른 작업부로부터 가져와, 로봇을 안전하게 해주는 작업부가 있을 수 있으며, 다른 작업부들을 도와주는 부수적인 처리를 할 수도 있고, 통신 모듈(comm. module)로 구현되어 제5 레이어와의 정보를 주고받으며 다른 작업부들을 제어하는 역할을 하는 작업부도 존재할 수 있다.
상기한 본 발명의 바람직한 실시 예는 예시의 목적으로 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 상기의 특허청구 범위에 속하는 것으로 보아야 할 것이다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서, 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
100: 장치
200: 장치 컨트롤부 250: 데이터베이스
300: 쉐어 메모리 400: 작업부
500: 사용자 시스템

Claims (5)

  1. 로봇 제어용 코어엔진을 이용한 모션 제어 시스템에 있어서,
    하나 이상의 제어 대상 장치를 포함하는 제1 레이어;
    상기 제1 레이어의 상위단에서 상기 장치를 직접적으로 제어하는 장치 컨트롤부를 포함하는 제2 레이어;
    상기 제2 레이어의 상위단에서 상기 장치 컨트롤부와 연결되는 쉐어 메모리를 포함하는 제3 레이어;
    상기 제3 레이어의 상위단에서 상기 쉐어 메모리를 이용한 독립적인 프로세스를 수행하는 하나 이상의 작업부들을 포함하는 제4 레이어; 및
    상기 제4 레이어의 상위단에서 사용자 명령에 따라 상기 하나 이상의 작업부들을 제어하는 제5 레이어를 포함하고,
    상기 쉐어 메모리는
    상기 제2 레이어의 상기 장치 컨트롤부의 동작을 위한 정보를 저장하는 하드웨어 추상화 자료부; 및
    상기 제4 레이어의 작업부들간 쉐어되는 작업부 쉐어 데이터를 저장하는 사용자 정의 자료부를 포함하는 것을 특징으로 하는
    코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템.
  2. 제1항에 있어서,
    상기 제1 내지 제5 레이어들은 상호 인접한 계층간에만 통신 가능한 것을 특징으로 하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템.
  3. 제1항에 있어서,
    상기 제2 레이어의 장치 컨트롤부는,
    상기 시스템의 백그라운드에서 상주하며, 상기 쉐어 메모리로부터 획득되는 레퍼런스로부터 상기 장치를 제어하기 위한 제어 신호를 상기 제1 레이어로 전달하는 코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템.
  4. 제3항에 있어서,
    상기 장치 컨트롤부는,
    상기 장치 제어 시스템과 연결된 운영 체제상에, 상기 하나 이상의 작업부들과 동기화된 제어 주기를 갖는 실시간 쓰레드를 생성하는 모듈인
    코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템.
  5. 제1항에 있어서,
    상기 제4 레이어의 작업부들은 각각 상기 시스템과 연결된 실시간 운영체제상에 실시간 쓰레드를 생성하고, 상기 실시간 쓰레드의 동작 주기는 상기 장치 컨트롤부와 동기화되는
    코어엔진을 갖는 로봇 제어용 코어엔진을 이용한 모션 제어 시스템.
KR1020220167078A 2022-12-02 2022-12-02 로봇 제어용 코어엔진을 이용한 모션 제어 시스템 KR20240083288A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220167078A KR20240083288A (ko) 2022-12-02 2022-12-02 로봇 제어용 코어엔진을 이용한 모션 제어 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220167078A KR20240083288A (ko) 2022-12-02 2022-12-02 로봇 제어용 코어엔진을 이용한 모션 제어 시스템

Publications (1)

Publication Number Publication Date
KR20240083288A true KR20240083288A (ko) 2024-06-12

Family

ID=91469660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220167078A KR20240083288A (ko) 2022-12-02 2022-12-02 로봇 제어용 코어엔진을 이용한 모션 제어 시스템

Country Status (1)

Country Link
KR (1) KR20240083288A (ko)

Similar Documents

Publication Publication Date Title
KR102235947B1 (ko) Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
US9971914B2 (en) Industrial simulation using redirected I/O module configurations
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
US9134726B2 (en) Method for configuration SOA-based automation devices and for developing an orchestration machine, production method and production system in service-oriented architecture having embedded service orchestration engine
EP3376322B1 (en) Control system, controller, and control method
CN107765629A (zh) 一种基于软PLC和EtherCAT总线的DELTA2机器人控制***
CN110480658A (zh) 一种融合视觉自标定的六轴机器人控制***
WO2018176025A1 (en) System and method for engineering autonomous systems
CN111176225A (zh) 利用工业控制器进行代理执行和计算的方法和装置
CN114327628A (zh) 分层控制方法、***、终端设备及存储介质
Cengic et al. A framework for component based distributed control software development using IEC 61499
KR20240083288A (ko) 로봇 제어용 코어엔진을 이용한 모션 제어 시스템
US20220283568A1 (en) System and method for controlling at least one machine, more particularly a collective of machines
CN115816459A (zh) 机器人控制方法、装置、计算机设备、存储介质和产品
CN116079747A (zh) 机器人跨具身控制方法、***、计算机设备和存储介质
CN116069317A (zh) 一种基于AutomationML的工业设备运动控制PLC代码自动生成方法及装置
Yasuda Discrete event behavior-based distributed architecture design for autonomous intelligent control of mobile robots with embedded petri nets
US20230384760A1 (en) Control device
Yasuda Petri Net Model Based Implementation of Hierarchical and Distributed Control for Discrete Event Robotic Manufacturing Cells
Rosenstock et al. KUKA Robot Language Parser for Product Adaptive Manufacturing
CN115427197A (zh) 工业机器人***
WO2024033695A1 (en) Simulation system and method
Xiao et al. Assembly language design and development for reconfigurable flexible assembly line
Frazao et al. Agent-based software architecture for multi-robot teams
Lyu et al. Mechatronic Swarm and its Virtual Commissioning