agenticros 0.5.2 → 0.5.4
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 +2 -0
- package/dist/commands/up.d.ts +1 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +3 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runners/sim.d.ts +2 -0
- package/dist/runners/sim.d.ts.map +1 -1
- package/dist/runners/sim.js +7 -0
- package/dist/runners/sim.js.map +1 -1
- package/package.json +11 -12
- package/runtime/BUNDLE.json +1 -1
- package/runtime/README.md +2 -0
- package/runtime/docs/cli.md +4 -2
- package/runtime/ros2_ws/src/agenticros_sim/CMakeLists.txt +1 -0
- package/runtime/ros2_ws/src/agenticros_sim/README.md +13 -10
- package/runtime/ros2_ws/src/agenticros_sim/config/agenticros-sim.config.json +3 -2
- package/runtime/ros2_ws/src/agenticros_sim/config/amr_bridge.yaml +6 -4
- package/runtime/ros2_ws/src/agenticros_sim/config/nav2_params.yaml +320 -0
- package/runtime/ros2_ws/src/agenticros_sim/launch/sim_amr_nav2.launch.py +101 -0
- package/runtime/ros2_ws/src/agenticros_sim/maps/agenticros_indoor.pgm +0 -0
- package/runtime/ros2_ws/src/agenticros_sim/maps/agenticros_indoor.yaml +7 -0
- package/runtime/ros2_ws/src/agenticros_sim/models/agenticros_amr/model.sdf +18 -1
- package/runtime/ros2_ws/src/agenticros_sim/package.xml +15 -2
- package/runtime/ros2_ws/src/agenticros_sim/urdf/agenticros_amr.urdf.xacro +9 -0
- package/runtime/scripts/configure_agenticros.sh +0 -0
- package/runtime/scripts/configure_for_sim.sh +0 -0
- package/runtime/scripts/fix-openclaw-control-ui-path.sh +0 -0
- package/runtime/scripts/install_cli.sh +0 -0
- package/runtime/scripts/install_rosbridge_from_source.sh +0 -0
- package/runtime/scripts/onboard_robot.sh +0 -0
- package/runtime/scripts/pack-runtime.mjs +0 -0
- package/runtime/scripts/refresh-skill-deps.mjs +0 -0
- package/runtime/scripts/run_demo_native.sh +0 -0
- package/runtime/scripts/run_nemoclaw_host_stack.sh +0 -0
- package/runtime/scripts/run_robot_rosbridge.sh +0 -0
- package/runtime/scripts/setup_gateway_plugin.sh +0 -0
- package/runtime/scripts/setup_robot.sh +0 -0
- package/runtime/scripts/setup_workspace.sh +0 -0
- package/runtime/scripts/sim/run_sim.sh +26 -5
- package/runtime/scripts/smoke_test_nemoclaw.sh +0 -0
- package/runtime/scripts/start_demo.sh +0 -0
- package/runtime/scripts/test-navigate-sim.mjs +164 -0
- package/runtime/scripts/use-openclaw-2026.2.26.sh +0 -0
- package/runtime/scripts/use-openclaw-2026.3.11.sh +0 -0
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ agenticros # interactive menu
|
|
|
14
14
|
agenticros mcp setup # register AgenticROS MCP for Codex, Hermes, and Claude
|
|
15
15
|
agenticros up real # bring up the real-robot stack
|
|
16
16
|
agenticros up sim-amr # bring up a simulated 2-wheel AMR
|
|
17
|
+
agenticros up sim-amr --nav2 # AMR + Nav2 (map + AMCL + navigation)
|
|
17
18
|
agenticros up sim-arm # bring up a simulated 6-DOF arm
|
|
18
19
|
agenticros doctor # health check
|
|
19
20
|
agenticros down # stop everything we started
|
|
@@ -66,6 +67,7 @@ Three ways, listed easiest first:
|
|
|
66
67
|
| `agenticros init` | First-time setup wizard. Idempotent. |
|
|
67
68
|
| `agenticros up real` | Bring up the real-robot stack (RealSense + motors + MCP). |
|
|
68
69
|
| `agenticros up sim-amr` | Bring up the simulated 2-wheel AMR. |
|
|
70
|
+
| `agenticros up sim-amr --nav2` | Same + indoor map, AMCL, and Nav2 (`navigate_to_pose`). |
|
|
69
71
|
| `agenticros up sim-arm` | Bring up the simulated 6-DOF arm (UR5e-shaped, per-joint position control). |
|
|
70
72
|
| `agenticros down` | Stop everything we started. |
|
|
71
73
|
| `agenticros doctor` | Coloured health-check table; `--json` for CI. |
|
package/dist/commands/up.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,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,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,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;CAClB;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9D"}
|
package/dist/commands/up.js
CHANGED
|
@@ -36,6 +36,7 @@ export async function upCommand(opts) {
|
|
|
36
36
|
namespace: opts.namespace,
|
|
37
37
|
useRviz: opts.rviz === true,
|
|
38
38
|
headless: resolveHeadless(opts.headless),
|
|
39
|
+
nav2: opts.nav2 === true,
|
|
39
40
|
});
|
|
40
41
|
break;
|
|
41
42
|
case "sim-arm":
|
|
@@ -134,8 +135,8 @@ async function resolveTarget(raw) {
|
|
|
134
135
|
message: "What do you want to bring up?",
|
|
135
136
|
choices: [
|
|
136
137
|
{ name: "Real robot (RealSense + MCP; motors if robotics CLI present)", value: "real" },
|
|
137
|
-
{ name: "Sim AMR (Gazebo + 2-wheel diff-drive)", value: "sim-amr" },
|
|
138
|
-
{ name: "Sim Arm (Gazebo + UR5e
|
|
138
|
+
{ name: "Sim AMR (Gazebo + 2-wheel diff-drive; add --nav2 for Nav2)", value: "sim-amr" },
|
|
139
|
+
{ name: "Sim Arm (Gazebo + UR5e; MoveIt2 WIP)", value: "sim-arm" },
|
|
139
140
|
],
|
|
140
141
|
default: "real",
|
|
141
142
|
});
|
package/dist/commands/up.js.map
CHANGED
|
@@ -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,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;
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -61,6 +61,7 @@ program
|
|
|
61
61
|
.option("--rviz", "Open RViz alongside the sim (sim targets only)", false)
|
|
62
62
|
.option("--headless", "Run gz-sim with no GUI (auto-enabled on Jetson or when $DISPLAY is unset)")
|
|
63
63
|
.option("--no-headless", "Force gz-sim GUI on (override Jetson auto-headless)")
|
|
64
|
+
.option("--nav2", "sim-amr only: also launch Nav2 (map + AMCL + navigation)", false)
|
|
64
65
|
.option("--no-camera", "Skip starting the RealSense camera (real target only)")
|
|
65
66
|
.option("--no-motors", "Skip starting the motor controller (real target only)")
|
|
66
67
|
.action(async (target, opts) => {
|
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/dist/runners/sim.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface SimRunOptions {
|
|
|
13
13
|
useRviz?: boolean;
|
|
14
14
|
/** True = headless gz (-s --headless-rendering). Auto-detected from $DISPLAY upstream. */
|
|
15
15
|
headless?: boolean;
|
|
16
|
+
/** AMR only: launch Nav2 (map + AMCL + navigation) via sim_amr_nav2.launch.py. */
|
|
17
|
+
nav2?: boolean;
|
|
16
18
|
}
|
|
17
19
|
export declare function runSimAmr(opts: SimRunOptions): Promise<void>;
|
|
18
20
|
export declare function runSimArm(opts: SimRunOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim.d.ts","sourceRoot":"","sources":["../../src/runners/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sim.d.ts","sourceRoot":"","sources":["../../src/runners/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA2CD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE"}
|
package/dist/runners/sim.js
CHANGED
|
@@ -32,6 +32,13 @@ async function runSim(robot, opts) {
|
|
|
32
32
|
args.push("--rviz");
|
|
33
33
|
if (opts.headless)
|
|
34
34
|
args.push("--no-gui");
|
|
35
|
+
if (opts.nav2) {
|
|
36
|
+
if (robot !== "amr") {
|
|
37
|
+
err("--nav2 is only supported with sim-amr.");
|
|
38
|
+
process.exit(2);
|
|
39
|
+
}
|
|
40
|
+
args.push("--nav2");
|
|
41
|
+
}
|
|
35
42
|
info(`Invoking ${script} ${args.join(" ")}…`);
|
|
36
43
|
try {
|
|
37
44
|
await execa("bash", [script, ...args], {
|
package/dist/runners/sim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim.js","sourceRoot":"","sources":["../../src/runners/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"sim.js","sourceRoot":"","sources":["../../src/runners/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAW9C,KAAK,UAAU,MAAM,CAAC,KAAoB,EAAE,IAAmB;IAC7D,MAAM,CAAC,oBAAoB,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,IAAI,CACF,uCAAuC,MAAM,KAAK;YAChD,6EAA6E;YAC7E,4EAA4E;YAC5E,8CAA8C,CACjD,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC;IACzC,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;YACrC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,EAAE;YACvD,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,sBAAsB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agenticros",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
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": [
|
|
@@ -35,16 +35,6 @@
|
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">=20.0.0"
|
|
37
37
|
},
|
|
38
|
-
"scripts": {
|
|
39
|
-
"build": "tsc",
|
|
40
|
-
"typecheck": "tsc --noEmit",
|
|
41
|
-
"test": "node --test --test-force-exit \"dist/__tests__/*.test.js\"",
|
|
42
|
-
"clean": "rm -rf dist runtime tsconfig.tsbuildinfo",
|
|
43
|
-
"pack:runtime": "node ../../scripts/pack-runtime.mjs",
|
|
44
|
-
"size:check": "node ../../scripts/check-cli-tarball-size.mjs",
|
|
45
|
-
"tarball:check": "node ../../scripts/check-cli-tarball-install.mjs",
|
|
46
|
-
"prepublishOnly": "pnpm run clean && pnpm run build && pnpm run pack:runtime && pnpm run size:check && pnpm run tarball:check"
|
|
47
|
-
},
|
|
48
38
|
"dependencies": {
|
|
49
39
|
"@agenticros/core": "^0.8.1",
|
|
50
40
|
"@inquirer/prompts": "^7.0.0",
|
|
@@ -64,5 +54,14 @@
|
|
|
64
54
|
"type": "git",
|
|
65
55
|
"url": "git+https://github.com/agenticros/agenticros.git",
|
|
66
56
|
"directory": "packages/agenticros-cli"
|
|
57
|
+
},
|
|
58
|
+
"scripts": {
|
|
59
|
+
"build": "tsc",
|
|
60
|
+
"typecheck": "tsc --noEmit",
|
|
61
|
+
"test": "node --test --test-force-exit \"dist/__tests__/*.test.js\"",
|
|
62
|
+
"clean": "rm -rf dist runtime tsconfig.tsbuildinfo",
|
|
63
|
+
"pack:runtime": "node ../../scripts/pack-runtime.mjs",
|
|
64
|
+
"size:check": "node ../../scripts/check-cli-tarball-size.mjs",
|
|
65
|
+
"tarball:check": "node ../../scripts/check-cli-tarball-install.mjs"
|
|
67
66
|
}
|
|
68
|
-
}
|
|
67
|
+
}
|
package/runtime/BUNDLE.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packedAt": "2026-07-
|
|
2
|
+
"packedAt": "2026-07-13T21:57:44.063Z",
|
|
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": {
|
package/runtime/README.md
CHANGED
|
@@ -195,6 +195,8 @@ agenticros hermes setup # register AgenticROS MCP for Hermes Agent
|
|
|
195
195
|
agenticros hermes doctor # validate ~/.hermes/config.yaml
|
|
196
196
|
agenticros up real # real robot stack
|
|
197
197
|
agenticros up sim-amr # simulated AMR (Gazebo + RViz, headless on Jetson)
|
|
198
|
+
agenticros up sim-amr --nav2 # AMR + Nav2 for navigate_to missions
|
|
199
|
+
agenticros up sim-arm # simulated 6-DOF arm (per-joint; MoveIt WIP)
|
|
198
200
|
agenticros up sim-arm # simulated 6-DOF arm
|
|
199
201
|
agenticros mode <real|sim> # swap the active config profile (namespace, transport)
|
|
200
202
|
agenticros robots # list / add / remove robots in the fleet (kind, sensors, capabilities)
|
package/runtime/docs/cli.md
CHANGED
|
@@ -38,13 +38,15 @@ Bring up a robot stack. Targets:
|
|
|
38
38
|
| Target | What it does |
|
|
39
39
|
|-----------|-----|
|
|
40
40
|
| `real` | Runs `scripts/start_demo.sh`: RealSense camera (unless `--no-camera`), MCP build, and motor controller only when the `robotics` CLI is installed (or unless `--no-motors`). |
|
|
41
|
-
| `sim-amr` | Launches the simulated 2-wheel AMR (
|
|
42
|
-
| `sim-arm` | Launches the simulated UR5e arm
|
|
41
|
+
| `sim-amr` | Launches the simulated 2-wheel AMR (`scripts/sim/run_sim.sh`). Add `--nav2` for map + AMCL + Nav2. |
|
|
42
|
+
| `sim-arm` | Launches the simulated UR5e-shaped arm (per-joint position control; MoveIt2 WIP). |
|
|
43
43
|
|
|
44
44
|
Flags:
|
|
45
45
|
- `--ros-distro humble|jazzy|…` override ROS distro detection
|
|
46
46
|
- `--namespace <ns>` override the robot namespace
|
|
47
47
|
- `--rviz` open RViz alongside the sim
|
|
48
|
+
- `--headless` / `--no-headless` control gz GUI (auto-headless on Jetson / no `$DISPLAY`)
|
|
49
|
+
- `--nav2` sim-amr only: also launch Nav2 (`sim_amr_nav2.launch.py`)
|
|
48
50
|
- `--no-camera` skip starting the RealSense camera (real target)
|
|
49
51
|
- `--no-motors` skip starting the motor controller (real target)
|
|
50
52
|
|
|
@@ -11,20 +11,23 @@ names the real-robot plugin already expects.
|
|
|
11
11
|
agenticros_sim/
|
|
12
12
|
├── worlds/agenticros_indoor.sdf 12 x 12 m indoor room with obstacles
|
|
13
13
|
│ and one "person" target for follow-me
|
|
14
|
+
├── maps/agenticros_indoor.{yaml,pgm} Occupancy grid for Nav2 / AMCL
|
|
14
15
|
├── models/
|
|
15
16
|
│ ├── agenticros_amr/ 2-wheel diff-drive AMR with sensors
|
|
16
17
|
│ └── agenticros_arm/ 6-DOF UR5e-shaped robotic arm
|
|
17
18
|
├── urdf/
|
|
18
|
-
│ ├── agenticros_amr.urdf.xacro URDF mirror for RViz (AMR)
|
|
19
|
+
│ ├── agenticros_amr.urdf.xacro URDF mirror for RViz (AMR; base_footprint)
|
|
19
20
|
│ └── agenticros_arm.urdf.xacro URDF mirror for RViz (arm)
|
|
20
21
|
├── config/
|
|
21
22
|
│ ├── amr_bridge.yaml gz <-> ROS topic mapping (AMR)
|
|
23
|
+
│ ├── nav2_params.yaml Nav2 / AMCL params for the AMR
|
|
22
24
|
│ ├── amr_view.rviz RViz config: camera, scan, TF
|
|
23
25
|
│ ├── arm_bridge.yaml gz <-> ROS topic mapping (arm)
|
|
24
26
|
│ └── arm_view.rviz RViz config: RobotModel + TF
|
|
25
27
|
├── launch/
|
|
26
|
-
│ ├── sim_amr.launch.py
|
|
27
|
-
│
|
|
28
|
+
│ ├── sim_amr.launch.py Gazebo AMR + bridge
|
|
29
|
+
│ ├── sim_amr_nav2.launch.py Gazebo AMR + Nav2 (map + AMCL)
|
|
30
|
+
│ └── sim_arm.launch.py Gazebo arm
|
|
28
31
|
├── env-hooks/ Add the package's share/ to GZ_SIM_RESOURCE_PATH
|
|
29
32
|
└── CMakeLists.txt + package.xml Standard ament_cmake skeleton
|
|
30
33
|
```
|
|
@@ -35,6 +38,8 @@ agenticros_sim/
|
|
|
35
38
|
# Easiest: use the agenticros CLI (handles ROS sourcing + workspace build).
|
|
36
39
|
agenticros up sim-amr # AMR: GUI
|
|
37
40
|
agenticros up sim-amr --rviz # AMR: GUI + RViz panel
|
|
41
|
+
agenticros up sim-amr --nav2 # AMR + Nav2 (map + AMCL + navigation)
|
|
42
|
+
agenticros up sim-amr --nav2 --headless
|
|
38
43
|
agenticros up sim-arm # Arm: GUI
|
|
39
44
|
agenticros up sim-arm --rviz # Arm: GUI + RViz (RobotModel + TF)
|
|
40
45
|
|
|
@@ -42,12 +47,15 @@ agenticros up sim-arm --rviz # Arm: GUI + RViz (RobotModel + TF)
|
|
|
42
47
|
cd ros2_ws && colcon build --symlink-install --packages-select agenticros_sim
|
|
43
48
|
source install/setup.bash
|
|
44
49
|
ros2 launch agenticros_sim sim_amr.launch.py
|
|
50
|
+
ros2 launch agenticros_sim sim_amr_nav2.launch.py gui:=false
|
|
45
51
|
ros2 launch agenticros_sim sim_amr.launch.py use_rviz:=true
|
|
46
52
|
ros2 launch agenticros_sim sim_amr.launch.py gui:=false # headless
|
|
47
53
|
ros2 launch agenticros_sim sim_arm.launch.py
|
|
48
54
|
ros2 launch agenticros_sim sim_arm.launch.py use_rviz:=true
|
|
49
55
|
```
|
|
50
56
|
|
|
57
|
+
Nav2 requires `ros-$ROS_DISTRO-nav2-bringup`. After `--nav2`, install
|
|
58
|
+
`@agenticros/navigate-to` and call `run_mission` with `navigate_to`.
|
|
51
59
|
## Arm topic layout
|
|
52
60
|
|
|
53
61
|
The arm exposes one position-command topic per joint plus the usual
|
|
@@ -133,13 +141,8 @@ works against sim without configuration changes.
|
|
|
133
141
|
|
|
134
142
|
These are non-fatal but worth knowing as you build sim demos:
|
|
135
143
|
|
|
136
|
-
1. **`/odom`
|
|
137
|
-
|
|
138
|
-
appears to expect `gz.msgs.OdometryWithCovariance` for the
|
|
139
|
-
`nav_msgs/msg/Odometry` mapping. The other transforms (`/tf`, `/tf_static`)
|
|
140
|
-
work and are usually enough for navigation demos. Fix candidates:
|
|
141
|
-
add an `<odom_publisher_topic>` for `_with_covariance` in the diff-drive
|
|
142
|
-
config, or write a tiny relay node. Tracked for Phase 4 polish.
|
|
144
|
+
1. **`/odom` flows through the bridge** via `gz.msgs.OdometryWithCovariance`
|
|
145
|
+
from the OdometryPublisher system (DiffDrive still owns `/tf`).
|
|
143
146
|
2. **`/camera/camera/color/image_raw` is silent in headless mode** on this
|
|
144
147
|
Jetson (`libEGL: failed to create dri2 screen`). Depth, lidar, IMU, and
|
|
145
148
|
joint_states all stream correctly regardless. With `gui:=true` (a real
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "AgenticROS config template tuned for sim-amr. Drop this in ~/.agenticros/config.json (or run `agenticros init` and answer 'simulation') to point the MCP server + OpenClaw plugin at the sim's topics. All values match agenticros_sim/config/amr_bridge.yaml. NOTE: robot.namespace is intentionally empty - the sim bridge publishes /cmd_vel, /scan, /imu/data, etc. at the graph root (no robot prefix), so AgenticROS must NOT namespace topics. For multi-robot sim, prefix the topics in amr_bridge.yaml and set namespace here to match.",
|
|
2
|
+
"$comment": "AgenticROS config template tuned for sim-amr. Drop this in ~/.agenticros/config.json (or run `agenticros init` and answer 'simulation') to point the MCP server + OpenClaw plugin at the sim's topics. All values match agenticros_sim/config/amr_bridge.yaml. NOTE: robot.namespace is intentionally empty - the sim bridge publishes /cmd_vel, /scan, /imu/data, etc. at the graph root (no robot prefix), so AgenticROS must NOT namespace topics. For multi-robot sim, prefix the topics in amr_bridge.yaml and set namespace here to match. For Nav2 demos: `agenticros up sim-amr --nav2` then install @agenticros/navigate-to (or pin skillRefs below).",
|
|
3
3
|
"transport": {
|
|
4
4
|
"mode": "local"
|
|
5
5
|
},
|
|
@@ -24,5 +24,6 @@
|
|
|
24
24
|
"followme": {
|
|
25
25
|
"depthTopic": "/camera/camera/depth/image_rect_raw"
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
|
+
"skillRefs": []
|
|
28
29
|
}
|
|
@@ -23,12 +23,14 @@
|
|
|
23
23
|
direction: ROS_TO_GZ
|
|
24
24
|
|
|
25
25
|
# ---------------- odometry (GZ -> ROS) ----------------
|
|
26
|
-
#
|
|
27
|
-
#
|
|
26
|
+
# Prefer OdometryWithCovariance from the OdometryPublisher system (see
|
|
27
|
+
# model.sdf). Humble ros_gz_bridge historically failed to convert bare
|
|
28
|
+
# gz.msgs.Odometry from DiffDrive; covariance messages map cleanly to
|
|
29
|
+
# nav_msgs/Odometry. DiffDrive still publishes /odometry + /tf for TF.
|
|
28
30
|
- ros_topic_name: "/odom"
|
|
29
|
-
gz_topic_name: "/
|
|
31
|
+
gz_topic_name: "/odometry_with_covariance"
|
|
30
32
|
ros_type_name: "nav_msgs/msg/Odometry"
|
|
31
|
-
gz_type_name: "gz.msgs.
|
|
33
|
+
gz_type_name: "gz.msgs.OdometryWithCovariance"
|
|
32
34
|
direction: GZ_TO_ROS
|
|
33
35
|
|
|
34
36
|
# ---------------- /tf (GZ -> ROS) ----------------
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Nav2 parameters for agenticros_amr in Gazebo (agenticros_indoor world).
|
|
2
|
+
# Tuned for a ~0.40 x 0.30 m diff-drive footprint, /scan lidar, /cmd_vel,
|
|
3
|
+
# and use_sim_time. Used by launch/sim_amr_nav2.launch.py.
|
|
4
|
+
|
|
5
|
+
amcl:
|
|
6
|
+
ros__parameters:
|
|
7
|
+
use_sim_time: true
|
|
8
|
+
alpha1: 0.2
|
|
9
|
+
alpha2: 0.2
|
|
10
|
+
alpha3: 0.2
|
|
11
|
+
alpha4: 0.2
|
|
12
|
+
alpha5: 0.2
|
|
13
|
+
base_frame_id: base_footprint
|
|
14
|
+
beam_skip_distance: 0.5
|
|
15
|
+
beam_skip_error_threshold: 0.9
|
|
16
|
+
beam_skip_threshold: 0.3
|
|
17
|
+
do_beamskip: false
|
|
18
|
+
global_frame_id: map
|
|
19
|
+
lambda_short: 0.1
|
|
20
|
+
laser_likelihood_max_dist: 2.0
|
|
21
|
+
laser_max_range: 12.0
|
|
22
|
+
laser_min_range: 0.12
|
|
23
|
+
laser_model_type: likelihood_field
|
|
24
|
+
max_beams: 60
|
|
25
|
+
max_particles: 2000
|
|
26
|
+
min_particles: 500
|
|
27
|
+
odom_frame_id: odom
|
|
28
|
+
pf_err: 0.05
|
|
29
|
+
pf_z: 0.99
|
|
30
|
+
recovery_alpha_fast: 0.0
|
|
31
|
+
recovery_alpha_slow: 0.0
|
|
32
|
+
resample_interval: 1
|
|
33
|
+
robot_model_type: nav2_amcl::DifferentialMotionModel
|
|
34
|
+
save_pose_rate: 0.5
|
|
35
|
+
sigma_hit: 0.2
|
|
36
|
+
tf_broadcast: true
|
|
37
|
+
transform_tolerance: 1.0
|
|
38
|
+
update_min_a: 0.2
|
|
39
|
+
update_min_d: 0.25
|
|
40
|
+
z_hit: 0.5
|
|
41
|
+
z_max: 0.05
|
|
42
|
+
z_rand: 0.5
|
|
43
|
+
z_short: 0.05
|
|
44
|
+
scan_topic: scan
|
|
45
|
+
set_initial_pose: true
|
|
46
|
+
initial_pose:
|
|
47
|
+
x: 0.0
|
|
48
|
+
y: 0.0
|
|
49
|
+
z: 0.0
|
|
50
|
+
yaw: 0.0
|
|
51
|
+
|
|
52
|
+
bt_navigator:
|
|
53
|
+
ros__parameters:
|
|
54
|
+
use_sim_time: true
|
|
55
|
+
global_frame: map
|
|
56
|
+
robot_base_frame: base_footprint
|
|
57
|
+
odom_topic: /odom
|
|
58
|
+
bt_loop_duration: 10
|
|
59
|
+
default_server_timeout: 20
|
|
60
|
+
wait_for_service_timeout: 1000
|
|
61
|
+
plugin_lib_names:
|
|
62
|
+
- nav2_compute_path_to_pose_action_bt_node
|
|
63
|
+
- nav2_compute_path_through_poses_action_bt_node
|
|
64
|
+
- nav2_smooth_path_action_bt_node
|
|
65
|
+
- nav2_follow_path_action_bt_node
|
|
66
|
+
- nav2_spin_action_bt_node
|
|
67
|
+
- nav2_wait_action_bt_node
|
|
68
|
+
- nav2_assisted_teleop_action_bt_node
|
|
69
|
+
- nav2_back_up_action_bt_node
|
|
70
|
+
- nav2_drive_on_heading_bt_node
|
|
71
|
+
- nav2_clear_costmap_service_bt_node
|
|
72
|
+
- nav2_is_stuck_condition_bt_node
|
|
73
|
+
- nav2_goal_reached_condition_bt_node
|
|
74
|
+
- nav2_goal_updated_condition_bt_node
|
|
75
|
+
- nav2_globally_updated_goal_condition_bt_node
|
|
76
|
+
- nav2_is_path_valid_condition_bt_node
|
|
77
|
+
- nav2_initial_pose_received_condition_bt_node
|
|
78
|
+
- nav2_reinitialize_global_localization_service_bt_node
|
|
79
|
+
- nav2_rate_controller_bt_node
|
|
80
|
+
- nav2_distance_controller_bt_node
|
|
81
|
+
- nav2_speed_controller_bt_node
|
|
82
|
+
- nav2_truncate_path_action_bt_node
|
|
83
|
+
- nav2_truncate_path_local_action_bt_node
|
|
84
|
+
- nav2_goal_updater_node_bt_node
|
|
85
|
+
- nav2_recovery_node_bt_node
|
|
86
|
+
- nav2_pipeline_sequence_bt_node
|
|
87
|
+
- nav2_round_robin_node_bt_node
|
|
88
|
+
- nav2_transform_available_condition_bt_node
|
|
89
|
+
- nav2_time_expired_condition_bt_node
|
|
90
|
+
- nav2_path_expiring_timer_condition
|
|
91
|
+
- nav2_distance_traveled_condition_bt_node
|
|
92
|
+
- nav2_single_trigger_bt_node
|
|
93
|
+
- nav2_goal_updated_controller_bt_node
|
|
94
|
+
- nav2_is_battery_low_condition_bt_node
|
|
95
|
+
- nav2_navigate_through_poses_action_bt_node
|
|
96
|
+
- nav2_navigate_to_pose_action_bt_node
|
|
97
|
+
- nav2_remove_passed_goals_action_bt_node
|
|
98
|
+
- nav2_planner_selector_bt_node
|
|
99
|
+
- nav2_controller_selector_bt_node
|
|
100
|
+
- nav2_goal_checker_selector_bt_node
|
|
101
|
+
- nav2_controller_cancel_bt_node
|
|
102
|
+
- nav2_path_longer_on_approach_bt_node
|
|
103
|
+
- nav2_wait_cancel_bt_node
|
|
104
|
+
- nav2_spin_cancel_bt_node
|
|
105
|
+
- nav2_back_up_cancel_bt_node
|
|
106
|
+
- nav2_assisted_teleop_cancel_bt_node
|
|
107
|
+
- nav2_drive_on_heading_cancel_bt_node
|
|
108
|
+
- nav2_is_battery_charging_condition_bt_node
|
|
109
|
+
|
|
110
|
+
bt_navigator_navigate_through_poses_rclcpp_node:
|
|
111
|
+
ros__parameters:
|
|
112
|
+
use_sim_time: true
|
|
113
|
+
|
|
114
|
+
bt_navigator_navigate_to_pose_rclcpp_node:
|
|
115
|
+
ros__parameters:
|
|
116
|
+
use_sim_time: true
|
|
117
|
+
|
|
118
|
+
controller_server:
|
|
119
|
+
ros__parameters:
|
|
120
|
+
use_sim_time: true
|
|
121
|
+
controller_frequency: 20.0
|
|
122
|
+
min_x_velocity_threshold: 0.001
|
|
123
|
+
min_y_velocity_threshold: 0.5
|
|
124
|
+
min_theta_velocity_threshold: 0.001
|
|
125
|
+
failure_tolerance: 0.3
|
|
126
|
+
progress_checker_plugin: progress_checker
|
|
127
|
+
goal_checker_plugins: [general_goal_checker]
|
|
128
|
+
controller_plugins: [FollowPath]
|
|
129
|
+
progress_checker:
|
|
130
|
+
plugin: nav2_controller::SimpleProgressChecker
|
|
131
|
+
required_movement_radius: 0.5
|
|
132
|
+
movement_time_allowance: 10.0
|
|
133
|
+
general_goal_checker:
|
|
134
|
+
stateful: true
|
|
135
|
+
plugin: nav2_controller::SimpleGoalChecker
|
|
136
|
+
xy_goal_tolerance: 0.25
|
|
137
|
+
yaw_goal_tolerance: 0.25
|
|
138
|
+
FollowPath:
|
|
139
|
+
plugin: nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController
|
|
140
|
+
desired_linear_vel: 0.35
|
|
141
|
+
lookahead_dist: 0.6
|
|
142
|
+
min_lookahead_dist: 0.3
|
|
143
|
+
max_lookahead_dist: 0.9
|
|
144
|
+
lookahead_time: 1.5
|
|
145
|
+
rotate_to_heading_angular_vel: 1.0
|
|
146
|
+
transform_tolerance: 0.1
|
|
147
|
+
use_velocity_scaled_lookahead_dist: false
|
|
148
|
+
min_approach_linear_velocity: 0.05
|
|
149
|
+
approach_velocity_scaling_dist: 0.6
|
|
150
|
+
use_collision_detection: true
|
|
151
|
+
max_allowed_time_to_collision_up_to_carrot: 1.0
|
|
152
|
+
use_regulated_linear_velocity_scaling: true
|
|
153
|
+
use_cost_regulated_linear_velocity_scaling: false
|
|
154
|
+
regulated_linear_scaling_min_radius: 0.9
|
|
155
|
+
regulated_linear_scaling_min_speed: 0.1
|
|
156
|
+
allow_reversing: false
|
|
157
|
+
use_rotate_to_heading: true
|
|
158
|
+
rotate_to_heading_min_angular_vel: 0.3
|
|
159
|
+
max_angular_accel: 2.0
|
|
160
|
+
max_robot_pose_search_dist: 10.0
|
|
161
|
+
|
|
162
|
+
local_costmap:
|
|
163
|
+
local_costmap:
|
|
164
|
+
ros__parameters:
|
|
165
|
+
use_sim_time: true
|
|
166
|
+
update_frequency: 5.0
|
|
167
|
+
publish_frequency: 2.0
|
|
168
|
+
global_frame: odom
|
|
169
|
+
robot_base_frame: base_footprint
|
|
170
|
+
rolling_window: true
|
|
171
|
+
width: 3
|
|
172
|
+
height: 3
|
|
173
|
+
resolution: 0.05
|
|
174
|
+
robot_radius: 0.28
|
|
175
|
+
plugins: [voxel_layer, inflation_layer]
|
|
176
|
+
inflation_layer:
|
|
177
|
+
plugin: nav2_costmap_2d::InflationLayer
|
|
178
|
+
cost_scaling_factor: 3.0
|
|
179
|
+
inflation_radius: 0.55
|
|
180
|
+
voxel_layer:
|
|
181
|
+
plugin: nav2_costmap_2d::VoxelLayer
|
|
182
|
+
enabled: true
|
|
183
|
+
publish_voxel_map: false
|
|
184
|
+
origin_z: 0.0
|
|
185
|
+
z_resolution: 0.05
|
|
186
|
+
z_voxels: 16
|
|
187
|
+
max_obstacle_height: 2.0
|
|
188
|
+
mark_threshold: 0
|
|
189
|
+
observation_sources: scan
|
|
190
|
+
scan:
|
|
191
|
+
topic: /scan
|
|
192
|
+
max_obstacle_height: 2.0
|
|
193
|
+
clearing: true
|
|
194
|
+
marking: true
|
|
195
|
+
data_type: LaserScan
|
|
196
|
+
raytrace_max_range: 3.0
|
|
197
|
+
raytrace_min_range: 0.0
|
|
198
|
+
obstacle_max_range: 2.5
|
|
199
|
+
obstacle_min_range: 0.0
|
|
200
|
+
always_send_full_costmap: true
|
|
201
|
+
|
|
202
|
+
global_costmap:
|
|
203
|
+
global_costmap:
|
|
204
|
+
ros__parameters:
|
|
205
|
+
use_sim_time: true
|
|
206
|
+
update_frequency: 1.0
|
|
207
|
+
publish_frequency: 1.0
|
|
208
|
+
global_frame: map
|
|
209
|
+
robot_base_frame: base_footprint
|
|
210
|
+
robot_radius: 0.28
|
|
211
|
+
resolution: 0.05
|
|
212
|
+
track_unknown_space: true
|
|
213
|
+
plugins: [static_layer, obstacle_layer, inflation_layer]
|
|
214
|
+
obstacle_layer:
|
|
215
|
+
plugin: nav2_costmap_2d::ObstacleLayer
|
|
216
|
+
enabled: true
|
|
217
|
+
observation_sources: scan
|
|
218
|
+
scan:
|
|
219
|
+
topic: /scan
|
|
220
|
+
max_obstacle_height: 2.0
|
|
221
|
+
clearing: true
|
|
222
|
+
marking: true
|
|
223
|
+
data_type: LaserScan
|
|
224
|
+
raytrace_max_range: 3.0
|
|
225
|
+
raytrace_min_range: 0.0
|
|
226
|
+
obstacle_max_range: 2.5
|
|
227
|
+
obstacle_min_range: 0.0
|
|
228
|
+
static_layer:
|
|
229
|
+
plugin: nav2_costmap_2d::StaticLayer
|
|
230
|
+
map_subscribe_transient_local: true
|
|
231
|
+
inflation_layer:
|
|
232
|
+
plugin: nav2_costmap_2d::InflationLayer
|
|
233
|
+
cost_scaling_factor: 3.0
|
|
234
|
+
inflation_radius: 0.55
|
|
235
|
+
always_send_full_costmap: true
|
|
236
|
+
|
|
237
|
+
map_server:
|
|
238
|
+
ros__parameters:
|
|
239
|
+
use_sim_time: true
|
|
240
|
+
yaml_filename: ""
|
|
241
|
+
|
|
242
|
+
map_saver:
|
|
243
|
+
ros__parameters:
|
|
244
|
+
use_sim_time: true
|
|
245
|
+
save_map_timeout: 5.0
|
|
246
|
+
free_thresh_default: 0.25
|
|
247
|
+
occupied_thresh_default: 0.65
|
|
248
|
+
map_subscribe_transient_local: true
|
|
249
|
+
|
|
250
|
+
planner_server:
|
|
251
|
+
ros__parameters:
|
|
252
|
+
use_sim_time: true
|
|
253
|
+
expected_planner_frequency: 20.0
|
|
254
|
+
planner_plugins: [GridBased]
|
|
255
|
+
GridBased:
|
|
256
|
+
plugin: nav2_navfn_planner/NavfnPlanner
|
|
257
|
+
tolerance: 0.5
|
|
258
|
+
use_astar: false
|
|
259
|
+
allow_unknown: true
|
|
260
|
+
|
|
261
|
+
smoother_server:
|
|
262
|
+
ros__parameters:
|
|
263
|
+
use_sim_time: true
|
|
264
|
+
smoother_plugins: [simple_smoother]
|
|
265
|
+
simple_smoother:
|
|
266
|
+
plugin: nav2_smoother::SimpleSmoother
|
|
267
|
+
tolerance: 1.0e-10
|
|
268
|
+
max_its: 1000
|
|
269
|
+
do_refinement: true
|
|
270
|
+
|
|
271
|
+
behavior_server:
|
|
272
|
+
ros__parameters:
|
|
273
|
+
use_sim_time: true
|
|
274
|
+
costmap_topic: local_costmap/costmap_raw
|
|
275
|
+
footprint_topic: local_costmap/published_footprint
|
|
276
|
+
cycle_frequency: 10.0
|
|
277
|
+
behavior_plugins: [spin, backup, drive_on_heading, assisted_teleop, wait]
|
|
278
|
+
spin:
|
|
279
|
+
plugin: nav2_behaviors/Spin
|
|
280
|
+
backup:
|
|
281
|
+
plugin: nav2_behaviors/BackUp
|
|
282
|
+
drive_on_heading:
|
|
283
|
+
plugin: nav2_behaviors/DriveOnHeading
|
|
284
|
+
wait:
|
|
285
|
+
plugin: nav2_behaviors/Wait
|
|
286
|
+
assisted_teleop:
|
|
287
|
+
plugin: nav2_behaviors/AssistedTeleop
|
|
288
|
+
global_frame: odom
|
|
289
|
+
robot_base_frame: base_footprint
|
|
290
|
+
transform_tolerance: 0.1
|
|
291
|
+
simulate_ahead_time: 2.0
|
|
292
|
+
max_rotational_vel: 1.0
|
|
293
|
+
min_rotational_vel: 0.4
|
|
294
|
+
rotational_acc_lim: 3.2
|
|
295
|
+
|
|
296
|
+
waypoint_follower:
|
|
297
|
+
ros__parameters:
|
|
298
|
+
use_sim_time: true
|
|
299
|
+
loop_rate: 20
|
|
300
|
+
stop_on_failure: false
|
|
301
|
+
waypoint_task_executor_plugin: wait_at_waypoint
|
|
302
|
+
wait_at_waypoint:
|
|
303
|
+
plugin: nav2_waypoint_follower::WaitAtWaypoint
|
|
304
|
+
enabled: true
|
|
305
|
+
waypoint_pause_duration: 200
|
|
306
|
+
|
|
307
|
+
velocity_smoother:
|
|
308
|
+
ros__parameters:
|
|
309
|
+
use_sim_time: true
|
|
310
|
+
smoothing_frequency: 20.0
|
|
311
|
+
scale_velocities: false
|
|
312
|
+
feedback: OPEN_LOOP
|
|
313
|
+
max_velocity: [0.5, 0.0, 1.5]
|
|
314
|
+
min_velocity: [-0.5, 0.0, -1.5]
|
|
315
|
+
max_accel: [1.0, 0.0, 2.0]
|
|
316
|
+
max_decel: [-1.0, 0.0, -2.0]
|
|
317
|
+
odom_topic: odom
|
|
318
|
+
odom_duration: 0.1
|
|
319
|
+
deadband_velocity: [0.0, 0.0, 0.0]
|
|
320
|
+
velocity_timeout: 1.0
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"""sim_amr_nav2.launch.py
|
|
2
|
+
|
|
3
|
+
Bring up Gazebo AMR sim + Nav2 (static map + AMCL + navigation stack).
|
|
4
|
+
|
|
5
|
+
Includes:
|
|
6
|
+
* agenticros_sim/sim_amr.launch.py (gz + bridge + robot_state_publisher)
|
|
7
|
+
* nav2_bringup/bringup_launch.py (map_server + amcl + controller/planner/bt)
|
|
8
|
+
|
|
9
|
+
Launch args (forwarded to sim_amr where applicable):
|
|
10
|
+
gui, use_rviz, use_sim_time, x, y, z, yaw
|
|
11
|
+
map — occupancy grid YAML (default: maps/agenticros_indoor.yaml)
|
|
12
|
+
params_file — Nav2 params (default: config/nav2_params.yaml)
|
|
13
|
+
autostart — lifecycle autostart (default true)
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
ros2 launch agenticros_sim sim_amr_nav2.launch.py gui:=false
|
|
17
|
+
ros2 launch agenticros_sim sim_amr_nav2.launch.py use_rviz:=true
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
import os
|
|
23
|
+
|
|
24
|
+
from ament_index_python.packages import get_package_share_directory
|
|
25
|
+
from launch import LaunchDescription
|
|
26
|
+
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
|
|
27
|
+
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
|
28
|
+
from launch.substitutions import LaunchConfiguration
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
PKG_NAME = "agenticros_sim"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def generate_launch_description() -> LaunchDescription:
|
|
35
|
+
pkg_share = get_package_share_directory(PKG_NAME)
|
|
36
|
+
default_map = os.path.join(pkg_share, "maps", "agenticros_indoor.yaml")
|
|
37
|
+
default_params = os.path.join(pkg_share, "config", "nav2_params.yaml")
|
|
38
|
+
sim_amr_launch = os.path.join(pkg_share, "launch", "sim_amr.launch.py")
|
|
39
|
+
nav2_bringup = get_package_share_directory("nav2_bringup")
|
|
40
|
+
bringup_launch = os.path.join(nav2_bringup, "launch", "bringup_launch.py")
|
|
41
|
+
|
|
42
|
+
gui_arg = DeclareLaunchArgument("gui", default_value="true")
|
|
43
|
+
use_rviz_arg = DeclareLaunchArgument("use_rviz", default_value="false")
|
|
44
|
+
use_sim_time_arg = DeclareLaunchArgument("use_sim_time", default_value="true")
|
|
45
|
+
x_arg = DeclareLaunchArgument("x", default_value="0.0")
|
|
46
|
+
y_arg = DeclareLaunchArgument("y", default_value="0.0")
|
|
47
|
+
z_arg = DeclareLaunchArgument("z", default_value="0.1")
|
|
48
|
+
yaw_arg = DeclareLaunchArgument("yaw", default_value="0.0")
|
|
49
|
+
map_arg = DeclareLaunchArgument("map", default_value=default_map)
|
|
50
|
+
params_arg = DeclareLaunchArgument("params_file", default_value=default_params)
|
|
51
|
+
autostart_arg = DeclareLaunchArgument("autostart", default_value="true")
|
|
52
|
+
|
|
53
|
+
sim = IncludeLaunchDescription(
|
|
54
|
+
PythonLaunchDescriptionSource(sim_amr_launch),
|
|
55
|
+
launch_arguments={
|
|
56
|
+
"gui": LaunchConfiguration("gui"),
|
|
57
|
+
"use_rviz": LaunchConfiguration("use_rviz"),
|
|
58
|
+
"use_sim_time": LaunchConfiguration("use_sim_time"),
|
|
59
|
+
"x": LaunchConfiguration("x"),
|
|
60
|
+
"y": LaunchConfiguration("y"),
|
|
61
|
+
"z": LaunchConfiguration("z"),
|
|
62
|
+
"yaw": LaunchConfiguration("yaw"),
|
|
63
|
+
}.items(),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# slam:=False → localization_launch (map_server + amcl) + navigation_launch
|
|
67
|
+
nav2 = IncludeLaunchDescription(
|
|
68
|
+
PythonLaunchDescriptionSource(bringup_launch),
|
|
69
|
+
launch_arguments={
|
|
70
|
+
"slam": "False",
|
|
71
|
+
"map": LaunchConfiguration("map"),
|
|
72
|
+
"use_sim_time": LaunchConfiguration("use_sim_time"),
|
|
73
|
+
"params_file": LaunchConfiguration("params_file"),
|
|
74
|
+
"autostart": LaunchConfiguration("autostart"),
|
|
75
|
+
"use_composition": "False",
|
|
76
|
+
"use_respawn": "False",
|
|
77
|
+
}.items(),
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
# Remap Nav2's default cmd_vel if velocity_smoother is in the graph —
|
|
81
|
+
# our bridge listens on /cmd_vel. bringup already uses /cmd_vel by default
|
|
82
|
+
# for the controller; keep a no-op note via a tiny static transform wait
|
|
83
|
+
# is unnecessary. Publish map→odom is AMCL's job once initial pose is set
|
|
84
|
+
# (set_initial_pose: true in nav2_params.yaml).
|
|
85
|
+
|
|
86
|
+
return LaunchDescription(
|
|
87
|
+
[
|
|
88
|
+
gui_arg,
|
|
89
|
+
use_rviz_arg,
|
|
90
|
+
use_sim_time_arg,
|
|
91
|
+
x_arg,
|
|
92
|
+
y_arg,
|
|
93
|
+
z_arg,
|
|
94
|
+
yaw_arg,
|
|
95
|
+
map_arg,
|
|
96
|
+
params_arg,
|
|
97
|
+
autostart_arg,
|
|
98
|
+
sim,
|
|
99
|
+
nav2,
|
|
100
|
+
]
|
|
101
|
+
)
|
|
Binary file
|
|
@@ -221,11 +221,28 @@
|
|
|
221
221
|
<odom_topic>odometry</odom_topic>
|
|
222
222
|
<tf_topic>tf</tf_topic>
|
|
223
223
|
<frame_id>odom</frame_id>
|
|
224
|
-
<child_frame_id>
|
|
224
|
+
<child_frame_id>base_footprint</child_frame_id>
|
|
225
225
|
<max_linear_acceleration>1.0</max_linear_acceleration>
|
|
226
226
|
<max_angular_acceleration>2.0</max_angular_acceleration>
|
|
227
227
|
</plugin>
|
|
228
228
|
|
|
229
|
+
<!--
|
|
230
|
+
Odometry with covariance for ros_gz_bridge on Humble/Jazzy.
|
|
231
|
+
DiffDrive publishes bare gz.msgs.Odometry on /odometry; some Humble
|
|
232
|
+
bridge builds only convert OdometryWithCovariance reliably to
|
|
233
|
+
nav_msgs/Odometry. TF stays on DiffDrive (tf_topic below is unused).
|
|
234
|
+
-->
|
|
235
|
+
<plugin
|
|
236
|
+
filename="gz-sim-odometry-publisher-system"
|
|
237
|
+
name="gz::sim::systems::OdometryPublisher">
|
|
238
|
+
<odom_frame>odom</odom_frame>
|
|
239
|
+
<robot_base_frame>base_footprint</robot_base_frame>
|
|
240
|
+
<odom_topic>odometry</odom_topic>
|
|
241
|
+
<odom_covariance_topic>odometry_with_covariance</odom_covariance_topic>
|
|
242
|
+
<tf_topic>odometry_publisher_tf_unused</tf_topic>
|
|
243
|
+
<dimensions>2</dimensions>
|
|
244
|
+
</plugin>
|
|
245
|
+
|
|
229
246
|
<plugin filename="gz-sim-joint-state-publisher-system" name="gz::sim::systems::JointStatePublisher">
|
|
230
247
|
<topic>joint_states</topic>
|
|
231
248
|
</plugin>
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
<description>
|
|
7
7
|
AgenticROS Gazebo Harmonic simulation assets: indoor world, 2-wheel AMR
|
|
8
8
|
model (depth camera + GPU lidar + IMU), ros_gz_bridge config that exposes
|
|
9
|
-
topics on AgenticROS
|
|
10
|
-
|
|
9
|
+
topics on AgenticROS real-robot topic names, Nav2 bringup for the indoor
|
|
10
|
+
map (sim_amr_nav2.launch.py), and launch files that wire it all together.
|
|
11
|
+
Use with the agenticros CLI: agenticros up sim-amr [--nav2].
|
|
11
12
|
</description>
|
|
12
13
|
<maintainer email="hello@plaipin.com">PlaiPin</maintainer>
|
|
13
14
|
<license>Apache-2.0</license>
|
|
@@ -20,6 +21,18 @@
|
|
|
20
21
|
<exec_depend>robot_state_publisher</exec_depend>
|
|
21
22
|
<exec_depend>xacro</exec_depend>
|
|
22
23
|
<exec_depend>rviz2</exec_depend>
|
|
24
|
+
<!-- Optional Nav2 stack (sim_amr_nav2.launch.py / agenticros up sim-amr with nav2) -->
|
|
25
|
+
<exec_depend>nav2_bringup</exec_depend>
|
|
26
|
+
<exec_depend>nav2_bt_navigator</exec_depend>
|
|
27
|
+
<exec_depend>nav2_amcl</exec_depend>
|
|
28
|
+
<exec_depend>nav2_map_server</exec_depend>
|
|
29
|
+
<exec_depend>nav2_controller</exec_depend>
|
|
30
|
+
<exec_depend>nav2_planner</exec_depend>
|
|
31
|
+
<exec_depend>nav2_behaviors</exec_depend>
|
|
32
|
+
<exec_depend>nav2_smoother</exec_depend>
|
|
33
|
+
<exec_depend>nav2_waypoint_follower</exec_depend>
|
|
34
|
+
<exec_depend>nav2_velocity_smoother</exec_depend>
|
|
35
|
+
<exec_depend>nav2_lifecycle_manager</exec_depend>
|
|
23
36
|
|
|
24
37
|
<export>
|
|
25
38
|
<build_type>ament_cmake</build_type>
|
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
-->
|
|
20
20
|
<robot name="agenticros_amr" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
|
21
21
|
|
|
22
|
+
<!-- ===================== base_footprint (Nav2 / costmap convention) ===================== -->
|
|
23
|
+
<link name="base_footprint"/>
|
|
24
|
+
<joint name="base_footprint_joint" type="fixed">
|
|
25
|
+
<parent link="base_footprint"/>
|
|
26
|
+
<child link="base_link"/>
|
|
27
|
+
<!-- base_link visual origin is chassis center ~0.10 m above ground -->
|
|
28
|
+
<origin xyz="0 0 0.10" rpy="0 0 0"/>
|
|
29
|
+
</joint>
|
|
30
|
+
|
|
22
31
|
<!-- ===================== base_link ===================== -->
|
|
23
32
|
<link name="base_link">
|
|
24
33
|
<visual>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
# tees output to /tmp/agenticros-sim.log so `agenticros logs sim` works.
|
|
8
8
|
#
|
|
9
9
|
# Usage:
|
|
10
|
-
# run_sim.sh --robot amr [--namespace sim_robot] [--rviz] [--no-gui]
|
|
10
|
+
# run_sim.sh --robot amr [--namespace sim_robot] [--rviz] [--no-gui] [--nav2]
|
|
11
11
|
#
|
|
12
12
|
# Flags:
|
|
13
13
|
# --robot amr|arm Which sim launch to start (default: amr).
|
|
14
14
|
# --namespace <ns> Robot namespace; exported as AGENTICROS_ROBOT_NAMESPACE.
|
|
15
15
|
# --rviz Bring up RViz alongside Gazebo.
|
|
16
16
|
# --no-gui Run gz-sim headless (CI / docker).
|
|
17
|
+
# --nav2 AMR only: also launch Nav2 (map + AMCL + navigation).
|
|
17
18
|
# --ros-distro <distro> Override ROS 2 distro (auto-detect by default).
|
|
18
19
|
# --colcon-ws <path> Override the colcon workspace (default: <repo>/ros2_ws).
|
|
19
20
|
# --help Print this help and exit.
|
|
@@ -34,6 +35,7 @@ ROBOT="amr"
|
|
|
34
35
|
NAMESPACE=""
|
|
35
36
|
USE_RVIZ="false"
|
|
36
37
|
GUI="true"
|
|
38
|
+
USE_NAV2="false"
|
|
37
39
|
ROS_DISTRO_OVERRIDE=""
|
|
38
40
|
COLCON_WS=""
|
|
39
41
|
|
|
@@ -43,10 +45,11 @@ while [[ $# -gt 0 ]]; do
|
|
|
43
45
|
--namespace) NAMESPACE="$2"; shift 2 ;;
|
|
44
46
|
--rviz) USE_RVIZ="true"; shift ;;
|
|
45
47
|
--no-gui) GUI="false"; shift ;;
|
|
48
|
+
--nav2) USE_NAV2="true"; shift ;;
|
|
46
49
|
--ros-distro) ROS_DISTRO_OVERRIDE="$2"; shift 2 ;;
|
|
47
50
|
--colcon-ws) COLCON_WS="$2"; shift 2 ;;
|
|
48
51
|
-h|--help)
|
|
49
|
-
sed -n '2,
|
|
52
|
+
sed -n '2,26p' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
|
50
53
|
exit 0 ;;
|
|
51
54
|
*) echo "Unknown arg: $1" >&2; exit 2 ;;
|
|
52
55
|
esac
|
|
@@ -57,6 +60,11 @@ if [[ "$ROBOT" != "amr" && "$ROBOT" != "arm" ]]; then
|
|
|
57
60
|
exit 2
|
|
58
61
|
fi
|
|
59
62
|
|
|
63
|
+
if [[ "$USE_NAV2" == "true" && "$ROBOT" != "amr" ]]; then
|
|
64
|
+
echo "--nav2 is only supported with --robot amr" >&2
|
|
65
|
+
exit 2
|
|
66
|
+
fi
|
|
67
|
+
|
|
60
68
|
# ---------- paths ----------
|
|
61
69
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
62
70
|
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
@@ -85,7 +93,7 @@ fi
|
|
|
85
93
|
|
|
86
94
|
log "ROS_DISTRO=$ROS_DISTRO"
|
|
87
95
|
log "COLCON_WS=$COLCON_WS"
|
|
88
|
-
log "robot=$ROBOT namespace=${NAMESPACE:-<none>} rviz=$USE_RVIZ gui=$GUI"
|
|
96
|
+
log "robot=$ROBOT namespace=${NAMESPACE:-<none>} rviz=$USE_RVIZ gui=$GUI nav2=$USE_NAV2"
|
|
89
97
|
|
|
90
98
|
# shellcheck disable=SC1090
|
|
91
99
|
source "/opt/ros/$ROS_DISTRO/setup.bash"
|
|
@@ -145,10 +153,23 @@ LAUNCH_ARGS=(
|
|
|
145
153
|
|
|
146
154
|
# ---------- Pick launch file ----------
|
|
147
155
|
case "$ROBOT" in
|
|
148
|
-
amr)
|
|
149
|
-
|
|
156
|
+
amr)
|
|
157
|
+
if [[ "$USE_NAV2" == "true" ]]; then
|
|
158
|
+
LAUNCH_FILE="sim_amr_nav2.launch.py"
|
|
159
|
+
else
|
|
160
|
+
LAUNCH_FILE="sim_amr.launch.py"
|
|
161
|
+
fi
|
|
162
|
+
;;
|
|
163
|
+
arm) LAUNCH_FILE="sim_arm.launch.py" ;;
|
|
150
164
|
esac
|
|
151
165
|
|
|
166
|
+
if [[ "$USE_NAV2" == "true" ]]; then
|
|
167
|
+
if ! ros2 pkg prefix nav2_bringup >/dev/null 2>&1; then
|
|
168
|
+
err "nav2_bringup not found. Install: sudo apt install ros-\$ROS_DISTRO-nav2-bringup"
|
|
169
|
+
exit 1
|
|
170
|
+
fi
|
|
171
|
+
fi
|
|
172
|
+
|
|
152
173
|
if ! ros2 launch --help >/dev/null 2>&1; then
|
|
153
174
|
err "ros2 launch not available — is ROS sourced properly?"
|
|
154
175
|
exit 1
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Smoke-test Nav2 against sim-amr (--nav2).
|
|
4
|
+
*
|
|
5
|
+
* Prerequisites (already running):
|
|
6
|
+
* agenticros up sim-amr --nav2 --headless
|
|
7
|
+
* npx agenticros skills install @agenticros/navigate-to
|
|
8
|
+
*
|
|
9
|
+
* Sequence:
|
|
10
|
+
* 1. list topics / capabilities (sanity)
|
|
11
|
+
* 2. run_mission navigate_to → {x: 2.0, y: 1.0} (clear of person at 2.5,0)
|
|
12
|
+
* 3. report success / failure
|
|
13
|
+
*
|
|
14
|
+
* Usage (from repo root, after building MCP server):
|
|
15
|
+
* node scripts/test-navigate-sim.mjs
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { spawn } from "node:child_process";
|
|
19
|
+
import { fileURLToPath } from "node:url";
|
|
20
|
+
import { dirname, join, resolve } from "node:path";
|
|
21
|
+
|
|
22
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
const repoRoot = resolve(__dirname, "..");
|
|
24
|
+
const serverDist = join(repoRoot, "packages/agenticros-claude-code/dist/index.js");
|
|
25
|
+
|
|
26
|
+
const GOAL = { x: 2.0, y: 1.0, yaw: 0.0 };
|
|
27
|
+
const MISSION_TIMEOUT_MS = 120_000;
|
|
28
|
+
|
|
29
|
+
const child = spawn(process.execPath, [serverDist], {
|
|
30
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
31
|
+
env: {
|
|
32
|
+
...process.env,
|
|
33
|
+
// Sim publishes at graph root; empty namespace.
|
|
34
|
+
AGENTICROS_ROBOT_NAMESPACE: process.env.AGENTICROS_ROBOT_NAMESPACE ?? "",
|
|
35
|
+
AGENTICROS_USE_SIM_TIME: process.env.AGENTICROS_USE_SIM_TIME ?? "1",
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
child.stderr.on("data", (d) => {
|
|
40
|
+
process.stderr.write(`[mcp-stderr] ${d}`);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
let nextId = 1;
|
|
44
|
+
const pending = new Map();
|
|
45
|
+
let buf = "";
|
|
46
|
+
|
|
47
|
+
child.stdout.on("data", (chunk) => {
|
|
48
|
+
buf += chunk.toString();
|
|
49
|
+
let nl;
|
|
50
|
+
while ((nl = buf.indexOf("\n")) !== -1) {
|
|
51
|
+
const line = buf.slice(0, nl).trim();
|
|
52
|
+
buf = buf.slice(nl + 1);
|
|
53
|
+
if (!line) continue;
|
|
54
|
+
let msg;
|
|
55
|
+
try {
|
|
56
|
+
msg = JSON.parse(line);
|
|
57
|
+
} catch {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (msg.id !== undefined && pending.has(msg.id)) {
|
|
61
|
+
const { resolve: res, reject } = pending.get(msg.id);
|
|
62
|
+
pending.delete(msg.id);
|
|
63
|
+
if (msg.error) reject(new Error(msg.error.message));
|
|
64
|
+
else res(msg.result);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
function rpc(method, params = {}, timeoutMs = 30000) {
|
|
70
|
+
const id = nextId++;
|
|
71
|
+
return new Promise((resolveOuter, reject) => {
|
|
72
|
+
const t = setTimeout(() => {
|
|
73
|
+
pending.delete(id);
|
|
74
|
+
reject(new Error(`Timeout: ${method}`));
|
|
75
|
+
}, timeoutMs);
|
|
76
|
+
pending.set(id, {
|
|
77
|
+
resolve: (v) => {
|
|
78
|
+
clearTimeout(t);
|
|
79
|
+
resolveOuter(v);
|
|
80
|
+
},
|
|
81
|
+
reject: (e) => {
|
|
82
|
+
clearTimeout(t);
|
|
83
|
+
reject(e);
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
child.stdin.write(JSON.stringify({ jsonrpc: "2.0", id, method, params }) + "\n");
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function pickText(result) {
|
|
91
|
+
return result?.content?.map((c) => c.text ?? "").join("\n") ?? "";
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async function main() {
|
|
95
|
+
console.log("=== navigate_to (sim-amr + Nav2) smoke ===");
|
|
96
|
+
console.log(`Goal: (${GOAL.x}, ${GOAL.y}, yaw=${GOAL.yaw})`);
|
|
97
|
+
|
|
98
|
+
await rpc("initialize", {
|
|
99
|
+
protocolVersion: "2024-11-05",
|
|
100
|
+
capabilities: { tools: {} },
|
|
101
|
+
clientInfo: { name: "nav-e2e", version: "0.0.1" },
|
|
102
|
+
});
|
|
103
|
+
await rpc("notifications/initialized", {}).catch(() => {});
|
|
104
|
+
|
|
105
|
+
console.log("\n-- ros2_list_topics (expect /odom, /scan, /cmd_vel) --");
|
|
106
|
+
const topics = await rpc("tools/call", { name: "ros2_list_topics", arguments: {} });
|
|
107
|
+
const topicText = pickText(topics);
|
|
108
|
+
console.log(topicText.slice(0, 800));
|
|
109
|
+
for (const t of ["/odom", "/scan", "/cmd_vel"]) {
|
|
110
|
+
if (!topicText.includes(t)) {
|
|
111
|
+
console.warn(`WARN: expected topic ${t} not listed — is sim-amr --nav2 running?`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
console.log("\n-- ros2_list_capabilities (expect navigate_to) --");
|
|
116
|
+
const caps = await rpc("tools/call", {
|
|
117
|
+
name: "ros2_list_capabilities",
|
|
118
|
+
arguments: {},
|
|
119
|
+
}).catch((e) => ({ content: [{ text: String(e) }] }));
|
|
120
|
+
const capText = pickText(caps);
|
|
121
|
+
console.log(capText.slice(0, 800));
|
|
122
|
+
if (!capText.includes("navigate_to")) {
|
|
123
|
+
console.warn(
|
|
124
|
+
"WARN: navigate_to not in capabilities — install @agenticros/navigate-to and restart MCP.",
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
console.log("\n-- run_mission navigate_to --");
|
|
129
|
+
const mission = await rpc(
|
|
130
|
+
"tools/call",
|
|
131
|
+
{
|
|
132
|
+
name: "run_mission",
|
|
133
|
+
arguments: {
|
|
134
|
+
steps: [
|
|
135
|
+
{
|
|
136
|
+
capability: "navigate_to",
|
|
137
|
+
inputs: GOAL,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
MISSION_TIMEOUT_MS,
|
|
143
|
+
);
|
|
144
|
+
const missionText = pickText(mission);
|
|
145
|
+
console.log(missionText);
|
|
146
|
+
|
|
147
|
+
const ok =
|
|
148
|
+
/succeed|completed|status["']?\s*[:=]\s*["']?succeeded/i.test(missionText) &&
|
|
149
|
+
!/fail|error|abort/i.test(missionText.split("\n").slice(-5).join("\n"));
|
|
150
|
+
|
|
151
|
+
child.kill("SIGTERM");
|
|
152
|
+
if (ok) {
|
|
153
|
+
console.log("\n=== PASS ===");
|
|
154
|
+
process.exit(0);
|
|
155
|
+
}
|
|
156
|
+
console.error("\n=== FAIL (inspect mission output above) ===");
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
main().catch((e) => {
|
|
161
|
+
console.error("Failed:", e);
|
|
162
|
+
child.kill("SIGKILL");
|
|
163
|
+
process.exit(1);
|
|
164
|
+
});
|
|
File without changes
|
|
File without changes
|