Chapter 1 Introduction
1.5 Thesis Organization
The remainder of this thesis is organized as follows. In Chapter 2, we describe the system configuration of the vehicle and the ideas of the proposed methods for person following and environment learning, path analysis, and vehicle navigation. In Chapter 3, the proposed method for person following using sequences of ultrasonic signals and fuzzy logic control techniques is described. In Chapter 4, the proposed method for analyzing learned data to get some guiding information and adapting to different environments is described. In Chapter 5, the proposed method for vehicle guidance using sequences of ultrasonic signals and fuzzy logic control techniques is described. Furthermore, some satisfactory experimental results are shown in Chapter 6. Finally, some conclusions and suggestions for future works are given in Chapter 7.
Chapter 2
System Configuration and Navigation Principles
2.1 Introduction
When we visit an unfamiliar place like an office in a building, we usually desire some guidance to introduce the environment to us. It will be very convenient if we use an autonomous vehicle instead of asking a person to act as a guide. The vehicle may hit walls or objects in the environment during navigation if the available paths of the environment are narrow in space. In order to solve this problem, we use an autonomous vehicle equipped with ultrasonic sensors in this study. Ultrasonic sensors in general can detect distances to walls or objects around. Therefore, the vehicle can use the measured distance information to avoid hitting walls or objects in the environment. The entire hardware equipments and software of the autonomous vehicle used in this study are described in Section 2.2.
In addition, in order to use the vehicle to act as a guide in different environments, it is desired that the vehicle can learn some information of the environment. For this, it is inconvenient to conduct the learning work by keying in the information of the environment by hand. One way out is to enable the vehicle to follow a person automatically, and learn the route the person walks through, also in an automatic way. We will introduce the main idea of this approach to learning by person following in Section 2.3. Then, the vehicle also needs a method to transform the learned information into some guidance information, including, for example, corridor widths in environments, when to turn, when to introduce objects, etc. These
goals can be achieved if we can design a method for path analysis. We will introduce the main idea of a path analysis method we propose in this study in Section 2.4. Finally, in order to use the vehicle to navigate more smoothly, we design further a navigation method using fuzzy logic control techniques. We will introduce the main idea of this method in Section 2.5.
2.2 System Configuration
In the proposed vehicle system, we use the Pioneer 3, a vehicle made by ActiveMedia Robotics Technologies Inc., as a test bed. A diagram illustrating the configuration of this system is shown in Figure 2.1.
Figure 2.1 Equipment of vehicle system used in this study.
2.2.1 Hardware configuration
The hardware equipments we use in the proposed system include two parts. The first is a notebook which we use to run programs. A kernel program can be executed on the notebook
status information of the vehicle.
The second part is the vehicle itself which has an aluminum body. The size of it is 44cm×38cm×22cm with two drive wheels and a caster. The diameter of each drive wheel is 16.5cm. In the vehicle, there are three 12V batteries which supply power to the vehicle to run 18-24 hours by one charge. The vehicle can reach a forward speed of 160cm per second and a rotation speed of 300 degrees per second. The embedded control system can be used to control the vehicle to move forward, backward, and turn around by the user’s commands. The vehicle is also equipped with two range devices. Each one of them includes 8 sonars. The appearance of the vehicle is shown in Figure 2.2.
2.2.2 Software configuration
The ActiveMedia Robotics provides an application interface ARIA to control the vehicle used in this study. The ARIA is an object-oriented interface which is usable under Linux or Win32 in the C++ language and can dynamically control the velocity, heading, and other navigation settings of the vehicle. We use the ARIA to communicate with the hardware embedded system of the vehicle. Also, we use the Borland C++ Builder as the development tool in our experiments.
2.3 Idea of Proposed Person Following and Learning Method
The proposed learning method is based on human following by ultrasonic signals, as mentioned previously. When the vehicle follows a person, it uses the distance between the person’s leg and itself to decide if it has to conduct fine tuning of its direction or not. Then it
has to handle two kinds of situations. If it detects the situation that the person does not stop, it uses the distance as input to the fuzzy controller we design to decide if it has to adjust its running angle and speed or not. However, if the person stops, the vehicle has to stop and then it has to know what the person commands it to do. For this, the following four kinds of situations are handled by the vehicle, as proposed in this study.
(a) (b)
Figure 2.2 The vehicle Pioneer 3 with a notebook used in this study. (a) A front view of the vehicle. (b) A back view of the vehicle.
The first is that the vehicle should turn left or right. The second is that the vehicle should learn the information of objects or places which will be introduced by the vehicle as a guide during navigation. The third is that the person is just too close to the vehicle at the current moment, but the person does not want to stop. In this situation, the vehicle is designed to do nothing and continue learning. In the just-mentioned three kinds of situations, the vehicle is designed to learn the path data in the mean time. The final situation is the end of learning.
These major steps are shown in Figure 2.3.
Start of learning
Does the person stop or not ?
Path Data Human leg detection
Person following by fuzzy logic control techniques
Stop the vehicle Yes
No
What does the person want to tell to the vehicle ?
Learn path data
Turn left or right Learn object or place data Nothing
End of learning
Object or place Data
Figure 2.3 An illustration of proposed process of automatic learning by person following and fuzzy logic control techniques.
2.4 Idea of Proposed Path Analyzing and Guiding Method
After the vehicle learns the data of paths, objects, and places in the learning stage, it has to analyze the learned data. For this, five kinds of information are identified in this study for use during navigation, as described in the following.
The first is when the vehicle has to turn. If it turns just according to the originally learned position, it may turn too early or too late possibly because of incremental mechanic errors.
This may cause the vehicle to hit the wall or to go too close to it after turning. Therefore, we propose a method for deciding when the vehicle has to turn, and combine this method with the result of path analysis.
The second kind of information for use in navigation is the distance between walls in environments. An indoor navigation path usually includes several different environments, like a corridor, an entrance hall, etc. The wall distances in these environments may be not the same.
Therefore, the vehicle has to know the wall distances in environments and when to use them.
We have designed the fuzzy controller mentioned previously to have such an ability, which will be described in Chapter 5.
The third kind of information for use in navigation is the intolerable distance between the vehicle and obstacles in front of the vehicle. When the vehicle is on a place where it has to turn at the learning stage, it may be blocked by a wall in front of it. Therefore, the vehicle needs to know the intolerable distance to keep itself from hitting the wall. Besides, when a person walks in the front of the vehicle and the person’s leg is detected by ultrasonic sensors, the vehicle also needs to have an idea about how to deal with such a situation.
The fourth kind of information for use in navigation is when to stop. If the vehicle does not have to turn, it needs to know the timing for this action. The final kind of information is
when to introduce to objects or places as a guide. The major steps are illustrated in Figure 2.4.
Figure 2.4 Illustration of proposed path analysis process.
2.5 Idea of Proposed Vehicle Navigation Method
After analyzing the learned path, the vehicle will have the path data of the environment.
Then, it can use such information to navigate. The proposed navigation method has two major steps and conducts three tasks. The first step is reading the data of the navigation path which is separated into several segments by the turning nodes obtained from analyzing the learned path. Accordingly, the vehicle can navigate and work as a guide. The second step is navigation in the environment by proposed fuzzy logic control techniques.
In addition, the vehicle is designed in this study to perform three tasks at every path segment. The first task is finding the position of the turning node if this segment is not the final one. The second task is introducing objects or places as a guide if necessary. The third task is stopping navigation when one of the following two situations happens. The first is that an unexpected mistake happens. The second is that this segment is the final one where the vehicle arrives at the end of navigation. These major steps are illustrated in Figure 2.5.
Figure 2.5 Illustration of proposed navigation process.
Chapter 3
Human Following by Fuzzy Logic Control for Path Learning
3.1 Introduction
In this chapter, we introduce the details of the proposed learning procedure. The environmental feature used for learning in this study is path data. In the learning procedure, the vehicle follows a person and learns path data in the mean time. In Section 3.2, we describe how to gather path data when the vehicle follows a person in an indoor environment.
In Section 3.3, we review the fundamental fuzzy control theory and describe the principle of a fuzzy logic controller which we design for this study. In Section 3.4, we describe how to use fuzzy logic control techniques in the proposed method. Furthermore, we describe how to detect and handle three kinds of situations which happen when the person stops and after the vehicle stops in Section 3.5. Finally, we summarize the above-mentioned techniques and describe an algorithm of the proposed learning procedure in Section 3.6. An illustration of the learning procedure is shown in Figure 3.1.
3.2 Learning of Path Data
While the vehicle follows a person, it learns path data in the mean time. For this, it will obtain four kinds of information from different sources, as identified in this study.
Figure 3.1 Illustration of proposed learning procedure.
First, the odometer provides the speed information of the vehicle. Second, the computer provides the information of the running time of the program which controls the vehicle. Third, the ultrasonic sensors provide the distance information with respect to surrounding objects
and walls. The ultrasonic sensors equipped in the vehicle include fore and aft sonar arrays.
The sonar positions in all sonar arrays are fixed: one on each side and six facing outward at 20-degree intervals. The fore sonar array of the vehicle is shown in Figure 3.2(a). A simple illustration of the fore and aft sonar arrays is shown in Figure 3.2(b). Fourth, the person provides the command information with regard to surrounding environments. The command information is that describing the ways the person interacts with the vehicle. For example, if the vehicle detects that the person stops, it will stop, too. In other words, the command information does not mean the information which the operator of the vehicle keys in by hand.
Besides, in order to draw a map to show on the screen of a computer, the vehicle also records the position information which consists of the coordinates (x, y, θ) in the world coordinate system provided by the odometer. A list of all kinds of the learned information is shown in Table 3.1.
Table 3.1 All kinds of the learned information.
Type Explanation Command 1 This item records that this node is the first or final one of a path or
not.
Command 2
This is the person’s command.
The vehicle receives it by analyzing the ultrasonic signals and the person’s behaviors.
It includes going front, stopping, restarting, turning, and introducing objects.
Speed This is the speed of the vehicle.
Coordinate (x, y, θ) x and y are coordinates on Cartesian coordinate system.
θ is the direction of the vehicle.
Time This is the information of running time of the program which controls the vehicle.
Angle This is part of the person’s command and represents the angle which the vehicle has to turn
Distances This is an array with 16 elements and represents every distance which detected by the respective ultrasonic sensors.
1 2 3 4 5 6
(a) The fore sonar array of the vehicle.
(b) The fore and aft sonar arrays.
Figure 3.2 Illustration of sonar arrays
1 2 3 4 5 6
3.3 Review of Design Principle of Fuzzy Logic Control System
3.3.1 Fuzzy sets and membership functions [18]
According to Lin and Lee [18], a classical (crisp) set is a collection of distinct objects that can be separated into two groups, members and nonmembers, by a characteristic function defined as Eq. (3.1):
Furthermore, the boundary of a classical set A is rigid and sharp.
On the other hand, a fuzzy set introduces vagueness by eliminating the sharp boundary that divides members from nonmembers in the group. It is defined as a set of ordered pairs by:
( ( ) )
{
, A}
A%= x
μ
% x x∈U . (3.2)In Eq. (3.2), A% is a fuzzy set in the universe of discourse U, and x is an element of U.
In addition, μ is a membership function (characteristic function) of A% and
μ
A%( )
x is the grade (or degree) of membership of x in A%, which indicates the degree that x belongs to A%. The range of μ is a subset composed by the nonnegative real numbers whose supremum is finite.An example of characteristic functions of a classical set A and a fuzzy set A% is shown in Figure 3.3.
0
(a) An example of characteristic function of a classical set A.
0
(b) An example of membership function (characteristic function) of a fuzzy set A%
Figure 3.3 An example of characteristic functions of a classical set A and a fuzzy set A%.
3.3.2 Basic architecture of a fuzzy logic controller [18]
According to Lin and Lee [18], the basic architecture of a fuzzy logic controller is shown in Figure 3.4. It is comprised of four principle components. The first is fuzzifier. The observed data are usually crisp. Therefore, a fuzzifier will be utilized to convert the data into fuzzy numbers (fuzzy data) using membership functions.
The second is fuzzy rule base. It is a collection of fuzzy control rules characterized by fuzzy IF-THEN rules. In the case of multi-input-single-output systems, the general form of the fuzzy control rules is:
Ri: IF x is Ai,…, AND y is Bi, THEN z = Ci, i = 1, 2, …, n, (3.3) where x, …, y are linguistic variables representing the process state variables, and z is a
linguistic variable representing the control variable. Ai,…, Bi, and Ci are linguistic values of the linguistic variables x, …, y, and z.
States or Outputs Fuzzifier Inference
Engine Defuzzifier Plant
Fuzzy Rule base
μ(x) μ(y) y x x
Figure 3.4 Basic architecture of a fuzzy logic controller. [18]
The operation AND which we used for fuzzy sets in this study is defined as the minimum
function. It is a basic operation of fuzzy sets.
The third is inference engine. It imitates people to make decisions according to fuzzy if-then rules and fuzzy reasoning. The forth is defuzzifier. It transforms the result in the space of fuzzy control actions into some actions in the space of nonfuzzy (crisp) control actions.
3.4 Proposed Fuzzy Logic Control Techniques for Human Following
3.4.1 Proposed method for controlling vehicle direction
The sonar positions in the sonar arrays shown in Figure 3.2 are not directly in front of the vehicle. Therefore, if the vehicle moves straight and follows a person as shown in Figure 3.5(a), it can not detect the person by ultrasonic sensors. However, if it moves on a curve path as shown in Figures 3.5(b) or 3.5(c), it will detect the person by ultrasonic sensors. In order to keep following the person, the vehicle has to keep the person’s position directly in front of it.
However, it may move on a curve path because of incremental mechanic errors or the person may not walk on a straight path. For this, if it detects that the person is on the left hand side of it as shown by Figure 3.5(b), then it can know that it is moving on a curve path and adjusts its direction by turning left. Similarly, if it detects that the person is on the right hand side of it as shown by Figure 3.5(c), then it can know that it is moving on a curve path and adjusts its direction by turning right. In addition, in order to improve the chance that it can detect the person by ultrasonic sensors, the values detected from ultrasonic sensors No. 2, 3, 4, and 5 will be used as the inputs of the proposed fuzzy controller.
(a) (b) (c)
Figure 3.5 Three kinds of relative positions of the vehicle and a person. The blue circle represents the person and the arrows represent the signals of the ultrasonic sensors equipped in front of the vehicle. (a) The vehicle moves on a straight path. (b) The vehicle moves on a curve path. (c) The vehicle moves on a curve path.
According to this idea, the input variables for the proposed fuzzy controller are D2, D3, D4, and D5, which represent the values measured from ultrasonic sensors No. 2, 3, 4, and 5.
The controlled linguistic variable is denoted as ANGLE, which represents the angle and direction of the vehicle’s rotation. Three fuzzy terms are defined for each input variables.
They are near (NE), middle (MI), and far (FA). The membership functions of the three fuzzy terms, NE, MI, and FA, are illustrated in Figure 3.6. Furthermore, seven fuzzy terms are denoted for the controlled linguistic variable. They are from negative large to positive large.
The negative large means that the vehicle turns a large angle to the left. Similarly, the positive
seven fuzzy terms of the linguistic variable ANGLE is illustrated in Figure 3.7.
Figure 3.6 The membership functions of the three fuzzy terms, NE, MI, and FA.
A total of 81 fuzzy rules are represented as a fuzzy rule matrix which is shown in Table 3.2, and the fuzzy terms of the output variable ANGLE is represented as seven numbers which are described in Table 3.3. The form of each fuzzy rule is:
Ri : IF D2 is Ak, D3 is Bk, D4 is Ck, AND D5 is Ek, THEN ANGLE is Fj. (3.4) In Eq. (3.4), Ak, Bk, Ck, and Ek represent the linguistic values of the three fuzzy terms, NE, MI,
and FA, respectively. Furthermore, Fj represents the linguistic values of the seven fuzzy terms of the output variable.
The degree that d belongs to NE, MI, or FA.
μ
NE(
d)
d : The distance detected from ultrasonic sensor No. 2, 3, 4, or 5.
μ
FA(
d-)
50 90 120 cm
μ
MI(
d)
Table 3.2 The fuzzy rule matrix for controlling the vehicle direction.
Left \ Right D5 NE5 MI5 FA5
D2 D3 \ D4 NE4 MI4 FA4 NE4 MI4 FA4 NE4 MI4 FA4
NE3 3 2 2 3 2 2 3 2 2
MI-3 4 3 2 4 3 1 4 3 1
NE2
FA3 4 4 3 4 5 1 4 5 0
NE3 3 2 2 3 2 2 3 2 2
MI3 4 3 1 4 3 1 4 3 1
MI2
FA3 4 5 5 4 5 3 4 5 0
NE3 3 2 2 3 2 2 3 2 2
MI3 4 3 1 4 3 1 4 3 1
FA2
FA3 4 5 6 4 5 6 4 5 3
Table 3.3 The fuzzy terms of the output variable ANGLE.
ANGLE
Left-hand rotation--- straight --- Right-hand rotation Large angle of rotation ---zero--- Large angle of rotation
Left-hand rotation--- straight --- Right-hand rotation Large angle of rotation ---zero--- Large angle of rotation