--- type: slide slideOptions: theme: white center: false --- <style> .reveal { font-size: 2.5rem; } </style> <p align="center"> <img src="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/logo.svg" width="400"> </p> Low latency, distributed, and composable data flow framework. [github.com/dora-rs/dora](https://github.com/dora-rs/dora/) <br><br> Xavier Tao, tao.xavier@outlook.com Nov 17, 2022 --- ## Objectif du projet > If we were to rewrite ROS today, what would it look like? - Introduire un nouveau framework de robotique avec: - Minimiser la latence de communication - Maximiser la composabilité - Améliorer l'ergonomie par rapport ROS/ROS2 --- ## COMMUNICATION - Utilisation de `shared memories` pour les communications inter-process. > tcp: Average duration: 44.391 us > shared memory: Average duration: 0.238 us > Message size: 128 bytes > See: https://stackoverflow.com/questions/2854004/ipc-speed-and-compare - Utilisation de `zenoh` pour les communications en système distribué - Minimisation du nombre de copies des données --- ## COMPOSABILITE - Utilisable sur Python, Rust, C, C++ - Réutilisation d'operateur existant similaire à dockerhub. --- > Exemple de demo Python: https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet/blob/master/track.py --- ```yaml communication: iceoryx: app_name_prefix: dora-iceoryx-example nodes: - id: webcam custom: run: ../../physicals/webcam.py inputs: timer: dora/timer/millis/100 outputs: - image - id: yolov5 operator: outputs: - bbox inputs: image: webcam/image python: ../../operators/yolov5_op.py - id: strong_sort operator: outputs: - obstacles_id inputs: image: webcam/image obstacles_bbox: yolov5/bbox python: ../../operators/strong_sort_op.py - id: plot operator: python: ../../physicals/plot.py inputs: image: webcam/image obstacles_bbox: yolov5/bbox traffic_sign_bbox: traffic_sign/bbox lanes: yolop/lanes drivable_area: yolop/drivable_area obstacles_id: strong_sort/obstacles_id ``` --- ## Extensibilité ### Opentelemetry Tracing Protocol de tracing en système distribué dans plusieurs langages. ![](https://i.imgur.com/XS02b8T.png) > Opentelemtry: https://opentelemetry.io/docs/concepts/signals/traces/ > Jaeger: https://www.jaegertracing.io/docs/1.21/opentelemetry/ --- ### Opentelemetry Metrics ![](https://user-images.githubusercontent.com/22787340/201238030-702796e5-aa62-4d67-9f36-43534c32885c.png) --- ### DB supportant opentelemetry - Datadog - Prometheus - InfluxDB - ... > Future Cloud Native integration: AWS S3, IAM, HashiCorp Vault, Keycloack, Docker, Kubernetes, ... --- ## Ergonomy Simple installation ```bash wget https://github.com/.../dora-<version>-x86_64-Linux.zip unzip dora-<version>-x86_64-Linux.zip PATH=$PATH:$(pwd):$(pwd)/iceoryx dora --help ``` Readable description ```yaml communication: zenoh: prefix: /abc_project nodes: - id: webcam operator: python: https://raw.githubusercontent.com/dora-rs/dora-drives/main/operators/webcam.py inputs: tick: dora/timer/millis/100 outputs: - image - id: plot_window operator: python: https://raw.githubusercontent.com/dora-rs/dora-drives/main/physicals/plot.py inputs: image: op_1/image ``` Command line program ```bash dora up dora start dataflow.yml ``` --- ### Questions? --- ### Comment pouvons nous avancer ensemble? - Vous aider à accomplir des projets ambitieux. - Développer le Campus de CentraleSupelec, l'infrastructure existente - Créer des partenariats internationaux avec CentraleSupelec. Huawei, c'est 22 Milliard $ de Budget R&D. En comparaison Safran, c'est 1,2 Milliard $ de budget R&D. --- ### Projet d'une voiture autonome ![](https://carnewschina.com/wp-content/uploads/2021/09/CNC_Wuling-LR_03a-1068x798.jpg) --- ### Essai IRL https://www.instagram.com/p/CkquyYJJb4y/