경량 로봇 스킬 프로그래밍 언어
초록
LightRocks는 로봇 프로그래밍을 위한 도메인 특화 언어(DSL)로, UML/P Statechart 기반의 계층적 모델을 사용한다. 가장 낮은 수준에서는 도메인 전문가가 개별 스킬을 정의하고, 상위 수준에서는 작업자나 기술자가 스킬을 조합해 작업(Task)을 만든다. MontiCore와 Eclipse 플러그인 기반 그래픽 편집기를 통해 코드 자동 생성과 구현 세부 은폐를 지원한다.
상세 분석
본 논문은 로봇 제어 소프트웨어 개발에서 흔히 발생하는 복잡성 문제를 해결하기 위해 세 가지 추상화 레벨을 도입한 새로운 DSL, LightRocks를 제시한다. 첫 번째 레벨인 ‘스킬(Skill)’은 로봇 관절 제어, 센서 피드백, 오류 처리 등 저수준 동작을 캡슐화한다. 여기서는 도메인 전문가가 UML/P Statechart를 활용해 상태 전이와 행동을 명시적으로 모델링한다. 이 단계는 기존 로봇 컨트롤러의 API와 직접 연결되며, MontiCore 기반의 템플릿 엔진을 통해 목표 플랫폼(C++/ROS, KUKA KRL 등)에 맞는 코드가 자동 생성된다.
두 번째 레벨인 ‘동작(Operation)’은 여러 스킬을 순차·병렬·조건부로 결합한다. 작업자는 그래픽 에디터에서 Statechart 형태의 흐름을 끌어다 놓기만 하면 되므로, 프로그래밍 지식이 제한적이어도 복잡한 로봇 동작을 설계할 수 있다. 이때 에디터는 스킬 간 인터페이스를 자동 검증하고, 타입 일관성을 보장한다.
세 번째 레벨인 ‘작업(Task)’은 현장 운영자가 생산 라인 요구에 맞춰 여러 동작을 조합해 고수준 작업 시나리오를 만든다. 여기서는 DSL의 문법이 크게 단순화되어, 텍스트 기반 혹은 드래그‑앤‑드롭 방식으로 작업 흐름을 정의한다. 작업 레벨에서는 실시간 스케줄링, 자원 할당, 에러 복구 전략 등이 자동으로 삽입되어, 현장 유지보수 비용을 크게 낮춘다.
기술적으로는 UML/P와 MontiCore를 결합해 메타모델을 정의하고, 이를 기반으로 파서·AST·코드 생성 파이프라인을 구축하였다. MontiCore의 언어 워크벤치는 DSL 확장성을 보장하며, 새로운 로봇 플랫폼이 추가될 때는 메타모델만 수정하면 된다. 또한, Eclipse 플러그인 형태의 그래픽 편집기는 Statechart 시각화를 지원하고, 실시간 시뮬레이션과 디버깅 인터페이스를 제공한다.
핵심 인사이트는 ‘추상화 레이어를 명확히 구분하고, 각 레이어마다 적절한 도구와 검증 메커니즘을 제공함으로써 개발자·작업자·도메인 전문가 간의 역할 경계를 최소화한다’는 점이다. 이는 전통적인 로봇 프로그래밍에서 발생하는 코드 재사용성 저하와 유지보수 비용 상승을 근본적으로 완화한다. 또한, DSL 기반 접근법은 로봇 시스템의 이식성을 높이고, 표준화된 모델링 언어(UML/P)를 활용함으로써 다른 엔지니어링 도메인과의 연계도 용이하게 만든다.
댓글 및 학술 토론
Loading comments...
의견 남기기