# The repo's own example, and what CI validates. # # Self-contained on purpose: teleop plus a bench stand-in for the arm and the # browser, both built from this checkout, so `dora validate` resolves every # manifest from `path:` and CI needs no gamepad, no robot and no sibling clones. # # There is **no gamepad here**, because the pad is another node and wiring it in # by `git:` would cost this file the one property it has. For a real pad on a # real bench, use `dataflow-gamepad.yml`. # # This is **not** the real stack. The bench answers services and publishes # telemetry but never moves anything. README.md carries the four-node wiring a # consumer actually uses. strict_types: true # Lets `dora topic echo` and `dora topic hz` read what is on the wire, so the # velocities this node sends can be watched without the bench printing them — # and without a robot. Costs nothing when nobody is looking. debug: enable_debug_inspection: true nodes: - id: teleop path: dora-teleop build: pip install . inputs: tick: dora/timer/millis/50 clients: bench/clients response: bench/response robot_state: bench/robot_state tcp_pose: bench/tcp_pose joint_pose: bench/joint_pose outputs: - twist - command - jog - request - ui_state env: SPEED_MM_S: "60" SPEED_DEG_S: "30" - id: bench path: examples/bench.py inputs: tick: dora/timer/millis/200 jog: teleop/jog request: teleop/request ui_state: teleop/ui_state outputs: - response - robot_state - tcp_pose - joint_pose - clients