System model
NOVA models a robot system as a three-level hierarchy: cells, controllers, and motion groups. Motion is executed against motion groups via motion commands that produce joint trajectories.
Cells
A cell represents the robot workspace in NOVA. It’s the top-level container for all robots and equipment in your automation setup. Within a cell, you have one or more controllers that interface with robot hardware, and each controller manages one or more motion groups.
A robot cell contains one or more robot controllers as well as connected periphery.
Controllers
A controller is the driver software that communicates with robot controller hardware. It manages networking, safety protocols, and motion control for connected motion groups. It handles manufacturer-specific protocols and provides a unification and abstraction of the controller interfaces.
To simplify things, you can think of the controller layer as the “robot controller” in traditional robotics terms.
Your first interaction with the controller layer on Wandelbots NOVA is when you add a new controller
to a Wandelbots NOVA cell. This is also where you’ll name the controller, e.g., ur5e-bob.
If you connect a physical controller, you’ll also provide connection details.
More on how to connect physical controllers to Wandelbots NOVA here.
Relationship to motion groups
One controller can manage multiple motion groups in a 1:N relationship.
Example configurations are:
- Single-arm robot: 1 controller → 1 motion group, 1 robotic arm
- Dual-arm robot: 1 controller → 2 motion groups, 2 robotic arms
- Robot + external axis: 1 controller → 2 motion groups, 1 robotic arm + 1 external axis
Motion operations target motion groups, not controllers. You plan trajectories for, read state from, and execute movements on motion groups.
Multi-motion group coordination like synchronized movements is not supported in planning and execution.
Motion groups
A motion group is what you commonly refer to as a robot. Motion groups can be a 6-axis robot arm, dual-arm collaborative robots (2 motion groups, 1 controller), or combinations of robot arms with external axes like rotary tables or linear tracks.
Wandelbots NOVA supports two motion group types: robotic arms and external axes. The API can interact with virtual and physical motion groups.
Each motion group has a numeric ID assigned by the controller, usually starting at 0.
Referring to motion groups
Motion groups are referred to using the format: motion_group_id@controller_name, e.g., 0@ur5e-bob refers to motion group ID 0 on the controller ur5e-bob.
This identifier appears throughout the API, e.g., in GET /api/v2/cells/{cell}/controllers/ur5e-bob/motion-groups/0/state.
Motion commands
A motion command is a high-level instruction that defines a specific type of movement for a motion group. It contains the path, optional blending, and limits override.
Motion commands are planned and then executed against a motion group. The result of planning is a joint trajectory the controller can run at its cycle time.
Joint trajectory
jointTrajectory in the Wandelbots NOVA API is a time-parameterized sequence of joint positions for a motion group, sampled at the controller’s cycle time. It defines how each joint of the robot should move over time to execute a planned motion.
The Wandelbots NOVA API samples joint positions, times, and locations.
Location on a path
The location on a path is a scalar value that indicates progress along a trajectory. It ranges from 0 to n, where n is the number of motion commands used in planning. Integer values correspond to the start of each motion command, while fractional values indicate positions within the segments.
Execution states
Playback speed
Playback speed is a scaling factor applied to the velocity profile of a trajectory during execution. It allows adjusting the speed of the robot’s motion without altering the shape of the trajectory.
Standstill
Standstill is a state emitted by the execution websocket of the Wandelbots NOVA API when the robot has come to a complete stop. The controller reports no further motion. Either the motion has been completed or paused.