Professional Documents
Culture Documents
On Algorithms For Planning S-Curve Motion Profiles
On Algorithms For Planning S-Curve Motion Profiles
Motion Profiles
intehweb.com
Abstract: Although numerous researches on s-curve motion profiles have been carried out, up to date, no
systematic investigation on the general model of polynomial s-curve motion profiles is considered. In this paper,
the model of polynomial s-curve motion profiles is generalized in a recursive form. Based on that, a general
algorithm to design s-curve trajectory with time-optimal consideration is proposed. In addition, a special strategy
for planning s-curve motion profiles using a trigonometric model is also presented. The algorithms are
implemented on a linear motor system. Experimental results show the effectiveness and promising application
ability of the algorithms in s-curve motion profiling.
Keywords: Motion control, s-curve motion profile, trajectory planning algorithm, linear motor.
is a combination of trigonometric and polynomial polynomials. Therefore they are called polynomial s-
functions, indicates a special strategy of path planning curve models. The number of trajectory segments to be
for s-curve motions. Through experimental results, the connected is 8.
algorithms show their efficiency, and great application
ability. ⎧ M 2 , t 0 ≤ t ≤ t3
j = M3 = ⎨
⎩ − M 2 , t 4 ≤ t ≤ t7
100
Kim Doang Nguyen; Teck –Chew Ng and I –Ming Chen: On Algorithms for Planning S-curve Motion Profiles
X npeak n −1⎡⎛ i −1 j ⎞ ⎤
X 1peak = ∏ ⎢⎜ ∑ 2 Tn +1−i + j ⎟ + Tn +1−i ⎥
It is noticed that (2) and (4) are polynomial equations,
2n −1 ⎢⎝ j = 0
i =1 ⎣ ⎠ ⎦⎥ which have form
...
am x m + am −1 x m −1 + ... + a1 x1 + a0 = 0
X ⎡⎛ i −1 j
peak n − k
⎞ ⎤
X kpeak =
2
n
n−k ∏⎢ ∑
⎢ ⎜ 2 Tn +1− i + j ⎟ + Tn +1− i ⎥
⎣⎝ j = 0
i =1 ⎠ ⎦⎥ Where a0 is negative, and the other coefficients of the
polynomial are positive. Therefore the polynomial has
... only one positive real root, which is just the time period
to be calculated. By a simple approximating algorithm,
X npeak
X npeak
−1 = ( t1 − t0 + Tn ) = X nTn the positive real root can be easily calculated.
2
101
International Journal of Advanced Robotic Systems, Vol. 5, No. 1 (2008)
4. Experiments
4.1. Linear motor system (refer to Fig.5) Renishaw Group, including a laser sensor RLD and a
Linear motor system includes a linear motor, which laser encoder RLU10 which processes electrical signals
slides on an air-bearing system. They allow the motor returned by the laser sensor into quadrature signals
to operate smoothly and quietly with ultra-precision and feeds them to the PMDi controller as feedback
motion and very low friction. The linear motor is signals.
controlled by a PMDi MC4000 Pro controller card, Users can communicate with the linear motor system
which is an eight-axis PCI-Bus motion control DSP through the PMDi GUI (Fig.4), which was built in C
board provided by Precision MicroDynamics, Inc. The programming language with help of LabWindows/CVI
motor’s motion is read by a laser sensor system of development environment of National Instruments.
102
Kim Doang Nguyen; Teck –Chew Ng and I –Ming Chen: On Algorithms for Planning S-curve Motion Profiles
⎪ ⎣
⎪0, t5 < t ≤ t 6
⎪
⎪ J peak ⎡ ⎛ 2π π ⎞⎤
⎪ 2 ⎢1 − sin ⎜ ( t − t 6 ) + ⎟ ⎥ , t6 < t ≤ t7
⎩ ⎣ ⎝ tJ 2 ⎠⎦
103
International Journal of Advanced Robotic Systems, Vol. 5, No. 1 (2008)
6. Conclusion
104
Kim Doang Nguyen; Teck –Chew Ng and I –Ming Chen: On Algorithms for Planning S-curve Motion Profiles
7. Appendix
A. Kinematic characteristics of motion profiles planned by the
trigonometric model
Acceleration,
⎧ J peak ⎡ ⎛ t J ⎞ ⎛ 2π π ⎞⎤
⎪ ⎢t − ⎜ ⎟ cos ⎜ t + ⎟⎥ , 0 ≤ t ≤ t1
⎪ 2 ⎣ ⎝ 2π ⎠ ⎝ tJ 2 ⎠⎦
⎪A , t1 < t ≤ t2
⎪ max
⎪J ⎡ ⎛t ⎞ ⎛ 2π π ⎞⎤
⎪ peak ⎢( t − t2 ) − ⎜ J ⎟ cos ⎜ ( t − t2 ) + ⎟ ⎥ + Amax , t2 < t ≤ t3
⎪ 2 ⎣ ⎝ 2π ⎠ ⎝ tJ 2 ⎠⎦
⎪
a (t ) = ⎨0, t3 < t ≤ t 4
⎪
⎪− J peak ⎡( t − t ) − ⎛ t J ⎞ cos ⎛ 2π ( t − t ) + π ⎞ ⎤ , t 4 < t ≤ t5
⎪ 2 ⎢ 4 ⎜
⎝ 2π ⎠
⎟ ⎜
⎝ tJ
4 ⎟⎥
2 ⎠⎦
⎪ ⎣
⎪− Amax , t5 < t ≤ t6
⎪
⎪ J peak ⎡ ⎛ tJ ⎞ ⎛ 2π π ⎞⎤
Velocity⎪ , 2 ⎢( t − t6 ) − ⎜⎝ 2π ⎟⎠ cos ⎜ t ( t − t6 ) + 2 ⎟ ⎥ − Amax , t6 < t ≤ t7
⎪⎩ ⎣2 ⎝ J ⎠⎦
⎧ J peak ⎡ t 2
⎛ tJ ⎞ ⎛ tJ ⎞
2
⎛ 2π π ⎞⎤
⎪ ⎢ −⎜ ⎟ −⎜ ⎟ cos ⎜ t + ⎟⎥ , 0 ≤ t ≤ t1
⎪ 2 ⎢⎣ 2 ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠ ⎥⎦
⎪
⎪ Amax ( t − t1 ) + V1
2
, t1 < t ≤ t2
⎪
⎪ J peak ⎡ ( t − t2 ) ⎛ t J ⎞ ⎛ t J ⎞ π ⎞⎤
2 2 2
⎛ 2π
⎪ ⎢ −⎜ ⎟ −⎜ ⎟ cos ⎜ ( t − t2 ) + ⎟⎥ + Amax ( t − t2 ) + V2 , t 2 < t ≤ t3
⎪ 2 ⎣⎢ 2 ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠⎥
⎦
⎪
v(t ) = ⎨V peak t3 < t ≤ t 4
⎪
⎪ J peak ⎡ ( t − t4 ) ⎛ t J ⎞ ⎛ t J ⎞ π ⎞⎤
2 2 2
⎛ 2π
⎪− 2 ⎢ 2 −⎜ ⎟ −⎜ ⎟ cos ⎜ ( t − t4 ) + ⎟ ⎥ + Vmax , t4 < t ≤ t5
⎪ ⎢⎣ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠⎥
⎦
⎪− A (t − t ) + V , t5 < t ≤ t6
⎪ max 5 5
⎪J ⎡ ( t − t6 ) ⎛ tJ ⎞2 ⎛ tJ ⎞2 ⎛ 2π
2
π ⎞⎤
⎪ peak ⎢ −⎜ ⎟ −⎜ ⎟ cos ⎜ ( t − t6 ) + ⎟ ⎥ − Amax ( t − t6 ) + V6 , t 6 < t ≤ t7
⎪ 2 ⎣⎢ 2 ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠⎥
⎦
⎩
Position, x(t ) =
⎧J ⎡ 3 2 3
⎤
⎪ peak ⎢ t − ⎜⎛ t J ⎟⎞ t − ⎛⎜ t J ⎞⎟ cos ⎛⎜ 2π t + π ⎞⎟ ⎥ , 0 ≤ t ≤ t1
⎪ 2 ⎣⎢ 6 ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠ ⎦⎥
⎪
⎪ Amax
⎪ 2 ( t − t1 ) + V1 ( t − t1 ) + x(t1 ), t1 < t ≤ t2
2
⎪
⎪ J peak ⎡ ( t − t2 ) ⎛ t J ⎞ 2 π ⎞⎤ A
3 3
⎛ tJ ⎞ ⎛ 2π
⎟ ( t − t2 ) − ⎜ ( t − t2 ) + ⎟ ⎥ + max ( t − t2 ) + V2 ( t − t2 ) + x(t2 ), t2 < t ≤ t3
2
⎪ ⎢ −⎜ ⎟ cos ⎜
⎪ 2 ⎢⎣ 6 ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠ ⎥⎦ 2
⎪
⎨V peak (t − t3 ) + x(t3 ), t3 < t ≤ t4
⎪
⎪ J peak ⎡ ( t − t4 ) ⎛ t J ⎞ π ⎞⎤
3 2 3
⎛ tJ ⎞ ⎛ 2π
⎪ 2 ⎢ 6
− − ⎜ 2π ⎟ ( t − t 4) ⎜
− ⎟ cos ⎜ ( t − t4 ) + ⎟ ⎥ + Vmax ( t − t4 ) + x(t4 ), t4 < t ≤ t5
⎪ ⎣⎢ ⎝ ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠ ⎦⎥
⎪ A
⎪− max (t − t5 ) 2 + V2 (t − t5 ) + x(t5 ), t5 < t ≤ t6
⎪ 2
⎪ ⎡ ⎤
⎪ J peak ⎢ ( t − t6 ) − ⎛ t J ⎞ ( t − t ) − ⎛ t J ⎞ cos ⎜⎛ 2π ( t − t ) + π ⎟⎞ ⎥ − Amax ( t − t )2 + V ( t − t ) + x(t ), t < t ≤ t
3 2 3
⎪⎪ 2 ⎢ 6 ⎜ ⎟ 6 ⎜ ⎟ 6 6 1 6 6 6 7
⎩ ⎣ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ tJ 2 ⎠ ⎥⎦ 2
105
International Journal of Advanced Robotic Systems, Vol. 5, No. 1 (2008)
106