Constant tangential speed along arbitrary parametric curve

Click For Summary
The discussion centers on achieving constant tangential speed along an arbitrary parametric curve defined as r(t) = <x(t), y(t)>. It is clarified that while the components of velocity may vary, the overall speed can remain constant depending on the parametrization chosen. The concept of arc-length parametrization is introduced as a method to achieve constant speed, allowing for the re-parametrization of the curve without altering its geometric shape. However, participants note that calculating this arc-length parametrization can be complex and impractical for arbitrary curves. The ultimate goal is to derive a new function that maintains the original curve's shape while ensuring constant speed along the path.
aaddcc
Messages
9
Reaction score
0
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)=&lt;x(t), y(t)&gt;. 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&#039;(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&#039;&#039;(t))^2+(y&#039;&#039;(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:
Physics news on Phys.org
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:
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.
 
What you want is exactly what the arc-length parametrization does (a re-parametrization will not change the geometrical shape of an arbitrary smooth curve and the arc-length parametrization will make the speed of the arbitrary smooth curve constant-unit speed to be exact). However this re-parametrization is very hard to calculate in practice for whatever smooth curve you may be working with. I personally do not know of a practical method which will accomplish what you seek. Hopefully someone else can help you with that.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 11 ·
Replies
11
Views
4K
  • · Replies 7 ·
Replies
7
Views
2K
Replies
4
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 25 ·
Replies
25
Views
5K
  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K