Description
The sensor diagnostics demo scripts were using incorrect app IDs with underscores (_) instead of dashes (-), causing API calls to fail with "entity not found" errors.
Root Cause
Mismatch between ROS 2 node naming convention and Gateway API entity ID format:
- ROS 2 node names use underscores:
/sensors/lidar_sim, /sensors/imu_sim
- Gateway API app IDs use dashes:
lidar-sim, imu-sim, gps-sim, camera-sim, anomaly-detector, diagnostic-bridge
All demo scripts were incorrectly using underscore-based IDs when calling the API.
Steps to Reproduce
-
Start sensor diagnostics demo:
cd demos/sensor_diagnostics
docker compose up -d
-
Run check-demo.sh or any inject script:
-
Observe errors:
=== 8. Listing LiDAR Configurations ===
jq: error (at <stdin>:6): Cannot iterate over null (null)
-
Check API response:
curl http://localhost:8080/api/v1/apps/lidar_sim/configurations
# Returns: {"error_code": "entity-not-found", "message": "Entity not found"}
Expected vs Actual Behavior
Expected:
- Scripts should use correct app IDs with dashes
- API calls should succeed and return data
- No jq parsing errors
Actual:
- Scripts used underscore-based IDs
- API returned "entity not found" errors
- jq failed to parse null responses
Impact
check-demo.sh - Failed at step 8 (configurations) with jq error
inject-*.sh - All fault injection scripts failed silently
restore-normal.sh - Failed to reset configurations and clear faults
- Demo appeared non-functional to users
Affected Files
Scripts with incorrect IDs:
check-demo.sh - API demonstration
inject-drift.sh - Fault injection
inject-noise.sh - Fault injection
inject-nan.sh - Fault injection
inject-failure.sh - Fault injection
restore-normal.sh - Parameter reset and fault clearing
README.md - API usage examples
Incorrect app IDs found:
- ❌
lidar_sim → ✅ lidar-sim
- ❌
imu_sim → ✅ imu-sim
- ❌
gps_sim → ✅ gps-sim
- ❌
camera_sim → ✅ camera-sim
- ❌
anomaly_detector → ✅ anomaly-detector
- ❌
diagnostic_bridge → ✅ diagnostic-bridge
Environment
-- OS: ubuntu 24.04 (Docker)
- Demo: sensor_diagnostics (main branch)
- ROS 2 Distro: Jazzy
Description
The sensor diagnostics demo scripts were using incorrect app IDs with underscores (
_) instead of dashes (-), causing API calls to fail with "entity not found" errors.Root Cause
Mismatch between ROS 2 node naming convention and Gateway API entity ID format:
/sensors/lidar_sim,/sensors/imu_simlidar-sim,imu-sim,gps-sim,camera-sim,anomaly-detector,diagnostic-bridgeAll demo scripts were incorrectly using underscore-based IDs when calling the API.
Steps to Reproduce
Start sensor diagnostics demo:
cd demos/sensor_diagnostics docker compose up -dRun check-demo.sh or any inject script:
Observe errors:
Check API response:
curl http://localhost:8080/api/v1/apps/lidar_sim/configurations # Returns: {"error_code": "entity-not-found", "message": "Entity not found"}Expected vs Actual Behavior
Expected:
Actual:
Impact
check-demo.sh- Failed at step 8 (configurations) with jq errorinject-*.sh- All fault injection scripts failed silentlyrestore-normal.sh- Failed to reset configurations and clear faultsAffected Files
Scripts with incorrect IDs:
check-demo.sh- API demonstrationinject-drift.sh- Fault injectioninject-noise.sh- Fault injectioninject-nan.sh- Fault injectioninject-failure.sh- Fault injectionrestore-normal.sh- Parameter reset and fault clearingREADME.md- API usage examplesIncorrect app IDs found:
lidar_sim→ ✅lidar-simimu_sim→ ✅imu-simgps_sim→ ✅gps-simcamera_sim→ ✅camera-simanomaly_detector→ ✅anomaly-detectordiagnostic_bridge→ ✅diagnostic-bridgeEnvironment
-- OS: ubuntu 24.04 (Docker)