It now runs joy, teleop and dora-ulite6 with the probe declared and the console shut, so a pad can be checked against the arm that will actually move. ROBOT_IP in both arm dataflows points at the bench arm. The run recipe drops dora up + dora start: dora 1.0.1 refuses to start a dataflow holding git: nodes from a coordinator, reporting that no build was run straight after one that succeeded. That costs the file dora topic, which needs a coordinator to read the wire. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
60 lines
1.8 KiB
YAML
60 lines
1.8 KiB
YAML
# 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, use
|
|
# `dataflow-robot.yml`, or `dataflow-gamepad.yml` to check the pad with the
|
|
# probe — both of which drive a real arm.
|
|
#
|
|
# 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
|
|
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"
|
|
# The console is served by this node. CI runs this dataflow, so it binds
|
|
# to localhost and stays off any interface a colleague could reach.
|
|
WEB_HOST: "127.0.0.1"
|
|
WEB_PORT: "7000"
|
|
|
|
- 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
|