8
$\begingroup$

Why are Fresnel functions still used in the research and implementation of clothoid splines? They cannot represent curves of constant curvature, which has led to a lot of research/implementation complexity. For example, see this paper:

http://www.mit.edu/~ibaran/curves/

$\dots$that constructs a clothoid spline by finding the shortest path through a graph of possible clothoid/arc/line combinations.

Fresnels are derived by integrating the following curvature function:

$k = 2s$

There are many superior alternatives; I've attached one alternative I came up with to this post, but see Raph Levien's PhD thesis for another:

http://www.levien.com/phd/phd.html

Why are fresnels still around? Levien's work dates from 2007, and some guy in the early 90s also did research on (polynomial) curvature functions. As far as I can tell, most of the modern clothoid literature is little more advanced than where the literature was in the late 60s – it’s as if people like Levien never published at all. Is this a failure of the peer review system? Or does the fault lie with the way clothoid research is fragmented between many different fields that don't really communicate with each other?

Anyway, here’s the curve I came up with. See Levien's thesis for a more in-depth discussion of why simple fresnels aren’t good enough (as well we his method, which is a bit better than the one here).

Addendum. A Better Euler Spiral Formulation

If our goal is to create a spline whose curvature function is piecewise linear, we can use this curvature function:

$k = k_1*(1.0-s) + k_2*s$

This function interpolates two constants over the interval [0, 1]. If you integrate it, you get these replacements for the fresnel functions:

$th(s) = s(k_2s - k_1s + 2k_1) / 2$

$x(s) = \int_{0}^{s} \sin(th(s))$

$y(s) = \int_{0}^{s} \cos(th(s))$

These functions can represent lines, arcs, and clothoids, and is far easier to work with than if all three types are treated separately.

$\endgroup$
  • 1
    $\begingroup$ Thank you! I’ve been looking for an alternative to making clothoids with the Fresnel integrals because they blow up on integration, and this seems to work perfectly. Also the Inkscape implementation of Spiro seems to have some stability problems after a few points – at least used to couple years ago... $\endgroup$ – peterhil Dec 29 '15 at 19:35
  • $\begingroup$ I’m not sure if the last edit is exactly right, but at least it gives circles when k1 equals k2. Using Sympy, I got the following for the integral of k (the function th): th(s) = k1 * s + s ** 2 * (-0.5 * k1 + 0.5 * k2) $\endgroup$ – peterhil Jan 2 '16 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.