feat(robot-mcp): add robot inspection MCP server and CouchDB asset profiles#370
Open
AnandMayank wants to merge 2 commits into
Open
feat(robot-mcp): add robot inspection MCP server and CouchDB asset profiles#370AnandMayank wants to merge 2 commits into
AnandMayank wants to merge 2 commits into
Conversation
Collaborator
|
@AnandMayank We will review in two days and give you feedback. |
7e4c063 to
fb739f3
Compare
Author
|
@DhavalRepo18 I have made some of the changes now it should be good for review ! |
…ofiles
CouchDB profile layer (src/couchdb/):
- New profile:{asset_id} documents in the iot DB for 4 assets
(Chiller 6, Metro Pump 1, Hydraulic Pump 1, Motor 01)
- 9 robot-specific fields per profile; docs omit asset_id so existing
IoT Mango queries are completely unaffected
- seed_robot_profiles.py with --dry-run / --verify flags
- schema_robot_fields.json field reference and gauge_value constraint doc
Robot MCP server (src/servers/robot/):
- 8 tools: navigate_to, safety_gate_check, open_panel, read_gauge,
check_human_presence, commit_reading, check_wo_similarity, detect_anomaly
- PhysicalStateSimulator: seeded (seed=42), deterministic, state in memory
- MultiReadingVerifier: score = 0.35*C + 0.35*A + 0.30*H, N>=3 hard gate,
sensor-freeze gate, sensor-physical and historical outlier annotations
- historical_outlier uses 3-level severity spectrum (60% mild / 25% medium /
15% severe) with gap-based formulas guaranteeing H range by construction
- gauge_value never returned to agent; enforced by double-guard confirmed
by test_gauge_value_protection.py (10 checks)
- robot-mcp-server entry point added to pyproject.toml
- "robot" key added to DEFAULT_SERVER_PATHS in src/agent/runner.py
Tests: 66 robot tests pass; pre-existing IoT tests unaffected.
Signed-off-by: AnandMayank <anandmayank698@gmail.com>
Signed-off-by: AnandMayank <anandmayank698@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a robot inspection extension to AssetOpsBench, enabling agents to
physically inspect industrial assets through a deterministic Layer 1 Robot MCP
server backed by CouchDB robot profiles.
CouchDB profile layer (
src/couchdb/):profile:{asset_id}documents in theiotDB for each known asset withrobot-specific inspection metadata
schema_robot_fields.jsonseed_robot_profiles.pyprovides idempotent profile seeding(
--dry-run/--verify)asset_id— existing IoT Mango queries remainunaffected
Robot MCP server (
src/servers/robot/):navigate_to,list_waypoints,get_pose,capture_image,open_panel,get_battery,power_on,power_off,stand,sit,dock,undockpower_stateandstance_staterobot state trackingsimulator.pyandverifier.pyprototypeIntegration:
src/agent/runner.pypyproject.tomlTests:
CouchDB profile integration, and robot state transitions.