본문 바로가기
카테고리 없음

로봇 소프트웨어 컴포넌트의 배포와 RSCA의 핵심 역할

by 오늘news 2025. 12. 11.

로봇 소프트웨어는 어떻게 구성되고 배포될까요?

본 글에서는 컴포넌트 배포 구조와 RSCA가 수행하는 역할을 중심으로 로봇 소프트웨어 시스템을 이해해보겠습니다.

로봇 소프트웨어 컴포넌트의 배포와 RSCA의 핵심 역할

1. 로봇 컴포넌트 배포의 기본 개념과 문제점

로봇이 복잡한 기능을 수행하기 위해서는 수많은 소프트웨어 컴포넌트가 조합되어야 합니다.

로봇 소프트웨어 개발자가 만든 컴포넌트들은 먼저 컴포넌트 저장소(Component Repository)에 저장되며, 로봇 응용 개발자들은 이 저장소에서 필요한 컴포넌트를 다운로드해 서비스 구성을 진행합니다.

이 과정은 효율적이지만, 문제는 로봇의 내부 구조가 모두 다르다는 점입니다.

어떤 로봇은 DSP 기반의 노드를 가지고 있고, 어떤 로봇은 MCU나 GPP 노드를 탑재합니다. 따라서 로봇이 특정 서비스를 수행하려면 서비스에 필요한 컴포넌트들을 네트워크를 통해 로봇으로 가져와 설치해야 합니다.

그러나 이때 로봇 소프트웨어 개발자는 자신의 컴포넌트가 어떤 유형의 로봇에서 어떻게 사용될지 알 수 없습니다.

반대로 로봇을 설치하는 사람은 컴포넌트의 내부 요구사항을 정확히 알지 못합니다.

예를 들어 다리 모터를 제어하는 컴포넌트가 DSP 전용으로 만들어졌는지, 또는 계획 알고리즘이 고성능 GPP에서 동작해야 하는지 같은 정보는 소프트웨어 개발자만 알고 있는 깊은 기술 정보이기 때문입니다.

문제는 여기서 끝나지 않습니다. 각 노드가 사용하는 실행 모델도 제각각입니다.

어떤 노드는 멀티 프로세스 모델만 지원하고, 어떤 노드는 쓰레드 기반으로 동작하며, DSP 기반의 노드는 실시간 운영체제(RTOS)의 특수한 실행 방식을 따라야 합니다.

결국 소프트웨어 개발자나 하드웨어 개발자 모두에게 지나치게 복잡한 결정을 요구하게 되는 구조가 되어버립니다.

로봇이 더 복잡해질수록 이 문제는 급격히 커지고, 결과적으로 로봇 개발 비용과 시간이 크게 증가하게 됩니다.

2. 분산 노드 기반 로봇 시스템이 가지는 구조적 한계

현대 로봇은 하나의 CPU가 모든 기능을 처리하던 이전과 달리, 서로 다른 기능을 맡는 여러 개의 노드로 구성됩니다.

예를 들어 모터 제어, 센서 데이터 처리, 경로 계획, 통신 기능 등이 각각 다른 프로세싱 유닛에서 동작합니다.

로봇의 각 기능은 분산 시스템 형태로 배치되며 컴포넌트들은 서로 긴밀히 통신하면서 운영됩니다.

하지만 이러한 분산 구조는 효율적이면서도 동시에 큰 문제를 안고 있습니다.

바로 “어떤 컴포넌트를 어떤 노드에서 실행해야 하는지 결정하기 어렵다”는 점입니다.

DSP 전용으로 만든 모터 제어 컴포넌트는 DSP에서만 실행해야 하고

높은 연산 능력이 필요한 계획 컴포넌트는 GPP나 고속 MCU에서 동작해야 하며

컴포넌트와 노드의 요구사항이 각각 다르기 때문에, 최종적으로 어떤 조합이 최적의 구조인지 판단하기가 매우 어렵습니다.

더 큰 문제는, 이러한 판단을 내려야 할 사람들이 각 컴포넌트의 특성을 제대로 알지 못한다는 점입니다.

소프트웨어 개발자는 하드웨어 구성을 모를 수 있고, 로봇 공급업자는 소프트웨어 내부 구조를 이해하지 못할 수 있습니다.

따라서 최적의 배치를 위해 필요한 정보가 단일한 주체에게 모여있지 않는 구조적 한계가 존재합니다.

결국 이 문제를 해결하려면 각 노드의 특성, 컴포넌트의 요구사항, 연결 관계까지 자동으로 분석하고 최적화할 수 있는 시스템이 필요하게 됩니다.

3. RSCA(Robot Software Communication Architecture)의 탄생과 역할

ETRI와 서울대학교가 공동 개발한 RSCA는 위의 복잡한 문제들을 해결하기 위해 등장한 통합 아키텍처입니다.

RSCA는 로봇 소프트웨어 개발자와 하드웨어 개발자가 각각 기술한 정보를 기반으로, 아래의 과정을 자동으로 수행합니다.

① 컴포넌트의 특성 분석

소프트웨어 개발자는 컴포넌트의 기능뿐 아니라

필요한 프로세서 유형

필요한 계산량

특수 요구사항

다른 컴포넌트와의 연결 구조

등의 정보를 함께 기술합니다.

② 노드의 특성 파악

하드웨어 개발자는 각 노드의

CPU 종류(DSP, MCU, GPP 등)

지원 실행 모델(멀티프로세스, 쓰레드, RTOS 등)

하드웨어 장치 유무

등을 기술합니다.

③ 최적 노드 자동 배치 및 실행

RSCA는 위 두 정보를 비교하여 특정 컴포넌트를 실행하기에 가장 적합한 노드를 자동으로 찾아냅니다.

그리고 해당 노드가 지원하는 방식에 맞게 컴포넌트를 실행합니다.

예를 들어 DSP를 사용하는 노드라면 해당 DSP가 요구하는 방식으로 실행을 준비하고, 쓰레드 기반 노드라면 그에 맞춰 컴포넌트를 구동합니다.

④ 분산 컴포넌트 연결 자동화

로봇은 보통 수십 개 이상의 컴포넌트가 서로 통신하며 구성됩니다.

RSCA는 이러한 분산된 컴포넌트들을 자동으로 연결하여 하나의 완전한 서비스가 동작하도록 구성합니다.

덕분에 소프트웨어 개발자도, 하드웨어 개발자도, 로봇 설치자도 컴포넌트 배치와 실행 방식에 대해 고민할 필요가 없어집니다.

 

로봇 소프트웨어 배포의 복잡함을 해결하는 RSCA의 가치는?

결론적으로 RSCA는 로봇 소프트웨어 개발의 복잡함을 획기적으로 줄여주는 핵심 기술입니다.

다양한 컴포넌트들이 서로 다른 노드에서 동작해야 하는 복잡한 환경 속에서도 RSCA는 최적의 배치를 자동으로 찾아주고, 실행 방식까지 지원해줍니다.

이는 로봇 개발 비용과 시간을 단축시키며, 더 안정적인 로봇 서비스를 구현할 수 있도록 돕는 중요한 기반 기술입니다.

앞으로 로봇 산업이 더욱 확장될수록 RSCA와 같은 지능형 소프트웨어 아키텍처의 역할은 더욱 중요해질 것으로 기대됩니다.