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.
https://dora-rs.ai
Apache License 2.0
1.5k stars 79 forks source link

Some issues we are currently facing with using dora-rs. #541

Closed chengzi0103 closed 1 month ago

chengzi0103 commented 3 months ago
  1. Dora does not seem to support multi-virtual environment control in conda

When running dora start in WSL, everything runs in the base environment. If you are using conda environments, you must develop in the base environment as it does not support multiple environments.

  1. Unable to debug when running dora-start directly

If you run dora start directly, you cannot debug the Python code (as it starts in cmd mode).

  1. Does not seem to support manual input in the workflow? If there is an input command in the Python code, it will cause an error during execution.

  2. Can one dataflow node call/embed another dataflow?

  3. Does Dataflow support conditional judgment and branching?

  4. Does Input support variable input? Can Input get content input from the terminal window?

haixuanTao commented 3 months ago
  • Dora does not seem to support multi-virtual environment control in conda

Yes, it's a bit of a stretch because conda is a bit of a mess but you can use absolute python path:

  - id: eval
    custom:
      source: /home/antoine/Pollen/lerobot/lerobot/scripts/eval.py
      args: -p cadene/2024_06_06_act_reachy2_mobile_base_3_060000 eval.n_episodes=1 eval.batch_size=1 env.episode_length=20000 policy.n_action_steps=100

Use conda run:

  - id: custom-node_1
    custom:
      source: conda
      args: run -n my-python-env node.py

Note that conda run can sometimes be slow for unknown reasons.

But I agree that it is not super explicit.

Unable to debug when running dora-start directly

I'm working on making possible to #517 run nodes dynamically by just calling:

python your_node.py

And also make logs more explicit with #542

Does not seem to support manual input in the workflow?

This would be fixed by #517

Can one dataflow node call/embed another dataflow?

It doesn't and might not in the short term

Does Dataflow support conditional judgment and branching?

We don't and probably won't

Does Input support variable input? Can Input get content input from the terminal window?

By variable, do you mean different types? If so, yes, we use arrow types and you can match the types as input.

If you mean variable input source, we don't do this for the moment.

Can Input get content input from the terminal window?

So we're going to work on this after #517 probably but not in the short term.

Sorry, if we're not were you would expect us to be, but be sure that we're working really hard to be there. But, thanks for your interest!

haixuanTao commented 2 months ago

Can I close this or do you guys still need help on specific point that dynamic_node does not fix?

chengzi0103 commented 2 months ago

Can I close this or do you guys still need help on specific point that dynamic_node does not fix? Of course it can be turned off. Thank you for your answer.