Acceleration through curved paths

  • Context: Undergrad 
  • Thread starter Thread starter Cato11
  • Start date Start date
  • Tags Tags
    Acceleration
Click For Summary

Discussion Overview

The discussion revolves around the challenge of calculating the motion of an object following a curved path while uniformly accelerating from an initial velocity to a final velocity. The context includes the use of Bezier curves for path approximation and the need for a smooth transition between points along the path. Participants explore the implications of centripetal and tangential accelerations in this scenario, as well as the mathematical and geometric approaches to modeling the motion.

Discussion Character

  • Exploratory
  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant seeks advice on calculating a curved path with uniform acceleration, noting that linear acceleration equations do not apply.
  • Some participants emphasize the need to know the radius of the circle and the values of R1, R2, and R3 to understand the centripetal and tangential accelerations involved.
  • There is a suggestion that Bezier curves may not be the best method for achieving the desired motion, as they require additional control points that complicate defining the R1-3 values.
  • Another participant proposes resolving the problem geometrically and suggests that a mathematical approach could be beneficial.
  • Some participants clarify that while uniform acceleration vectors may not apply due to changing directions, the speed can vary uniformly as a function of time, with the velocity vector being tangent to the path.
  • There is a discussion about the necessity of a smooth transition at points P1, P2, and P3, with suggestions for using a sequence of Bezier curves to achieve this.
  • One participant mentions the potential involvement of gravity and the complications it introduces, while others argue that gravity is unnecessary for this specific problem.
  • Another participant suggests that any smooth path could work, and emphasizes the importance of determining the required tangential acceleration based on the path length and energy considerations.

Areas of Agreement / Disagreement

Participants express differing views on the best approach to modeling the motion, with some advocating for geometric solutions and others for mathematical ones. There is no consensus on the optimal method for achieving the desired acceleration along the curved path, and multiple competing views remain regarding the use of Bezier curves and the implications of uniform acceleration.

Contextual Notes

Participants note limitations in defining R1, R2, and R3 values when using Bezier curves, as well as the challenges in achieving uniform acceleration along a curved path. The discussion also highlights the need for a clear equation of the path to facilitate further calculations.

  • #31
Take a piece of string, lay it out along the path, measure it, then apply :

$$a = \frac{v_{end}^2- v_ {start}^2}{2d}$$
 
Physics news on Phys.org
  • #32
@robphy I think you are right, I have underestimated the the complexity of this problem it seems. I didn't think that the shape of the path was particularly important but clearly it is. I think I need to go back to the drawing board and rethink this problem. That being said, I appreciate everyone's help as it has given me a lot of food for thought. I do apologise for not articulating the problem more clearly, I will try to do better in future.

@bob012345 The object is not constrained in any way, I am the one trying to force it to move along this path and I am the one controlling the acceleration. It is for a personal animation project that I am working on, so there is a point. I think that I need to go back to the beginning and properly formulate the path, before thinking about the acceleration.

In the meantime I would like to thank everyone for their help.
 
  • Like
Likes   Reactions: bob012345 and Lnewqban
  • #33
Cato11 said:
...@PeterO Yes you are correct about the P1 and P4 being 180 degrees apart. It looks like your path is the Dubins Path method someone else mentioned here earlier. The curvature of this path is not exactly what I was after, as the bulge of the centre circle is beyond what I was looking for. I think the bezier curve method works best, if I can only figure out how to properly reparametrize the spline (three separate arc curves joined together).
The excellent graph done by @PeterO and shown in post #24 is the geometrical thruth about this problem.
The length of the middle trajectory or bulge of the center circle must always be greater than the other two.

Less severe difference could be achieved with reduced angle of incidence of the intial straight trajectory (less than perpendicular, or by reducing the length of the middle arc of the big circle respect to the other two.

It just occurred to me that in order to reduce the visual difference some and to avoid the many radii of spline lines, you could replace those three circles with three ellipses.
 
  • #34
Lnewqban said:
The excellent graph done by @PeterO and shown in post #24 is the geometrical thruth about this problem.
The #24 graph assumes a path of equal radii circle arcs, but it's (almost) as easy to use differently-sized circles for the satellites.

What's interesting (to me, anyways) is that all the angles incident to the main circumference will be the same, no matter what differing radii the satellite arcs are.
Lnewqban said:
The length of the middle trajectory or bulge of the center circle must always be greater than the other two.
In that graph, they're identical. [edit : and it appears I've lost track of the path a bit]
 
Last edited:
  • #35
It seems to me that since this is a computer animation the curve does not have to be mathematically continuous. For example, when it reaches point ##P_1## you define a new center of motion and let it be a circular arc through ##P_1## and ##P_2##. Do the same for the other arcs. Then you know the path and you can make it have an uniform angular acceleration along each arc. All you need to do is define the center point for each arc and for that you can use a geometry program such as this;

https://www.geogebra.org/geometry?lang=en
 
  • Like
Likes   Reactions: Lnewqban
  • #36
As @hmmm27 said above you can use circles of different radii to adjust the bulge. I wasn't sure if the points are equidistant around the arc as drawn here but if not it is easy to adjust for that. But these are all circles with different centers so the equations are easy. The object comes in from the left at ##E## and leaves at ##F##.

geogebra-export (1).png

Update: I'm calling this the Mickey Mouse version...
 
Last edited:
  • #37
bob012345 said:
As @hmmm27 said above you can use circles of different radii to adjust the bulge. I wasn't sure if the points are equidistant around the arc as drawn here but if not it is easy to adjust for that. But these are all circles with different centers so the equations are easy. The object comes in from the left at ##E## and leaves at ##F##.

View attachment 290835

Those circles appear to have “only approximately equal” tangents at the intersection points. That may be good enough.

(For the matching of tangent lines for circles, the centers and the intersection points should be collinear.)

How strict is the requirement (that is, what is the tolerance ) for matching the tangent lines?
 
Last edited:
  • Like
Likes   Reactions: bob012345 and Lnewqban
  • #38
Here's a GeoGebra file I just made:
https://www.geogebra.org/m/gvehkkfc
1634531569055.png


The T_{22} control point is forced to be on the tangent line defined by T_2 and P_2, and similarly for T_{33}. The arc-length of each arc is computed with GeoGebra's Length function... but a formula or algorithm is probably preferred. See the GeoGebra code for details.

Here are the curves:
Curve(P_1 (1 - t)³ + T_1 * 3(1 - t)² t + T_{2} * 3 (1 - t) t² + P_2 t³, t, 0, 1)
Curve(P_2 (1 - t)³ + T_{22} * 3(1 - t)² t + T_{32} * 3 (1 - t) t² + P_3 t³, t, 0, 1)
Curve(P_3 (1 - t)³ + T_{33} * 3(1 - t)² t + T_{43} * 3 (1 - t) t² + P_4 t³, t, 0, 1)

Play around with it.

UPDATE:
In addition the link ( https://pomax.github.io/bezierinfo/ ) I posted earlier,
these might be interesting
https://pomax.github.io/bezierjs/
https://raphlinus.github.io/curves/2018/12/28/bezier-arclength.html
https://math.stackexchange.com/questions/12186/arc-length-of-bézier-curves
https://fjorgedigital.com/insights/blog/can-bezier-curves-be-quickly-parameterized-by-arc-length/
https://stackoverflow.com/questions/17099776/trying-to-find-length-of-a-bezier-curve-with-4-points [this might be useful]
 
Last edited:
  • Like
Likes   Reactions: Cato11, bob012345 and Lnewqban
  • #39
Here's a constrained version:
https://www.geogebra.org/m/sxjwma2q

Given A and P_1, P_2, P_3, and P_4
the arcs are constrained to be symmetrical
by forcing their tangent lines to intersect at a point on
the diameter through the midpoint of the arc-points

PF-accelerationThroughCurvedPaths-v2.png


I would think that this constraint would force these Bezier curves to have a simpler form,
maybe to the point where the arc-length may expressed in closed form.
 
  • Like
Likes   Reactions: Cato11
  • #40
Hi All, I am happy to report that I have made some progress on this problem. In fact I think it is solved as far as my case is concerned!

Let's start with the formulation of the curve and take as an example a cubic bezier curve. Such a curve has two positional points (p0, p1) as well as two control points (c0, c1). If we want a curve to start at position 'p0' with velocity 'v0' and end at position 'p1' with velocity 'v1' after a specific time 't', then we must place the control points accordingly. How? By using the following equations:

p0 = p0
c0 = p0 + v0 * t / 3
c1 = p1 - v1 * t / 3
p1 = p1

Essentially we take the formula for a cubic bezier curve and differentiate with respect to time (as someone rightly said at the start of the thread!). By solving for c0 and c1 we get an expression for the control points given a required velocity. Once the points are placed, we evaluate position using the cubic bezier equation and passing in elapsed time (as animated in my post #14).

The result is a very smooth acceleration through the curve, as evidenced here with a spline that is composed of three separate curves:

Acceleration.gif


It's pretty awesome! It is important to ensure that when transitioning from one curve to another, the 'p1' and 'v1' of the curve that is being exited equals the 'p0' and 'v0' of the curve being entered. This provides continuity across the entire spline, preventing sharp turns or unnatural acceleration. The only challenge with this method is that the control points are placed for us, so if you want a very specific shape it requires splitting the spline into more curves for more precise control. This isn't necessarily a problem though. The main issue for me was achieving the acceleration so it's awesome to see it working.

Huge thanks to everyone here who helped by offering advice. And I must extend a massive shout-out to DMGregory over on GameDev StackExchange as he explained the solution and helped me to understand it.
Now I begin the exciting task of generating some complex looking curves!
 
  • Like
Likes   Reactions: bob012345, Lnewqban and hmmm27

Similar threads

  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 37 ·
2
Replies
37
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 23 ·
Replies
23
Views
3K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 1 ·
Replies
1
Views
1K