Using fuzzy reasoning to guide a mobile robot on a rough terrain.
Dumitriu, Adrian
1. INTRODUCTION
Navigation problems for autonomous mobile robots are very complex
and require a large amount of information from vision and range sensors,
to build up a map of environment, and powerful command processors to
optimize trajectory. These types of sensors cannot seize robots'
inclination angles on rough terrains, in order to make necessary
trajectory corrections to avoid turning over. Acceleration sensors seem
to be very suitable for this purpose and the main problem this paper
tries to solve is to find an efficient tool to integrate data from
acceleration sensors with other sensors data, in order to generate an
adequate reaction of the robot. Acceleration sensors have been used by
(Zhang et al., 2003) for calculating the orientation angles of the
modules of a self-reconfigurable mobile PolyBot robot. (Corke et al.,
2007) discuss the complementarity of inertial sensors (including
acceleration sensors) and vision sensors and describe some fundamental
approaches to fusing their outputs and survey the field. Due to its
capabilities of interfering and approximate reasoning under uncertainty,
Fuzzy Logic seems to be a suitable tool for sensor integration.
(Saffiotti, 2001) details the main aspects regarding the use of Fuzzy
logic in autonomous navigation for: behaviour design; behaviour
coordination; environment modelling; layer integration. (Innocenti et
al., 2007) describe a multi-agent architecture with cooperative fuzzy
control for a mobile robot, while (Vadakkepat et al., 2007) use a fuzzy
behaviour-based architecture to decompose the complicated interactions
of multiple mobile robots into modular behaviours at different
complexity levels. (Chapman, 1994) presents some very efficient and
interesting solutions and C++ routines for implementing fuzzy logic to
8051 8-bit microcontrollers, which have served as a model to do
something similar in PBASIC for the 8-bit microcontroller of the BASIC
Stamp 2SX board.
The paper presents some author's experiments carried out with
a very simple mobile robot, controlled by an on-board 8-bit
microcontroller and equipped with an infrared range sensor and a 2-axes
acceleration sensor. Original contributions are:
* Use of an acceleration sensor to control inclination angles with
respect to two axes;
* Integration of data from infrared range and acceleration sensors
and control of robot's movements and behaviour using fuzzy
reasoning;
* Design of an adequate fuzzy controller and development of PBASIC
software routines to implement fuzzy logic to the 8-bit microcontroller.
[FIGURE 1 OMITTED]
2. ROBOT USED FOR EXPERIMENTS
For experiments with acceleration sensors a wheeled robot, named
IZEBOT (Inex Innovative Equipment), has been used. The structure of the
body plate of the delivered kit allows building up the robot structure
presented in Fig. 1.
IZEBOT uses for each of the two wheels a 6/9V and 180 mA DC motor
and a ratio of 48:1, with an output torque of 0,4 Nm. DC motors are
controlled via PWM outputs and LM 293 power drivers. PBASIC PWM commands
allow speed control in 255 steps.
Standard configuration includes two touch sensors, three IR
reflector sensors and an IR ranger sensor. Each of the two wheels has 8
oval-shaped holes, used as wheel codes, which during rotation generate
impulses counted by adequate incremental sensors.
The control module is build around a BASIC Stamp 2SX (8-bit)
microcontroller board and includes:
* Two DC motor drivers with status indicators to show motor
direction;
* 8 channel analog ports with a 10-bit A/D converter that can
accept up to +5 V;
* 7 channel digital I/O ports (P0/P);
* RS-232 serial port;
* 16 kB memory;
Programs for IZEBOT are developed in PBASIC language and BASIC
Stamp environment. Instructions allow access to individual I/O ports,
thus, disclosing all the facilities the control module is capable.
This type of robot has been chosen, because integration of the
acceleration sensors used, Memsic 2125 from Parallax Inc., is very rapid
and simple, both from hardware and software point of view. This sensor,
in MEMS technology, contains, internally, a small heater. This heater
warms a "bubble" of air within the device. When gravitational forces act on the bubble, it moves and this movement is detected by very
sensitive thermopiles (temperature sensors). On-board electronics
convert the bubble position (relative to g-forces) into pulse outputs
for the X and Y axes.
Main characteristics:
* Measure 0 to [+ or -] 2g on either axis, with less than 1 mg
resolution;
* Simple, pulse (PWM) outputs of g-force for X and Y axis,
requiring just two I/O pins;
Two sensors, placed in adequate boards, have been mounted on the
left and right outsides of the body plate (Fig. 1) using angled joiners
and screws and have been connected to 4 available I/O ports, one for
each pulse output of g-force for x and y axis of a sensor.
Pulse outputs allow to calculate accelerations with the formula:
A = ((T1 / 10) - 0.5) / 12.5%, (1)
since T2 is calibrated to 10 milliseconds at 25[degrees].
The T1 duration (Memsic output) of each Pin is captured, every 10
ms, in Variable using a "PULSIN Pin, 1, Variable" command for
each I/O pin, where the "1" operand indicates that a
high-pulse, which begins with a 0--to--1 transition, is measured.
Since BASIC Stamp2SX (8-bit) microcontroller has a pulse-time of
0.8 [micro]s, up to 12.500 pulses can be counted in 10 ms. 6.250 pulses
correspond to a 0g acceleration and 6250+1462/6250-1462 pulses to 1g
acceleration. in positive or negative direction of the measured axis.
The GP2D120 infrared ranger module can measure a range from 4 to 30
cm, with an output voltage between 0,4 and 2,4 V, when supplied by +5V.
A 10 bit ADC converts sensor output in a proportional number as input to
the microcontroller.
A lot of experiments have been carried out (Dumitriu, 2008), based
on following assumptions and conclusions:
* Axes of the co-ordinate system attached to the robot are selected
in accordance to the wheels' configuration and the moving direction
of the robot: X axis is the along the median line of the wheels,
pointing in the moving direction, Z axis is perpendicular to the base
plate, pointing in the upwards direction and Y axis is along the wheel
axis.
* Rotations, the robot can be subject to, are restricted: it must
lie only on his wheels and rotations with respect to X and Y axes cannot
exceed some limits, to avoid overthrow. Due to these facts the vertical
acceleration sensor is redundant. The robot can react correctly using
only accelerations measured along the X and Y axes.
* Determination of tilt angles is not of interest, because the
number of pulses can be used directly, avoiding unnecessary
computations. Thresholds for rotation angles are expressed in pulse
numbers: 250 for 10[degrees], 500 for 20[degrees], 730 for 30[degrees]
etc.
* Robot's behavior was based on following rules: while moving
on a flat the robot reacts only to data acquired from other sensors:
push-sensors to detect collisions, IR range sensor to avoid obstacles
and IR reflector sensors to follow a trajectory. Otherwise the robot
reacts to accelerations measured with respect to X and Y axes and, if
deviations from the 0g accelerations pulses exceed certain thresholds
for one or both of these axes, the robot returns in opposite direction
and turns left or right to search for another route.
3. DESIGN OF THE FUZZY CONTROLLER
Since the effect of data evaluation from all types of sensors is
the PWM control of the two DC motors in one sense or another, and
programs become very complex due to the lot of IF ... THEN statements,
used to test different input conditions, the author concluded that fuzzy
logic could be a very efficient tool. A fuzzy controller has been
designed, including:
* 3 fuzzy input variables: distance expressed in ADC units (mean
value of 5 measurements); X-axis and Y-axis accelerations (expressed in
pulses divided by 8, since experiments have proved that the sensor drift
is in the range of [+ or -] 8 pulses).
[FIGURE 2 OMITTED]
Trapezoidal and triangular membership functions (MF) have been
selected for all input variables (fig. 2).
* 2 output fuzzy variables: the PWM outputs for the 2 motors, with
values in the range of [+ or -] 255. Each motor is controlled by 2
processor output pins, one, with positive PWM values for moving in
forward direction, the other with negative PWM values for the opposite
direction. Singleton MFs have been selected for outputs at 0, [+ or -]
64, [+ or -] 128, [+ or -] 192, [+ or -] 255 PWM pulses.
* Rules sets, with different numbers and configurations, based on
the same principle: as far as the terrain is flat and no obstacles are
detected, the robot moves forward with maximum speed. Otherwise it slows
down and turns right or left, or moves backward, to search for another
more suitable path.
4. CONCLUSION
Studies and experiments presented have proved that fuzzy logic is
an efficient tool for a proper and robust reaction of a mobile robot to
his environment, seized with different types of sensors. Future work
will be dedicated to optimize the fuzzy controller with respect to the
membership functions and rules set and to extend the group of sensors
used for a proper robot's behaviour.
5. REFERENCES
Chapman, M. (1994). The Final Word on the 8051, Chapter 11
"Bumpin' Fuzzies with the 8051", pp. 222-255, Available
from: www.8051projects.net, Accessed: 2008-04-15.
Corke, P.; Lobo, J. & Dias, J. (2007). An Introduction to
Inertial and Visual Sensing, The International Journal of Robotics
Research, Vol. 26, No. 6, June 2007, pp. 519-535, SAGE Publications
Dumitriu, A. (2008). Integration of Acceleration Sensors Data in
Robot Control Systems, Proceedings of 2008 IEEE International Conference
on Automation, Quality and Testing, Robotics AQTR 2008 (THETA 16, Poster
Session, pp. 83-87, ISBN 978-973-713-248-2, Cluj-Napoca, Romania, May
2008
Innocenti, B., Lopez, B. & Salvi J. (2007). A multi-agent
architecture with cooperative fuzzy control for a mobile robot, Robotics
and Autonomous Systems, 55 (2007), pp. 881-891, Elsevier B.V.
Saffiotti, A. (2001). Fuzzy Logic in Autonomous Navigation. In:
Fuzzy Logic Techniques for Autonomous Vehicle Navigation, D. Driankov
and A. Saffiotii (Ed.), pp. 3-24, Springer-Physica Verlag
Vadakkepat, P., Peng, X., Kiat, Q. B. & Heng, L. T. (2007).
Evolution of fuzzy behaviours for multi-robotic systems, Robotics and
Autonomous Systems, 55 (2007), pp. 146-161, Elsevier B.V.
Zhang, Y et al (2003). Sensor computations in modular self
reconfigurable robots, In: Experimental Robotics VII, B. Siciliano and
P. Dario (Ed.), pp. 276-286, papers from Eight International Symposium
on Experimental Robotics (ISER 2002), Springer Verlag