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 애플리케이션을 구축하기 위한 고성능 프레임워크를 제공합니다. Rust 기반의 코어와 0-복사 공유 메모리 통신을 활용함으로써 전통적인 로봇 프레임워크(예: ROS2 Python)에서 흔히 발생하는 지연 및 처리량 병목 문제를 해결하여 데이터 집약적인 AI 파이프라인에 적합합니다.
작동 방식
Dora는 YAML 파일에서 정의된 방향 그래프로 애플리케이션을 구성하는 데이터 흐름 지향 아키텍처를 사용합니다. 노드(독립된 프로세스) 또는 오퍼레이터(경량 내부 프로세스 함수)는 타입이 지정된 입력과 출력을 통해 연결됩니다.
기술적으로 다음과 같은 요소를 활용합니다:
- Zenoh SHM 데이터 평면: 노드가 공유 메모리를 통해 직접 데이터를 게시할 수 있게 하여 데몬을 우회함으로써 지연을 최소화합니다.
- Apache Arrow: 끝에서 끝까지 열 기반 메모리 형식을 사용하여 직렬화 오버헤드를 제거합니다.
- 분산 오케스트레이션: 컨트롤러가 여러 데몬(각 호스트당 하나)에 걸쳐 데이터 흐름의 수명 주기를 관리하여 로컬 및 크로스 머신 통신을 원활하게 지원합니다.
대상 사용자
고처리량(예: 카메라 피드 또는 LLM 출력)을 필요로 하며, 여러 언어(Rust, Python, C, C++)를 지원하는 복잡한 실시간 시스템을 구축해야 하는 로봇 및 AI 엔지니어를 위한 것입니다.
주요 특징
- 극한의 성능: 대용량 데이터에 대해 0-복사 공유 메모리를 사용해 ROS2 Python보다 10-17배 빠릅니다.
- 다중 언어 지원: Rust, Python, C, C++에 대한 네이티브 API를 제공하여 혼합 언어 데이터 흐름을 가능하게 합니다.
- 생산 준비 완료 도구: 장애 내성(재시작 정책), 분산 클러스터 관리, 추적 및 메트릭을 위한 OpenTelemetry 통합 기능을 포함합니다.
- 관측성: 리소스 모니터링(
dora top), 토픽 검사, 회귀 테스트를 위한 기록/재생 기능을 내장한 TUI를 제공합니다. - 노드 허브: 재사용 가능하고 버전 관리된 노드(예: YOLO, LLM)를 프로젝트에 가져올 수 있는 패키지 매니저입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트