# Path position and length calculation method

Along a path object, an intrinsic position can be defined. That position, also referred to as path position, is different from the position of a path object. While the position of a path object is the position of the path object origin point (which is shown as a white wireframe cube when the path is selected), the path position or rather intrinsic path position is a position value along the path as can be seen in following figure:

[The current path position is indicated as a red sphere]

The Bezier points of a path can be distinct or coincident: imagine a welding robot whose end-effector is the tip of the welding device; between two consecutive Bezier points, the end-effector can:

• Perform a translation (i.e. follow a straight line) WITHOUT changing orientation (the two Bezier points are distinct but have the same orientation).
• Perform a translation AND change orientation (the two Bezier points are distinct and have a different orientation).
• Perform a rotation (i.e. change orientation) WITHOUT changing position (the two Bezier points are coincident but have a different orientation).
• Additionally, there are some situations where we want the welding torch to follow a predefined path, pause at some specific position (e.g. to handle a bigger welding spot), then continue along the path. In order to properly handle above 3 cases and the special pause case, it is important to be able to uniquely identify any position* (position taken in the wider sense) along the path (i.e. path position*), as well as the path length* (length taken in the wider sense). For this, the user can select between several position calculation methods:

• The path position* is described as the cumulative linear variation along the path. The path length* is given by:
• The path position* is described as the cumulative angular** variation along the path. The path length* is given by:
• The path position* is described as the cumulative (linear variation + angular** variation) along the path. The path length* is given by:
• The path position* is described as the cumulative maximum (linear variation , angular** variation) along the path. The path length* is given by:
• The path position* is described as the cumulative (linear variation if not zero, angular** variation otherwise) along the path. The path length* is given by:
• The path position* is described as the cumulative (angular** variation if not zero, linear variation otherwise) along the path. The path length* is given by:
• The path position* is described as the cumulative Euclidean distance of (linear variation , angular** variation) along the path. The path length* is given by:
• Where Δl and Δα is the linear and angular variation respectively, between two consecutive Bezier points. Angular** variation is the regular angular variation multiplied with an angular coefficient c. c is called the angular to linear conversion coefficient, and allows to combine an angular value with a linear value. This means that the position* along the path or the path length* is always given in a linear unit (e.g. meter), irrespective of the selected position calculation method here above.

The term marked in red is zero by default. The term can be seen as a virtual distance or a forth coordinate of a Bezier point (or path control point) (i.e. each Bezier point would then be defined by an orientation and a position (x,y,z,w), where w is the forth coordinate). This is useful to archive a pause point along a path. is the virtual distance variation between two consecutive Bezier points. d is a scaling factor for the virtual distance variation (e.g. if d is doubled, then all pause points will perform a pause duration twice as long). For simplification, we will not mention this term anymore in what follows and assume it to be zero.

Following example clarifies the position and length calculation concept:

[Path example, (a) overview, (b) Bezier points with orientation, (c) cumulative linear and angular values]

[Path example, various path position/length calculation methods that can present discontinuities]

[Path example, various path position/length calculation methods]

[Path example, various path position/length calculation methods]

To archive a movement pause at a specific point along a path, proceed as following: create 3 identical path control points (perfectly coincident position and orientation) and specify a virtual distance value different from zero for the middle control point. In following example, the virtual distance at the 3 coincident points is 2 (1 between the first and the middle coincident control points, and 1 between the middle and the third coincident control points). If an object travels along the path at a velocity of 1 meter per second, then it would archive a 2 seconds pause at the coincident control points:

[Path example, movement pause]

One should carefully select the path position/length calculation method depending on the application.

### Recommended topics

• Paths
• Path control points and Bezier points
• Movement along a path
• Path properties
• Path import/export operations
• Path edit mode