Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

DimOS

ROS 없이 동작하는 파이썬 로보틱스 런타임, 에이전트·SLAM·원격조작 내장

라이선스

Apache-2.0

개요

DimOS는 ROS 없이 로봇 애플리케이션을 구축하기 위한 파이썬 런타임이다. 하위 시스템은 타입이 붙은 In[]과 Out[] 스트림을 가진 Module이며, 블루프린트가 autoconnect()로 이들을 연결한다. autoconnect()는 이름과 메시지 타입으로 스트림을 짝지어 주고, 합성·재매핑하거나 전송 계층을 바꿀 수 있다. 그 위에 대부분의 스택이 손으로 조립하는 기능들이 얹힌다. A* 경로계획과 프런티어 탐사를 갖춘 SLAM·코스트맵 내비게이션, 검출기와 VLM을 쓰는 인식, 시간에 걸쳐 물체 위치를 추적하는 시공간 기억, 그리고 어떤 스트림이든 구독할 수 있는 네이티브 모듈로 동작하는 에이전트다. dimos CLI는 블루프린트를 실행하고, 로그를 따라가고, 에이전트에 명령을 보내고, MCP로 스킬을 호출한다. 리플레이와 MuJoCo 시뮬레이션 모드 덕분에 퀵스타트는 책상 위에 로봇이 없어도 동작한다.

이 카탈로그의 에이전트형 로보틱스 항목은 거의 전부 ROS 2 위에 얹혀 있다. RAI, AgenticROS, ROS-MCP 등은 모두 ROS를 바탕으로 두고 그 위에 언어 계층을 더한다. DimOS는 정반대에 걸었다. 미들웨어까지 교체한다. 모듈, 타입이 붙은 스트림, 블루프린트, 그리고 자체 전송 계층(LCM, WebRTC, 호스팅 브로커)은 ROS의 노드·토픽·런치 파일에 대한 완전한 대안이며, 파이썬으로 작성되고 속도가 중요한 곳에는 러스트와 C++가 쓰였다. 그 도박이 성립하는지가 바로 독자가 저울질해야 할 질문이고, 저장소는 판단에 충분한 재료를 내놓는다. 별 4,500개, 매일의 커밋, 이름이 드러난 십여 명의 기여자, 그리고 무엇이 안정적인지 솔직하게 밝히는 하드웨어 지원 표다.

그 표가 README에서 가장 쓸모 있는 페이지다. 유니트리 Go2가 안정으로 표시된 유일한 플랫폼이고, 휴머노이드 G1과 xArm, AgileX Piper는 베타, MAVLink와 DJI는 알파, B1과 힘·토크 센싱은 실험 단계다. 설치 경로도 같은 방식으로 등급이 매겨져 있다. Ubuntu 22.04와 24.04가 지원 경로이고, NixOS와 일반 리눅스는 CI 검증이 없으며, macOS는 알파다. 자기 지원 등급을 정직하게 표시하는 프로젝트는 모든 플랫폼을 동등하게 나열하는 프로젝트보다 평가하기 쉽고, 저장소 전체에는 사전 배포 베타 배너가 달려 있다.

원격 조작에 해당하는 dimTELE는 따로 언급할 만하다. 로봇이 호스팅 브로커로 바깥을 향해 발신하므로 인바운드 포트를 열 필요가 없고, 조작자는 브라우저나 Quest 헤드셋에서 WebRTC로 운전한다. 잘 동작하며 이 스택을 가장 명확하게 보여주는 데모지만, Dimensional 자체 콘솔의 계정과 API 키가 필요하다. 클라이언트와 전송 코드는 Apache-2.0 저장소 안에 있지만, 반대편 브로커는 그렇지 않다.

중요한 이유

수록할 만한 다른 에이전트형 로보틱스 프레임워크는 예외 없이 ROS 2를 전제하고 그 위에 언어 계층을 쌓는다. DimOS는 미들웨어 자체를 교체해야 하는 것 아니냐고 묻는 유일한 프로젝트이며, 추측이 아니라 평가의 대상이 될 만큼 진척되어 있다. 토픽 대신 타입이 붙은 파이썬 스트림, 실제로 동작하는 내비게이션과 기억 스택, 일급 모듈로서의 에이전트, 그리고 하드웨어 없이도 주장을 검증할 수 있는 리플레이 데이터가 있다. 채택하든 않든, ROS 형태의 기본값이 법칙이 아니라 선택임을 보여주는 현재로서 가장 강력한 논거다.

해결하는 문제

로봇 애플리케이션을 만들려면 보통 동작 코드를 한 줄 쓰기도 전에 ROS 2와 그에 딸린 모든 것—빌드 시스템, 메시지 정의, 런치 파일—을 받아들여야 한다. DimOS는 같은 계층을 평범한 파이썬으로 제공한다. 모듈 사이의 타입이 붙은 스트림, 그것을 실행하고 들여다보는 CLI, 그리고 그 위에 이미 구축된 내비게이션·인식·기억·에이전트 연동이다.

핵심 요점

  • 의도적으로 ROS를 쓰지 않는 파이썬 로보틱스 런타임 — 타입이 붙은 In[]/Out[] 스트림을 가진 모듈을 autoconnect()가 합성 가능한 블루프린트로 연결한다
  • 내비게이션(SLAM, 코스트맵, A* 경로계획, 프런티어 탐사), 인식, 그리고 물체가 언제 어디에 있었는지 기록하는 시공간 기억을 함께 제공한다
  • 에이전트가 MCP 도구를 갖춘 네이티브 모듈이므로 dimos agent-send "explore the room"과 dimos mcp call move_to가 일급 CLI 동사다
  • 리플레이와 MuJoCo 시뮬레이션 모드는 소개된 퀵스타트를 로봇 없이 그대로 실행한다
  • 하드웨어 표가 자기 지원 수준을 정직하게 매긴다. 유니트리 Go2는 안정, G1과 xArm은 베타, MAVLink와 DJI는 알파, B1은 실험 단계다
  • dimTELE는 브로커로 발신하는 방식으로 브라우저와 Quest 원격조작을 WebRTC로 제공하므로 로봇 쪽 네트워크에 인바운드 포트가 필요 없다
  • Dimensional Inc.의 Apache-2.0 프로젝트이며, 십여 명의 상시 기여자가 있고 커밋이 매일 들어온다

대상

  • ROS 2를 먼저 배우지 않고 로봇 동작을 작성하고 싶은 파이썬 개발자
  • 유니트리 사족보행 로봇이나 휴머노이드를 다루며 제조사 SDK 위에 얹을 스택을 찾는 팀
  • REST 엔드포인트 호출이 아니라 실제 센서 스트림을 구독해야 하는 LLM·MCP 에이전트를 만드는 사람
  • 인바운드 포트를 열지 않고 NAT를 통과하는 원격 조작이 필요한 운영자
  • 미들웨어 설계를 비교하며 논박할 만한 진지한 비ROS 레퍼런스를 찾는 연구자

한계

  • 저장소가 스스로를 사전 배포 베타로 표시하고 PyPI도 여전히 0.0.x이므로 인터페이스는 움직일 것으로 봐야 한다
  • 약 700건의 이슈가 열려 있다. 활발한 프로젝트라는 뜻이지만, 도입 전에 읽어야 할 적체도 크다
  • ROS를 쓰지 않는다는 것은 ROS 생태계와 단절된다는 뜻이다. 기존 드라이버도, Nav2도, MoveIt도, rosbag도 없고, 프로젝트가 만들지 않은 것은 직접 만들어야 한다
  • 하드웨어 지원 범위가 좁고 대부분 불안정하다. 안정으로 표시된 플랫폼은 유니트리 Go2 하나뿐이고 나머지는 모두 베타·알파·실험 단계다
  • dimTELE의 브로커는 계정과 API 키가 필요한 Dimensional의 호스팅 서비스다. Apache-2.0 저장소가 주는 것은 클라이언트이지 반대편이 아니다
  • 검증된 경로는 Ubuntu 22.04/24.04이며, macOS는 알파이고 일반 리눅스는 CI 미검증임이 명시되어 있다
  • 이것은 커뮤니티 프로젝트인 동시에 한 회사의 제품 로드맵이기도 하다. 공개 저장소와 호스팅 콘솔은 함께 개발된다

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.