Платформа для симуляции в робототехнике и embodied AI: объединяет мультифизический движок, фотореалистичный рендерер и кроссплатформенный компилятор с интерфейсом на Python.
dora-rs/dora
Полностью написанный на Rust middleware-фреймворк для создания приложений в области робототехники и AI в виде направленных графов потоков данных.
- Звёзды
- 4,033
- Форки
- 463
- Открытые issues
- 111
- Последний коммит
- 6 часов назад
Что это?
Dora (Dataflow-Oriented Robotic Architecture) — фреймворк для создания приложений в области робототехники и AI из независимых узлов, соединённых в направленный граф. Каждый узел — отдельный процесс, написанный на Rust, Python, C или C++, а узлы обмениваются данными через типизированные входы и выходы, объявленные в YAML-файле. Фреймворк управляет запуском процессов, маршрутизацией сообщений и жизненным циклом узлов на одной или нескольких машинах.
Для задач с большими объёмами данных, например с кадрами с камер или облаками точек, dora использует shared memory с передачей данных без копирования между узлами на одной машине и Zenoh для связи между машинами. Сообщения передаются в формате Apache Arrow. CLI позволяет запускать потоки данных локально, настраивать coordinator и daemons для распределённой работы, а также просматривать topics, логи и использование ресурсов. Кроме того, поддерживаются запись и воспроизведение сообщений, политики перезапуска для каждого узла и мост с ROS2.
В Dora также есть каталог узлов, откуда можно устанавливать по версиям готовые к повторному использованию узлы, например для камер, детекторы YOLO и узлы LLM и TTS, а также модель операторов, выполняющихся в том же процессе и предназначенных для лёгких преобразований данных.
Ключевые возможности
- 01Потоки данных задаются в декларативном YAML как направленные графы; узлы можно писать на Rust, Python, C или C++.
- 02Передача данных без копирования через shared memory между узлами на одной машине и pub-sub через Zenoh между машинами.
- 03Формат сообщений Apache Arrow на всех этапах передачи.
- 04Единый CLI для локального запуска, распределённых кластеров, просмотра логов и topics, а также мониторинга ресурсов.
- 05Запись и воспроизведение сообщений потоков данных, а также политики перезапуска для каждого узла.
- 06Мост с ROS2 для topics, services и actions.
Сценарии использования
- Создание конвейера обработки данных для робота, объединяющего захват изображения с камеры, обнаружение объектов и визуализацию.
- Объединение AI-моделей на Python с компонентами управления на Rust или C++ в одном потоке данных.
- Запуск робототехнической или сенсорной системы на нескольких машинах с согласованным управлением жизненным циклом узлов.
- Подключение новых узлов на базе AI к существующей системе ROS2 через мост.
Быстрый старт
- 1
Установите dora CLI с crates.io
cargo install dora-cli - 2
Установите Python node API и зависимости примера
pip install dora-rs numpy pyarrow - 3
Клонируйте репозиторий и перейдите в его каталог
git clone https://github.com/dora-rs/dora.git && cd dora - 4
Запустите пример dataflow sender-transformer-receiver на Python
dora run examples/python-dataflow/dataflow.yml
Что важно знать
- В README указано, что Node Hub нестабилен.
- Восстановление запущенных dataflow после перезапуска координатора поддерживается лишь частично.
Темы
Частые вопросы
- Что такое dora?
- Полностью написанный на Rust middleware-фреймворк для создания приложений в области робототехники и AI в виде направленных графов потоков данных. Dora (Dataflow-Oriented Robotic Architecture) — фреймворк для создания приложений в области робототехники и AI из независимых узлов, соединённых в направленный граф. Каждый узел — отдельный процесс, написанный на Rust, Python, C или C++, а узлы обмениваются данными через типизированные входы и выходы, объявленные в YAML-файле. Фреймворк управляет запуском процессов, маршрутизацией сообщений и жизненным циклом узлов на одной или нескольких машинах.
- dora можно использовать бесплатно? Какая у него лицензия?
- dora распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- dora всё ещё поддерживается?
- Активно поддерживается. Последний коммит в dora — 22 окт. 2026 г..
- Для чего можно использовать dora?
- Создание конвейера обработки данных для робота, объединяющего захват изображения с камеры, обнаружение объектов и визуализацию. Объединение AI-моделей на Python с компонентами управления на Rust или C++ в одном потоке данных. Запуск робототехнической или сенсорной системы на нескольких машинах с согласованным управлением жизненным циклом узлов. Подключение новых узлов на базе AI к существующей системе ROS2 через мост.
- Как установить dora?
- Установите dora CLI с crates.io: cargo install dora-cli Установите Python node API и зависимости примера: pip install dora-rs numpy pyarrow Клонируйте репозиторий и перейдите в его каталог: git clone https://github.com/dora-rs/dora.git && cd dora Запустите пример dataflow sender-transformer-receiver на Python: dora run examples/python-dataflow/dataflow.yml
- Где скачать dora?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dora-rs/dora
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Открытая базовая vision-language-action-модель NVIDIA GR00T N1.7 для навыков управления гуманоидными роботами и манипуляции, с инструментами дообучения и развёртывания.
Открытый фреймворк для создания embodied-агентов, которые используют LLM-планировщики, VLA-модели манипуляции и память для выполнения задач на симуляторах и реальных роботах.
Python-привязки и слой политик для роботов на базе Rust-движка инференса ApxInf, запускающий VLA-модели, например PI-0.5, на Jetson Thor/Orin и GPU RTX.
Китайскоязычная база знаний и подборка материалов по Embodied AI: алгоритмы, инфраструктура, управление и оборудование, а также практическое руководство по RoboTwin 2.0.
Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки.