# Constant tangential speed along arbitrary parametric curve

1. Jun 11, 2013

Hi everyone,

I've been racking my brain about this problem, but can't seem to figure it out. It seems like it should be easy, but I keep getting confused. Let's say I have an arbitrary parametric curve $r(t)=<x(t), y(t)>$. I want the velocity in the tangential direction to be constant. That clearly means that the x and y components of velocity cannot be constant as the curve changes direction. I realize that the speed tangent to the path is considered $|r'(t)|$ (i.e. the magnitude of the velocity). That would imply that if I want a zero acceleration speed along the path I would need $(x''(t))^2+(y''(t))^2=0$ (I removed the square root that is present in magnitude since it's zero)... Does that mean to solve for x(t) and y(t) I need to solve this second order differential equation? This is where I get confused, should the position function I get from calculating this differential equation be different than the original function I am given? Or will the original parametric function run at a constant speed to begin with?

The idea is that given a certain curve I'd like to get out x(t) and y(t) functions that run a constant speed along that curve. That means that the curves may be gotten via regression (i.e. someone draws the curve and it is modeled via splines or polynomials)

Last edited: Jun 11, 2013
2. Jun 11, 2013

### WannabeNewton

Hi there aaddcc, welcome to PF! So you want $\left \| \dot{r}(t) \right \| = \text{const.}$ or, equivalently, $\left \| \dot{r}(t) \right \|^{2} = \dot{x}^{2}(t) + \dot{y}^{2}(t) = \text{const.}$. Note that what you said regarding the $x$ and $y$ components of the velocity necessarily being non-constant is not true. The curve $r(t) = (at,bt)$ has velocity $\dot{r}(t) = (a,b)$ which has constant components as well as constant magnitude.

Also note that whether or not the speed is constant depends crucially on your choice of parametrization. Consider an arbitrary regular curve $\gamma:J\subseteq \mathbb{R}\rightarrow \mathbb{R}^{3}$, with parametrization $t\in J$, and define the arc-length of $\gamma$ by $s(t) = \int _{t_0}^{t}\left \| \dot{\gamma}(\tau) \right \|d\tau$. Note that by the inverse function theorem, $s(t)$ can always locally be inverted to get $t(s)$. We then re-parametrize $\gamma$ in terms of $t(s)$ so that $\left \| \frac{\mathrm{d} \gamma(t(s))}{\mathrm{d} s} \right \| = \left \| \frac{\mathrm{d} \gamma(t(s))}{\mathrm{d} t}\frac{\mathrm{d} t}{\mathrm{d} s} \right \|$. We have, by the inverse function theorem, $\frac{\mathrm{d} t}{\mathrm{d} s} = \frac{1}{\frac{\mathrm{d} s}{\mathrm{d} t}} = \frac{1}{\left \| \frac{\mathrm{d} \gamma(t(s))}{\mathrm{d} t} \right \|}$ hence $\left \| \frac{\mathrm{d} \gamma(t(s))}{\mathrm{d} s} \right \| = 1$. So we can always re-parametrize our regular curve such that it has constant (unit) speed; this is called the arc-length parametrization.

EDIT: Looks like you edited your post while I was writing this post. Everything I said in the second paragraph above works in principle but based on your edit it looks like you want a practical method. Unfortunately, the arc-length parametrization is far from practical.

Last edited: Jun 11, 2013
3. Jun 11, 2013

Newton, what you say makes sense, but I'm still a little confused. My ultimate goal is to be given a function r(t) that could technically be any 2D shape. From that function, I would like to generate a new function $r_{control}(t)$ which would essentially be a function that is the same shape as r(t) in the (x,y) plane, but be at a constant arbitrarily defined speed tangential to the path of r(t) (in that case I see how arc length parameterization would be helpful, as $s(t_{end})/t_{end} = speed$. From there I could convert this new equation for use with the robot's radial coordinates.