You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+137-21
Original file line number
Diff line number
Diff line change
@@ -31,55 +31,109 @@
31
31
32
32
---
33
33
34
-
## Why dora-rs?
34
+
#What is dora-rs?
35
35
36
-
In 2023, AI is booming! Robotic framework however hasn't changed much in years... This is why we create dora-rs! dora-rs is a new robotic framework that brings modernity into robotic application.
36
+
Dataflow-oriented robotic application (dora-rs) is a framework that makes creation of robotic applications fast and simple.
37
37
38
-
dora-rs can already show impressive performance, up to 17x speedup compared to ROS2 in Python! This is the result of using our own shared memory server and Apache Arrow to achieve zero copy!
38
+
Building a robotic application can be summed up as bringing together hardwares, algorithms, and AI models, and make them communicate with each others. At dora-rs, we try to:
39
39
40
-
Those performance improvements make a world of difference for beginners, AI practitioners, and weekend hobbyists who have been limited by the lack of support for Python in this field!
40
+
- make integration of hardware and software easy by supporting Python, C, C++, and also ROS2.
41
+
- make communication low latency by using zero-copy Arrow messages.
41
42
42
-
But, dora-rs is still experimental and we're still working on many features such as:
43
+
dora-rs is still experimental and you might experience bugs, but we're working very hard to make it stable as possible.
43
44
44
-
-[dora-ros2-bridge](https://github.com/dora-rs/dora-ros2-bridge) to bridge dora and ros 2!
45
-
- dora-rs for Deep Learning applications, to make it easy to integrate state of the art DL model and hopefully train them within the framework.
45
+
## Performance
46
46
47
-
Feel free to reach out if you have any questions!
47
+
dora-rs can show impressive performance, up to 17x faster compared to current status quo ROS2 in Python! This is the result of using our own shared memory server and Apache Arrow to achieve zero copy data passing.
> See: https://github.com/dora-rs/dora-benchmark/tree/main for reproduction.
54
+
55
+
## Dataflow Paradignm
56
+
57
+
dora-rs implements a dataflow paradigm where tasks are split between nodes isolated as individual processes.
58
+
Each node defines its inputs and outputs to connect with other nodes.
59
+
The dataflow paradigm has the advantage of creating an abstraction layer that makes robotic applications modular and easily configurable.
60
+
61
+
## Communication
62
+
63
+
Communication between nodes is handled with shared memory on a same machine and TCP on distributed machines. Our shared memory implementation tracks messages across processes and discards them when obsolete. Shared memory slots are cached to avoid new memory allocation.
64
+
65
+
## Message Format
66
+
67
+
Nodes communicate with Apache Arrow Data Format.
68
+
69
+
[Apache Arrow](https://github.com/apache/arrow-rs) is a universal memory format for flat and hierarchical data. The Arrow memory format supports zero-copy reads for lightning-fast data access without serialization overhead. It defines a C data interface without any build-time or link-time dependency requirement, that means that dora-rs has **no compilation step** beyond the native compiler of your favourite language.
dora-rs uses Opentelemetry to record all your logs, metrics and traces. This means that the data and telemetry can be linked using a shared abstraction.
76
+
77
+
[Opentelemetry](https://opentelemetry.io/) is an open source observability standard that makes dora-rs telemetry collectable by most backend such as elasticseach, prometheus, Datadog..
78
+
79
+
Opentelemetry is language independent, backend agnostic, and easily collect distributed data, making it perfect for dora-rs applications.
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.
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:
0 commit comments