DSPRelated.com
Forums

Radius of Curvature

Started by Greg Berchin June 17, 2014
I need a better definition of radius of curvature.

The "standard" definition can be found in, for example,
http://mathworld.wolfram.com/Curvature.html. There, curvature "K" is
defined as "d(phi)/dS", and radius of curvature is defined as "1/K".
This appears to be derived from the basic relationship
    S = R*phi
where S is the distance along the circular path, R is the radius of
curvature, and phi is the angle. Differentiating, we get
    dS = R*d(phi) + dR*phi
If R is assumed to be constant, then dR*phi=0 and
    dS = R*d(phi)
    1/R = K = d(phi)/dS
The reference goes on to express K as a function of the velocity and
acceleration in rectangular coordinates, which is exactly what I need.

Except ...

In my case, R is not constant. I need to express, or at least
approximate, the instantaneous radius of curvature, and the
instantaneous rate of change of radius of curvature, in the case where
dS = R*d(phi) + dR*phi, and I have position, velocity, and acceleration
in rectangular coordinates. Any suggestions? Thanks.
Greg Berchin <gjberchin@chatter.net.invalid> writes:

> I need a better definition of radius of curvature. > > The "standard" definition can be found in, for example, > http://mathworld.wolfram.com/Curvature.html. There, curvature "K" is > defined as "d(phi)/dS", and radius of curvature is defined as "1/K". > This appears to be derived from the basic relationship > S = R*phi > where S is the distance along the circular path, R is the radius of > curvature, and phi is the angle. Differentiating, we get > dS = R*d(phi) + dR*phi > If R is assumed to be constant, then dR*phi=0 and > dS = R*d(phi) > 1/R = K = d(phi)/dS > The reference goes on to express K as a function of the velocity and > acceleration in rectangular coordinates, which is exactly what I need. > > Except ... > > In my case, R is not constant. I need to express, or at least > approximate, the instantaneous radius of curvature, and the > instantaneous rate of change of radius of curvature, in the case where > dS = R*d(phi) + dR*phi, and I have position, velocity, and acceleration > in rectangular coordinates. Any suggestions? Thanks.
You are overthinking this. The curvature is simply defined as K = d(phi)/dS Nothing about this assumes that K (or R) is constant. To get the instantaneous rate of change of the radius, simply differentiate the equation you already have for the radius with respect to t or S, or whatever. Scott -- Scott Hemphill hemphill@alumni.caltech.edu "This isn't flying. This is falling, with style." -- Buzz Lightyear
On 6/17/14 8:24 AM, Greg Berchin wrote:
> I need a better definition of radius of curvature. > > The "standard" definition can be found in, for example, > http://mathworld.wolfram.com/Curvature.html. There, curvature "K" is > defined as "d(phi)/dS", and radius of curvature is defined as "1/K". > This appears to be derived from the basic relationship > S = R*phi > where S is the distance along the circular path, R is the radius of > curvature, and phi is the angle. Differentiating, we get > dS = R*d(phi) + dR*phi > If R is assumed to be constant, then dR*phi=0 and > dS = R*d(phi) > 1/R = K = d(phi)/dS > The reference goes on to express K as a function of the velocity and > acceleration in rectangular coordinates, which is exactly what I need. > > Except ... > > In my case, R is not constant. I need to express, or at least > approximate, the instantaneous radius of curvature, and the > instantaneous rate of change of radius of curvature, in the case where > dS = R*d(phi) + dR*phi, and I have position, velocity, and acceleration > in rectangular coordinates. Any suggestions? Thanks.
Greg, is this a simple function: y = f(x) that passes the "vertical line test"? or is it a set of parametric equations: { x(t), y(t) } ? if the former, i think the Wolfram definition of curvature is the same as in my Calculus textbook of 4 decades ago. if curvature is what you want, i dunno how to avoid that definition and the math you would have to do to get it. it seems to me that either way, if you have x[n] and y[n] (and maybe a z[n]), that you can compute from three adjacent point pars (or triplets) the curvature at the curve at the point in the middle. and with four adjacent points, you oughta be able to compute the rate of change of curvature for the curve midway between the two middle points. should be straight-forward. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Tue, 17 Jun 2014 12:30:30 -0400, Scott Hemphill
<hemphill@hemphills.net> wrote:

>You are overthinking this. The curvature is simply defined as > > K = d(phi)/dS
That's the problem. That definition is based upon the expression for S (distance traveled in a circular arc) as a function of phi (angle traversed): S = R*phi = (1/K)*phi Differentiating that yields: dS = R*d(phi) + phi*dR = (1/K)*d(phi) + phi*d(1/K) not: dS = R*d(phi) = (1/K)*d(phi)
>Nothing about this assumes that K (or R) is constant.
It most definitely does assume that R is constant, else that "phi*dR" term would not have disappeared.
>To get the instantaneous rate of change of the radius, simply >differentiate the equation you already have for the radius with respect >to t or S, or whatever.
I don't have an equation. I have time histories of position, velocity, and acceleration measurements. Greg
On Tue, 17 Jun 2014 12:46:52 -0400, robert bristow-johnson
<rbj@audioimagination.com> wrote:

>Greg, is this a simple function: > > y = f(x) > >that passes the "vertical line test"? > >or is it a set of parametric equations: > > { x(t), y(t) } > >?
It is neither. It is a time history of position, velocity, and acceleration measurements that I need to fit to an (R,phi) model.
>if the former, i think the Wolfram definition of curvature is the same >as in my Calculus textbook of 4 decades ago. if curvature is what you >want, i dunno how to avoid that definition and the math you would have >to do to get it.
That definition assumes that R is constant. I can't make that assumption. I looked at the equations for Spiral of Archimedes, but they assume that the rate of change of R is a constant function of phi. I can't make that assumption, either.
>it seems to me that either way, if you have x[n] and y[n] (and maybe a >z[n]), that you can compute from three adjacent point pars (or triplets) >the curvature at the curve at the point in the middle. and with four >adjacent points, you oughta be able to compute the rate of change of >curvature for the curve midway between the two middle points. should be >straight-forward.
I can look into the past, but I cannot look into the future because the measurements will be live. Greg
On 6/17/14 1:29 PM, Greg Berchin wrote:
> On Tue, 17 Jun 2014 12:46:52 -0400, robert bristow-johnson > <rbj@audioimagination.com> wrote: > >> Greg, is this a simple function: >> >> y = f(x) >> >> that passes the "vertical line test"? >> >> or is it a set of parametric equations: >> >> { x(t), y(t) } >> >> ? > > It is neither. It is a time history of position, velocity, and > acceleration measurements that I need to fit to an (R,phi) model.
i don't understand. it seems to me that, from your description, it *is* a parametric curve (the x(t) and y(t) thing).
> >> if the former, i think the Wolfram definition of curvature is the same >> as in my Calculus textbook of 4 decades ago. if curvature is what you >> want, i dunno how to avoid that definition and the math you would have >> to do to get it. > > That definition assumes that R is constant.
no, it doesn't. the only function where R (and the curvature K) is constant is something like: f(x) = y0 +/- sqrt(R^2 - (x - x0)^2) i.e. the top or bottom half of a circle with center at (x0, y0) and radius R.
> I can't make that assumption.
i wouldn't require it.
> I looked at the equations for Spiral of Archimedes, but they assume that > the rate of change of R is a constant function of phi. I can't make that > assumption, either. > >> it seems to me that either way, if you have x[n] and y[n] (and maybe a >> z[n]), that you can compute from three adjacent point pars (or triplets) >> the curvature at the curve at the point in the middle. and with four >> adjacent points, you oughta be able to compute the rate of change of >> curvature for the curve midway between the two middle points. should be >> straight-forward. > > I can look into the past, but I cannot look into the future because the > measurements will be live.
like a phase-linear FIR (that is the same as a zero-phase FIR with delay), if you're not looking forever into the future (looking into the future a limited and constant amount), then you can compute this with a little bit of delay. i think you can get radius of curvature with 1 sample delay and you can get the rate of change of curvature (or the radius of curvature) with 1.5 samples delay. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Tue, 17 Jun 2014 12:24:53 -0500, Greg Berchin wrote:

> On Tue, 17 Jun 2014 12:30:30 -0400, Scott Hemphill > <hemphill@hemphills.net> wrote: > >>You are overthinking this. The curvature is simply defined as >> >> K = d(phi)/dS > > That's the problem. That definition is based upon the expression for S > (distance traveled in a circular arc) as a function of phi (angle > traversed): > > S = R*phi = (1/K)*phi > > Differentiating that yields: > > dS = R*d(phi) + phi*dR = (1/K)*d(phi) + phi*d(1/K) > > not: > > dS = R*d(phi) = (1/K)*d(phi)
I think you're getting wrapped around the axle, here. You looked at the definition, then you changed the rules, then you got all upset because the definition "didn't work". Try dS/d(phi) = R. Isn't that better? And more consistent with the definition of curvature?
>>Nothing about this assumes that K (or R) is constant. > > It most definitely does assume that R is constant, else that "phi*dR" > term would not have disappeared.
The definition of instantaneous curvature is for the curvature of the line _as if_ it were a circle at that point, and for a line which is described by analytical functions. You stay in that "as if" land by insisting that you're only interested in the curvature of the line at an "instant" -- which means an infinitesimal slice of time. Within that infinitesimal slice of time, the radius isn't changing. You can get away with that "as if" because the functions are analytical.
>>To get the instantaneous rate of change of the radius, simply >>differentiate the equation you already have for the radius with respect >>to t or S, or whatever. > > I don't have an equation. I have time histories of position, velocity, > and acceleration measurements.
You'll need to work out the math yourself (or pay me to do it -- it's too involved to do for free). I'm pretty sure, however, that after you've filled one or two pages with hen-scratches you'll find out that the radius of curvature is purely some function of the velocity and acceleration, without reference to position or to any other quantity. (In fact, by intuition and dimensional analysis, I'm pretty sure it'll be exactly equal to r = a x v * |v|^3/|a x v|^2 where r, a and v are vector quantities, "a x v" is the cross product, and "*" is scalar multiplication. I can't promise, though, without going through the math.) The time derivative of the radius of curvature is a more slippery quantity, because to really estimate that correctly you'd need the time derivative of the acceleration. You state that you don't measure jerk, and that you can't use future values, so strictly speaking you don't have the values you need. So you'll have to fall back on estimating the da/dt from past values, or on setting the da/dt = 0, whichever choice you think is going to give you the least error. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
On Tue, 17 Jun 2014 13:09:17 -0500, Tim Wescott wrote:

> On Tue, 17 Jun 2014 12:24:53 -0500, Greg Berchin wrote: > >> On Tue, 17 Jun 2014 12:30:30 -0400, Scott Hemphill >> <hemphill@hemphills.net> wrote: >> >>>You are overthinking this. The curvature is simply defined as >>> >>> K = d(phi)/dS >> >> That's the problem. That definition is based upon the expression for S >> (distance traveled in a circular arc) as a function of phi (angle >> traversed): >> >> S = R*phi = (1/K)*phi >> >> Differentiating that yields: >> >> dS = R*d(phi) + phi*dR = (1/K)*d(phi) + phi*d(1/K) >> >> not: >> >> dS = R*d(phi) = (1/K)*d(phi) > > I think you're getting wrapped around the axle, here. > > You looked at the definition, then you changed the rules, then you got > all upset because the definition "didn't work". > > Try dS/d(phi) = R. Isn't that better? And more consistent with the > definition of curvature? > >>>Nothing about this assumes that K (or R) is constant. >> >> It most definitely does assume that R is constant, else that "phi*dR" >> term would not have disappeared. > > The definition of instantaneous curvature is for the curvature of the > line _as if_ it were a circle at that point, and for a line which is > described by analytical functions. > > You stay in that "as if" land by insisting that you're only interested > in the curvature of the line at an "instant" -- which means an > infinitesimal slice of time. Within that infinitesimal slice of time, > the radius isn't changing. You can get away with that "as if" because > the functions are analytical. > >>>To get the instantaneous rate of change of the radius, simply >>>differentiate the equation you already have for the radius with respect >>>to t or S, or whatever. >> >> I don't have an equation. I have time histories of position, velocity, >> and acceleration measurements. > > You'll need to work out the math yourself (or pay me to do it -- it's > too involved to do for free). I'm pretty sure, however, that after > you've filled one or two pages with hen-scratches you'll find out that > the radius of curvature is purely some function of the velocity and > acceleration, without reference to position or to any other quantity. > > (In fact, by intuition and dimensional analysis, I'm pretty sure it'll > be exactly equal to > > r = a x v * |v|^3/|a x v|^2 > > where r, a and v are vector quantities, "a x v" is the cross product, > and "*" is scalar multiplication. > > I can't promise, though, without going through the math.) > > The time derivative of the radius of curvature is a more slippery > quantity, because to really estimate that correctly you'd need the time > derivative of the acceleration. You state that you don't measure jerk, > and that you can't use future values, so strictly speaking you don't > have the values you need. So you'll have to fall back on estimating the > da/dt from past values, or on setting the da/dt = 0, whichever choice > you think is going to give you the least error.
Sorry. r = -a x v * |v|^3 / |a x v|^2. Stupid minus sign. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Greg Berchin <gjberchin@chatter.net.invalid> writes:

> On Tue, 17 Jun 2014 12:30:30 -0400, Scott Hemphill > <hemphill@hemphills.net> wrote: > >>You are overthinking this. The curvature is simply defined as >> >> K = d(phi)/dS > > That's the problem. That definition is based upon the expression for S > (distance traveled in a circular arc) as a function of phi (angle > traversed): > > S = R*phi = (1/K)*phi > > Differentiating that yields: > > dS = R*d(phi) + phi*dR = (1/K)*d(phi) + phi*d(1/K) > > not: > > dS = R*d(phi) = (1/K)*d(phi) > >>Nothing about this assumes that K (or R) is constant. > > It most definitely does assume that R is constant, else that "phi*dR" > term would not have disappeared.
What I mean is that it does not assume R is necessarily constant over the whole curve, since it is only concerned with the value at a single point. K=d(phi)/dS gets you the curvature at any individual point.
>>To get the instantaneous rate of change of the radius, simply >>differentiate the equation you already have for the radius with respect >>to t or S, or whatever. > > I don't have an equation. I have time histories of position, velocity, > and acceleration measurements.
I meant equation (13) from http://mathworld.wolfram.com/Curvature.html Differentiate that equation to get the rate of change of K, and hence the rate of change of R. I just thought it would be easier than pursuing your approach, since the equation is explicit for K. Scott -- Scott Hemphill hemphill@alumni.caltech.edu "This isn't flying. This is falling, with style." -- Buzz Lightyear
On Tue, 17 Jun 2014 12:29:20 -0500, Greg Berchin
<gjberchin@chatter.net.invalid> wrote:

>On Tue, 17 Jun 2014 12:46:52 -0400, robert bristow-johnson ><rbj@audioimagination.com> wrote: > >>Greg, is this a simple function: >> >> y = f(x) >> >>that passes the "vertical line test"? >> >>or is it a set of parametric equations: >> >> { x(t), y(t) } >> >>? > >It is neither. It is a time history of position, velocity, and >acceleration measurements that I need to fit to an (R,phi) model.
Is it planar or 3D? Planar would be a lot easier, obviously. Tim suggested dS/d(phi) = R, but I think finding phi is pretty tough if you don't already have R or an assumed center for the rotation. Would it be practical to use acceleration orthogonal to the velocity vector and just fit to an ideal model to estimate the radius? I use track analysis software (for auto racing) that uses GPS/acceleration data, and it will plot the acceleration vector on a 2D track map. On a corner the acceleration vector points to the inside of the corner (as it should). It is not difficult to plot the expected magnitude of the lateral acceleration given speed and radius, so I'd think going backwards shouldn't be too extraordinary. But, then, I haven't looked at it in detail.
>>if the former, i think the Wolfram definition of curvature is the same >>as in my Calculus textbook of 4 decades ago. if curvature is what you >>want, i dunno how to avoid that definition and the math you would have >>to do to get it. > >That definition assumes that R is constant. I can't make that >assumption. > >I looked at the equations for Spiral of Archimedes, but they assume that >the rate of change of R is a constant function of phi. I can't make that >assumption, either. > >>it seems to me that either way, if you have x[n] and y[n] (and maybe a >>z[n]), that you can compute from three adjacent point pars (or triplets) >>the curvature at the curve at the point in the middle. and with four >>adjacent points, you oughta be able to compute the rate of change of >>curvature for the curve midway between the two middle points. should be >>straight-forward. > >I can look into the past, but I cannot look into the future because the >measurements will be live. > >Greg
Eric Jacobsen Anchor Hill Communications http://www.anchorhill.com