Circular Arcs

NI-Motion

Circular Arcs

A circular arc defines an arc in the XY plane of a 2D or 3D coordinate space. The arc is specified by a radius, starting angle, and travel angle. Also, like all coordinate space moves, the arc uses the values of move constraints—maximum velocity, maximum acceleration, and maximum deceleration.

Tip  For the NI SoftMotion Controller, the arc generation also uses acceleration jerk and deceleration jerk while calculating the arc move.
Note  When you use an NI 73xx motion controller to move a motor in an arc, you can use only trapezoidal profiles. You do not use jerk to calculate the profile for arc moves.

To move axes in a circular arc, the motion controller needs the following information:

  • Radius—Specifies the distance from the center of the arc to its edge
  • Start Angle—Orients the arc on its plane using the starting point as an axis to spin around. Because the starting point for a new arc is fixed based on the current position, moving its center around the starting point alters the orientation of a new arc. For example, the following figure shows the effect of changing the start angle from 0° to 180°.

    1  Original Arc   2  Arc with 180° Start Angle  
  • Travel Angle—Indicates how far the arc travels in a 360° circle. For example, a travel angle of 90° executes a quarter-circle, a travel angle of 360° creates a full circle, and a travel angle of 720° creates two full circles. A positive travel angle always creates counterclockwise circular motion. A negative travel angle reverses the direction to create clockwise circular motion, as shown in the following figure.

    1  Positive Travel Angle   2  Negative Travel Angle  

Circular Arc Move Algorithm

The following figure shows a generic circular arc move algorithm applicable to both C/C++ and LabVIEW code.