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

ROS action contracts

EROBS clients submit task scripts through MTCExecution. This reference lists its fields and those of the task action servers. A ROS action carries a goal, progress feedback, and a terminal result.

Fields and comments come from the .action definitions. Use the task reference for JSON inputs and the execution guide for runtime behavior. Tutorial actions use separate interfaces.

EndEffectorAction

Source: src/beambot_interfaces/action/EndEffectorAction.action.

Default endpoint: /beambot_endeffector.

Goal

Type

Field

Contract notes

string

gripper_group

MoveIt group; empty skips the operation.

string

end_effector_action

Named SRDF state for the group.

string

robot_model_revision

Orchestrator-managed; empty disables cross-goal model reuse

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.

MTCExecution

Source: src/beambot_interfaces/action/MTCExecution.action.

Default endpoint: /beambot_execution.

Goal

Type

Field

Contract notes

string

full_json

Task script JSON.

bool

dry_run

Plan-only preview; moveto/end_effector only.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

int32

completed_steps

—

int32

total_steps

—

float64[]

detected_position

XYZ (m).

float64[]

detected_orientation

Quaternion [x,y,z,w].

Feedback

Type

Field

Contract notes

int32

current_step

—

string

current_action

—

float32

progress_percentage

—

string

status_message

—

string

current_gripper

—

MoveToAction

Source: src/beambot_interfaces/action/MoveToAction.action.

Default endpoint: /beambot_moveto.

Goal

Type

Field

Contract notes

string

target

Pose key or SRDF state.

string

planning_type

“”/auto/joint: auto; cartesian; pilz: LIN; pilz_ptp: PTP.

string

direction

IK frame: forward/backward/left/right/up/down; x/-x/y/-y/z/-z.

float64

distance

Relative distance (m); finite and > 0.

float64[]

cartesian_target

XYZ (m), optionally followed by roll/pitch/yaw (deg).

string

frame_id

Cartesian frame; empty = base_link.

string

poses_json

Pose name: six joint angles (deg).

string

constraints_json

Empty = no constraints.

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.

PickSampleAction

Source: src/beambot_interfaces/action/PickSampleAction.action.

Default endpoint: /beambot_pick_sample.

Goal

Type

Field

Contract notes

bool

use_vision

False uses named joint poses.

string

detection_type

marker (default) or sample_roi.

int32

tag_id

ArUco ID.

int32

sample_index

Reserved; unused.

float64

z_offset

base_link Z offset (m); 0 = gripper default.

string

scan_pose

Scan/retreat pose key.

float64

marker_offset_x

—

float64

marker_offset_y

—

float64

marker_offset_z

—

string

offset_direction

Flange-frame direction.

float64

offset_distance

Offset (m); > 0 when direction is set.

string

ik_frame

Empty = auto-detect.

string

strategy

sample_roi; empty = farthest_edge.

float64

edge_inset_mm

sample_roi; 0 = 6.5 mm.

string

approach_pose

Approach/retreat pose key.

string

target_pose

Grasp pose key.

string

gripper_group

MoveIt gripper group.

string

gripper_states_json

Maps grasp/release to SRDF states.

string

poses_json

Pose name: six joint angles (deg).

string

constraints_json

Empty = no constraints.

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

bool

vacuum_ok

True if detected or unchecked; only valid on success.

float64[]

detected_position

XYZ (m).

float64[]

detected_orientation

Quaternion [x,y,z,w].

Feedback

Type

Field

Contract notes

string

current_stage

Not currently published.

PipettorAction

Source: src/beambot_interfaces/action/PipettorAction.action.

Default endpoint: /beambot_pipettor.

Goal

Type

Field

Contract notes

string

operation

SUCK, EXPEL, EJECT_TIP, SET_LED.

float64

volume_pct

Currently ignored by the pipettor driver.

std_msgs/ColorRGBA

led_color

SET_LED color.

string

poses_json

Unused.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.

PlaceSampleAction

Source: src/beambot_interfaces/action/PlaceSampleAction.action.

Default endpoint: /beambot_place_sample.

Goal

Type

Field

Contract notes

bool

use_vision

False uses named joint poses.

string

detection_type

Always uses marker detection.

int32

tag_id

ArUco ID.

float64

z_offset

base_link Z offset (m); 0 = gripper default.

string

scan_pose

Scan/retreat pose key.

float64

marker_offset_x

—

float64

marker_offset_y

—

float64

marker_offset_z

—

string

offset_direction

Flange-frame direction.

float64

offset_distance

Offset (m); > 0 when direction is set.

string

ik_frame

Empty = auto-detect.

string

approach_pose

Approach/retreat pose key.

string

target_pose

Place pose key.

string

gripper_group

MoveIt gripper group.

string

gripper_states_json

Maps grasp/release to SRDF states.

string

poses_json

Pose name: six joint angles (deg).

string

constraints_json

Empty = no constraints.

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

float64[]

detected_position

XYZ (m).

float64[]

detected_orientation

Quaternion [x,y,z,w].

Feedback

Type

Field

Contract notes

string

current_stage

Not currently published.

ToolExchangeAction

Source: src/beambot_interfaces/action/ToolExchangeAction.action.

Default endpoint: /beambot_toolexchange.

Goal

Type

Field

Contract notes

string

operation

load or dock.

string

gripper

Configured gripper to load/dock.

string

current_attached_gripper

Current gripper; none if detached.

int32

dock_number

Physical dock number; range not validated.

string

approach_pose

Approach joint-pose key.

string

poses_json

Pose name: six joint angles (deg).

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.

VisionScanAction

Source: src/beambot_interfaces/action/VisionScanAction.action.

Default endpoint: /beambot_vision_scan.

Goal

Type

Field

Contract notes

float64[]

scan_positions_flat

Flattened six-joint poses (rad).

int32

num_scan_positions

Must match flattened pose count.

int32

scans_per_position

Captures per pose; <= 0 uses 3.

float64

timeout

Per-capture timeout (s); <= 0 uses 10.

string

poses_json

Unused by scan server.

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

int32

tags_detected

Unique tags cached.

Feedback

Type

Field

Contract notes

string

status

Not currently published.

VisionTaskAction

Source: src/beambot_interfaces/action/VisionTaskAction.action.

Default endpoint: /beambot_vision_task.

Goal

Type

Field

Contract notes

string

detector

marker (default), sample_roi, spincoater_pocket, spincoater_sample.

string

goal_computer

approach_pose (default) or j6_snap.

int32

tag_id

ArUco ID or sample_roi anchor.

int32

sample_index

Reserved; unused.

float64

timeout

marker/sample_roi timeout (s).

string

strategy

sample_roi; empty = farthest_edge.

float64

edge_inset_mm

sample_roi inset; 0 = no inset.

float64[]

scan_positions_flat

marker scans: flattened six-joint poses (rad).

int32

num_scan_positions

0 = single-position detection.

float64

z_offset

base_link Z offset (m); 0 = gripper default.

float64

marker_offset_x

—

float64

marker_offset_y

—

float64

marker_offset_z

—

string

offset_direction

Flange-frame direction.

float64

offset_distance

Offset (m); > 0 when direction is set.

string

target_pose

Joint-pose key; joint 6 is corrected.

float64

k_offset

Calibration offset (deg).

float64

forward_distance

Forward move after positioning (m); 0 = none.

string

scan_pose

Pre-detection pose key; empty skips the move.

string

terminal_action

grasp/release or SRDF state; empty = none.

string

gripper_group

MoveIt gripper group.

string

gripper_states_json

Maps grasp/release to SRDF states.

bool

pre_open

Open gripper before the scan_pose move.

string

retreat_pose

approach_pose retreat key; empty = none.

string

ik_frame

approach_pose IK frame; empty = auto-detect.

string

poses_json

Pose name: six joint angles (deg).

string

constraints_json

Empty = no constraints.

bool

detect_only

Skips approach_pose execution, not scans; ignored by j6_snap.

string

robot_model_revision

Model cache key; empty disables cross-goal reuse.

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

bool

vacuum_ok

True if detected or unchecked; only valid on success.

float64[]

detected_position

XYZ (m).

float64[]

detected_orientation

Quaternion [x,y,z,w].

string

motion_kind

NONE or CARTESIAN_POSE (also reported for joint moves).

Feedback

Type

Field

Contract notes

—

—

No fields declared.

MoveToNamedState

Source: src/demos/hello_orchestrator_py_interfaces/action/MoveToNamedState.action.

Tutorial interface: inspect the demo server/client for its endpoint and behavior.

Goal

Type

Field

Contract notes

string

target_pose

—

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.

OrchestratorTask

Source: src/demos/hello_orchestrator_py_interfaces/action/OrchestratorTask.action.

Tutorial interface: inspect the demo server/client for its endpoint and behavior.

Goal

Type

Field

Contract notes

string

task_json

—

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

int32

completed_steps

—

Feedback

Type

Field

Contract notes

int32

current_step

—

int32

total_steps

—

string

current_action

—

PrintMessage

Source: src/demos/hello_orchestrator_py_interfaces/action/PrintMessage.action.

Tutorial interface: inspect the demo server/client for its endpoint and behavior.

Goal

Type

Field

Contract notes

string

message

—

Result

Type

Field

Contract notes

bool

success

—

string

error_message

—

Feedback

Type

Field

Contract notes

—

—

No fields declared.