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

4.7 KiB
Raw Permalink Blame History

TO-TEST — lab verification checklist

Things that need a real KRC4 + robot to verify. Created 2026-07-10 while working issue #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)