Plan

Plans every seam and move of the posted .weldplan, verifies them, and optionally writes the dense trajectory.

The body is the raw .weldplan bytes. Options go in the query string.

The OLP server always sends run_weld_trajopt=true, run_connecting_trajopt=true, verify=true and dense=true, plus the free-space backend and the program identity.

  • One plan at a time. A second request waits for the first. It can still be cancelled while it waits. - One process per plan. Each admitted request runs in a fresh Python process that owns the GPU. This costs interpreter, model and CUDA start-up on every plan. - Cancellation. If the client disconnects, the server sends SIGTERM to the planning process group, then SIGKILL after 2 s, and answers 499. A cancelled plan never stores a .rdt. - Atomic publication. The .rdt is written to the store only after the planning process succeeded and the client is still connected.

200 OK with the result document, schema amr-weld-planner-v1.motion-plan-result.v1. On the wire, angles are in degrees and lengths in mm; times are in s. A trimmed example:

The values above are illustrative. The fields that matter most:

See The plan result for every block, and Verdicts for what PASS, REFUSED and FAIL mean.

A plan can answer 200 OK and still have no .rdt. Then dense_error says why, and the server keeps the request and result under <dense store>/refused/ (newest 5) for diagnosis. The reasons are admission's and the encoder's:

segment_index names the failing segment when there is one.

post/api/motion/plan

Request

  • Base URL: http://127.0.0.1:8796
  • URL: http://127.0.0.1:8796/api/motion/plan
  • Auth: none required

Query parameters

k_bestinteger

Candidate paths to keep per seam from the M4 search Default: 5. Range: 1–16.

screen_collisionsboolean

Screen search poses against the collision model, and include collision avoidance in M5 and M6. false means unchecked, not safe. Default: true.

samples_per_seaminteger nullable

Space the M4 lattice by sample count. Null spaces it by time, from the weld's travel speed. Default: null. Range: 2–512.

run_weld_trajoptboolean

Run M5, the continuous weld trajectories. Minutes rather than seconds. Default: false.

run_connecting_trajoptboolean

Run M6, the approach, transits, retract and taught moves Default: true.

free_space_backendstring

The M6 solver. curobo uses cuRobo for comparison and is optional at runtime. legacy is deprecated and kept to reproduce old results. Any other value returns 422. Default: bspline. Range: bspline, curobo, legacy.

verifyboolean

Run the verifier on M5 and M6 output Default: true.

verify_margin_mmnumber

The verifier's clearance margin Default: 2.0. Range: 0–50.

order_seamsboolean

Reorder welds to shorten the transits. Off, the program's own weld order is kept. Default: false.

denseboolean

Build, check and store the .rdt. Needs run_weld_trajopt and run_connecting_trajopt. Default: false.

program_idstring

Stamped into the plan identity. A dense trajectory needs a plain identifier (letters, digits, ., _, :, -). Default: "". Range: up to 120 characters.

manifest_revisioninteger

Stamped into the plan identity Default: 1. Range: ≥ 1.

plan_revisioninteger

Stamped into the plan identity Default: 1. Range: ≥ 1.

Response

OK

connecting_trajectories_errorunknown
program_orderunknown
speed_scaleunknown
denseunknown
dense_errorunknown

Changes

No recorded changes to this operation across all 1 revision of this API.