Skip to content

목차


IndyFramework API

Indy Framework 2.0 은 뉴로메카의 로봇 제어에 사용되는 핵심 소프트웨어 프레임워크이며, 뉴로메카에서 자체 개발한 리눅스 기반의 임베디드 제어기 STEP에서 실행됩니다. 본 장은 사용자가 실시간 OS (RTOS)에 대한 전문지식이 없어도 Xenomai 기반의 실시간 소프트웨어를 쉽게 만들고 실행, 배치할 수있게하는 Indy Framework의 API에 대해 설명합니다.

IndySDK

IndySDK는 연구용 플랫폼으로서 사용자가 직접 계산한 토크를 로봇의 모든 관절에 입력 할 수 있도록 개발환경을 제공합니다. 사용자는 인디에 기본적으로 내장되어 있는 로우레벨 제어기 (nonlinear \mathcal{H}_\infty optimal control)를 다른 제어기로 대체할 수 있습니다. 또한 외수용성 센서를 활용하여 임피던스/어드미턴스 제어기를 설계한 후 이를 쉽게 구현 할 수 있습니다. IndySDK를 활용하면 로봇에 내장된 소프트웨어 프레임워크 Indy Framework의 강력한 기능들 (Conty, IndyDCP 등)은 유지하면서 연구자가 직접 개발한 로봇제어기만을 인디에 이식할 수 있기 때문에 제어기 프로토타이핑에 굉장히 유용하게 사용될 수 있습니다. 본 장에서는 다양한 제어 예제들을 기반으로 IndySDK의 활용방법에 대해 설명합니다.

Indy Communication

뉴로메카 인디 제어기와 소프트웨어 프레임워크는 다양한 입출력 통신 인터페이스를 제공합니다. 사용자는 이를 통해 로봇과 외부센서 신호를 송수신을 할 수 있으며 이를 통해 다양한 시스템통합 프로그래밍을 수행할 수 있습니다. 본 장에서는 인디의 컨트롤박스의 I/O 보드 (Digital I/O and Analog I/O)와의 통신, STEP의 GPIO와의 통신, TCP 전용통신 프로토콜인 IndyDCP (Indy Dedicated Communication Protocol), 그리고 ModbusTCP 통신 프로토콜에 대해서 설명합니다.

Indy Interfaces

인디 인터페이스는 이더넷 TCP/IP 네트워크 기반의 전용통신 IndyDCP를 이용하여 제작된 상위레벨 프로그래밍 인터페이스를 의미합니다. 본 장에서는 IndyDCP 프로토콜을 기반으로 다양한 언어로 작성된 예제코드와 사용법에 대한 설명을 제공합니다. Python, C++, MATLAB, Labview로 작성된 인터페이스 예제와 이를 이용한 로봇 프로그래밍에 대해서 설명합니다. 사용자는 필요에 따라 제공되는 예제를 참고하여 기타 언어 (Java, C# 등)에 대한 인터페이스 구성을 할 수 있습니다.

ROS for Indy

ROS (Robot Operating System)는 다양한 로보틱스 관련 라이브러리와 개발환경을 제공하는 오픈소스 소프트웨어 플랫폼입니다. 본 장은 ROS 패키지 중 매니퓰레이터 연구에 많이 사용되는 MoveIt!, RViz, and Gazebo에 대한 설치 방법과 인디와의 연동방법에 대해 설명합니다.

STEP

STEP 은 리눅스 기반의 로봇전용 임베디드 제어기로써 실시간 제어를 위해 Hard Realtime OS인 Linux/Xenomi 환경에서 실시간 제어 응용프로그램 개발을 위한 소프트웨어 프레임워크인 PlatformSDK를 제공합니다. 리눅스 환경에 익숙하지 않은 엔지니어들도 쉽게 임베디드 제어 프로그램을 개발할 수 있도록 MS 윈도우® OS에서 작동되는 개발환경을 제공합니다.

다축, 동기화 고속 실시간 분산제어를 위해 STEP은 많은 시스템에서 검증된 오픈소스 이더캣 (EtherCAT) 마스터 스택인 EtherLab을 채용하고 있습니다. 표준 EtherCAT 기반의 실시간 제어 응용프로그램 개발을 위해 CoE (CANopen-over-EtherCAT) 프로토콜 기반 프로그래밍 인터페이스를 제공합니다. STEP은 다양한 디바이스들의 연결을 위해 RS485 및 CAN 인터페이스를 표준으로 내장하고 있으며, 기본적인 CoE 기반 응용프로그램 코드의 자동 생성 기능과 다양한 소프트웨어 도구들을 제공합니다. PlatformSDK에는 CAN 기반 응용프로그램의 개발을 위해 실시간 CAN 기능과 오픈소스 CANOpen 프레임워크 소프트웨어인 CanFestival이 설치 되어 있습니다.

뉴로메카는 STEP의 쉬운 사용을 위해 이더켓 슬레이브들의 PDO, SDO 매핑 및 슬레이브 인터페이스를 자동으로 구성해주는 GUI 툴을 제공합니다. 이러한 강력한 기능을 통해 다축 액츄에이터에 대한 Hard realtime 제어가 요구되는 분야에 손쉽게 활용될 수 있습니다. 본 장에서는 STEP의 소프트웨어 프레임워크인 PlatformSDK의 사용법에 대해 설명합니다. STEP의 이더켓 시스템인터페이스 구성 방법 및 자동 코드생성에 대해서는 EtherCAT 챕터에서 다루며 step-by-step 예제를 제공합니다.

EtherCAT

본 장은 STEP을 이용하여 이더켓 시스템인터페이스를 자동으로 구성할 수 있는 GUI 툴인 ECatService 사용법에 대해 설명합니다. 이를 통해 사용자는 여러 축의 슬레이브 (액츄에이터 및 센서)를 이더켓 마스터 STEP에 연결하여 PDO, SDO 매핑을 손쉽게 수행할 수 있습니다. 또한 코드 자동생성 기능을 통해 이더켓 통신과 Xenomai의 실시간 프로세스를 이용하는 응용 소프트웨어 개발이 가능합니다. 뉴로메카에서 개발한 스마트액츄에이터 (CORE)의 시스템인터페이스 구성에 대한 step-by-step 예제 뿐만 아니라 타사의 이더켓 슬레이브 디바이스 (Maxon motor, Beckhoff)에 대한 시스템인터페이스 구성 예제도 제공합니다.

CORE

CORE 는 로봇 및 자동화 시스템을 위한 스마트 엑츄에이터 모듈입니다. CORE 는 CORE100, CORE200, CORE500 3 종류가 있으며 각각 100W, 200W, 500W 모듈입니다. 각 CORE 모듈은 하모닉 드라이브, BLDC 모터, 브레이크, 앱솔루트 엔코더(멀티턴, 16-bit) 및 모터 드라이버의 조합입니다. CORE 는 CiA402 모션 프로파일 준수하여 EtherCAT 통신 인터페이스를 사용합니다.

IndyEye

IndyEye는 뉴로메카의 로봇 시리즈에 탑재될 수 있는 저가형 비전 솔루션입니다. 딥러닝 기반의 물체 감지와 분류(검사) 기능을 제공하며, 자동화된 작업물 데이터 수집과 원격 학습 서비스를 통해 딥러닝 알고리즘을 현장 작업물에 쉽게 적용할 수 있습니다. 이 장에서는 IndyEye를 설치하는 방법부터 시작해 작업물 데이터 수집, 알고리즘 학습과 물체 감지를 수행하는 방법에 대해 설명합니다. 더불어 통신 프로토콜과 이를 이용한 픽 앤 플레이스 구현 예제도 제공됩니다.