dora-rs/dora
DORA (Dataflow-Oriented Robotic Architecture) is middleware designed to streamline and simplify the creation of AI-based robotic applications. It offers low latency, composable, and distributed dataflow capabilities. Applications are modeled as directed graphs, also referred to as pipelines.
해결하는 문제
Dora는 실시간 로보틱스 및 AI 애플리케이션 구축을 위한 고성능 프레임워크입니다. 제로 카피 데이터 평면과 복잡한 AI 파이프라인을 유향 그래프로 구성하는 선언적 방식을 제공하여, 로보틱스 미들웨어(ROS2 등)에서 흔히 발생하는 지연 시간 및 처리량 병목 현상을 해결합니다.
작동 원리
노드(독립 프로세스)와 연산자(경량 인프로세스 함수)가 입출력을 통해 통신하는 데이터 흐름 지향 아키텍처를 사용합니다.
- 데이터 평면: Rust와 Zenoh를 기반으로 구축되었으며, 공유 메모리(SHM)를 활용하여 대용량 메시지(>4KB)를 제로 카피로 전송함으로써 지연 시간을 크게 줄입니다.
- 메모리 포맷: Apache Arrow를 네이티브로 사용하여 컬럼형 메모리를 구현함으로써, 서로 다른 언어 바인딩 간의 직렬화 오버헤드를 제거합니다.
- 오케스트레이션: 중앙의 Coordinator가 여러 Daemon(호스트당 하나)에 걸친 데이터 흐름의 라이프사이클을 관리하여, 원활한 로컬 및 분산 배포를 가능하게 합니다。
- 구성: 파이프라인은 YAML 파일로 정의되며, 개발자는 노드를 연결하고 유형, 환경 변수 및 재시작 정책을 지정할 수 있습니다.
대상 사용자
- 로보틱스 엔지니어: 센서 퓨전 및 제어를 위해 ROS2를 대체할 저지연 실시간 대안이 필요한 분.
- AI 연구자: Python과 Rust 사이의 고처리량 데이터 이동이 필요한 멀티모달 AI 에이전트 또는 인지 파이프라인을 구축하는 개발자.
- 시스템 아키텍트: 클러스터의 머신에 분산 AI 애플리케이션을 배포하는 엔지니어.
주요 특징
- 극한의 성능: 최대 4MB의 페이로드에 대해 평탄한 지연 시간을 유지하며, ROS2 Python보다 10-17배 빠릅니다.
- 다국어 지원: Rust, Python, C, C++용 네이티브 API를 제공하여 단일 데이터 흐름 내에서 노드를 혼합하여 사용할 수 있습니다.
- 기본적으로 분산형: Zenoh를 통한 자동화된 머신 간 통신 및 SSH 기반 클러스터 관리를 제공합니다.
- 개발자 도구: 실시간 모니터링(
dora top), 토픽 검사, 회귀 테스트를 위한 기록/재생 기능을 포함한 포괄적인 CLI를 제공합니다. - Node Hub: 재사용 가능한 버전 관리된 AI 노드(예: YOLO, LLMs)를 데이터 흐름에 직접 가져올 수 있는 패키지 매니저.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트