Concepts and conventions
EROBS turns task scripts into coordinated robot, tool, and camera operations. This page explains the terms and conventions used by the platform. Linked framework terms open the official documentation for more detail.
The software building blocks
Term |
Role in EROBS |
|---|---|
JSON specifying the starting tool and an ordered sequence of operations |
|
Accepts scripts on |
|
Consecutive compatible steps combined into one MTC task for planning and execution |
|
A ROS participant, such as the orchestrator or camera driver |
|
Topics stream state and images; services handle requests such as capture; actions run tasks with feedback and a result |
|
Plans motion using the selected arm/tool model and collision scene |
|
One part of a MoveIt Task Constructor plan, such as a relative move or gripper motion |
|
Carries out a planned trajectory—a timed sequence of robot states—or a device command |
|
Coordinate transforms connecting the robot base, flange, tool, and camera |
|
Finds joint angles for a target pose. The IK frame is the frame being positioned, such as the flange or tool tip. |
A JSON task type, such as moveto, selects an EROBS operation. The ROS action type MTCExecution carries the complete script to the orchestrator. See the action contracts for its goal, feedback, and result fields.
Some tasks become child action goals: requests the orchestrator sends to another action server. Consecutive compatible tasks may instead be combined into one MTC task inside the orchestrator.
Geometry files describe different things
EROBS uses URDF (Unified Robot Description Format) for arm and tool geometry, Xacro templates to assemble model variants, and SRDF (Semantic Robot Description Format) for planning groups, named states, and collision exclusions. Controller and planning YAML files configure limits, planners, and execution.
The official URDF/SRDF guide and Xacro tutorial explain the formats. See EROBS model packages for the files used here and the tool lifecycle for how geometry, tip frames, payloads, and controllers change with a tool.
Units you must keep distinct
Value |
Convention |
|---|---|
Named joint-pose arrays in task JSON and pose YAML |
Degrees; six values in configured arm-joint order |
|
XYZ in metres; optional roll/pitch/yaw in degrees |
Relative movement distance |
Metres |
Revolute arm-joint positions on ROS |
Radians; prismatic gripper-joint positions on the same topic use metres |
Flattened ROS vision scan joint poses |
Radians |
Result orientation arrays |
Quaternion |
Sample edge inset |
Millimetres where the field is named |
For example, a 10 mm translation is 0.01 metres. A 90 in a pose YAML joint array is 90 degrees; 90 as a revolute arm-joint position in a ROS joint-state message means 90 radians.
RPY means roll, pitch, and yaw. EROBS task fields use the units above; the official rotation guide covers quaternions and RPY conversion.
Frames are part of the request
A Cartesian coordinate is incomplete without its reference frame. base_link describes a position relative to the robot base. flange is the robot’s flange frame. A tool tip frame describes the working end of a particular tool. The camera’s optical frame describes the measurement before transformation into the robot frame.
MoveTo relative directions apply in the flange frame. Vision marker offsets and final base-frame offsets have different meanings. flange and tool0 must not be treated as interchangeable orientation conventions. See vision and frames before interpreting a detected pose as a motion target.
Configuration is not calibration
The beamline YAML selects packages, resources, and per-tool settings. Calibration establishes physical relationships: robot geometry, camera mounting, tool tip offsets, and taught poses. Copying the CMS YAML to a new beamline does not calibrate that installation.