agenticros 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -71,7 +71,7 @@ Three ways, listed easiest first:
71
71
  | `agenticros up sim-amr --nav2` | Same + indoor map, AMCL, and Nav2 (`navigate_to_pose`). |
72
72
  | `agenticros up sim-arm` | Bring up the simulated 6-DOF arm (UR5e-shaped, per-joint position control). |
73
73
  | `agenticros up … --eyes` | Also start robot eyes on the local display after the stack comes up. |
74
- | `agenticros eyes` | Fullscreen robot eyes (cmd_vel gaze + optional WASD). See [docs/eyes.md](../../docs/eyes.md). |
74
+ | `agenticros eyes` | Fullscreen robot eyes (cmd_vel gaze + optional WASD + R2D2 sounds). See [docs/eyes.md](../../docs/eyes.md). |
75
75
  | `agenticros down` | Stop everything we started (including eyes). |
76
76
  | `agenticros doctor` | Coloured health-check table; `--json` for CI. |
77
77
  | `agenticros mcp setup` | Register AgenticROS MCP for Codex, Hermes, and Claude (primary). |
@@ -7,6 +7,8 @@
7
7
  export interface EyesOptions {
8
8
  noBrowser?: boolean;
9
9
  noTeleop?: boolean;
10
+ /** Mute R2D2 idle/excited chirps. */
11
+ noSound?: boolean;
10
12
  port?: string | number;
11
13
  topic?: string;
12
14
  /** When true, do not exit the process on launch failure (used by `up --eyes`). */
@@ -1 +1 @@
1
- {"version":3,"file":"eyes.d.ts","sourceRoot":"","sources":["../../src/commands/eyes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0GvE"}
1
+ {"version":3,"file":"eyes.d.ts","sourceRoot":"","sources":["../../src/commands/eyes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6GvE"}
@@ -56,6 +56,8 @@ export async function eyesCommand(opts = {}) {
56
56
  nodeArgs.push("--no-browser");
57
57
  if (opts.noTeleop)
58
58
  nodeArgs.push("--no-teleop");
59
+ if (opts.noSound)
60
+ nodeArgs.push("--no-sound");
59
61
  // Quote for bash -c
60
62
  const nodeCmd = `node ${nodeArgs.map((a) => JSON.stringify(a)).join(" ")}`;
61
63
  const shellBody = buildRosSourcedShellCmd(nodeCmd, {
@@ -71,6 +73,8 @@ export async function eyesCommand(opts = {}) {
71
73
  };
72
74
  if (opts.noTeleop)
73
75
  env["AGENTICROS_EYES_NO_TELEOP"] = "1";
76
+ if (opts.noSound)
77
+ env["AGENTICROS_EYES_NO_SOUND"] = "1";
74
78
  if (!env["DISPLAY"])
75
79
  env["DISPLAY"] = ":0";
76
80
  const logFd = openSync(logPath("eyes"), "a");
@@ -107,6 +111,7 @@ export async function eyesCommand(opts = {}) {
107
111
  info(` topic: ${topic}`);
108
112
  info(` URL: http://127.0.0.1:${port}/`);
109
113
  info(` teleop: ${opts.noTeleop ? "off (gaze only)" : "WASD enabled"}`);
114
+ info(` sound: ${opts.noSound ? "off" : "R2D2 chirps on"}`);
110
115
  info(` logs: ${logPath("eyes")}`);
111
116
  info("Stop with: agenticros down");
112
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eyes.js","sourceRoot":"","sources":["../../src/commands/eyes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eyes.js","sourceRoot":"","sources":["../../src/commands/eyes.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface UpOptions {
22
22
  eyesNoTeleop?: boolean;
23
23
  /** With --eyes: do not open a kiosk browser. */
24
24
  eyesNoBrowser?: boolean;
25
+ /** With --eyes: mute R2D2 sounds. */
26
+ eyesNoSound?: boolean;
25
27
  }
26
28
  export declare function upCommand(opts: UpOptions): Promise<void>;
27
29
  //# sourceMappingURL=up.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9D"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C9D"}
@@ -53,6 +53,7 @@ export async function upCommand(opts) {
53
53
  softFail: true,
54
54
  noTeleop: opts.eyesNoTeleop === true,
55
55
  noBrowser: opts.eyesNoBrowser === true,
56
+ noSound: opts.eyesNoSound === true,
56
57
  });
57
58
  }
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqB9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAe;IAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAErE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,kCAAkC;IAClC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,MAAM,YAAY,CAAC;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK;aAC9B,CAAC,CAAC;YACH,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,SAAS,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC3B,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;aACzB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,SAAS,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC3B,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;aACzC,CAAC,CAAC;YACH,MAAM;IACV,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,WAAW,CAAC;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;YACpC,SAAS,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI;SACvC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CAAC,IAAyB;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,IAAI,CACF,yEAAyE;YACvE,yEAAyE;YACzE,qEAAqE,CACxE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6DAA6D;AAC7D,SAAS,QAAQ;IACf,OAAO,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAgB;IACzC,mBAAmB,EAAE,CAAC;IACtB,MAAM,OAAO,GAAS,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,2BAA2B,OAAO,2CAA2C,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,0CAA0C,OAAO,mBAAmB,OAAO,IAAI,OAAO,IAAI,CAAC,CAAC;QAC/F,IAAI,CACF,gFAAgF;YAC9E,mFAAmF,CACtF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CAAC,MAAgB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,yCAAyC;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,wBAAwB;IACxB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,yEAAyE;QACzE,wBAAwB;QACxB,OAAO;IACT,CAAC;IACD,IAAI,CACF,yCAAyC,OAAO,iCAAiC;QAC/E,qCAAqC,OAAO,0CAA0C;QACtF,6FAA6F;QAC7F,mDAAmD,CACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAuB;IAClD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACzE,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACtB,GAAG,CAAC,mBAAmB,GAAG,0CAA0C,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACnC,OAAO,MAAM,CAAW;QACtB,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,8DAA8D,EAAE,KAAK,EAAE,MAAM,EAAE;YACvF,EAAE,IAAI,EAAE,4DAA4D,EAAE,KAAK,EAAE,SAAS,EAAE;YACxF,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,SAAS,EAAE;SACnE;QACD,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -68,26 +68,30 @@ program
68
68
  .option("--eyes", "Also start robot eyes on the local display (tablets / face screens)", false)
69
69
  .option("--eyes-no-teleop", "With --eyes: gaze only (do not publish WASD cmd_vel)", false)
70
70
  .option("--eyes-no-browser", "With --eyes: serve UI but do not open a kiosk browser", false)
71
+ .option("--eyes-no-sound", "With --eyes: mute R2D2 idle/excited chirps", false)
71
72
  .action(async (target, opts) => {
72
73
  await upCommand({
73
74
  target,
74
75
  ...opts,
75
76
  eyesNoTeleop: opts.eyesNoTeleop === true,
76
77
  eyesNoBrowser: opts.eyesNoBrowser === true,
78
+ eyesNoSound: opts.eyesNoSound === true,
77
79
  });
78
80
  });
79
81
  program
80
82
  .command("eyes")
81
- .description("Start fullscreen robot eyes on a local display (cmd_vel gaze + optional WASD teleop). See docs/eyes.md.")
82
- // Commander maps `--no-browser` / `--no-teleop` to `browser: false` / `teleop: false`.
83
+ .description("Start fullscreen robot eyes on a local display (cmd_vel gaze + optional WASD teleop + R2D2 sounds). See docs/eyes.md.")
84
+ // Commander maps `--no-browser` / `--no-teleop` / `--no-sound` to `browser|teleop|sound: false`.
83
85
  .option("--no-browser", "Serve the UI but do not open a kiosk browser")
84
86
  .option("--no-teleop", "Gaze only — do not publish WASD cmd_vel")
87
+ .option("--no-sound", "Mute R2D2 idle/excited chirps")
85
88
  .option("--port <n>", "HTTP / WebSocket port (default 8765)")
86
89
  .option("--topic <path>", "Override cmd_vel topic (default from ~/.agenticros/config.json)")
87
90
  .action(async (opts) => {
88
91
  await eyesCommand({
89
92
  noBrowser: opts.browser === false,
90
93
  noTeleop: opts.teleop === false,
94
+ noSound: opts.sound === false,
91
95
  port: opts.port,
92
96
  topic: opts.topic,
93
97
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agenticros",
3
- "version": "0.5.6",
3
+ "version": "0.5.7",
4
4
  "type": "module",
5
5
  "description": "AgenticROS - agentic AI for ROS-powered robots. Single CLI to launch real-robot or simulated demos, manage configuration, and inspect status.",
6
6
  "keywords": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "packedAt": "2026-07-16T15:32:41.782Z",
2
+ "packedAt": "2026-07-16T16:28:06.325Z",
3
3
  "repo": "https://github.com/PlaiPin/agenticros",
4
4
  "note": "This directory is a snapshot of the agenticros monorepo source. `agenticros init` will copy it to ~/agenticros and run pnpm install + colcon build there.",
5
5
  "layout": {
@@ -52,13 +52,15 @@ Flags:
52
52
  - `--eyes` also start robot eyes on the local display (see [eyes.md](eyes.md))
53
53
  - `--eyes-no-teleop` with `--eyes`: gaze only (no WASD publish)
54
54
  - `--eyes-no-browser` with `--eyes`: serve UI without opening a kiosk browser
55
+ - `--eyes-no-sound` with `--eyes`: mute R2D2 idle/excited chirps
55
56
 
56
- ### `agenticros eyes [--no-browser] [--no-teleop] [--port <n>] [--topic <path>]`
57
+ ### `agenticros eyes [--no-browser] [--no-teleop] [--no-sound] [--port <n>] [--topic <path>]`
57
58
 
58
59
  Start fullscreen robot eyes on a tablet / face display. Subscribes to the
59
60
  configured `cmd_vel` topic for left/right gaze; optionally publishes WASD
60
- keyboard teleop. Runs over local DDS on the robot — not the OpenClaw remote
61
- teleop page. Full details: [eyes.md](eyes.md).
61
+ keyboard teleop; plays R2D2-style chirps (mute with `--no-sound`). Runs over
62
+ local DDS on the robot — not the OpenClaw remote teleop page. Full details:
63
+ [eyes.md](eyes.md).
62
64
 
63
65
  ### `agenticros down [--keep-camera] [--stop-gateway]`
64
66
 
@@ -1,6 +1,6 @@
1
1
  # Robot eyes (on-robot face display)
2
2
 
3
- `@agenticros/eyes` is a fullscreen “robot face” for tablets and head units. Canvas eyes idle-blink and look left/right when anything publishes a turning Twist on the robot’s `cmd_vel` topic. Optional invisible **WASD** keyboard teleop lets an operator drive from the same screen.
3
+ `@agenticros/eyes` is a fullscreen “robot face” for tablets and head units. Canvas eyes idle-blink and look left/right when anything publishes a turning Twist on the robot’s `cmd_vel` topic. Optional invisible **WASD** keyboard teleop lets an operator drive from the same screen. Procedural **R2D2-style chirps** play from the eyes Node process (idle chatter; excited bursts on active `cmd_vel`).
4
4
 
5
5
  This is **not** the OpenClaw remote teleop page ([teleop.md](teleop.md)). Eyes run **on the robot** over local DDS (`rclnodejs`). Remote camera + twist controls stay in the OpenClaw plugin.
6
6
 
@@ -10,6 +10,7 @@ This is **not** the OpenClaw remote teleop page ([teleop.md](teleop.md)). Eyes r
10
10
  - ROS 2 (Humble / Jazzy) with a working local graph
11
11
  - Graphical display (`DISPLAY`, usually `:0`) for kiosk mode
12
12
  - Firefox or Chromium (optional if you open the URL yourself)
13
+ - Speakers + a system audio player for sounds: `afplay` (macOS), or `paplay` / `aplay` (Linux)
13
14
 
14
15
  ## Launch
15
16
 
@@ -20,6 +21,9 @@ agenticros eyes
20
21
  # Gaze only — do not publish WASD twists (agents/operators drive)
21
22
  agenticros eyes --no-teleop
22
23
 
24
+ # Mute R2D2 chirps
25
+ agenticros eyes --no-sound
26
+
23
27
  # Serve UI without opening a browser
24
28
  agenticros eyes --no-browser
25
29
 
@@ -28,7 +32,7 @@ agenticros eyes --topic /my_robot/cmd_vel --port 8765
28
32
 
29
33
  # With the real-robot stack
30
34
  agenticros up real --eyes
31
- agenticros up real --eyes --eyes-no-teleop
35
+ agenticros up real --eyes --eyes-no-teleop --eyes-no-sound
32
36
  ```
33
37
 
34
38
  Stop with `agenticros down` (or kill the process recorded in `/tmp/agenticros-eyes.pid`).
@@ -50,6 +54,28 @@ Topic and safety limits come from `~/.agenticros/config.json` (same file as the
50
54
 
51
55
  CLI `--topic` overrides the config topic. Env vars (`PORT`, `CMD_VEL_TOPIC`, `TELOP_*`, …) still work when running the package directly.
52
56
 
57
+ ## Sounds (R2D2)
58
+
59
+ Sounds are synthesized in-process (no sample files) and played via the system audio player — not in the browser (avoids kiosk autoplay blocks).
60
+
61
+ | Mode | Trigger |
62
+ |------|---------|
63
+ | Idle | Random chirp / warble / beeps every ~300–2500 ms |
64
+ | Excited | Active `cmd_vel` (`|linear.x|` or `|angular.z|` above deadzone), rate-limited (~600 ms cooldown) |
65
+
66
+ Mute with `--no-sound`, `up --eyes-no-sound`, or `AGENTICROS_EYES_NO_SOUND=1`. If no player is found, eyes still run and a one-time warning is logged.
67
+
68
+ Optional env knobs:
69
+
70
+ | Variable | Default | Meaning |
71
+ |----------|---------|---------|
72
+ | `SOUND_MIN_GAP_MS` | `300` | Min idle gap between chirps |
73
+ | `SOUND_MAX_GAP_MS` | `2500` | Max idle gap |
74
+ | `SOUND_EXCITE_COOLDOWN_MS` | `600` | Min time between excited bursts |
75
+ | `SOUND_LINEAR_DEADZONE` | `0.02` | Ignore tiny `linear.x` for excitement |
76
+
77
+ Synth adapted from [r2d2](https://github.com/chrismatthieu/r2d2) (Apache-2.0); see `packages/robot-eyes/NOTICE`.
78
+
53
79
  ## Keyboard teleop
54
80
 
55
81
  Focus must be on the eyes browser window. Nothing extra is drawn on screen.
@@ -76,7 +102,7 @@ Keys can be combined. Releasing all movement keys publishes a zero Twist. Multip
76
102
  Browser (canvas + optional WASD)
77
103
  ↕ WebSocket (127.0.0.1:8765)
78
104
  @agenticros/eyes (rclnodejs node /robot_eyes)
79
- ↕ local DDS
105
+ ↕ local DDS ↕ synth → afplay/paplay/aplay
80
106
  cmd_vel Twist ← also written by MCP / OpenClaw / motors consumers
81
107
  ```
82
108
 
@@ -0,0 +1,2 @@
1
+ @agenticros/eyes includes a procedural R2D2-style synthesizer adapted from
2
+ https://github.com/chrismatthieu/r2d2 (Apache License 2.0). See lib/synth.js.
@@ -1,6 +1,6 @@
1
1
  # @agenticros/eyes
2
2
 
3
- Fullscreen robot eyes for an Ubuntu tablet or robot display, driven by ROS 2 `cmd_vel` (`geometry_msgs/Twist`).
3
+ Fullscreen robot eyes for an Ubuntu tablet or robot display, driven by ROS 2 `cmd_vel` (`geometry_msgs/Twist`). Includes procedural R2D2-style chirps (idle + excited on motion).
4
4
 
5
5
  Part of the [AgenticROS](https://github.com/agenticros/agenticros) monorepo. Prefer launching via the CLI:
6
6
 
@@ -8,10 +8,11 @@ Part of the [AgenticROS](https://github.com/agenticros/agenticros) monorepo. Pre
8
8
  agenticros eyes
9
9
  agenticros eyes --no-browser
10
10
  agenticros eyes --no-teleop # gaze only (no WASD publish)
11
+ agenticros eyes --no-sound # mute R2D2 chirps
11
12
  agenticros up real --eyes # start eyes after the real-robot stack
12
13
  ```
13
14
 
14
- See [docs/eyes.md](../../docs/eyes.md) for setup, config, and keyboard teleop.
15
+ See [docs/eyes.md](../../docs/eyes.md) for setup, config, sounds, and keyboard teleop.
15
16
 
16
17
  ## Direct run (development)
17
18
 
@@ -22,4 +23,8 @@ pnpm install # from monorepo root is preferred
22
23
  pnpm start
23
24
  ```
24
25
 
25
- Requires Node 18+, ROS 2, and a graphical display (`DISPLAY`) for kiosk mode.
26
+ Requires Node 18+, ROS 2, a graphical display (`DISPLAY`) for kiosk mode, and `afplay` / `paplay` / `aplay` for sounds.
27
+
28
+ ## License
29
+
30
+ MIT. The synthesizer in `lib/synth.js` is adapted from [r2d2](https://github.com/chrismatthieu/r2d2) under Apache-2.0 (see [NOTICE](NOTICE)).
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Idle + excited R2D2 sound loop for @agenticros/eyes.
3
+ *
4
+ * Plays synthesized WAV via afplay (macOS), paplay, or aplay (Linux).
5
+ * Excited bursts are triggered by active cmd_vel (see exciteFromTwist).
6
+ */
7
+ import { spawn, execFileSync } from "node:child_process";
8
+ import { randomUUID } from "node:crypto";
9
+ import { unlink, writeFile } from "node:fs/promises";
10
+ import { tmpdir } from "node:os";
11
+ import { join } from "node:path";
12
+
13
+ import { synthesizeExcited, synthesizeRandom } from "./synth.js";
14
+
15
+ const MIN_GAP_MS = Number(process.env.SOUND_MIN_GAP_MS || 300);
16
+ const MAX_GAP_MS = Number(process.env.SOUND_MAX_GAP_MS || 2500);
17
+ const EXCITE_COOLDOWN_MS = Number(process.env.SOUND_EXCITE_COOLDOWN_MS || 600);
18
+ const LINEAR_DEADZONE = Number(process.env.SOUND_LINEAR_DEADZONE || 0.02);
19
+
20
+ /** @type {string | null} */
21
+ let playerBin = null;
22
+ let playerWarned = false;
23
+ let running = false;
24
+ /** @type {import('node:child_process').ChildProcess | null} */
25
+ let currentPlayer = null;
26
+ const tempFiles = new Set();
27
+ let pendingExcitement = 0;
28
+ /** @type {(() => void) | null} */
29
+ let wakeSleep = null;
30
+ let lastExciteAt = 0;
31
+ /** @type {Promise<void> | null} */
32
+ let loopPromise = null;
33
+
34
+ function sleepInterruptible(ms) {
35
+ return new Promise((resolve) => {
36
+ const timer = setTimeout(() => {
37
+ wakeSleep = null;
38
+ resolve();
39
+ }, ms);
40
+ wakeSleep = () => {
41
+ clearTimeout(timer);
42
+ wakeSleep = null;
43
+ resolve();
44
+ };
45
+ });
46
+ }
47
+
48
+ function randomGapMs() {
49
+ return MIN_GAP_MS + Math.random() * (MAX_GAP_MS - MIN_GAP_MS);
50
+ }
51
+
52
+ function findPlayer() {
53
+ if (playerBin !== null) return playerBin || null;
54
+ const candidates = ["afplay", "paplay", "aplay"];
55
+ for (const bin of candidates) {
56
+ try {
57
+ execFileSync("which", [bin], { stdio: "ignore" });
58
+ playerBin = bin;
59
+ return bin;
60
+ } catch {
61
+ // try next
62
+ }
63
+ }
64
+ playerBin = "";
65
+ return null;
66
+ }
67
+
68
+ function stopCurrentPlayback() {
69
+ if (currentPlayer && !currentPlayer.killed) {
70
+ currentPlayer.kill("SIGTERM");
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Queue an excited burst (interrupt idle playback / gap).
76
+ * Rate-limited by SOUND_EXCITE_COOLDOWN_MS.
77
+ */
78
+ export function excite() {
79
+ if (!running) return;
80
+ const now = Date.now();
81
+ if (now - lastExciteAt < EXCITE_COOLDOWN_MS) return;
82
+ lastExciteAt = now;
83
+ pendingExcitement += 1;
84
+ stopCurrentPlayback();
85
+ if (wakeSleep) wakeSleep();
86
+ }
87
+
88
+ /**
89
+ * Excite when Twist has meaningful linear.x or angular.z.
90
+ * @param {object} msg geometry_msgs/Twist-like
91
+ * @param {number} angularDeadzone
92
+ */
93
+ export function exciteFromTwist(msg, angularDeadzone = 0.05) {
94
+ const lx = Math.abs(msg?.linear?.x ?? 0);
95
+ const az = Math.abs(msg?.angular?.z ?? 0);
96
+ if (lx < LINEAR_DEADZONE && az < angularDeadzone) return;
97
+ excite();
98
+ }
99
+
100
+ async function playWav(wavPath) {
101
+ const bin = findPlayer();
102
+ if (!bin) {
103
+ if (!playerWarned) {
104
+ playerWarned = true;
105
+ console.warn(
106
+ "No audio player found (afplay / paplay / aplay). R2D2 sounds disabled.",
107
+ );
108
+ }
109
+ return;
110
+ }
111
+
112
+ const args = bin === "aplay" ? ["-q", wavPath] : [wavPath];
113
+
114
+ return new Promise((resolve, reject) => {
115
+ const player = spawn(bin, args, { stdio: "ignore" });
116
+ currentPlayer = player;
117
+
118
+ player.on("error", (err) => {
119
+ currentPlayer = null;
120
+ reject(err);
121
+ });
122
+
123
+ player.on("close", (code, signal) => {
124
+ currentPlayer = null;
125
+ if (!running || signal === "SIGTERM" || signal === "SIGINT") {
126
+ resolve();
127
+ return;
128
+ }
129
+ if (code === 0) resolve();
130
+ else reject(new Error(`${bin} exited with code ${code}`));
131
+ });
132
+ });
133
+ }
134
+
135
+ async function cleanupTemp(path) {
136
+ tempFiles.delete(path);
137
+ try {
138
+ await unlink(path);
139
+ } catch {
140
+ // already gone
141
+ }
142
+ }
143
+
144
+ async function playGesture(excited) {
145
+ const { wav } = excited ? synthesizeExcited() : synthesizeRandom();
146
+ const wavPath = join(tmpdir(), `agenticros-eyes-${randomUUID()}.wav`);
147
+ tempFiles.add(wavPath);
148
+
149
+ try {
150
+ await writeFile(wavPath, wav);
151
+ if (!running) return;
152
+ await playWav(wavPath);
153
+ } catch (err) {
154
+ if (running) {
155
+ console.warn(
156
+ `Sound playback error: ${err instanceof Error ? err.message : String(err)}`,
157
+ );
158
+ }
159
+ } finally {
160
+ await cleanupTemp(wavPath);
161
+ }
162
+ }
163
+
164
+ async function soundLoop() {
165
+ while (running) {
166
+ if (pendingExcitement > 0) {
167
+ pendingExcitement -= 1;
168
+ await playGesture(true);
169
+ if (pendingExcitement > 0) continue;
170
+ } else {
171
+ await playGesture(false);
172
+ if (pendingExcitement > 0) continue;
173
+ }
174
+
175
+ if (!running) break;
176
+ await sleepInterruptible(randomGapMs());
177
+ }
178
+ }
179
+
180
+ /** Start idle chirps + accept excite() from cmd_vel. */
181
+ export function startSoundLoop() {
182
+ if (running) return;
183
+ const bin = findPlayer();
184
+ if (!bin) {
185
+ if (!playerWarned) {
186
+ playerWarned = true;
187
+ console.warn(
188
+ "No audio player found (afplay / paplay / aplay). R2D2 sounds disabled.",
189
+ );
190
+ }
191
+ return;
192
+ }
193
+ running = true;
194
+ console.log(
195
+ `R2D2 sounds on (${bin}; idle gaps ${MIN_GAP_MS}–${MAX_GAP_MS} ms, ` +
196
+ `excite cooldown ${EXCITE_COOLDOWN_MS} ms)`,
197
+ );
198
+ loopPromise = soundLoop().catch((err) => {
199
+ console.warn(`Sound loop error: ${err instanceof Error ? err.message : String(err)}`);
200
+ });
201
+ }
202
+
203
+ /** Stop playback and clean temp WAVs. */
204
+ export async function stopSoundLoop() {
205
+ if (!running) return;
206
+ running = false;
207
+ if (wakeSleep) wakeSleep();
208
+ stopCurrentPlayback();
209
+ if (loopPromise) {
210
+ try {
211
+ await loopPromise;
212
+ } catch {
213
+ // ignore
214
+ }
215
+ loopPromise = null;
216
+ }
217
+ await Promise.all([...tempFiles].map(cleanupTemp));
218
+ }
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Procedural R2D2-style synthesizer.
3
+ *
4
+ * Adapted from https://github.com/chrismatthieu/r2d2 (Apache License 2.0).
5
+ * See ../NOTICE.
6
+ */
7
+ const SAMPLE_RATE = 22050;
8
+ const AMPLITUDE = 0.35;
9
+
10
+ function rand(min, max) {
11
+ return min + Math.random() * (max - min);
12
+ }
13
+
14
+ function randInt(min, max) {
15
+ return Math.floor(rand(min, max + 1));
16
+ }
17
+
18
+ function pick(arr) {
19
+ return arr[Math.floor(Math.random() * arr.length)];
20
+ }
21
+
22
+ /** Soft attack/decay envelope to avoid clicks. */
23
+ function envelope(i, n, attack = 0.02, release = 0.08) {
24
+ const a = Math.max(1, Math.floor(n * attack));
25
+ const r = Math.max(1, Math.floor(n * release));
26
+ if (i < a) return i / a;
27
+ if (i > n - r) return (n - i) / r;
28
+ return 1;
29
+ }
30
+
31
+ function encodeWav(samples) {
32
+ const dataSize = samples.length * 2;
33
+ const buffer = Buffer.alloc(44 + dataSize);
34
+
35
+ buffer.write('RIFF', 0);
36
+ buffer.writeUInt32LE(36 + dataSize, 4);
37
+ buffer.write('WAVE', 8);
38
+ buffer.write('fmt ', 12);
39
+ buffer.writeUInt32LE(16, 16); // PCM chunk size
40
+ buffer.writeUInt16LE(1, 20); // audio format = PCM
41
+ buffer.writeUInt16LE(1, 22); // mono
42
+ buffer.writeUInt32LE(SAMPLE_RATE, 24);
43
+ buffer.writeUInt32LE(SAMPLE_RATE * 2, 28); // byte rate
44
+ buffer.writeUInt16LE(2, 32); // block align
45
+ buffer.writeUInt16LE(16, 34); // bits per sample
46
+ buffer.write('data', 36);
47
+ buffer.writeUInt32LE(dataSize, 40);
48
+
49
+ for (let i = 0; i < samples.length; i++) {
50
+ const clamped = Math.max(-1, Math.min(1, samples[i]));
51
+ buffer.writeInt16LE(Math.round(clamped * 32767), 44 + i * 2);
52
+ }
53
+
54
+ return buffer;
55
+ }
56
+
57
+ function concatSamples(parts) {
58
+ const total = parts.reduce((sum, p) => sum + p.length, 0);
59
+ const out = new Float32Array(total);
60
+ let offset = 0;
61
+ for (const part of parts) {
62
+ out.set(part, offset);
63
+ offset += part.length;
64
+ }
65
+ return out;
66
+ }
67
+
68
+ function silence(seconds) {
69
+ return new Float32Array(Math.max(0, Math.floor(seconds * SAMPLE_RATE)));
70
+ }
71
+
72
+ /** Constant-frequency sine with envelope. */
73
+ function tone(freq, seconds) {
74
+ const n = Math.max(1, Math.floor(seconds * SAMPLE_RATE));
75
+ const samples = new Float32Array(n);
76
+ let phase = 0;
77
+ const step = (2 * Math.PI * freq) / SAMPLE_RATE;
78
+ for (let i = 0; i < n; i++) {
79
+ samples[i] = Math.sin(phase) * AMPLITUDE * envelope(i, n);
80
+ phase += step;
81
+ }
82
+ return samples;
83
+ }
84
+
85
+ /** Linear frequency sweep (chirp). */
86
+ function chirpSamples(f0, f1, seconds) {
87
+ const n = Math.max(1, Math.floor(seconds * SAMPLE_RATE));
88
+ const samples = new Float32Array(n);
89
+ let phase = 0;
90
+ for (let i = 0; i < n; i++) {
91
+ const t = i / (n - 1 || 1);
92
+ const freq = f0 + (f1 - f0) * t;
93
+ samples[i] = Math.sin(phase) * AMPLITUDE * envelope(i, n, 0.03, 0.12);
94
+ phase += (2 * Math.PI * freq) / SAMPLE_RATE;
95
+ }
96
+ return samples;
97
+ }
98
+
99
+ function makeChirp() {
100
+ const up = Math.random() < 0.55;
101
+ const low = rand(700, 1200);
102
+ const high = rand(1600, 2800);
103
+ const seconds = rand(0.08, 0.25);
104
+ return chirpSamples(up ? low : high, up ? high : low, seconds);
105
+ }
106
+
107
+ function makeWarble() {
108
+ const center = rand(900, 1800);
109
+ const count = randInt(3, 6);
110
+ const parts = [];
111
+ for (let i = 0; i < count; i++) {
112
+ const offset = (i % 2 === 0 ? 1 : -1) * rand(120, 450);
113
+ const freq = Math.max(400, center + offset);
114
+ parts.push(tone(freq, rand(0.04, 0.09)));
115
+ if (i < count - 1) parts.push(silence(rand(0.008, 0.025)));
116
+ }
117
+ return concatSamples(parts);
118
+ }
119
+
120
+ function makeBeeps() {
121
+ const count = randInt(2, 5);
122
+ const base = rand(800, 2000);
123
+ const parts = [];
124
+ for (let i = 0; i < count; i++) {
125
+ const freq = base * rand(0.85, 1.25);
126
+ parts.push(tone(freq, rand(0.035, 0.08)));
127
+ if (i < count - 1) parts.push(silence(rand(0.02, 0.07)));
128
+ }
129
+ return concatSamples(parts);
130
+ }
131
+
132
+ /** Fast, high, dense — used on active cmd_vel (excited). */
133
+ function makeExcited() {
134
+ const parts = [];
135
+ const bursts = randInt(2, 4);
136
+ for (let b = 0; b < bursts; b++) {
137
+ const kind = randInt(0, 2);
138
+ if (kind === 0) {
139
+ parts.push(chirpSamples(rand(1400, 2200), rand(2600, 3800), rand(0.05, 0.12)));
140
+ } else if (kind === 1) {
141
+ const center = rand(1600, 2600);
142
+ const count = randInt(4, 8);
143
+ for (let i = 0; i < count; i++) {
144
+ const offset = (i % 2 === 0 ? 1 : -1) * rand(200, 600);
145
+ parts.push(tone(Math.max(800, center + offset), rand(0.025, 0.05)));
146
+ if (i < count - 1) parts.push(silence(rand(0.004, 0.012)));
147
+ }
148
+ } else {
149
+ const count = randInt(3, 6);
150
+ const base = rand(1500, 2800);
151
+ for (let i = 0; i < count; i++) {
152
+ parts.push(tone(base * rand(0.9, 1.35), rand(0.02, 0.045)));
153
+ if (i < count - 1) parts.push(silence(rand(0.01, 0.03)));
154
+ }
155
+ }
156
+ if (b < bursts - 1) parts.push(silence(rand(0.02, 0.06)));
157
+ }
158
+ return concatSamples(parts);
159
+ }
160
+
161
+ const GESTURES = [
162
+ { name: 'chirp', fn: makeChirp },
163
+ { name: 'warble', fn: makeWarble },
164
+ { name: 'beeps', fn: makeBeeps },
165
+ ];
166
+
167
+ /**
168
+ * Synthesize a random R2D2-style gesture.
169
+ * @returns {{ name: string, wav: Buffer }}
170
+ */
171
+ export function synthesizeRandom() {
172
+ const gesture = pick(GESTURES);
173
+ const samples = gesture.fn();
174
+ return { name: gesture.name, wav: encodeWav(samples) };
175
+ }
176
+
177
+ /**
178
+ * Synthesize an excited R2D2 burst (higher, faster, denser).
179
+ * @returns {{ name: string, wav: Buffer }}
180
+ */
181
+ export function synthesizeExcited() {
182
+ return { name: 'excited', wav: encodeWav(makeExcited()) };
183
+ }
184
+
185
+ export { SAMPLE_RATE };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agenticros/eyes",
3
- "version": "1.0.0",
4
- "description": "Fullscreen robot eyes for tablet/display devices, driven by ROS 2 cmd_vel Twist",
3
+ "version": "1.1.0",
4
+ "description": "Fullscreen robot eyes for tablet/display devices, driven by ROS 2 cmd_vel Twist, with R2D2-style sounds",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
7
7
  "bin": {
@@ -9,8 +9,10 @@
9
9
  },
10
10
  "files": [
11
11
  "src",
12
+ "lib",
12
13
  "public",
13
- "README.md"
14
+ "README.md",
15
+ "NOTICE"
14
16
  ],
15
17
  "scripts": {
16
18
  "build": "node -e \"process.exit(0)\"",
@@ -4,6 +4,8 @@
4
4
  *
5
5
  * Subscribes to CMD_VEL_TOPIC for gaze (left/right turns). Optionally publishes
6
6
  * the same topic from invisible WASD keyboard teleop (disabled with --no-teleop).
7
+ * Plays procedural R2D2 chirps (idle) and excited bursts on active cmd_vel
8
+ * (disabled with --no-sound).
7
9
  *
8
10
  * Env (set by `agenticros eyes` from ~/.agenticros/config.json):
9
11
  * CMD_VEL_TOPIC, MAX_LINEAR_VELOCITY, MAX_ANGULAR_VELOCITY, PORT, …
@@ -16,6 +18,12 @@ import { fileURLToPath } from "url";
16
18
  import { spawn, execFileSync } from "child_process";
17
19
  import { WebSocketServer } from "ws";
18
20
 
21
+ import {
22
+ exciteFromTwist,
23
+ startSoundLoop,
24
+ stopSoundLoop,
25
+ } from "../lib/sounds.js";
26
+
19
27
  const require = createRequire(import.meta.url);
20
28
  let rclnodejs;
21
29
  try {
@@ -41,6 +49,9 @@ const NO_BROWSER = process.argv.includes("--no-browser");
41
49
  const NO_TELEOP =
42
50
  process.argv.includes("--no-teleop") ||
43
51
  process.env.AGENTICROS_EYES_NO_TELEOP === "1";
52
+ const NO_SOUND =
53
+ process.argv.includes("--no-sound") ||
54
+ process.env.AGENTICROS_EYES_NO_SOUND === "1";
44
55
 
45
56
  const MAX_LINEAR = Number(process.env.MAX_LINEAR_VELOCITY || 1.0);
46
57
  const MAX_ANGULAR = Number(process.env.MAX_ANGULAR_VELOCITY || 1.5);
@@ -348,6 +359,9 @@ async function main() {
348
359
  gazeX: state.gazeX,
349
360
  driving: state.driving,
350
361
  });
362
+ if (!NO_SOUND) {
363
+ exciteFromTwist(msg, ANGULAR_DEADZONE);
364
+ }
351
365
  });
352
366
 
353
367
  setInterval(() => {
@@ -377,6 +391,11 @@ async function main() {
377
391
  `(base linear=${TELOP_LINEAR}, angular=${TELOP_ANGULAR})`,
378
392
  );
379
393
  }
394
+ if (NO_SOUND) {
395
+ console.log("R2D2 sounds disabled (--no-sound)");
396
+ } else {
397
+ startSoundLoop();
398
+ }
380
399
  if (!NO_BROWSER) {
381
400
  launchKiosk(url);
382
401
  } else {
@@ -389,6 +408,7 @@ async function main() {
389
408
  const shutdown = async () => {
390
409
  console.log("\nShutting down…");
391
410
  try {
411
+ await stopSoundLoop();
392
412
  publishStop();
393
413
  wss.close();
394
414
  server.close();