Keywords

1 Introduction

Automatic Guided Vehicles (AGVs) have been used in many industries due to their high efficiency for material handling [1]. Several kinds of wheel configurations for AGVs have been developed such as differential drive [2], tricycle [3], and car-like wheeled configuration [4]. However, non-holonomic constrains of these wheel configurations limit the performance of the AGV. The AGVs performance can be improved by developing AGVs maneuverability and flexibility since the higher these characteristics are, the better the AGVs performance is. To get higher maneuverability and flexibility, four wheel independent steering configuration is proposed for the development of AGVs, hereafter referred to as 4WIS-AGVs. Four wheels independent steering configuration is a wheel configuration that each wheel orientation is adjusted separately. As a result, 4WIS-AGVs can move in any direction in their work environment.

Since the AGV works automatically, safety is crucial in AGVs operation. Therefore, obstacle avoidance algorithms were proposed to increase the safety and prevent serious damage to the system. There have been several approaches to realize obstacle avoidance of mobile robot. Choi et al. [5], Borenstein and Koren [6] only considered translational motion and the shape of the robot was assumed as a circle, while the orientation of AGV was not considered. Fox et al. [7], Wang and Chirikjian[8] considered the orientation of the robot but worked only in known environment where the obstacle position is known. Suzuki and Takahashi [9], Nagata et al. [10], Tsuzaki and Yoshida [11] proposed an obstacle avoidance control based on fuzzy potential field method (FPM). This method computed control input for the translational and rotational motion considering the shape of the robot and obstacle. The information was obtained from the external sensor. Therefore, this algorithm could work in unknown environment. However, it wasn’t applied to the real system.

Controlling four wheels configuration to make the 4WIS-AGVs is an interesting topic in the practical field applications. This is because the orientation of each wheel has to be adjusted with particular formation such that the vehicle can move in the expected direction. Thus, appropriate controllers are necessary for 4WIS-AGVs. There have been many researches developing controllers for four wheel steering vehicles, such as optimal control [12], nonlinear decoupling control with an observer [13], unknown disturbance observer [14] and multi-mode control strategy based on fuzzy selector [15]. However, these controllers are not sufficient for 4WIS-AGVs, because 4WIS-AGVs need a path tracking controller that can make them follow reference path and consequently handle material. In [16], a path tracking control for four wheels independently steered ground robotic vehicles was proposed. In the controller, they implemented velocity control and wheel steering angle control to track a reference path. Simulation results showed that the controller could adjust wheel velocity and steering angles. However, this controller was considered still not suitable to be applied to 4WIS-AGVs because the vehicle position and orientation were not adjusted properly in this controller.

To solve the above problem, this paper proposes an obstacle avoidance algorithm for translational and rotational motions of four wheels independent steering (4WIS) automatic guided vehicles (AGV) based on fuzzy potential method (FPM) and backstepping control method. Firstly, the system is described and mathematic modeling is introduced. Secondly, the Fuzzy Potential Field (FPM) is proposed. The shape and the size of the vehicle are considered when the FPM generates the optimal path from current position to goal position. This method allows the rectangular shape AGV to avoid unknown obstacles safely and efficiently. A backstepping controller is proposed to track the optimal path generated by FPM. Finally, the simulations s are conducted to verify the effectiveness of proposed algorithm. The simulation results show that the proposed algorithm can make the 4WIS-AGV avoid the obstacles in cluttered environment.

2 System Description and Modeling

The 4WIS-AGV system of this paper is shown in Fig. 1 and was developed in [17]. It consists of body platform, 4 wheel driving systems, laser measurement system LMS151 and laser navigation system NAV200. The 4WIS-AGV has dimension of 0.50 (h) × 0.70 (w) × 1.00 (l) m.

Fig. 1
figure 1

4WIS-AGV system

The electrical configuration of the 4WIS-AGV is shown in Fig. 2. The controller consists of an industrial PC with RS-232 communication. Users give commands to the 4WIS-AGV through Graphic User Interface (GUI) on monitor. The control signals generated from the controller are sent to 8 motor drivers. Subsequently, these signals are converted to Pulse Width Modulation (PWM) signals which are then converted to voltage signals to control 4 DC motor for steering and 4 DC motor for driving. Laser navigation system NAV200 is used to obtain the vehicle position data. The position data is then sent to the trajectory tracking controller in industrial PC. Laser measurement system LMS151 is used to measure the distance between AGV and the obstacles.

Fig. 2
figure 2

Electrical configuration of 4WIS-AGV

A configuration of the 4WIS-AGV for the system modeling is shown in Fig. 3. The \( XOY \) coordinate is a global coordinate whereas the \( xAy \) coordinate is a local coordinate. In this paper, it is assumed that the mass and inertia of the robot is small. Therefore, the changes in speed is nearly instantaneous. Furthermore, it is assumed that in the wheel there is no sliding and the wheel is pure rolling. The kinematic modeling of 4WIS AGV is given as follows:

$$ {\dot{\mathbf{q}}} = \left[ {\begin{array}{*{20}c} {\dot{X}} \\ {\dot{Y}} \\ {\dot{\theta }} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\cos \theta } & { - \sin \theta } & 0 \\ {\sin \theta } & {\cos \theta } & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{x} } \\ {v_{y} } \\ \omega \\ \end{array} } \right] \equiv {\mathbf{S\xi }} $$
(1)

where \( \dot{X} \) is the vehicle linear velocity in X axis of global coordinate, \( \dot{Y} \) is the vehicle linear velocity in Y axis of global coordinate, and \( \dot{\theta } \) is the vehicle angular velocity in global coordinate. \( v_{x} \) is the vehicle linear velocity in x axis of local coordinate, \( v_{y} \) is the vehicle linear velocity in y axis of local coordinate, and \( \omega \) is the vehicle angular velocity in local coordinate. \( (X_{r} ,Y_{r} ) \) is reference position and \( \theta_{r} \) is reference orientation. \( \delta_{i} \) and \( \omega_{i} \) \( (i = 1,2,3,4) \) are the \( i{\text{th}} \) wheel steering angle and the \( i{\text{th}} \) wheel angular velocity, respectively.

Fig. 3
figure 3

Configuration for system modeling

Given the total linear velocity of AGV in local coordinate \( v_{A} \) and vehicle sideslip angle \( \beta \), the vehicle linear velocities \( v_{x} \) and \( v_{y} \) in local coordinate can be obtain as follows:

$$ \left\{ {\begin{array}{*{20}c} {v_{x} = v_{A} \cos \beta } \\ {v_{y} = v_{A} \sin \beta } \\ \end{array} } \right. $$
(2)

The vehicle sideslip angle \( \beta \) is defined as angle between the movement directions of AGV and \( x \) axis of AGV as follows:

$$ \beta = {\text{atan2}}(v_{y} ,v_{x} ) $$
(3)

Target velocities in x and y direction \( u_{wx,i} \) and \( u_{wy,i} \) of the \( i{\text{th}} \) wheel in local coordinate of AGV can be obtained as follows:

$$ \left\{ {\begin{array}{*{20}c} {u_{wx,i} = v_{x} - p_{y,i} \omega } \\ {u_{wy,i} = v_{y} + p_{x,i} \omega } \\ \end{array} } \right. $$
(4)

where (\( p_{x,i} \), \( p_{y,i} \)) is the position of the \( i{\text{th}} \) wheel in local coordinate of AGV as shown in Fig. 3.

The \( i{\text{th}} \) wheel steering angle \( \delta_{i} \) and the \( i{\text{th}} \) wheel angular velocity \( \omega_{i} \) are given as follows:

$$ \delta_{i} = \tan^{ - 1} \left( {\frac{{u_{wy,i} }}{{u_{wx,i} }}} \right) $$
(5)
$$ \omega_{i} = \frac{{u_{wx,i} \cos \delta_{i} + u_{wy,i} \sin \delta_{i} }}{{R_{w} }} $$
(6)

where \( R_{w} \) is a radius of a wheel.

3 Fuzzy Potential Method

In this section, the outline of fuzzy potential method (FPM) as in [13], which is an obstacle avoidance method based on fuzzy logic, is explained. The purpose of FPM is to generate references position \( (X_{r} ,Y_{r} ), \) reference orientation \( \theta_{r} , \) reference linear velocity \( (v_{xr} ,v_{yr} ) \) and reference angular velocity \( \omega_{r} \) for the AGV. Figure 4 depicts the protection area of vehicle and obstacle. The FPM is based on the membership function of translational and rotational motions. For FPM in order to simplify the membership functions considering the shape and size of the vehicle, the rectangular shape of the vehicle is considered as a capsule shape which contains the vehicle as depicted in Fig. 4, where \( c_{a} ,c_{L} ,c_{R} \) are design parameters. FPM sets safe distance \( d_{s} \) around obstacles as shown in Fig. 4 to avoid obstacles and it computes the control input for avoiding the regions.

Fig. 4
figure 4

Parameters of FPM

This method has three steps. The first step is generating potential method membership function (PMF). The second step is to decide the command velocity vector using fuzzy inference to integrate the PMFs. The design method of PMF for translational and rotational movements that takes into consideration the width of the vehicle is described in the following sections.

3.1 FPM for Translational Movement

Firstly, PMF \( \mu_{d}^{t} \) is specified by depth and width, which are calculated based on the geometrical relation between an obstacle and the AGV as in [13]. \( a \) is defined as the depth of the concave PMF and can be described as follows:

$$ a = \frac{{\alpha - \left\| {do} \right\|}}{{c_{a} + d_{s} }}\quad if\;\left\| {do} \right\| < \alpha $$
(7)

where \( do \) is distance between AGV and object, and \( \alpha \) is design parameter. PMF \( \mu_{d}^{t} \) can be obtained by scanning the passable direction by scanning angle direction \( \varphi \) as shown in Fig. 4. \( \varphi_{L} \) is minimum passable direction on the left side of vehicle, and \( \varphi_{R} \) is minimum passable direction on the right side of vehicle. If the obstacle dimension is known, the value of \( \varphi_{R} \) and \( \varphi_{L} \) can be obtained from calculation as in [13]. Figure 5 shows the scanning result of passable direction.

Fig. 5
figure 5

Example of FPM for object

Secondly, to represent the direction to the goal, PMF \( \mu_{g}^{t} \) is generated as shown in Fig. 6. The maximum value \( g_{a} \) can be obtained at an angle toward the goal \( \theta_{g} \) and the minimum value \( g_{b} \) can be obtained at an angle opposite to the goal. The values of \( g_{a} \) and \( g_{b} \) is defined as follows:

$$ \begin{aligned} g_{a} & = \left\{ {\begin{array}{*{20}c} {\frac{{\left\| {d_{g} } \right\|}}{Th}} & {if\,\left\| {d_{g} } \right\| \le Th} \\ {1.0} & {if\,\left\| {d_{g} } \right\| \le Th} \\ \end{array} } \right. \\ g_{b} & = \eta g_{a} \quad (0 \le \eta < 1) \\ \end{aligned} $$
(8)

where \( d_{g} \) is distance from the current position of AGV to the goal, and \( \eta \) is design parameter. \( Th \) is threshold value that chosen to make the AGV decelerate and stop smoothly when it closes to the goal.

Fig. 6
figure 6

Example of FPM for a goal

Thirdly, the PMF \( \mu_{d}^{t} \) and PMF \( \mu_{g}^{t} \) are integrated by fuzzy operation into \( \mu_{mix}^{t} \) using logical product (\( \wedge \)) as shown in Eq. (9). Figure 7 shows the example of mixed PMF for translational movement.

$$ \mu_{mix}^{t} = \mu_{g}^{t} \wedge \mu_{d}^{t} $$
(9)
Fig. 7
figure 7

Example of mixed PMF for translational movement

Finally, by defuzzification, the translational reference velocity vector is calculated as a reference sideslip angle \( \beta_{r} \) and the reference total linear velocity \( v_{Ar} \) based on the mixed PMF \( \mu_{mix}^{t} (\beta_{r} ) \) as follows:

$$ v_{Ar} = \mu_{mix}^{t} (\beta_{r} )(v_{\hbox{max} } - v_{\hbox{min} } ) + v_{\hbox{min} } $$
(10)

where \( v_{\hbox{max} } \) and \( v_{\hbox{min} } \) are maximum and minimum linear velocities of the vehicle, respectively.

3.2 FPM for Rotational Movement

Firstly, to enable a wide vehicle to decide the appropriate AGV orientation \( \theta \) for real time obstacle avoidance, PMF \( \mu_{o}^{r} \) as shown in Fig. 8 is generated as follows:

$$ \mu_{o}^{r} = \mu_{e}^{r} - \mu_{c}^{r} $$
(11)

where PMF \( \mu_{e}^{r} \) is generated based on the distances from the center of the vehicle to obstacles corresponding to all directions obtained from laser scanner LMS151, and PMF \( \mu_{c}^{r} \) is generated based on the capsule case represented as the dimension of the protecting area of the AGV.

Fig. 8
figure 8

Example of PMF for obstacle

Secondly, to represent the direction from current position to the goal, PMF \( \mu_{g}^{t} \) is generated as shown in Fig. 9. This PMF is similar with the PMF for translational movement in Fig. 6.

Fig. 9
figure 9

Example of FPM for a goal

Thirdly, the PMF \( \mu_{o}^{r} \) and PMF \( \mu_{g}^{r} \) are integrated by fuzzy operation into \( \mu_{mix}^{r} \) using logical product (\( \wedge \)) as shown in Eq. (12). Figure 10 shows the example of mixed PMF for rotational movement.

$$ \mu_{mix}^{r} = \mu_{g}^{r} \wedge \mu_{o}^{r} $$
(12)
Fig. 10
figure 10

Example of mixed PMF for rotational movement

Finally, by defuzzification, the rotational reference direction \( \varphi_{ori} \) is calculated based on \( \mu_{mix} \). The rotational reference direction \( \varphi_{ori} \) is decided as the direction that minimizes the \( \mu_{mix} \). Based on \( \varphi_{ori} \), reference angular velocity \( \omega_{r} \) is calculated as follows:

$$ \omega_{r} = \mu_{mix}^{r} (\varphi_{ori} )(\omega_{\hbox{max} } - \omega_{\hbox{min} } ) + \omega_{\hbox{min} } $$
(13)

where \( \omega_{\hbox{max} } \) and \( \omega_{\hbox{min} } \) are maximum and minimum angular velocity of the vehicle.

3.3 Planning Reference Path

The purpose of this subsection is generate the reference position \( (X_{r} ,Y_{r} ) \) and orientation \( \theta_{r} \) with given total reference linear velocity of AGV in local coordinate \( v_{Ar} \) and reference sideslip angle \( \beta_{r} \) obtained from FPM for translational movement and \( \omega_{r} \) obtained from FPM for rotational movement. Substituting \( v_{Ar} \) and \( \beta_{r} \) instead of \( v_{A} \) and \( \beta \) into (2) and (3), \( v_{xr} ,v_{yr} \) and \( \omega_{r} \) can be obtained. Furthermore, since the path is generated in real time, the references position \( (X_{r} ,Y_{r} ) \) and reference orientation \( \theta_{r} \) can be obtained as follows:

$$ \left[ {\begin{array}{*{20}c} {X_{r(k + 1)} } \\ {Y_{r(k + 1)} } \\ {\theta_{r(k + 1)} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {X_{r(k)} } \\ {Y_{r(k)} } \\ {\theta_{r(k)} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {\cos (\theta + \omega_{r} )} & { - \sin (\theta + \omega_{r} )} & 0 \\ {\sin (\theta + \omega_{r} )} & {\cos (\theta + \omega_{r} )} & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{xr} } \\ {v_{yr} } \\ {\omega_{r} } \\ \end{array} } \right]\Delta T $$
(14)

where \( \Delta T \) is the sampling time, and subscripts k and k + 1 are the discrete time steps.

4 Controller Design

The purpose of this section is to design a controller for the 4WIS-AGV to track references position \( (X_{r} ,Y_{r} ) \) and orientation \( \theta_{r} \) with vehicle linear velocities \( (v_{xr} ,v_{yr} ) \) and vehicle angular velocity \( \omega_{r} \) generated by the fuzzy potential method (FPM) based on backstepping method.

Firstly, when the vehicle is controlled to track a given reference trajectory, a tracking error vector can be expressed as follows:

$$ {\mathbf{e}} = \left[ {\begin{array}{*{20}c} {e_{1} } \\ {e_{2} } \\ {e_{3} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\cos \theta } & {\sin \theta } & 0 \\ { - \sin \theta } & {\cos \theta } & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {X - X_{r} } \\ {Y - Y_{r} } \\ {\theta - \theta_{r} } \\ \end{array} } \right] \Leftrightarrow {\mathbf{e}} = {\mathbf{Se}}_{{\mathbf{q}}} $$
(15)

Time derivative of the tracking error vector can be obtained as follows:

$$ {\dot{\mathbf{e}}} = \left[ {\begin{array}{*{20}c} {\dot{e}_{1} } \\ {\dot{e}_{2} } \\ {\dot{e}_{3} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 1 & 0 & {e_{2} } \\ 0 & 1 & { - e_{1} } \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{x} } \\ {v_{y} } \\ \omega \\ \end{array} } \right] - \left[ {\begin{array}{*{20}c} {\cos \theta } & {\sin \theta } & 0 \\ { - \sin \theta } & {\cos \theta } & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{xr} } \\ {v_{yr} } \\ {\omega_{r} } \\ \end{array} } \right] $$
(16)

Subsequently, the stability of the system is checked by Lyapunov stability theory. A Lyapunov function candidate is chosen as follows:

$$ V = \frac{1}{2}e_{1}^{2} + \frac{1}{2}e_{2}^{2} + \frac{1}{2}e_{3}^{2} $$
(17)

Stability checking is used to find a control law U that can make the system stable and track the given reference trajectory. From the error dynamic in (16), the time derivative of the Lyapunov function equation \( \dot{V} \) is obtained as follows:

$$ \begin{aligned} \dot{V} {=} & e_{1} \dot{e}_{1} + e_{2} \dot{e}_{2} + e_{2} \dot{e}_{2} \\ {=} & e_{1} (v_{x} - v_{xr} \cos e_{3} - v_{yr} \sin e_{3} ) \\ & \quad + e_{2} (v_{y} - v_{xr} \cos e_{3} - v_{yr} \sin e_{3} ) \\ & \quad + e_{3} (\dot{\theta } - \dot{\theta }_{r} ) \\ \end{aligned} $$
(18)

Lyapunov stability criterion states that system is stable when \( \dot{V} \le 0 \). Therefore, to meet this condition, a control law U is chosen as follows:

$$ U = \left[ {\begin{array}{*{20}c} {v_{x} } \\ {v_{y} } \\ \omega \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} { - k_{1} e_{1} + v_{xr} \cos e{}_{3} + v_{yr} \sin e{}_{3}} \\ { - k_{2} e_{2} - v_{xr} \sin e{}_{3} + v_{yr} \cos e{}_{3}} \\ { - k_{3} e_{3} + \omega_{r} } \\ \end{array} } \right] $$
(19)

where k 1 , k 2 and k 3 are positive constants.

Substituting (19) into (18) yields

$$ \dot{V} = - k_{1} e_{1}^{2} - k_{2} e_{2}^{2} - k_{3} e_{3}^{2} $$
(20)

The proposed controller for is summarized in the block diagram in Fig. 11.

Fig. 11
figure 11

Block diagram of the proposed controller

5 Simulation Results

The effectiveness of the proposed method was verified by simulation. The parameters for simulation are shown in Table 1. The simulation results of proposed method are shown in Figs. 12, 13, 14, 15 and 16. Figure 12 shows that the vehicle moves from start position to goal position and performed translational and rotational movements simultaneously and succeeded in going between two divided objects. Finally, the vehicle reaches the goal position.

Table 1 Parameter and initial values
Fig. 12
figure 12

Simulation result

Fig. 13
figure 13

Simulation result for \( v_{xr} ,v_{yr} , \) and \( \omega_{r} \)

Fig. 14
figure 14

Error vector

Fig. 15
figure 15

\( i{\text{th}} \) wheel angular velocity \( \omega_{i} \)

Fig. 16
figure 16

\( i{\text{th}} \) wheel steering angle \( \delta_{i} \)

Figure 13 shows the linear velocity and angular velocity of the vehicle. In the beginning, the vehicle moves and increases the linear velocity gradually. The linear velocity of the vehicle decreases smoothly when the vehicle approaches goal position. The angular velocity increases at 25 s to avoid the collision with the obstacle, and decreases at 30 s after passing the obstacle. Figure 14 shows the error vector obtained from the backstepping controller. It can be observed that all the errors have very small values and finally converged to zero. The result shows that the controller successfully tracks the generated path obtained from the FPM. Figures 15 and 16 show the \( i{\text{th}} \) wheel angular velocity and the \( i{\text{th}} \) wheel steering angle, respectively.

6 Conclusion

In this paper, an obstacle avoidance algorithm for translational and rotational motion of a four wheel independent steering automatic guided vehicle (4WIS-AGV) was proposed based on fuzzy potential method (FPM) and backstepping control method. The FPM algorithm generated the optimal path from the current position to the goal position considering the size of the vehicle. The generated trajectory was tracked successfully using backstepping controller. The effectiveness of the proposed algorithm was verified by simulations. It was shown that the proposed algorithm could make the 4WIS-AGV avoid the obstacles in cluttered environment safely and efficiently.