|
| 1 | + |
| 2 | +Quintic polynomials planning |
| 3 | +---------------------------- |
| 4 | + |
| 5 | +Motion planning with quintic polynomials. |
| 6 | + |
| 7 | +|2| |
| 8 | + |
| 9 | +It can calculate 2D path, velocity, and acceleration profile based on |
| 10 | +quintic polynomials. |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +Quintic polynomials for one dimensional robot motion |
| 15 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 16 | + |
| 17 | +We assume a one-dimensional robot motion :math:`x(t)` at time :math:`t` is |
| 18 | +formulated as a quintic polynomials based on time as follows: |
| 19 | + |
| 20 | +.. math:: x(t) = a_0+a_1t+a_2t^2+a_3t^3+a_4t^4+a_5t^5 |
| 21 | + :label: eq1 |
| 22 | + |
| 23 | +:math:`a_0, a_1. a_2, a_3, a_4, a_5` are parameters of the quintic polynomial. |
| 24 | + |
| 25 | +It is assumed that terminal states (start and end) are known as boundary conditions. |
| 26 | + |
| 27 | +Start position, velocity, and acceleration are :math:`x_s, v_s, a_s` respectively. |
| 28 | + |
| 29 | +End position, velocity, and acceleration are :math:`x_e, v_e, a_e` respectively. |
| 30 | + |
| 31 | +So, when time is 0. |
| 32 | + |
| 33 | +.. math:: x(0) = a_0 = x_s |
| 34 | + :label: eq2 |
| 35 | + |
| 36 | +Then, differentiating the equation :eq:`eq1` with t, |
| 37 | + |
| 38 | +.. math:: x'(t) = a_1+2a_2t+3a_3t^2+4a_4t^3+5a_5t^4 |
| 39 | + :label: eq3 |
| 40 | + |
| 41 | +So, when time is 0, |
| 42 | + |
| 43 | +.. math:: x'(0) = a_1 = v_s |
| 44 | + :label: eq4 |
| 45 | + |
| 46 | +Then, differentiating the equation :eq:`eq3` with t again, |
| 47 | + |
| 48 | +.. math:: x''(t) = 2a_2+6a_3t+12a_4t^2 |
| 49 | + :label: eq5 |
| 50 | + |
| 51 | +So, when time is 0, |
| 52 | + |
| 53 | +.. math:: x''(0) = 2a_2 = a_s |
| 54 | + :label: eq6 |
| 55 | + |
| 56 | +so, we can calculate :math:`a_0, a_1, a_2` with eq. :eq:`eq2`, :eq:`eq4`, :eq:`eq6` and boundary conditions. |
| 57 | + |
| 58 | +:math:`a_3, a_4, a_5` are still unknown in eq :eq:`eq1`. |
| 59 | + |
| 60 | +We assume that the end time for a maneuver is :math:`T`, we can get these equations from eq :eq:`eq1`, :eq:`eq3`, :eq:`eq5`: |
| 61 | + |
| 62 | +.. math:: x(T)=a_0+a_1T+a_2T^2+a_3T^3+a_4T^4+a_5T^5=x_e |
| 63 | + :label: eq7 |
| 64 | + |
| 65 | +.. math:: x'(T)=a_1+2a_2T+3a_3T^2+4a_4T^3+5a_5T^4=v_e |
| 66 | + :label: eq8 |
| 67 | + |
| 68 | +.. math:: x''(T)=2a_2+6a_3T+12a_4T^2+20a_5T^3=a_e |
| 69 | + :label: eq9 |
| 70 | + |
| 71 | +From eq :eq:`eq7`, :eq:`eq8`, :eq:`eq9`, we can calculate :math:`a_3, a_4, a_5` to solve the linear equations: :math:`Ax=b` |
| 72 | + |
| 73 | +.. math:: \begin{bmatrix} T^3 & T^4 & T^5 \\ 3T^2 & 4T^3 & 5T^4 \\ 6T & 12T^2 & 20T^3 \end{bmatrix}\begin{bmatrix} a_3\\ a_4\\ a_5\end{bmatrix}=\begin{bmatrix} x_e-x_s-v_sT-0.5a_sT^2\\ v_e-v_s-a_sT\\ a_e-a_s\end{bmatrix} |
| 74 | + |
| 75 | +We can get all unknown parameters now. |
| 76 | + |
| 77 | +Quintic polynomials for two dimensional robot motion (x-y) |
| 78 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 79 | + |
| 80 | +If you use two quintic polynomials along x axis and y axis, you can plan for two dimensional robot motion in x-y plane. |
| 81 | + |
| 82 | +.. math:: x(t) = a_0+a_1t+a_2t^2+a_3t^3+a_4t^4+a_5t^5 |
| 83 | + :label: eq10 |
| 84 | + |
| 85 | +.. math:: y(t) = b_0+b_1t+b_2t^2+b_3t^3+b_4t^4+b_5t^5 |
| 86 | + :label: eq11 |
| 87 | + |
| 88 | +It is assumed that terminal states (start and end) are known as boundary conditions. |
| 89 | + |
| 90 | +Start position, orientation, velocity, and acceleration are :math:`x_s, y_s, \theta_s, v_s, a_s` respectively. |
| 91 | + |
| 92 | +End position, orientation, velocity, and acceleration are :math:`x_e, y_e. \theta_e, v_e, a_e` respectively. |
| 93 | + |
| 94 | +Each velocity and acceleration boundary condition can be calculated with each orientation. |
| 95 | + |
| 96 | +:math:`v_{xs}=v_scos(\theta_s), v_{ys}=v_ssin(\theta_s)` |
| 97 | + |
| 98 | +:math:`v_{xe}=v_ecos(\theta_e), v_{ye}=v_esin(\theta_e)` |
| 99 | + |
| 100 | +References: |
| 101 | +~~~~~~~~~~~ |
| 102 | + |
| 103 | +- `Local Path Planning And Motion Control For Agv In |
| 104 | + Positioning <http://ieeexplore.ieee.org/document/637936/>`__ |
| 105 | + |
| 106 | + |
0 commit comments