Skip to content
⚙ Development Guide > SDK > Concept Guide > Motion Planning Principles

CIRC Circular Trajectory Planning#

CIRC is the concept name used to correspond to the P6 navigation; the actual P7 SDK planning name and method are CIRCLE and move_end_pose_circle(). There is no P7 API named CIRC. CIRCLE constructs a Cartesian arc from a start pose, path reference, and target. It is suitable for tasks in which the tool must move along an arc, not for expressing an arbitrary collision-avoidance path.

Interface#

client.move_end_pose_circle(
    start: CartesianPose,
    path: CartesianPose,
    target: CartesianPose,
    options: CartesianMoveOptions,
    timeout_ms: int = 3000,
) -> bool

The interface always sends CIRCLE; options.motion_type has no effect. All three positions are relative to base_link and use m; orientations are unit quaternions ordered (qx, qy, qz, qw). Before calling the method, acquire control authority, switch to Controller.planning_control, and confirm it.

Path Reference#

options.circ_is_center Meaning of path.position Usage Requirement
False (default) Intermediate reference point through which the arc passes The start point, reference point, and target must define the required arc; avoid coincident or nearly collinear points
True Center reference Confirm that the start and target relative to the center meet the task's geometric constraints

path.orientation is sent with the request, but the current public contract does not separately specify how the orientation is used in center mode. Do not rely on center-orientation behavior that has not been validated for the current version.

Failure and Stopping#

A mismatched start pose, invalid arc geometry, no continuous IK along the path, a joint-limit violation, or a collision can all cause failure. A False return or client timeout does not prove that the trajectory did not start. Stop sending new targets and read the FSM, joints, and motor state. If a stop cannot be confirmed, use the on-site physical-emergency-stop procedure.

See API Reference for motion entry points and return behavior, and ArmControlOptions (Control Options) for parameter definitions.