Work in progress: this documentation is still being written and reviewed. Check details against the source code.

Clients and integrations๏ƒ

Task submission from the CLI and Bluesky, EPICS-to-ROS utilities, and MCP/agent clients. Task-building helpers return JSON for a separate submission step.

Read the guide ยท All subsystems ยท Symbol index

Start here๏ƒ

  • TaskGoalSender.send_goal โ€” Follow direct submission of task JSON to the orchestrator and the blocking wait for its result.

  • vision_target โ€” Inspect how beamline target configuration becomes task JSON before a client submits it.

  • RobotAgent.chat โ€” Follow the agent conversation loop from a model response to MCP or GUI-local tool calls.

  • MTCExecutionDeviceAsync.set โ€” See how a Bluesky request sends an action goal and completes its status through background ROS callbacks.

Modules๏ƒ

Module

Responsibility

Entries

Task submission client

Submit a task JSON file to the orchestrator and report its progress and final ROS action status.

4

MCP robot tools

Provide MCP tools for robot state, camera observations, pose editing, image analysis, and task construction. Most tools return JSON text; ping() returns plain text.

52

Robot agent command line

Run one-shot requests or an interactive robot-agent session.

2

Robot agent client

Use an Anthropic-compatible Hermes client and stdio MCP sessions for a serial tool-use conversation loop. Tool callbacks can dispatch local GUI tools; API requests are synchronous even though chat is async.

9

Blocking Bluesky action device

Submit orchestrator tasks through a blocking Bluesky/Ophyd device.

9

Background Bluesky action device

Submit orchestrator tasks from Bluesky and process completion in a background ROS thread.

14

EPICS value service

Expose an EPICS PV read as a ROS Trigger service. Each request performs caget on demand and returns a string representation rather than a typed measurement; main has no explicit cleanup.

3

EPICS value topic

Monitor one EPICS PV and republish each callback value as ROS Float64 on relative pv_value. Assumes scalar float-convertible data and does not preserve EPICS timestamps/metadata.

3