| @@ -34,7 +34,11 @@ | |||
| <a href="https://trendshift.io/repositories/9190" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9190" alt="dora-rs%2Fdora | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> | |||
| </div> | |||
| An extremely fast and simple **dataflow oriented robotic** framework to manage your projects and run realtime multi-AI and multi-hardware **applications**, written in Rust. | |||
| ## Highlights | |||
| - 🚀 dora-rs is a framework to run realtime multi-AI and multi-hardware applications. | |||
| - 🦀 dora-rs internals are 100% Rust making it extremely fast compared to alternative such as being ⚡️ [10-17x faster](https://github.com/dora-rs/dora-benchmark) than `ros2`. | |||
| - ❇️ Includes a large set of pre-packaged nodes for fast prototyping which simplifies integration of hardware, algorithms, and AI models. | |||
| <p align="center"> | |||
| <picture align="center"> | |||
| @@ -55,144 +59,160 @@ An extremely fast and simple **dataflow oriented robotic** framework to manage y | |||
| <details open> | |||
| <summary><b>2025</b></summary> | |||
| - \[2025/03/05\] dora-rs has been accepted to [**GSoC 2025 🎉**](https://summerofcode.withgoogle.com/programs/2025/organizations/dora-rs-tb), with the following [**idea list**](https://github.com/dora-rs/dora/wiki/GSoC_2025). | |||
| - \[2025/03/04\] Add support for Zenoh for distributed dataflow. | |||
| - \[2025/03/04\] Add support for Meta SAM2, Kokoro(TTS), Improved Qwen2.5 Performance using `llama.cpp`. | |||
| - \[2025/02/25\] Add support for Qwen2.5(LLM), Qwen2.5-VL(VLM), outetts(TTS) | |||
| - \[03/05\] dora-rs has been accepted to [**GSoC 2025 🎉**](https://summerofcode.withgoogle.com/programs/2025/organizations/dora-rs-tb), with the following [**idea list**](https://github.com/dora-rs/dora/wiki/GSoC_2025). | |||
| - \[03/04\] Add support for Zenoh for distributed dataflow. | |||
| - \[03/04\] Add support for Meta SAM2, Kokoro(TTS), Improved Qwen2.5 Performance using `llama.cpp`. | |||
| - \[02/25\] Add support for Qwen2.5(LLM), Qwen2.5-VL(VLM), outetts(TTS) | |||
| </details> | |||
| ## Highlights | |||
| ## Support Matrix | |||
| - 🚀 A single CLI to run multiple AI models and hardware drivers in parallel. | |||
| - 🦀 dora-rs is 100% Rust project. | |||
| - 🖥️ Supports macOS, Linux, and Windows. | |||
| - ⚙️ Support Python, C, C++, and ROS2, while ensuring low-latency communication with zero-copy Arrow messages. | |||
| - ⏬ Everything is `pip`, `cargo`, or `curl` installable. | |||
| - ❇️ Includes a large set of pre-packaged nodes for fast prototyping. | |||
| - 🛠️ Build and Run applications **without compilation step** beyond the native compiler of your favourite language. | |||
| - 🤖 Simplifies building robotic applications by integrating hardware, algorithms, and AI models to facilitate seamless communication. | |||
| - ⚡️ [10-17x faster](https://github.com/dora-rs/dora-benchmark) than `ros2`. | |||
| | | dora-rs | | |||
| | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | |||
| | **APIs** | Python >= 3.7 ✅ <br> Rust ✅<br> C/C++ 🆗 <br>ROS2 >= Foxy 🆗 | | |||
| | **OS** | Linux: Arm 32 ✅ Arm 64 ✅ x64_86 ✅ <br>MacOS: Arm 64 ✅ x64_86 ✅<br>Windows: x64_86 🆗<br> Android: 🛠️ (Blocked by: https://github.com/elast0ny/shared_memory/issues/32) <br> IOS: 🛠️ | | |||
| | **Message Format** | Arrow ✅ <br> Standard Specification 🛠️ | | |||
| | **Local Communication** | Shared Memory ✅ <br> [Cuda IPC](https://arrow.apache.org/docs/python/api/cuda.html) 📐 | | |||
| | **Remote Communication** | [Zenoh](https://zenoh.io/) 📐 | | |||
| | **Metrics, Tracing, and Logging** | Opentelemetry 📐 | | |||
| | **Configuration** | YAML ✅ | | |||
| | **Package Manager** | [pip](https://pypi.org/): Python Node ✅ Rust Node ✅ C/C++ Node 🛠️ <br>[cargo](https://crates.io/): Rust Node ✅ | | |||
| > - ✅ = First Class Support | |||
| > - 🆗 = Best Effort Support | |||
| > - 📐 = Experimental and looking for contributions | |||
| > - 🛠️ = Unsupported but hoped for through contributions | |||
| > | |||
| > Everything is open for contributions 🙋 | |||
| ## Node Hub | |||
| > Feel free to modify this README with your own nodes so that it benefits the community. | |||
| ### Camera | |||
| | Title | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | | |||
| | [PyOrbbeckSDK](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyorbbecksdk) | Image and depth from Orbbeck Camera |  |  |  | | |||
| | [PyRealsense](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyrealsense) | Image and depth from Realsense |  |  |  | | |||
| | [Video Capture](https://github.com/dora-rs/dora/blob/main/node-hub/opencv-video-capture) | Image stream from Camera |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------------- | ------------------ | ----------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | | |||
| | [PyOrbbeckSDK](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyorbbecksdk) | 📐 | Image and depth from Orbbeck Camera |  |  |  | | |||
| | [PyRealsense](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyrealsense) | Linux🆗 <br> Mac🛠️ | Image and depth from Realsense |  |  |  | | |||
| | [Video Capture](https://github.com/dora-rs/dora/blob/main/node-hub/opencv-video-capture) | ✅ | Image stream from Camera |  |  |  | | |||
| ### Peripheral | |||
| | Title | Description | Downloads | License | Release | | |||
| | ----------------------------------------------------------------------------------- | ------------------------- | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [PyAudio(Speaker)](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyaudio) | Output audio from speaker |  |  |  | | |||
| | [Microphone](https://github.com/dora-rs/dora/blob/main/node-hub/dora-microphone) | Audio from microphone |  |  |  | | |||
| | [Keyboard](https://github.com/dora-rs/dora/blob/main/node-hub/dora-keyboard) | Keyboard char listener |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ----------------------------------------------------------------------------------- | ------- | ------------------------- | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [Keyboard](https://github.com/dora-rs/dora/blob/main/node-hub/dora-keyboard) | ✅ | Keyboard char listener |  |  |  | | |||
| | [Microphone](https://github.com/dora-rs/dora/blob/main/node-hub/dora-microphone) | ✅ | Audio from microphone |  |  |  | | |||
| | [PyAudio(Speaker)](https://github.com/dora-rs/dora/blob/main/node-hub/dora-pyaudio) | ✅ | Output audio from speaker |  |  |  | | |||
| ### Actuator | |||
| | Title | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------------- | ---------------- | --------- | ------- | ------- | | |||
| | [Feetech](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/feetech-client) | Feetech Client | | | | | |||
| | [Dynamixel](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/dynamixel-client) | Dynamixel Client | | | | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------------- | ------- | ---------------- | --------- | ------- | ------- | | |||
| | [Feetech](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/feetech-client) | 📐 | Feetech Client | | | | | |||
| | [Dynamixel](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/dynamixel-client) | 📐 | Dynamixel Client | | | | | |||
| ### Chassis | |||
| | Title | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------------- | ------------------- | --------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | | |||
| | [Dora Kit Car](https://github.com/dora-rs/dora/blob/main/node-hub/dora-kit-car) | Open Source Chassis |  |  |  | | |||
| | [Agilex - UGV](https://github.com/dora-rs/dora/blob/main/node-hub/dora-ugv) | Robomaster Client |  |  |  | | |||
| | [DJI - Robomaster S1](https://huggingface.co/datasets/dora-rs/dora-robomaster) | Robomaster Client | | | | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------------- | ------- | ------------------- | --------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | | |||
| | [Agilex - UGV](https://github.com/dora-rs/dora/blob/main/node-hub/dora-ugv) | 🆗 | Robomaster Client |  |  |  | | |||
| | [DJI - Robomaster S1](https://huggingface.co/datasets/dora-rs/dora-robomaster) | 📐 | Robomaster Client | | | | | |||
| | [Dora Kit Car](https://github.com/dora-rs/dora/blob/main/node-hub/dora-kit-car) | 🆗 | Open Source Chassis |  |  |  | | |||
| ### Arm | |||
| | Title | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------------------------------ | --------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | | |||
| | [Alex Koch - Low Cost Robot](https://github.com/dora-rs/dora-lerobot/blob/main/robots/alexk-lcr) | Alex Koch - Low Cost Robot Client | | | | | |||
| | [Lebai - LM3](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/lebai-client) | Lebai client | | | | | |||
| | [Agilex - Piper](https://github.com/dora-rs/dora/blob/main/node-hub/dora-piper) | Agilex arm client |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------------------------------ | ------- | --------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | | |||
| | [Alex Koch - Low Cost Robot](https://github.com/dora-rs/dora-lerobot/blob/main/robots/alexk-lcr) | 📐 | Alex Koch - Low Cost Robot Client | | | | | |||
| | [Lebai - LM3](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/lebai-client) | 📐 | Lebai client | | | | | |||
| | [Agilex - Piper](https://github.com/dora-rs/dora/blob/main/node-hub/dora-piper) | 🆗 | Agilex arm client |  |  |  | | |||
| ### Robot | |||
| | Title | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------------------- | --------------- | --------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | | |||
| | [Pollen - Reachy 2](https://github.com/dora-rs/dora/blob/main/node-hub/dora-reachy2) | Reachy 2 client |  |  |  | | |||
| | [Trossen - Aloha](https://github.com/dora-rs/dora-lerobot/blob/main/robots/aloha) | Aloha client | | | | | |||
| | [Pollen - Reachy 1](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/dora-reachy1) | Reachy 1 Client | | | | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------------------- | ------- | --------------- | --------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | | |||
| | [Pollen - Reachy 1](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/dora-reachy1) | 📐 | Reachy 1 Client | | | | | |||
| | [Pollen - Reachy 2](https://github.com/dora-rs/dora/blob/main/node-hub/dora-reachy2) | 🆗 | Reachy 2 client |  |  |  | | |||
| | [Trossen - Aloha](https://github.com/dora-rs/dora-lerobot/blob/main/robots/aloha) | 📐 | Aloha client | | | | | |||
| ### Voice Activity Detection | |||
| ### Voice Activity Detection(VAD) | |||
| | Title | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | | |||
| | [Silero VAD](https://github.com/dora-rs/dora/blob/main/node-hub/dora-vad) | Silero Voice activity detection |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------- | ------- | ------------------------------- | ----------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | | |||
| | [Silero VAD](https://github.com/dora-rs/dora/blob/main/node-hub/dora-vad) | ✅ | Silero Voice activity detection |  |  |  | | |||
| ### Speech to Text | |||
| ### Speech to Text(STT) | |||
| | Title | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------- | ------------------------ | ---------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | | |||
| | [Whisper](https://github.com/dora-rs/dora/blob/main/node-hub/dora-distil-whisper) | Transcribe audio to text |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------- | ------- | ------------------------ | ---------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | | |||
| | [Whisper](https://github.com/dora-rs/dora/blob/main/node-hub/dora-distil-whisper) | ✅ | Transcribe audio to text |  |  |  | | |||
| ### Object Detection | |||
| | Title | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------- | ---------------- | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | | |||
| | [Yolov8](https://github.com/dora-rs/dora/blob/main/node-hub/dora-yolo) | Object detection |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------- | ------- | ---------------- | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | | |||
| | [Yolov8](https://github.com/dora-rs/dora/blob/main/node-hub/dora-yolo) | ✅ | Object detection |  |  |  | | |||
| ### Segmentation | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------- | ------------------- | ---------------- | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | | |||
| | [SAM2](https://github.com/dora-rs/dora/blob/main/node-hub/dora-sam2) | Cuda✅ <br> Metal🛠️ | Segment Anything |  |  |  | | |||
| ### Vision Language Model | |||
| ### Large Language Model(LLM) | |||
| | Title | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [Qwen2.5-vl](https://github.com/dora-rs/dora/blob/main/node-hub/dora-qwen2-5-vl) | Vision Language Model using Qwen2.5 VL |  |  |  | | |||
| | [InternVL](https://github.com/dora-rs/dora/blob/main/node-hub/dora-internvl) | InternVL is a vision language model |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ----------------------------------------------------------------------- | ------- | ------------------------------- | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | | |||
| | [Qwen2.5](https://github.com/dora-rs/dora/blob/main/node-hub/dora-qwen) | ✅ | Large Language Model using Qwen |  |  |  | | |||
| ### Large Language Model | |||
| ### Vision Language Model(VLM) | |||
| | Title | Description | Downloads | License | Release | | |||
| | ----------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | | |||
| | [Qwen2.5](https://github.com/dora-rs/dora/blob/main/node-hub/dora-qwen) | Large Language Model using Qwen |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------- | ------- | -------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [Qwen2.5-vl](https://github.com/dora-rs/dora/blob/main/node-hub/dora-qwen2-5-vl) | ✅ | Vision Language Model using Qwen2.5 VL |  |  |  | | |||
| | [InternVL](https://github.com/dora-rs/dora/blob/main/node-hub/dora-internvl) | 🆗 | InternVL is a vision language model |  |  |  | | |||
| ### Vision Language Action | |||
| ### Vision Language Action(VLA) | |||
| | Title | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------ | ------------------------------------------------ | -------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | |||
| | [RDT-1B](https://github.com/dora-rs/dora/blob/main/node-hub/dora-rdt-1b) | Infer policy using Robotic Diffusion Transformer |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ------------------------------------------------------------------------ | ------- | ------------------------------------------------ | -------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | |||
| | [RDT-1B](https://github.com/dora-rs/dora/blob/main/node-hub/dora-rdt-1b) | 🆗 | Infer policy using Robotic Diffusion Transformer |  |  |  | | |||
| ### Translation | |||
| | Title | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------------- | ------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | |||
| | [Opus MT](https://github.com/dora-rs/dora/blob/main/node-hub/dora-opus) | Translate text between language |  |  |  | | |||
| | [ArgosTranslate](https://github.com/dora-rs/dora/blob/main/node-hub/dora-argotranslate) | Open Source translation engine |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------------- | ------- | ------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | |||
| | [ArgosTranslate](https://github.com/dora-rs/dora/blob/main/node-hub/dora-argotranslate) | 🆗 | Open Source translation engine |  |  |  | | |||
| | [Opus MT](https://github.com/dora-rs/dora/blob/main/node-hub/dora-opus) | 🆗 | Translate text between language |  |  |  | | |||
| ### Text to Speech | |||
| ### Text to Speech(TTS) | |||
| | Title | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [Kokoro TTS](https://github.com/dora-rs/dora/blob/main/node-hub/dora-kokoro-tts) | Efficient Text to Speech |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | -------------------------------------------------------------------------------- | ------- | ------------------------ | ------------------------------------------------------------ | --------------------------------------------------------- | --------------------------------------------------------- | | |||
| | [Kokoro TTS](https://github.com/dora-rs/dora/blob/main/node-hub/dora-kokoro-tts) | ✅ | Efficient Text to Speech |  |  |  | | |||
| ### Recorder | |||
| | Title | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | |||
| | [Llama Factory Recorder](https://github.com/dora-rs/dora/blob/main/node-hub/llama-factory-recorder) | Record data to train LLM and VLM |  |  |  | | |||
| | [LeRobot Recorder](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/lerobot-dashboard) | LeRobot Recorder helper | | | | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | --------------------------------------------------------------------------------------------------- | ------- | -------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | |||
| | [Llama Factory Recorder](https://github.com/dora-rs/dora/blob/main/node-hub/llama-factory-recorder) | 🆗 | Record data to train LLM and VLM |  |  |  | | |||
| | [LeRobot Recorder](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/lerobot-dashboard) | 📐 | LeRobot Recorder helper | | | | | |||
| ### Visualization | |||
| | Title | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | |||
| | [Plot](https://github.com/dora-rs/dora/blob/main/node-hub/opencv-plot) | Simple OpenCV plot visualization |  |  |  | | |||
| | [Rerun](https://github.com/dora-rs/dora/blob/main/node-hub/dora-rerun) | Visualization tool |  |  |  | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------- | ------- | -------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | |||
| | [Plot](https://github.com/dora-rs/dora/blob/main/node-hub/opencv-plot) | ✅ | Simple OpenCV plot visualization |  |  |  | | |||
| | [Rerun](https://github.com/dora-rs/dora/blob/main/node-hub/dora-rerun) | ✅ | Visualization tool |  |  |  | | |||
| ### Simulator | |||
| | Title | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------- | ------------------------------------ | --------- | ------- | ------- | | |||
| | [Mujoco](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/mujoco-client) | Mujoco Simulator | | | | | |||
| | [Carla](https://github.com/dora-rs/dora-drives) | Carla Simulator | | | | | |||
| | [Gymnasium](https://github.com/dora-rs/dora-lerobot/blob/main/gym_dora) | Experimental OpenAI Gymnasium bridge | | | | | |||
| | Title | Support | Description | Downloads | License | Release | | |||
| | ---------------------------------------------------------------------------------- | ------- | ------------------------------------ | --------- | ------- | ------- | | |||
| | [Mujoco](https://github.com/dora-rs/dora-lerobot/blob/main/node-hub/mujoco-client) | 📐 | Mujoco Simulator | | | | | |||
| | [Carla](https://github.com/dora-rs/dora-drives) | 📐 | Carla Simulator | | | | | |||
| | [Gymnasium](https://github.com/dora-rs/dora-lerobot/blob/main/gym_dora) | 📐 | Experimental OpenAI Gymnasium bridge | | | | | |||
| ## Getting Started | |||
| @@ -238,11 +258,16 @@ PATH=$PATH:$(pwd)/target/release | |||
| ### Run | |||
| 1. Run some Python examples: | |||
| - Run the yolo python example: | |||
| ```bash | |||
| ## Create a virtual environment | |||
| uv venv --seed -p 3.11 | |||
| ## Install nodes dependencies of a remote graph | |||
| dora build https://raw.githubusercontent.com/dora-rs/dora/refs/heads/main/examples/object-detection/yolo.yml --uv | |||
| ## Run yolo graph | |||
| dora run yolo.yml --uv | |||
| ``` | |||
| @@ -250,46 +275,58 @@ dora run yolo.yml --uv | |||
| To stop your dataflow, you can use <kbd>ctrl</kbd>+<kbd>c</kbd> | |||
| ### Documentation | |||
| The full documentation is available on [our website](https://dora-rs.ai/). | |||
| A lot of guides are available on [this section](https://dora-rs.ai/docs/guides/) of our website. | |||
| ## What is Dora? And what features does Dora offer? | |||
| **D**ataflow-**O**riented **R**obotic **A**rchitecture (`dora-rs`) is a framework that makes creation of robotic applications fast and simple. | |||
| - To understand what is happening, you can look at the dataflow with: | |||
| `dora-rs` implements a declarative dataflow paradigm where tasks are split between nodes isolated as individual processes. | |||
| ```bash | |||
| cat yolo.yml | |||
| ``` | |||
| Each node defines its inputs and outputs to connect with other nodes. | |||
| - Resulting in: | |||
| ```yaml | |||
| nodes: | |||
| - id: camera | |||
| build: pip install opencv-video-capture | |||
| path: opencv-video-capture | |||
| inputs: | |||
| tick: dora/timer/millis/20 | |||
| outputs: | |||
| - image | |||
| env: | |||
| CAPTURE_PATH: 0 | |||
| IMAGE_WIDTH: 640 | |||
| IMAGE_HEIGHT: 480 | |||
| - id: object-detection | |||
| build: pip install dora-yolo | |||
| path: dora-yolo | |||
| inputs: | |||
| image: camera/image | |||
| outputs: | |||
| - bbox | |||
| - id: plot | |||
| path: opencv-plot | |||
| build: pip install dora-rerun | |||
| path: dora-rerun | |||
| inputs: | |||
| image: camera/image | |||
| boxes2d: object-detection/bbox | |||
| ``` | |||
| The dataflow paradigm has the advantage of creating an abstraction layer that makes robotic applications modular and easily configurable. | |||
| - In the above example, we can understand that the camera is sending image to both the rerun viewer as well as a yolo model that generates bounding box that is visualized within rerun. | |||
| <p align="center"> | |||
| <picture align="center"> | |||
| <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/dora_diag_dark.svg"> | |||
| <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/dora_diag_light.svg"> | |||
| <img src="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/dora_diag_light.svg"> | |||
| </picture> | |||
| </p> | |||
| ### Documentation | |||
| --- | |||
| The full documentation is available on [our website](https://dora-rs.ai/). | |||
| A lot of guides are available on [this section](https://dora-rs.ai/docs/guides/) of our website. | |||
| It offers several features, such as: | |||
| ## What is Dora? And what features does Dora offer? | |||
| **D**ataflow-**O**riented **R**obotic **A**rchitecture (`dora-rs`) is a framework that makes creation of robotic applications fast and simple. | |||
| `dora-rs` implements a declarative dataflow paradigm where tasks are split between nodes isolated as individual processes. | |||
| The dataflow paradigm has the advantage of creating an abstraction layer that makes robotic applications modular and easily configurable. | |||
| ### TCP Communication and Shared Memory | |||
| @@ -338,41 +375,6 @@ turtle_twist_writer.publish(message) | |||
| > You might want to use ChatGPT to write the Arrow Formatting: https://chat.openai.com/share/4eec1c6d-dbd2-46dc-b6cd-310d2895ba15 | |||
| ## Showcases | |||
| ### Self-Coding Robot: Code RAG (WIP) | |||
| You can easily create a self-coding robot, by combining Hot-reloading with a Retrieval Augmented Generation (RAG) that is going to generate code modification from your prompt. | |||
| See:[examples/python-operator-dataflow](examples/python-operator-dataflow) | |||
| <p align="center"> | |||
| <picture align="center"> | |||
| <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/self_coding_dark.svg"> | |||
| <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/self_coding_light.svg"> | |||
| <img src="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/self_coding_light.svg"> | |||
| </picture> | |||
| </p> | |||
| Self-Coding Robot is just the tip of the iceberg of robotics combined with llm, that we hope to power. There is so much more that we haven't explored yet like: | |||
| - [self-debugging](https://arxiv.org/pdf/2304.05128.pdf) | |||
| - [memory](https://github.com/cpacker/MemGPT) | |||
| - [function calling](https://github.com/ShishirPatil/gorilla) | |||
| ## Support Matrix | |||
| | | dora-rs | Hoped for | | |||
| | --------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------- | | |||
| | **Tier 1 Support** | Python, Rust | C, C++, ROS 2 | | |||
| | **Tier 2 Support** | C, C++, ROS2 | | |||
| | **Message Format** | Arrow | Native | | |||
| | **Local Communication** | Shared Memory, [Cuda zero-copy IPC](https://arrow.apache.org/docs/python/api/cuda.html) | Custom Middleware, intra-process `tokio::channel` communication | | |||
| | **Remote Communication** | [Zenoh](https://zenoh.io/) | Custom Middleware | | |||
| | **Metrics, Tracing, and Logging** | Opentelemetry | Native logging libraries into Opentelemetry | | |||
| | **Supported Platforms (x86)** | Windows, MacOS, Linux | | |||
| | **Supported Platforms (ARM)** | MacOS, Linux | | |||
| | **Configuration** | YAML | | |||
| ## Contributing | |||
| We are passionate about supporting contributors of all levels of experience and would love to see | |||