Skip to content

Commit bf69f44

Browse files
authored
add turning radius calculation doc (AtsushiSakai#1068)
* add turning radius calculation doc * add turning radius calculation doc * add turning radius calculation doc * add turning radius calculation doc * add turning radius calculation doc * add turning radius calculation doc * add turning radius calculation doc
1 parent ad600cd commit bf69f44

File tree

5 files changed

+98
-0
lines changed

5 files changed

+98
-0
lines changed

docs/modules/appendix/appendix_main.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Appendix
77
:maxdepth: 2
88
:caption: Contents
99

10+
steering_motion_model
1011
Kalmanfilter_basics
1112
Kalmanfilter_basics_2
1213

70.7 KB
Loading
14.6 KB
Loading
21.3 KB
Loading
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
2+
Steering Motion Model
3+
-----------------------
4+
5+
Turning radius calculation by steering motion model
6+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7+
8+
The turning Radius represents the radius of the circle when the robot turns, as shown in the diagram below.
9+
10+
.. image:: steering_motion_model/steering_model.png
11+
12+
When the steering angle is tilted by :math:`\delta`,
13+
the turning radius :math:`R` can be calculated using the following equation,
14+
based on the geometric relationship between the wheelbase (WB),
15+
which is the distance between the rear wheel center and the front wheel center,
16+
and the assumption that the turning radius circle passes through the center of
17+
the rear wheels in the diagram above.
18+
19+
:math:`R = \frac{WB}{tan\delta}`
20+
21+
The curvature :math:`\kappa` is the reciprocal of the turning radius:
22+
23+
:math:`\kappa = \frac{tan\delta}{WB}`
24+
25+
In the diagram above, the angular difference :math:`\Delta \theta` in the vehicle’s heading between two points on the turning radius :math:`R`
26+
is the same as the angle of the vector connecting the two points from the center of the turn.
27+
28+
From the formula for the length of an arc and the radius,
29+
30+
:math:`\Delta \theta = \frac{s}{R}`
31+
32+
Here, :math:`s` is the distance between two points on the turning radius.
33+
34+
So, yaw rate :math:`\omega` can be calculated as follows.
35+
36+
:math:`\omega = \frac{v}{R}`
37+
38+
and
39+
40+
:math:`\omega = v\kappa`
41+
42+
here, :math:`v` is the velocity of the vehicle.
43+
44+
45+
Turning radius calculation by 2 consecutive positions of the robot trajectory
46+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47+
48+
In this section, we will derive the formula for the turning radius from 2 consecutive positions of the robot trajectory.
49+
50+
.. image:: steering_motion_model/turning_radius_calc1.png
51+
52+
As shown in the upper diagram above, the robot moves from a point at time :math:`t` to a point at time :math:`t+1`.
53+
Each point is represented by a 2D position :math:`(x_t, y_t)` and an orientation :math:`\theta_t`.
54+
55+
The distance between the two points is :math:`d = \sqrt{(x_{t+1} - x_t)^2 + (y_{t+1} - y_t)^2}`.
56+
57+
The angle between the two vectors from the turning center to the two points is :math:`\theta = \theta_{t+1} - \theta_t`.
58+
Here, by drawing a perpendicular line from the center of the turning radius
59+
to a straight line of length :math:`d` connecting two points,
60+
the following equation can be derived from the resulting right triangle.
61+
62+
:math:`sin\frac{\theta}{2} = \frac{d}{2R}`
63+
64+
So, the turning radius :math:`R` can be calculated as follows.
65+
66+
:math:`R = \frac{d}{2sin\frac{\theta}{2}}`
67+
68+
The curvature :math:`\kappa` is the reciprocal of the turning radius.
69+
So, the curvature can be calculated as follows.
70+
71+
:math:`\kappa = \frac{2sin\frac{\theta}{2}}{d}`
72+
73+
Target speed by maximum steering speed
74+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75+
76+
If the maximum steering speed is given as :math:`\dot{\delta}_{max}`,
77+
the maximum curvature change rate :math:`\dot{\kappa}_{max}` can be calculated as follows:
78+
79+
:math:`\dot{\kappa}_{max} = \frac{tan\dot{\delta}_{max}}{WB}`
80+
81+
From the curvature calculation by 2 consecutive positions of the robot trajectory,
82+
83+
the maximum curvature change rate :math:`\dot{\kappa}_{max}` can be calculated as follows:
84+
85+
:math:`\dot{\kappa}_{max} = \frac{\kappa_{t+1}-\kappa_{t}}{\Delta t}`
86+
87+
If we can assume that the vehicle will not exceed the maximum curvature change rate,
88+
89+
the target minimum velocity :math:`v_{min}` can be calculated as follows:
90+
91+
:math:`v_{min} = \frac{d_{t+1}+d_{t}}{\Delta t} = \frac{d_{t+1}+d_{t}}{(\kappa_{t+1}-\kappa_{t})}\frac{tan\dot{\delta}_{max}}{WB}`
92+
93+
94+
References:
95+
~~~~~~~~~~~
96+
97+
- `Vehicle Dynamics and Control <https://link.springer.com/book/10.1007/978-1-4614-1433-9>`_

0 commit comments

Comments
 (0)