Teach waypoints and moves
On this page
A taught waypoint is a move node in the program: a destination you recorded, plus how to get there. You record it by jogging the robot, or the preview robot, to a pose and pressing record. The weld planner then plans every move between your waypoints and verifies it against the cell, just as it does for welds.
This guide uses the offline programming (OLP) app on a desktop. The Steam Deck pendant records waypoints the same way, with the same rules; see Program from the Steam Deck pendant.
Warning
Energised motion. This moves the robot. RosieOS has no software E-stop: keep the hardware E-stop within reach and clear the cell before you arm. Jog, moves and Home are checked against joint limits only, not against collisions. See the safety model.
Recording on a real cell means jogging it into place. Jog is not verified against collisions: watch the robot, jog slowly near the part and fixtures, and let go of the control to stop. Only the planned program that results is verified.
Move types#
motion | Common name | What the planner makes |
|---|---|---|
joint | MoveJ | All joints move together, starting and ending at rest, to the recorded joint values |
linear | MoveL | The tool point moves in a straight line to the recorded pose, solved by inverse kinematics |
circular | MoveC | The tool point moves on an arc through a via pose to the recorded pose |
Linear and circular moves cruise at a constant TCP speed between acceleration and deceleration ramps by default. Every planned move, of any type, passes the same continuous collision and limit verifier as the welds. See What the verifier checks.
Where the pose comes from#
The Simulate & deploy panel decides which robot you record from:
- With Deploy showing a connected cell, you record the measured pose of the real robot. The toolbar says Teach › Record robot waypoint. The capture's
sourceismachine. - With Simulate showing, you record the preview robot in the viewer. The toolbar says Teach › Record preview waypoint. The capture's
sourceispreview.
To connect a cell and jog it, see Connect to a cell and run a program. The Jog panel (toolbar Jog) has joint and Cartesian jog for the selected, armed cell.
Record a waypoint#
- Jog the robot to the pose you want.
- Let go of the jog control and wait for the robot to be still.
- Press RECORD WAYPOINT in the spreadsheet toolbar, or Teach › Record robot waypoint.
The status line says Measured waypoint recorded or Preview waypoint recorded, and the new node is selected in the spreadsheet.
A measured recording is refused unless the pose can be trusted:
| Refusal | Why |
|---|---|
Release jog and wait for fresh stationary feedback before recording | A jog is held, a request is in flight, or a program is playing; or the status is older than 2 s |
Record needs verified position and stationary feedback for every described joint | An axis has no valid Home, coordinate or calibration, its position is not trusted, or it is moving faster than 0.001 rad/s |
Release jog and wait for fresh stationary position samples before recording | The drives report no velocity, and the positions have not stayed within 0.00002 rad for 100 ms |
Adopt the matching robot description before recording a waypoint | The machine or the program uses a different robot description or model. Accept the current settings in Workspace first. |
Pull machine calibration before recording | The machine binds a description, but its calibration has not been pulled. Use Cells › Pull cell settings. |
Machine identity changed during capture; record again | The cell or its calibration changed while recording |
Stop preview playback before recording | The preview is playing |
A new waypoint is labelled P1, P2 and so on, and starts as a joint move at 100 % joint speed and acceleration, with a TCP speed limit of 25 mm/s. It goes after the selected node. If the selection is inside a weld block, it goes after that block's retract. If the selection is a transit between two welds, OLP splits the transit into a retract, your waypoint and a new approach.
Reteach and via#
- RETEACH replaces the selected waypoint's destination and its capture record with a fresh one from the current pose.
- RECORD VIA records the current pose as the selected waypoint's via pose and makes it a circular move. The via must be recorded against the same cell calibration as its destination. If it is not, reteach the destination first.
Edit a move#
Select the node and press EDIT:
| Group | Field | Unit | Stored as |
|---|---|---|---|
| Motion profile | Move type | motion: joint, linear or circular | |
| TCP speed limit | mm/s | speed_mm_s | |
| Constant TCP speed (linear and circular) | constant_tcp_speed, default on | ||
| Joint limits | Joint speed limit | % | speed_scale, 1–100 % |
| Joint acceleration limit | % | acceleration_scale, 1–100 %. If unset, it follows the speed limit. | |
| Destination | x, y, z | mm | target.xyz_m, stored in m |
| roll, pitch, yaw | ° | target.rpy_rad, stored in rad | |
| J1… | ° | target.joint_values_rad, stored in rad. Read-only for linear and circular moves, where they seed the inverse kinematics. | |
| Circular via pose | as Destination | via | |
| Original observation | Source, Observed | capture, read-only |
Editing x, y, z or roll, pitch, yaw makes the destination a world TCP pose that the planner solves again (target_space: "cartesian"). Editing a joint angle makes it a joint destination (target_space: "joint"). Editing never changes the original observation; only a reteach replaces it.
After you plan, the editor shows the planned JOINT MOTION PROFILE (joint velocity and acceleration over time) and, for linear and circular moves, the TCP MOTION PROFILE (TCP speed and acceleration).
The field reference is in the program format.
Add events and Home#
| Button | Adds | Default |
|---|---|---|
| + DWELL | A dwell node after the selection | 0.5 s. The editor opens. |
| + IO | An io node (a digital output) after the selection | On. The editor opens to set the channel. |
| + HOME | A home node at the end of the program |
The motion nodes must form one line, in the order Home, approach, weld, retract, Home, with taught moves before, after or between complete weld blocks. See The single line. OLP refuses an edit that breaks it and says why in the status line.
Note
The weld planner refuses a program with taught moves that also contains an IO node: "Digital-output nodes need an execution I/O schedule; cannot silently omit them". Process outputs are not supported in this release. See Process I/O and sensing.
Plan and simulate#
A program with taught moves is planned by the weld planner, even without a part. Press Plan (P), then replay it under Simulate, as in Program a weld from CAD.
The plan starts from the cell's reset pose and visits your nodes in order. The planner never reorders welds around taught moves. PLAN SPEED scales the whole plan afterwards without changing the path.
On a cell, Go to plan start in the Deploy panel moves the robot to the plan's first pose with a joint move, then says Move completed. Load to robot, then Play. That move is not planned or verified by the weld planner. It is checked against joint limits only. Make sure the way is clear before you press it.