-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arc planning only considers tangential acceleration #50
Comments
For circular motion with angular acceleration, let a is the quantity we wish to fix. The above can be rewritten as When integrated, the (positive) phase function becomes: This is very nasty, and note that the above only covers movement in the first quadrant. We can consider the other solution, -p(t), but that only covers the fourth quadrant. Below is a plot of the phase function and the resulting movement for a=r=1 and c1=0. The main issue appears to be that the phase function is not monotonic. As can be seen by the plot below, the magnitude of the cartesian acceleration is indeed kept constant by this solution. |
Actually, the movements do not necessarily cover only the first or fourth quadrant - that's only when starting from a velocity of 0. The c1 parameter can be used to control the initial angular frequency by |
It may be appropriate to use the solved phase function and then switch to uniform circular motion at the first time where This also assumes that any valid initial conditions produces a monotonic phase function up until the time at which |
Another (possibly easier) option is to choose Along this interval, Then |
So how about the initial conditions:
Start by defining p and p^-1 ("timeFromP"):
For 2:
For 1 (p^-1(0) = 0),
Or, taking p(0) =0, we can do:
which is really just
It still requires solving the inverse function, unfortunately. |
It turns out that MiniMaxApproximation accepts a Derivatives argument, which may help with it erroring on certain inputs. From the Documentation: "Derivatives - {func, D[func, x], D[func, x, 2]}. This option may be left Automatic if Mathematica can find the derivatives itself. However, it may be more efficient to specify a function that returns the required list of values for any x in the interval." |
Currently, an arc is implemented such that its tangential velocity at any time while under constant cartesian acceleration is
v=a*t
.But because of circular motion, there is an acceleration normal to the direction of motion (
An = v^2/r
for uniform r). Thus, the total cartesian acceleration experienced at any time issqrt(An^2 + At^2)
, where At is the tangential acceleration. This value should be kept constant if using a constant acceleration profile.Furthermore, since there is a limit upon the maximum cartesian acceleration, and
An=v^2/r
for constant v, then there is also a limit to the ratio ofv^2/r
- we need to ensure that smaller arcs are taken at a slower velocity.This page has a decent explanation of non-uniform circular motion.
The text was updated successfully, but these errors were encountered: