Skip to content

Commit 1019a3b

Browse files
committed
refactor(demos/manymove_industrial): drop redundant manifest entries
The gateway runs in hybrid discovery mode, so pure ROS-side components (xarm7-arm, ufactory-driver, move-group, object-manager, action-server, gateway, plus their apps) are picked up at runtime from topic/node introspection - no manifest needed. Keep only what the runtime cannot infer: - PLC-side components (no ROS topics: openplc, photoeyes, conveyor-motor) - script-bound logical components (conveyor-line, manymove-planning) - apps the smoke test asserts on (bt-client-xarm7, fault-manager-app) - 'line' / 'planning' / 'diagnostics' areas for namespace routing Drop the manipulation area, the entire functions: section, and the inject-soft-fault script (no smoke coverage, narrative overlap with inject-collision). Manifest goes from 217 to 98 lines.
1 parent 67eb70a commit 1019a3b

4 files changed

Lines changed: 7 additions & 160 deletions

File tree

demos/manymove_industrial/README.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@ at the well-known gateway scripts dir and runnable from the web UI or via
6969
The next `MoveManipulatorAction::onStart` tick observes it, emits
7070
`MANYMOVE_PLANNER_COLLISION_DETECTED` (ERROR) and returns FAILURE.
7171
This is a real BT fault, not a synthesised report.
72-
- `inject-soft-fault` - drops a thin collision wall in the planning scene
73-
near the pick zone; planning fails ~30% of attempts and the BT emits
74-
`MANYMOVE_PLANNER_RETRY_ATTEMPT` (WARN). The reporter's LocalFilter
75-
(threshold=3, window=10s) throttles those locally and only forwards once
76-
the threshold is crossed - this is the soft-fault narrative.
7772
- `restore-normal` - clears `collision_detected`, `stop_execution` and
7873
triggers `reset` + `start` on the blackboard so the BT picks up cleanly.
7974

demos/manymove_industrial/config/manymove_industrial_manifest.yaml

Lines changed: 7 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@ metadata:
44
description: "manymove BT manipulator pipeline (xArm7 fake hardware) with medkit fault reporting"
55
version: "0.1.0"
66

7+
# Hybrid discovery: pure ROS-side components (xarm7-arm, ufactory-driver,
8+
# move-group, object-manager, action-server, gateway, etc.) are picked up
9+
# at runtime from topic/node introspection. The manifest declares only
10+
# what the runtime can't infer:
11+
# - PLC-side entities (no ROS topics)
12+
# - script-bound logical components (conveyor-line, manymove-planning)
13+
# - apps the smoke test asserts on (bt-client-xarm7, fault-manager-app)
714
config:
815
unmanifested_nodes: "warn"
916
inherit_runtime_resources: true
1017

1118
areas:
12-
- id: manipulation
13-
name: "Manipulation"
14-
description: "xArm7 cobot under fake_components hardware"
15-
namespace: /
1619
- id: planning
1720
name: "Planning"
1821
description: "BehaviorTree.CPP orchestration and MoveIt motion planning"
@@ -29,16 +32,6 @@ areas:
2932
namespace: /plc
3033

3134
components:
32-
- id: xarm7-arm
33-
name: "xArm 7 manipulator"
34-
type: "manipulator"
35-
description: "7-DoF cobot, fake_components hardware"
36-
area: manipulation
37-
- id: ufactory-driver
38-
name: "UFactory ROS 2 driver"
39-
type: "driver"
40-
description: "xarm_ros2 driver layer (fake mode)"
41-
area: manipulation
4235
- id: manymove-bt
4336
name: "manymove BT client"
4437
type: "controller"
@@ -49,26 +42,6 @@ components:
4942
type: "controller"
5043
description: "Logical grouping for planning-side container scripts (collision inject, restore, self-test)"
5144
area: planning
52-
- id: move-group
53-
name: "MoveIt move_group"
54-
type: "planner"
55-
description: "OMPL motion planner"
56-
area: planning
57-
- id: object-manager
58-
name: "manymove object_manager"
59-
type: "service"
60-
description: "Planning scene collision objects"
61-
area: planning
62-
- id: action-server
63-
name: "manymove planner action_server"
64-
type: "service"
65-
description: "MoveManipulator / PlanManipulator action servers"
66-
area: planning
67-
- id: gateway
68-
name: "ros2_medkit gateway"
69-
type: "diagnostics"
70-
description: "HTTP REST API for fault inspection"
71-
area: diagnostics
7245
- id: fault-manager
7346
name: "ros2_medkit fault_manager"
7447
type: "diagnostics"
@@ -113,105 +86,10 @@ apps:
11386
ros_binding:
11487
namespace: /
11588
node_name: bt_client_xarm7
116-
- id: hmi-service-node
117-
name: "HMI service node"
118-
category: "controller"
119-
is_located_on: manymove-bt
120-
ros_binding:
121-
namespace: /
122-
node_name: hmi_service_node
123-
- id: move-group-app
124-
name: "move_group"
125-
category: "planner"
126-
is_located_on: move-group
127-
ros_binding:
128-
namespace: /
129-
node_name: move_group
130-
- id: action-server-app
131-
name: "action_server_node"
132-
category: "service"
133-
is_located_on: action-server
134-
ros_binding:
135-
namespace: /
136-
node_name: action_server_node
137-
- id: object-manager-app
138-
name: "object_manager_node"
139-
category: "service"
140-
is_located_on: object-manager
141-
ros_binding:
142-
namespace: /
143-
node_name: object_manager_node
144-
- id: ufactory-driver-app
145-
name: "ufactory_driver"
146-
category: "driver"
147-
is_located_on: ufactory-driver
148-
ros_binding:
149-
namespace: /
150-
node_name: ufactory_driver
15189
- id: fault-manager-app
15290
name: "fault_manager"
15391
category: "diagnostics"
15492
is_located_on: fault-manager
15593
ros_binding:
15694
namespace: /
15795
node_name: fault_manager
158-
- id: gateway-app
159-
name: "ros2_medkit_gateway"
160-
category: "diagnostics"
161-
is_located_on: gateway
162-
ros_binding:
163-
namespace: /
164-
node_name: ros2_medkit_gateway
165-
- id: openplc-runtime
166-
name: "OpenPLC runtime"
167-
category: "controller"
168-
is_located_on: openplc
169-
ros_binding:
170-
namespace: /plc
171-
node_name: openplc_runtime
172-
- id: opcua-bridge-app
173-
name: "opcua_bridge"
174-
category: "bridge"
175-
is_located_on: opcua-bridge
176-
ros_binding:
177-
namespace: /plc
178-
node_name: sensor_io
179-
180-
functions:
181-
- id: pick-and-place
182-
name: "Pick and place"
183-
category: "manipulation"
184-
description: "BT-driven manipulation sequence on fake xArm7"
185-
hosted_by:
186-
- bt-client-xarm7
187-
- move-group-app
188-
- action-server-app
189-
- object-manager-app
190-
- id: hmi-control
191-
name: "Operator control"
192-
category: "interaction"
193-
description: "Qt HMI panel for blackboard mutation and BT reset"
194-
hosted_by:
195-
- hmi-service-node
196-
- bt-client-xarm7
197-
- id: fault-management
198-
name: "Fault management"
199-
category: "diagnostics"
200-
description: "Capture, persist, and surface BT runtime failures emitted by manymove_cpp_trees"
201-
hosted_by:
202-
- fault-manager-app
203-
- gateway-app
204-
- id: line-control
205-
name: "Line control"
206-
category: "controller"
207-
description: "PLC-driven conveyor sequencing with safety interlocks"
208-
hosted_by:
209-
- openplc-runtime
210-
- id: fault-aggregation
211-
name: "Cross-source fault aggregation"
212-
category: "diagnostics"
213-
description: "Bridge PLC AlarmConditionType events into the same medkit FaultManager that aggregates ROS-side faults"
214-
hosted_by:
215-
- opcua-bridge-app
216-
- fault-manager-app
217-
- gateway-app

demos/manymove_industrial/container_scripts/manymove-planning/inject-soft-fault/metadata.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

demos/manymove_industrial/container_scripts/manymove-planning/inject-soft-fault/script.bash

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)