RSI-PI/.claude/docs/TO-TEST.md

97 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TO-TEST — lab verification checklist
Things that need a real KRC4 + robot to verify. Created 2026-07-10 while
working [issue #1](https://github.com/otherworld-dev/rsi-pi/issues/1).
Manual references are to `KUKA.RobotSensorInterface 3.3.pdf` (repo root).
Record for every session: KSS version, RSI version, installed options
(**Help > Info > Options** — photo the list), exact pendant error messages.
## A. Issue #1 — unblock kaosbeat (KR60-HA, KSS 8.3.38, RSI 3.3.5)
### A1. `RSIPI_Minimal.src` has never run on hardware
New file, written 2026-07-10 to mirror KUKA's `RSI_Ethernet.src` example
(manual §8.1.3, p. 59). Verify before telling kaosbeat it works:
- [ ] Loads in `KRC:\R1\Program` with no "variable not defined" errors
- [ ] Header `&ACCESS RVP` / `&REL 1` accepted (note: `RSIPI_Test.src` uses
`&H NOBOUNDSCHECK` instead — if the pendant rejects the header, match
whatever the working file uses)
- [ ] `MsgNotify()` calls display on the smartHMI
- [ ] `RSI_CREATE("RSIPI_Full.rsi", ...)` returns RSIOK
- [ ] `RSI_ON(#RELATIVE)` returns RSIOK
- [ ] `RSI_MOVECORR()`: robot holds position, then follows
`api.motion.update_cartesian(X=5.0)` from RSIPI
- [ ] Kill the Python side mid-motion → robot stops safely with an RSI
comm error after ~100 late packets (ETHERNET `Timeout=100`;
manual §2.3.2, p. 15)
- [ ] Cancel program on pendant → clean `RSI_OFF`/`RSI_DELETE` path runs
### A2. The `$TECH` "variable not defined" mystery
kaosbeat's controller rejects every `$TECH.C[..]` / `$TECH.T[..]` line in
`RSIPI_Test.src` at load. Our controller ran it before. Find the difference:
- [ ] Does `RSIPI_Test.src` still load on the lab controller?
- [ ] Diff our installed options list against kaosbeat's (his: KSS 8.3.38,
HMI 8.3.8450, kernel V8.3.450, RSI 3.3.5) — which package provides
the `$TECH` structure?
- [ ] Check `KRC:\R1\TP\RSI\RSI.DAT`: `RSITECHIDX` value, and the
machine-datum `$TECH_MAX` (number of function generators;
manual §5.2, pp. 3031)
- [ ] Confirm the correct KRL syntax for reading function-generator
params on KSS 8.3 — is `$TECH.C[11]` right, or should it be a
different variable/form? (Manual documents only the wire side:
`DEF_Tech.C1` ⇒ attrs `C11…C110`, §7.4.5, pp. 5253)
- [ ] Outcome → post answer on issue #1: exact package to install, or
corrected syntax
### A3. Path + pendant claims in docs/controller-setup.md
- [ ] Confirm on a real KRC4 that SensorInterface is
`C:\KRC\ROBOTER\Config\User\Common\SensorInterface` (no second
`\KRC\`) and that files in `C:\KRC\ROBOTER\KRC\Config\...` (the path
kaosbeat used!) make `RSI_CREATE` return RSIFILENOTFOUND
- [ ] Try to reproduce "address already in use" in the network config /
RSI-Network tool; confirm the fix (edit/delete existing entry +
reboot) — currently marked *(practical experience)* in the doc
- [ ] Note which config method the lab robot uses: KLI network config
(§5.1.1) vs RSI-Network tool (§5.1.2)
## B. RSIPI regression on hardware
Last confirmed working before the big refactor
(`6b873d9 refactor: revamp core API, network handler, XML processing`).
The echo server is not proof — the real controller is stricter (IPOC
timing, XML format, 4 ms deadline in `#IPO_FAST`).
- [ ] `api.start()` + `wait_for_connection()` against the real robot with
`RSI_EthernetConfig_Full.xml`
- [ ] Packet response consistently under 4 ms? Watch the `Delay` receive
variable (late-packet counter) during a few minutes of streaming
- [ ] `update_cartesian()` small corrections — direction and magnitude
sane (POSCORR1 RefCorrSys = Base, limits ±500 mm)
- [ ] Digital I/O: `DiO` word → MAP2DIGOUT1 (writes outputs 20+),
`Digout.o1-o3` readback
- [ ] `$SEN_PREA` writes via MAP2SEN_PREA1-3 (needs a KRL program that
reads them, e.g. `RSIPI_Test.src` phase 4)
- [ ] Full protocol run: `rsipi_test.py` + `RSIPI_Test.src` (blocked on A2)
- [ ] Tech round-trip: `api.krl.write_param(11, x)` on the PC ⇒ KRL sees
generator-1 param 1; KRL writes ⇒ shows up in receive vars
- [ ] `TestServer.exe` cross-check works as described in
docs/controller-setup.md §3
## C. Desk checks (no robot needed — do before lab if time)
- [ ] `krl_api.py` docstrings claim Tech slots "11-199", but the config
structure only defines C11…C610 with param digits 110 (e.g. C110 is
gen 1 param 10 — there is no C199). Validate `write_param`'s range
check against what the wire format actually supports
- [ ] Does `rsi_echo_server` produce the manual-conformant `<Tech
C11=... C110=...>` attribute style after the refactor?
## Done
(move checked items here with date + result)