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.
k1
equalsk2
. Using Sympy, I got the following for the integral ofk
(the functionth
):th(s) = k1 * s + s ** 2 * (-0.5 * k1 + 0.5 * k2)
$\endgroup$ – peterhil Jan 2 '16 at 17:28th()
, but likely there are better ways. $\endgroup$ – Anton Sherwood Jan 15 '20 at 18:49