KR20100094009A - 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼 - Google Patents

모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼 Download PDF

Info

Publication number
KR20100094009A
KR20100094009A KR1020090013217A KR20090013217A KR20100094009A KR 20100094009 A KR20100094009 A KR 20100094009A KR 1020090013217 A KR1020090013217 A KR 1020090013217A KR 20090013217 A KR20090013217 A KR 20090013217A KR 20100094009 A KR20100094009 A KR 20100094009A
Authority
KR
South Korea
Prior art keywords
robot
framework
algorithm
software
kernel
Prior art date
Application number
KR1020090013217A
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 KR1020090013217A priority Critical patent/KR20100094009A/ko
Publication of KR20100094009A publication Critical patent/KR20100094009A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems

Abstract

본 발명은 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼에 관한 것으로서, 보다 상세하게는 로봇 시뮬레이션 또는 동작제어를 위한 알고리즘, 동작제어 소프트웨어와 이를 전달하기 위한 커널, 제어신호 전달을 위한 임베디드 보드 등을 각각의 프레임워크별로 모듈화하여 로봇 제어시스템의 개발시 중복되는 요소를 제거할 수 있도록 하는 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼에 관한 것이다.
본 발명에 따르면 모듈화되고 분산된 소프트웨어 플랫폼을 이용하여 다양한 형태의 로봇 제어시스템을 용이하게 구현할 수 있다.
로봇, 알고리즘, 소프트웨어, 제어, 시뮬레이션

Description

모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼{INTEGRATED ROBOT SOFTWARE PLATFORM WITH FRAMEWORK MODULE}
본 발명은 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼에 관한 것으로서, 보다 상세하게는 로봇 시뮬레이션 또는 동작제어를 위한 알고리즘, 동작제어 소프트웨어와 이를 전달하기 위한 커널, 제어신호 전달을 위한 임베디드 보드 등을 각각의 프레임워크별로 모듈화하여 로봇 제어시스템의 개발시 중복되는 요소를 제거할 수 있도록 하는 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼에 관한 것이다.
최근 국내의 로봇 연구는 특정 목적에 부합하는 효율적인 로봇 기구부의 디자인 및 조립 등에 초점을 맞추어 진행되어 왔다. 앞으로는 그러한 기구부의 디자인에 덧붙여 로봇을 제어하기 위한 제어 알고리즘의 개발 및 인공지능에 관한 연구, 또 여러 알고리즘을 조합한 응용 컨텐츠 제작 등 로봇을 실제로 쓸모 있게 하기 위한 실용적인 연구로 그 분야를 넓혀갈 것이다.
물론 이러한 분야에 대한 연구가 없었던 것은 아니나 각 연구실 별로 진행되는 연구는 연구 내용의 중복이나 연구 외적인 다른 많은 일들, 예를 들어 초기 로 봇 도입을 위한 시간, 로봇 조립을 위한 시간, 시뮬레이션 환경을 구성하기 위한 시간 등에 의한 시간 낭비가 무시하지 못할 수준으로 연구자를 압박하고 있는 것이 현실이다.
이를 위한 해결책으로서 다양한 로봇 실험 및 연구에 공통으로 사용할 수 있는 로봇 소프트웨어 플랫폼(Robot S/W Platform)이 필요하다. 이러한 소프트웨어 플랫폼은 로봇 개발 기간을 단축할 뿐만 아니라 개발된 결과의 공유를 쉽게 하기 때문에 기술 교류 및 협력에 꼭 필요하다. 또한 시뮬레이션에 이용된 로봇 제어 알고리즘의 재사용을 위해 필요하다.
로봇 소프트웨어 플랫폼은 통일된 (unified) 프로그래밍 환경, 통일된 서비스 실행 환경, 재사용 가능한 컴포넌트들의 집합, 디버깅/시뮬레이션 환경, 보편화된 로봇 디바이스 하드웨어(센서, 구동장치 등)들에 대한 드라이버 패키지들, 컴퓨터 비전, 주행, 또는 로봇 매니퓰레이터 제어들과 같은 공통 기능들의 패키지들을 제공해줄 수 있어야 한다.
또한 로봇 소프트웨어 플랫폼은 다음과 같은 기능을 제공해야 한다.
● 로봇 소프트웨어 응용에 있어서, 소프트웨어 엔지니어링 관점의 시스템 통합 문제 외에도, 로봇 관련 알고리즘 연구가 필요하다. 로봇 소프트웨어 플랫폼이 통합 가능한, 고신뢰성의 알고리즘 컴포넌트를 제공하는 경우, 복잡한 알고리즘 개발 프로젝트를 보다 더 수월하게 진행시킬 수 있다.
● 로봇 소프트웨어 플랫폼은, 로봇의 운동 및 거동 (behavior)을 제어할 수 있는 방법이 포함되어야 한다. 연구 분야에서 제안된 방법론 뿐만 아니라, 다수의 상용 플랫폼들이 독자적인 해법을 보유하고 있다.
● 제어 소프트웨어는 일반적인 로봇 프로젝트의 수행에 있어서 전체 비용의 상당한 부분을 차지한다. 산업용 자동화 프로젝트의 경우, 약 80% 정도의 비용이 소프트웨어 개발과 커스터마이징을 포함한 시스템 통합에 지출된다. 따라서, 로봇 소프트웨어 플랫폼은 로봇 시스템 통합에 대한 지원이 있어야 한다.
특정한 서비스를 제공하기 위한 로봇 시스템은 기구부와 구동부, 센서로 이루어지는 기계적인 파트, 관절의 위치 정보로부터, 관절을 제어하는 알고리즘을 구현하는 제어기 파트, 제어기의 출력을 구동부에 가해주고, 센서 출력을 제어기로 전송하는 인터페이스 및 다수의 인터페이스를 조작하기 위한 분산 구조를 포함하는 전장 파트로 이루어지는데, 로봇 제어시스템은 이러한 세 가지 구성요소들에 의존적으로 구현된다.
예를 들어, 로봇의 자유도의 크기 또는 폐회로 루프의 존재 여부에 따라, 시스템의 기구학적 특성은 크게 다르게 된다. 관절에 구동기가 있느냐 없느냐에 따른 시스템의 구동성의 분포에 따라, 시스템의 제어 입력 배분을 달리 해야 하며, 특정 네트워크 구조의 통신 오버헤드에 기인하는 제어 주기의 제한이 존재하는 경우, 시스템은 다른 제어구조를 취해야 할 수도 있다. 뿐만 아니라, 로봇 거동 알고리즘의 경우, 하부의 제어알고리즘 컴포넌트의 기능에 의해 설계의 자유도가 크게 제한을 받을 뿐만 아니라, 시스템의 센서부를 포함한 기구 컴포넌트의 구성에도 의존적이다.
뿐만 아니라, 제어 알고리즘의 성능은 역으로 시스템의 하부 구조의 결정 및 선택에 영향을 끼친다. 예를 들어, 특정 운동을 구현하기 위한 제어 입력의 크기에 의해서 관절의 모터의 출력은 달라져야 하며, 제어기의 구조가 국지적인 정보만을 이용하는 경우, 중앙집중형(centralized) 제어구조를 취할 필요가 없어지므로, 하부 네트워크 구조를 단순화시킬 수 있다.
도 1은 로봇 제어시스템의 각 구성요소 사이의 의존성을 나타낸 개념도로서, 로봇 제어 시스템을 포함한 전체 로봇 시스템의 구현이, 필연적으로 시행 착오를 동반한 휴리스틱한 접근방법에 의해 결정된다는 것이다. 시행 착오를 통한 점진적인 최적 설계 방법론은, 그러나, 프로젝트 수행의 제한된 시간 및 각 구성 요소 설계자들 간 상호 정보 및 지식 공유의 어려움, 전체 시스템 통합에 대한 통찰력의 부재 등으로 인해, 각 구성 요소 설계자의 경험에 기반한 경험적 접근 방법으로 대치된다. 이런 경우, 전체 시스템 의 통합성의 질은 저하될 수 밖에 없다.
도 2는 통상적인 로봇 시스템의 개발과정을 나타낸 순서도로서, 도 2에 도시된 바와 같이 로봇 시스템의 개발 과정은 일반적으로 기구 설계 및 조립, 전자부 통합, 제어 알고리즘의 개발, 제어 알고리즘 임베디드화 및 시스템 통합의 과정으로 요약될 수 있다.
기구 설계 및 조립과정에서는 기구 메커니즘 설계, 작업공간 해석, 구동력 해석, 구동기 및 센서 선정 등의 세부 과정이 포함된다.
전자부 통합 과정에서는 제어 보드의 설계 및 구현, 디바이스 드라이버 등을 구현하여 기구와 통합한다.
제어 알고리즘 개발 과정에서는 제어 구조 설계 및 실시간 제어 커널의 구 현, 제어 프로토콜 구현 등이 이루어진다.
마지막으로 제어 알고리즘 임베디드화 및 시스템 통합 과정에서는 전 단계에서 개발 완료된 각 구성 요소들을 통합하여 테스트하는 과정을 거쳐 로봇 시스템을 완성한다.
여기서 주목해야 할 점은 각 과정이 공통된 소프트웨어 개발 요소를 포함하고 있으면서도 각 과정에서 요구되는 엔지니어링 요소가 상이하여 각 과정이 독립적인 프로세스처럼 작업된다는 것이다.
이러한 독립성은 개발되는 로봇 시스템의 복잡도가 증가할수록 뚜렷하다. 예를 들어 기구 설계 및 조립 과정에서는 기구의 작업공간 해석 등을 위해 기본적인 구동 알고리즘 및 시뮬레이션 소프트웨어가 개발되어야 하며 전자부 통합 과정에서는 제어 보드간의 통신과 제어 구조의 유효성을 검증하기 위해 역시 비슷한 소프트웨어의 개발이 필요하다.
또 개발된 제어 알고리즘은 시스템 통합 및 임베디드화를 위해서 수정되어야 한다. 로봇 소프트웨어 엔지니어링의 관점에서 볼 때 이러한 독립성은 통합을 어렵게 하는 주요 원인이 된다.
시스템 개발 환경에서 이러한 일들을 쉽게 할 수 있도록 지원할 필요가 있는데, 이상적인 경우, 시스템 설계에서 적용한 알고리즘 코드를 전혀 변경하지 않고, 실시간 제어 환경에서 쓸 수 있을 뿐만 아니라, 임베디드 환경에서도 이용할 수 있으면, 시스템의 래피드 프로토타이핑(rapid prototyping)에 큰 도움이 될 뿐만 아니라, 시스템 구현에 있어서의 오류도 줄여 줄 것이다.
기존 로봇 제어시스템의 문제점을 요약하면 다음과 같다.
첫째, 로봇 시스템 구현의 복잡한 과정을 반영하지 못하고 있다. 즉 기구 설계 및 조립, 전자부 통합, 제어 알고리즘의 개발, 제어 알고리즘 임베디드화 및 시스템 통합 등의 전체 과정을 고려하여 개발된 것이 아니라 그 중 일부분에서만 사용될 수 있기 때문에 각 과정에서 공통적으로 일어나는 소프트웨어 개발의 중복을 피할 수 없다.
둘째, 로봇 소프트웨어 플랫폼으로서 제공해야 하는 재사용 가능한 소프트웨어 컴포넌트를 충분히 제공하지 못한다. 특히 로봇 제어를 위한 운동학 및 동역학 라이브러리 제공과 실시간 제어를 위한 고려가 부족하다.
마지막으로, 로봇 엔지니어의 관점에서 필요한 여러 부가 기능들, 예를 들어 CAD 툴에서 모델링된 데이터를 시뮬레이션이나 제어기 구현에서 그대로 활용할 수 없다거나 실험결과를 저장하고 분석하기 위한 툴을 제공하지 않는다.
전술한 문제점을 해결하기 위한 본 발명은 로봇 동역학 시뮬레이션 및 실시간 제어를 위한 소프트웨어 플랫폼을 제공함에 있어서 각 구성요소의 모듈화를 통해 제어 알고리즘의 재사용성을 보장하고 분산화를 통해 시스템 자원 활용을 극대화하여 효율적인 로봇 소프트웨어 개발이 가능하도록 하는 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼을 제공하는 것을 목적으로 한다.
이를 위해 본 발명은 로봇 공학의 각종 알고리즘을 클래스화하여 사용자가 확장하여 재사용하게 하기 위한 라이브러리와, 로보틱스 커널에 확장하여 사용하기 위한 DLL 형태의 플러그인으로 구성된 알고리즘 프레임워크를 제공하는 것을 목적으로 한다.
또한 본 발명은 로봇시스템 모델링을 위한 XML 기반의 확장 모델링 언어, 각 모델들의 시뮬레이션을 위한 동역학 및 시뮬레이션 엔진, 각 개발 도구들의 상호 운용을 위한 프로토콜 및 운용 소프트웨어들로 구성된 소프트웨어 프레임워크를 제공하는 것을 목적으로 한다.
또한 본 발명은 알고리즘 프레임워크에서 개발하고, 소프트웨어 프레임워크에서 검증된 로봇 제어기가 실제 로봇 시스템에 적용되기 위한 개발환경인 시스템통합 프레임워크를 제공하는 것을 목적으로 한다.
전술한 문제점을 해결하기 위한 본 발명은 실제 또는 가상의 로봇의 동작을 제어하기 위한 소프트웨어 플랫폼으로서, 로봇 공학의 각종 알고리즘을 클래스화하여 사용자가 확장하여 재사용하게 하기 위한 라이브러리와, 로보틱스 커널에 연결하여 확장 사용하기 위한 DLL 형태의 플러그인으로 구성된 알고리즘 프레임워크와; 로봇시스템 모델링을 위한 XML 기반의 확장 모델링 언어, 각 모델들의 시뮬레이션을 위한 동역학 및 시뮬레이션 엔진, 각 개발 도구들의 상호 운용을 위한 프로토콜 및 운용 소프트웨어들로 구성된 소프트웨어 프레임워크와; 상기 알고리즘 프레임워크에서 개발하고, 상기 소프트웨어 프레임워크에서 검증된 로봇 제어기가 실제 로봇 시스템에 적용되기 위한 시스템 통합을 위한 개발환경으로 구성된 시스템통합 프레임워크;를 포함한다.
상기 알고리즘 프레임워크는 Inverse Dynamics(역 동역학) 또는 Inverse Kinematics(역 운동학)에 기반한 로봇 기구장치의 운동량 계산을 위한 데이터를 제공하는 동역학모듈과; 로봇 및 환경, 각종 장치들의 확장 가능한 표준 모델 및 소프트웨어 컴포넌트화하기 위한 라이브러리 모듈들을 저장하는 코어모듈과; 고성능 연산을 위한 행렬 연산 라이브러리와 로봇 연산을 위한 수학 라이브러리를 개발 및 저장하는 연산 라이브러리와; 로봇 연산을 위한 알고리즘과 핵심 제어 알고리즘 모듈을 저장하는 곳으로서, 로봇이 이동하는 경로생성 알고리즘, 역기구학/역동역학 제어 알고리즘, 임피던스 제어 알고리즘, 여유자유도 조작 알고리즘, 위치인식 및 지도형성을 위한 알고리즘, 항법관련 알고리즘 중 어느 하나 이상으로 구성되는 제어 알고리즘모듈;을 포함한다.
상기 소프트웨어 프레임워크는 로봇, 환경, 센서 및 구동장치의 기하학 및 동역학 정보를 기술하는 XML 기반의 로봇 모델링 데이터 파일을 생성하는 로봇모델 생성기와; 상기 로봇 모델링 데이터 파일을 분석하여 로봇의 동작과 상호작용에 대한 동역학 및 기구학 데이터를 추출하고, 상기 추출된 동역학 및 기구학 데이터에 따라 생성된 가상의 로봇에 대한 3차원 시뮬레이션을 수행하는 로봇모델 해석기와; 상기 로봇모델 해석기에 의하여 수행된 3차원 시뮬레이션 결과를 3차원 영상으로 표시해주는 시각화모듈과; 분산 개발 환경의 원활한 상호 연동을 위한 전용의 커널 모듈로서, 이를 위해 모듈의 관리 및 모듈간의 메시지 송수신, 데이터 서비스 작업을 수행하는 로보틱스 커널과; 상기 소프트웨어 프레임워크를 직접 조작 및 활용하기 위한 전용 프로토콜에 기반하여 데이터를 송수신하는 사용자명령콘솔;을 포함한다.
상기 시스템통합 프레임워크는 로보틱스 커널의 확장 플러그인으로 제작되며, 실시간 커널을 포함하는 실시간 로보틱스모듈과; 소프트웨어 개발환경에서 개발한 제어 알고리즘을 로봇에 대한 실시간 제어에 응용하기 위하여 최적화시키는 실시간 제어모듈과; PC기반으로 구현된 상기 로보틱스 커널을 실제 타겟 로봇 플랫폼에서 응용하기 위한 임베디드 보드 전용의 커널 버전인 임베디드 커널과; 로봇을 제어하기 위한 각종 구동기 및 센서 드라이버 보드와의 인터페이스 하기 위한 각종 디바이스 보드들의 규약 및 구현 모델을 저장하는 로봇 디바이스;를 포함한다.
상기 로보틱스 커널은 확장가능한 DLL(Dynamic Linked Library) 구조의 플러그인 모듈을 지원하는 커널확장용 플러그인과; 확장가능한 로봇 모델의 플러그인 모듈을 지원하는 로봇 플러그인과; 로봇 관련 데이터들의 실시간 소켓 통신을 위한 TCP/IP 기반의 로보틱스 관련 프로토콜을 지원하는 로보틱스 프로토콜;을 포함한다.
본 발명에 따르면 모듈화되고 분산된 소프트웨어 플랫폼을 이용하여 다양한 형태의 로봇 제어시스템을 용이하게 구현할 수 있다.
이하에서 본 발명의 실시예에 따른 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼(이하, '소프트웨어 플랫폼'이라 함)을 설명한다.
도 3은 본 발명의 실시예에 따른 통합 로봇 소프트웨어 플랫폼의 구성요소를 나타낸 블럭도이다.
본 발명의 소프트웨어 플랫폼(1000)은 알고리즘 프레임워크(1100), 소프트웨어 프레임워크(1200), 시스템통합 프레임워크(1300)으로 구성되며, 소프트웨어 플랫폼(1000)을 통해 동작을 제어할 실제 로봇(2000)과, 가상의 로봇 시뮬레이션을 담당하는 시뮬레이션 단말기(3000)와 네트워크를 통해 연결된다.
본 발명의 구성요소인 알고리즘 프레임워크(1100), 소프트웨어 프레임워크(1200), 시스템통합 프레임워크(1300)는 개별적인 하드웨어로 구성될 수 있지만, 하나의 서버 시스템 내에서 소프트웨어적으로 구현되는 것이 더 일반적일 것이다. 따라서 본 발명에서 의미하는 모듈은 상기 모듈이 추구하는 기능을 수행하는 소프트웨어의 집합체로 이해될 수도 있을 것이며, 본 발명에서 의미하는 알고리즘은 상기 알고리즘을 수행하기 위한 데이터를 저장하는 저장장치로 이해될 수도 있을 것 이다.
본 발명의 소프트웨어 플랫폼(1000)이 추구하고자 하는 주된 목적은 로봇 제어를 위한 알고리즘을 신속하게 개발할 수 있도록 하고, 소프트웨어적으로 개발한 로봇 알고리즘과 개발 인터페이스를 변경하지 않고 그대로 하드웨어(실제 로봇)에 적용할 수 있도록 하는 것이다.
소프트웨어 플랫폼(1000)에 포함된 알고리즘 프레임워크(1100)는 로봇 시스템의 운동을 조작하기 위한 제어 알고리즘을 생성, 저장하는 부분이다. 도 4는 알고리즘 프레임워크의 구성요소를 나타낸 블럭도이다.
알고리즘 프레임워크(1100)에는 동역학모듈(1110)이 구비된다. 로봇 제어 알고리즘의 개발을 위해서는 Inverse Dynamics(역 동역학) 및/또는 Inverse Kinematics(역 운동학)에 기반한 로봇 디바이스(센서, 구동장치 등)의 운동량(모터의 회전수, 회전속도, 토크 등) 계산이 필요한데, 동역학모듈(1110)이 이러한 계산을 위한 함수와 조건들을 제공해준다.
코어모듈(1120)은 로봇 및 환경, 각종 장치들의 확장 가능한 표준 모델 및 소프트웨어 컴포넌트화하기 위한 라이브러리 모듈들을 저장한다. 또한 실제 로봇의 운동환경과 동일한 물리적 환경을 가상적으로 생성하고, 실제 로봇 하드웨어의 움직임과 그 결과를 도출해낼 수 있도록 하는 물리법칙 동역학 구동엔진을 제공한다.
연산 라이브러리(1130)는 고성능 연산을 위한 행렬 연산 라이브러리와 로봇 연산을 위한 수학 라이브러리를 개발 및 저장한다.
제어 알고리즘 모듈(1140)은 로봇 연산을 위한 알고리즘과 핵심 제어 알고리즘 모듈을 저장하는 곳으로서, 로봇이 이동하는 경로생성 알고리즘, 역기구학/역동역학 제어 알고리즘, 임피던스 제어 알고리즘, 여유자유도 조작 알고리즘, 강인제어 모듈, 위치인식 및 지도형성을 위한 알고리즘, 항법관련 알고리즘 중의 어느 하나 이상으로 이루어진다.
XML 모듈(1150)은 XML 기반의 제어 알고리즘을 분석하는 상용프로그램이다.
이와 같이 알고리즘 프레임워크(1100)는 로봇의 동작과 이동, 주위 환경에 대한 3차원 동역학 정보를 제공하고, 로봇의 하드웨어적인 정보를 추상화하여 저장함으로써 다양한 형태의 로봇을 제어할 수 있는 알고리즘을 제공한다.
일반적으로 특정 구조의 로봇을 제어하기 위한 알고리즘을 개발하기 위해서는 그 로봇에 기구학적 및 환경적 조건에 맞는 알고리즘을 개별적으로 개발하여야 하지만, 본 발명의 알고리즘 프레임워크(1100)를 이용할 경우에는 이미 개발되어진 제어 알고리즘을 확장하여 재사용할 수 있게 됨으로써 알고리즘 개발이 보다 효율적으로 이루어질 수 있다.
알고리즘 프레임워크(1100)는 개별적인 알고리즘이 갖는 공통분모 및 자주 사용되는 연산 등을 추출하여 이를 확장 가능한 클래스들을 가진 라이브러리로 구성하여 제공하게 된다.
한편, 도 5는 소프트웨어 프레임워크의 구성요소를 나타낸 블럭도이다.
본 발명의 소프트웨어 프레임워크(1200)는 통일된 프로그래밍, 디버깅 환경과 통일된 서비스 환경을 제공하는 것을 주요 목표로 하며, 이를 위한 요구 사항은 ① 로봇 하드웨어의 추상화, ② 센서 및 구동장치의 추상화, ③ 알고리즘 추상화, ④ 컴포넌트 추상화, ⑤ 실시간 제어 등이다.
로봇 하드웨어, 센서 및 구동장치, 알고리즘, 컴포넌트의 추상화는 통일된 프로그래밍, 디버깅, 서비스 환경을 제공하는 로봇 소프트웨어 플랫폼의 주요 기능을 구현한다. 해당 프레임워크상에서 구현된 제어 알고리즘 등은 시뮬레이션 및 실제 로봇 제어를 위해 재사용이 가능하다.
로봇 소프트웨어 프레임워크(1200)의 자원 이용의 효율성 및 실시간 제어성을 만족하기 위한 접근 방법은 모듈화와 분산화이다. 로봇, 센서 및 구동장치, 알고리즘, 컴포넌트를 모듈화하고 각 모듈의 데이터 입출력을 추상화한 인터페이스를 정의하였다. 이런 추상화 인터페이스를 구현한 실행 모듈은 동일 프로세스에서 함께 실행될 수도 있고 네트워크에 분산되어 실행될 수 있다.
또 실제 구현이 모듈 내부에 존재하기 때문에 필요에 따라 동일한 인터페이스를 구현한 시뮬레이션 모듈, 로봇 하드웨어 제어 모듈, 실시간 제어 모듈 등으로 변경이 가능하다. 또 각 모듈의 실행이 독립적인 쓰레드(thread) 혹은 프로세스, 시스템(system)에서 이루어지므로 Multi-core 프로세서에서 성능이 최적화된다.
본 발명에서는 이러한 목적을 이루기 위해 새로운 모듈형 분산 서비스 커널인 로보틱스 커널(Robotics Kernel)을 제안하여 개발하였다. 로보틱스 커널은 모듈화 및 분산화를 통하여 이러한 요구 사항을 만족시킨다.
소프트웨어 프레임워크(1200)에 포함된 로봇모델 생성기(1202)는 각각의 로봇이나 환경, 센서 및 구동장치 등의 기하학, 동역학 정보를 기술하는 로봇 모델링 데이터 파일을 생성한다. 로봇모델 생성기(1202)는 그래픽 인터페이스를 바탕으로 사용자가 편하게 로봇모델을 생성할 수 있도록 하는 환경을 제공해준다.
로봇이나 환경을 모델링하기 위하여 본 발명에서는 XML(Extensible Markup Language)을 기반으로 한 모델링 언어들을 개발하여 사용하고 있다. 본 발명에서는 AML(AMBS Modeling Language), EML(Environment Modeling Language), DML(Device Modeling Language)이 모델링 언어로서 사용된다.
AMBS는 관절형 다물체 시스템(Articulated Multi-Body System)의 약자이다.
AML은 로봇의 기구학 정보 및 동역학 정보, 시뮬레이션을 위한 3D 기하학 정보, 충돌 기하학 정보 등을 기술 할 수 있는 XML 기반 로봇 모델 기술 파일 포맷이다.
EML은 로봇을 제외한 환경의 기하학, 동역학 정보 등을 포함하는 XML 기반 환경 모델 기술 파일 포맷이다.
DML은 센서, 액추에이터 등의 장치 속성을 기술하기 위한 XML 기반 기구장치 모델 기술 파일 포맷이다.
각각의 모델링 언어는 모델링언어 라이브러리(1204)에 의하여 저장되며, 로봇모델 생성기(1202)에 제공된다.
로봇모델 생성기(1202)는 모델링 언어를 호출하여 로봇의 기구학 정보와 역학 정보를 모델링한다. 로봇, 환경 또는 센서 및 구동장치에 대한 기하학, 동역학 정보를 포함하는 모델링 데이터 파일은 로봇모델 해석기(1206)로 전송된다.
로봇모델 해석기(1206)는 각각의 모델링 데이터 파일을 분석하여 로봇의 동 작과 상호작용에 대한 동역학 및 기구학 데이터를 추출하여 3차원 시뮬레이션을 수행하게 된다.
시각화모듈(1208)은 로봇의 시뮬레이션 결과를 시각적으로 표시하는 부분으로서, 로봇이나 환경에 대하여 모델링된 파일을 받아서 3차원 렌더링(rendering)된 화면으로 보여주거나, 시뮬레이션 결과들을 받아서 로드(load)된 로봇 모델의 움직임을 사용자에게 보여준다.
햅틱디바이스 인터페이스(1210)는 햅틱디바이스(4000)를 통한 가상세계 및 가상로봇과의 상호작용을 처리하기 위한 모듈이다. 햅틱디바이스(4000)는 사용자의 접촉과 손동작에 의해 입력되는 명령을 제어신호로 변환하여 시각화모듈(1208)에 전달한다.
로보틱스 커널(1212)은 분산 개발 환경의 원활한 상호 연동을 위한 전용의 커널 모듈로서, 그 기능이 모듈의 조합에 의해서 정의되고 확장되며 각 모듈은 시스템 및 네트워크에 분산되어 실행될 수 있다. 로보틱스 커널(1212)은 이를 위해 모듈의 관리 및 모듈간의 메시지 송수신, 데이터 서비스 등을 수행한다.
확장 가능한 로봇 소프트웨어 플랫폼의 핵심은 모듈화와 분산화에 있다. 본 발명의 로봇 소프트웨어 플랫폼(1000)은 모듈화와 분산화를 통해서 기능을 확장하며 로봇 시뮬레이션으로부터 로봇 실시간 제어에 이르기까지 로봇 제어에 있어서 투명한 인터페이스를 제공한다. 또 실험 데이터 저장 및 시뮬레이션 결과의 재생에 이르기까지 그 기능의 확장이 자유롭다.
로보틱스 커널(1212)은 이러한 확장 가능한 로봇 소프트웨어 플랫폼의 특징 발현을 위한 서비스 커널이다. 로보틱스 커널(1212)의 주요 기능은 모듈의 설치(installation), 동적 로딩(loading), 실행(execution), 제거(unloading & uninstallation)에 이르는 모듈의 동적 관리 및 모듈간의 데이터 전달을 위한 효율적인 메시지 전달 메커니즘의 구현에 있다. 여기에 로봇, 센서 및 구동장치 등의 디바이스, 그리고 제어 알고리즘의 추상화를 통해 통일된 프로그래밍 환경을 제공한다.
로보틱스 커널(1212)에 포함된 커널확장용 플러그인(1214)과 로봇 플러그인(1216)은 로보틱스 커널(1212)의 기능확장을 위한 모듈이다. 이와 같이, 로보틱스 커널(1212)은 각종 모듈의 조합에 의해 기능이 정의되고 확장된다.
커널확장용 플러그인(1214)은 확장가능한 DLL(Dynamic Linked Library) 구조의 플러그인 모듈을 지원한다.
로봇 플러그인(1216)은 확장가능한 로봇 모델의 플러그인 모듈을 지원한다.
로보틱스 프로토콜(1218)은 로봇 관련 데이터들의 실시간 소켓 통신을 위한 TCP/IP 기반의 로보틱스 관련 포로토콜을 지원한다.
물리 시뮬레이션 엔진(1220)은 다물체 시스템의 3차원 실시간 물리 시뮬레이션을 위한 기하학 법칙, 동역학 법칙을 제공한다.
물리 시뮬레이션 엔진(1220)은 각종 기하체들의 실시간 충돌 검출을 위한 충돌검출엔진(Collision Detection Engine), 강체 및 유연체간의 다수 충돌 및 접촉에 의한 동역학 해법엔진(Contact Dynamics Solver), 폐루프 구조를 포함한 일반적인 관절형 다물체 시스템의 시뮬레이션을 위한 동역학 엔진(AMBS Dynamics Solver) 을 포함한다.
물리 시뮬레이션 엔진(1220)은 커널확장용 플러그인(1214)을 통해 확장된 기능을 소프트웨어 프레임워크(1200)에 제공한다.
사용자명령콘솔(1222)은 전체 로봇 소프트웨어 프레임워크(1200)를 직접 조작 및 활용하기 위한 로보틱스 프로토콜(1218)이 바인딩(binding)된 서드파티 인터프리터(3rd party interpreter)가 내장된 터미널이다.
사용자명령콘솔(1222)은 로보틱스 프로토콜(1218)과 TCP/IP 방식으로 연결되어 제어신호를 교환한다.
사용자명령콘솔(1222)에는 python 언어에 바인딩된 python 버전과, 제어 연구에 널리 쓰이는 Mathworks사의 Matlab에 바인딩된 버전이 있다.
소프트웨어 프레임워크(1200)는 알고리즘 프레임워크(1100)로부터 입력된 제어 알고리즘을 바탕으로 실제 또는 가상 로봇의 동작을 제어하고, 제어신호의 변환과 전송 통로를 제공한다.
또한 로봇 개발자 또는 관리자가 소프트웨어 프레임워크(1200)를 이용하여 로봇 알고리즘 개발시 보다 효율적이고 간편한 환경을 제공해 줄 수 있다. 개발자는 알고리즘 프레임워크(1100)를 이용하여 각종 모듈을 확장하면서 알고리즘을 개발하면 신속하고 오류없이 로봇 제어 알고리즘을 개발할 수 있게 된다.
한편, 도 6은 시스템통합 프레임워크의 구성요소를 나타낸 블럭도이다.
시스템통합 프레임워크(1300)는 소프트웨어 프레임워크(1200)가 알고리즘 프레임워크(1100)를 이용하여 개발한 로봇 제어 알고리즘을 별도의 변경작업없이 다 양한 형태의 로봇 하드웨어에 그대로 적용할 수 있도록 하는 환경을 제공한다.
시스템통합 프레임워크(1300)는 실시간 제어 서비스를 위한 실시간 커널을 지원하는 실시간 로보틱스모듈(1302)과, 로봇 기구학, 동역학 및 제어알고리즘의 FPGA기반의 하드웨어 연산을 구현한 실시간 제어모듈(1304)로 구성된다. 그리고, 로보틱스 커널(1212)을 구현한 임베디드 보드인 임베디드 커널(1306)이 실제 시스템 구현을 돕는다.
실시간 로보틱스모듈(1302)은 로보틱스 커널(1212)의 확장 플러그인으로 제작되며, RTX나 RTAI 등의 상용 실시간 커널을 포함하는 실시간 제어 모듈이다.
실시간 제어모듈(1304)은 소프트웨어 개발환경에서 개발한 제어 알고리즘을 실시간 제어에 응용하기 위한 부가 장비들로서, 실시간 OS와의 인터페이스 및 제어 알고리즘의 실시간 연산을 위한 하드웨어 가속 부분을 포함한다. 구체적으로 실시간 제어모듈(1304)에는 아래의 요소가 포함된다.
- 실시간 동역학 연산 알고리즘: 알고리즘 프레임워크(1100)의 제어알고리즘(1150)에 포함된 기구학 및 동역학 알고리즘의 최적화된 버전.
- FPGA기반 동역학 가속 보드: 제어알고리즘(1150)에 포함된 기구학 및 동역학 알고리즘의 하드웨어 연산을 구현하기 위한 FPGA 기반의 가속기 보드.(최종적으로 ASIC화되어 각종 제어 연산의 실시간화를 구현할 수 있다)
임베디드 커널(1306)은 PC기반으로 구현된 로보틱스 커널(1212)을 실제 타겟 로봇 플랫폼에서 응용하기 위한 임베디드 보드 전용의 커널 버전이다. 임베디드 커널(1306)은 저전력 고성능 임베디드 보드 개발과 디바이스 드라이버 및 인터페이 스 모듈 개발에 사용된다.
로봇 디바이스(1308)는 로봇을 제어하기 위한 각종 구동기 및 센서 드라이버 보드와의 인터페이스 하기 위한 각종 디바이스 보드들의 규약 및 구현 모델을 제공한다.
이상에서 설명한 통합 로봇소프트웨어 플랫폼(1000)을 이용할 경우, 다양한 형태의 로봇들에 대한 작업 알고리즘 및 시뮬레이션 개발 환경과, 로봇을 활용한 모션 컨텐츠 및 디지털 캐릭터 개발에 활용가능한 통합 개발 환경을 상용화할 수 있다.
또한 실시간 제어 및 시스템 통합을 위한 프레임워크를 상품화할 수 있고, 래피드 프로토타이핑 프레임워크를 활용하여 로봇 교육 컨텐츠를 개발할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하였지만, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술 분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 로봇 제어시스템의 각 구성요소 사이의 의존성을 나타낸 개념도.
도 2는 통상적인 로봇 시스템의 개발과정을 나타낸 순서도.
도 3은 본 발명의 실시예에 따른 통합 로봇 소프트웨어 플랫폼의 구성요소를 나타낸 블럭도.
도 4는 알고리즘 프레임워크의 구성요소를 나타낸 블럭도.
도 5는 소프트웨어 프레임워크의 구성요소를 나타낸 블럭도.
도 6은 시스템통합 프레임워크의 구성요소를 나타낸 블럭도.

Claims (5)

  1. 실제 또는 가상의 로봇의 동작을 제어하기 위한 소프트웨어 플랫폼으로서,
    로봇 공학의 각종 알고리즘을 클래스화하여 사용자가 확장하여 재사용하게 하기 위한 라이브러리와, 로보틱스 커널에 연결하여 확장 사용하기 위한 DLL 형태의 플러그인으로 구성된 알고리즘 프레임워크와;
    로봇시스템 모델링을 위한 XML 기반의 확장 모델링 언어, 각 모델들의 시뮬레이션을 위한 동역학 및 시뮬레이션 엔진, 각 개발 도구들의 상호 운용을 위한 프로토콜 및 운용 소프트웨어들로 구성된 소프트웨어 프레임워크와;
    상기 알고리즘 프레임워크에서 개발하고, 상기 소프트웨어 프레임워크에서 검증된 로봇 제어기가 실제 로봇 시스템에 적용되기 위한 시스템 통합을 위한 개발환경으로 구성된 시스템통합 프레임워크;를 포함하는, 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼.
  2. 제1항에 있어서,
    상기 알고리즘 프레임워크는
    Inverse Dynamics(역 동역학) 또는 Inverse Kinematics(역 운동학)에 기반한 로봇 기구장치의 운동량 계산을 위한 데이터를 제공하는 동역학모듈과;
    로봇 및 환경, 각종 장치들의 확장 가능한 표준 모델 및 소프트웨어 컴포넌트화하기 위한 라이브러리 모듈들을 저장하는 코어모듈과;
    고성능 연산을 위한 행렬 연산 라이브러리와 로봇 연산을 위한 수학 라이브러리를 개발 및 저장하는 연산 라이브러리와;
    로봇 연산을 위한 알고리즘과 핵심 제어 알고리즘 모듈을 저장하는 곳으로서, 로봇이 이동하는 경로생성 알고리즘, 역기구학/역동역학 제어 알고리즘, 임피던스 제어 알고리즘, 여유자유도 조작 알고리즘, 위치인식 및 지도형성을 위한 알고리즘, 항법관련 알고리즘 중 어느 하나 이상으로 구성되는 제어 알고리즘모듈;을 포함하는, 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼.
  3. 제1항에 있어서,
    상기 소프트웨어 프레임워크는
    로봇, 환경, 센서 및 구동장치의 기하학 및 동역학 정보를 기술하는 XML 기반의 로봇 모델링 데이터 파일을 생성하는 로봇모델 생성기와;
    상기 로봇 모델링 데이터 파일을 분석하여 로봇의 동작과 상호작용에 대한 동역학 및 기구학 데이터를 추출하고, 상기 추출된 동역학 및 기구학 데이터에 따라 생성된 가상의 로봇에 대한 3차원 시뮬레이션을 수행하는 로봇모델 해석기와;
    상기 로봇모델 해석기에 의하여 수행된 3차원 시뮬레이션 결과를 3차원 영상으로 표시해주는 시각화모듈과;
    분산 개발 환경의 원활한 상호 연동을 위한 전용의 커널 모듈로서, 이를 위해 모듈의 관리 및 모듈간의 메시지 송수신, 데이터 서비스 작업을 수행하는 로보틱스 커널과;
    상기 소프트웨어 프레임워크를 직접 조작 및 활용하기 위한 전용 프로토콜에 기반하여 데이터를 송수신하는 사용자명령콘솔;을 포함하는, 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼.
  4. 제1항에 있어서,
    상기 시스템통합 프레임워크는
    로보틱스 커널의 확장 플러그인으로 제작되며, 실시간 커널을 포함하는 실시간 로보틱스모듈과;
    소프트웨어 개발환경에서 개발한 제어 알고리즘을 로봇에 대한 실시간 제어에 응용하기 위하여 최적화시키는 실시간 제어모듈과;
    PC기반으로 구현된 상기 로보틱스 커널을 실제 타겟 로봇 플랫폼에서 응용하기 위한 임베디드 보드 전용의 커널 버전인 임베디드 커널과;
    로봇을 제어하기 위한 각종 구동기 및 센서 드라이버 보드와의 인터페이스 하기 위한 각종 디바이스 보드들의 규약 및 구현 모델을 저장하는 로봇 디바이스;를 포함하는, 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼.
  5. 제3항에 있어서,
    상기 로보틱스 커널은
    확장가능한 DLL(Dynamic Linked Library) 구조의 플러그인 모듈을 지원하는 커널확장용 플러그인과;
    확장가능한 로봇 모델의 플러그인 모듈을 지원하는 로봇 플러그인과;
    로봇 관련 데이터들의 실시간 소켓 통신을 위한 TCP/IP 기반의 로보틱스 관련 프로토콜을 지원하는 로보틱스 프로토콜;을 포함하는, 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼.
KR1020090013217A 2009-02-18 2009-02-18 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼 KR20100094009A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090013217A KR20100094009A (ko) 2009-02-18 2009-02-18 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090013217A KR20100094009A (ko) 2009-02-18 2009-02-18 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼

Publications (1)

Publication Number Publication Date
KR20100094009A true KR20100094009A (ko) 2010-08-26

Family

ID=42758242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090013217A KR20100094009A (ko) 2009-02-18 2009-02-18 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼

Country Status (1)

Country Link
KR (1) KR20100094009A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101398959B1 (ko) * 2012-06-28 2014-05-27 엘아이지넥스원 주식회사 플러그인을 이용한 인터페이스 방법 및 장치
WO2015129959A1 (ko) * 2014-02-28 2015-09-03 주식회사 로보티즈 로봇 조립 장치
KR102079122B1 (ko) * 2019-10-31 2020-02-19 주식회사 뉴로메카 로봇을 위한 동역학 시뮬레이션 기반 제어 프레임 워크
KR20200045168A (ko) * 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템
US11141856B2 (en) 2018-06-25 2021-10-12 Tata Consultancy Services Limited Systems and methods for generating control system solutions for robotics environments
CN114442506A (zh) * 2021-12-06 2022-05-06 埃夫特智能装备股份有限公司 一种基于虚拟机器人控制器仿真调试平台及其调试方法
US11972177B2 (en) * 2014-06-10 2024-04-30 Rockwell Automation Technologies, Inc. Interface for data exchange between industrial controllers and simulation applications for simulating a machine

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101398959B1 (ko) * 2012-06-28 2014-05-27 엘아이지넥스원 주식회사 플러그인을 이용한 인터페이스 방법 및 장치
WO2015129959A1 (ko) * 2014-02-28 2015-09-03 주식회사 로보티즈 로봇 조립 장치
US11972177B2 (en) * 2014-06-10 2024-04-30 Rockwell Automation Technologies, Inc. Interface for data exchange between industrial controllers and simulation applications for simulating a machine
US11141856B2 (en) 2018-06-25 2021-10-12 Tata Consultancy Services Limited Systems and methods for generating control system solutions for robotics environments
KR20200045168A (ko) * 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템
KR102079122B1 (ko) * 2019-10-31 2020-02-19 주식회사 뉴로메카 로봇을 위한 동역학 시뮬레이션 기반 제어 프레임 워크
CN114442506A (zh) * 2021-12-06 2022-05-06 埃夫特智能装备股份有限公司 一种基于虚拟机器人控制器仿真调试平台及其调试方法

Similar Documents

Publication Publication Date Title
US11638994B2 (en) Robotic digital twin control with industrial context simulation
Hong et al. A PC-based open robot control system: PC-ORC
CN101286058B (zh) 机器人模块化分布式自适应控制系统及方法
Chitta MoveIt!: an introduction
Gammieri et al. Coupling of a redundant manipulator with a virtual reality environment to enhance human-robot cooperation
EP3864480B1 (en) Object marking to support tasks by autonomous machines
CN103513992A (zh) 一种通用的教育娱乐机器人应用软件研制平台
EP3819733A1 (en) Creation of a digital twin from a mechanical model
EP4002189A1 (en) Industrial network communication emulation
KR20100094009A (ko) 모듈화된 프레임워크를 이용한 통합 로봇 소프트웨어 플랫폼
EP3974920A1 (en) Unifying multiple simulation models
WO2018176025A1 (en) System and method for engineering autonomous systems
De Aguiar et al. Coloured Petri nets and graphical simulation for the validation of a robotic cell in aircraft industry
Mellado et al. VirtualRobot: An open general-purpose simulation tool for robotics
EP3971758A1 (en) Industrial network emulation
Hossain et al. Virtual control system development platform with the application of PLC device
Li et al. An effective construction method of modular manipulator 3D virtual simulation platform
Striffler et al. Concepts and trends of virtual commissioning–A comprehensive review
Davis et al. An augmented reality architecture for the creation of hardware-in-the-loop & hybrid simulation test scenarios for unmanned underwater vehicles
EP3974928B1 (en) Wiring diagram manager and emulator
Elsner Taming the Panda with Python: A powerful duo for seamless robotics programming and integration
Bingul et al. Windows-based robot simulation tools
Archibald A computational model for skills-oriented robot programming.
West et al. The visualisation of control logic and physical machine elements within an integrated machine design and control environment
Leu et al. Axiomatic functional and object-oriented product design framework

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application