Sie sind auf Seite 1von 4

Obstacle avoidance by a mobile robot

Anthony Madezco 1a,*, Byron Manzo 2b, Hugo Wong 3c, Elizabeth Martinez4a
a
Ingeniería en Mecatrónica, Escuela Superior Politécnica del Litoral, Guayaquil, Ecuador
b
Ingeniería en Petróleo, Escuela Superior Politécnica del Litoral, Guayaquil 0939314022, Ecuador
c
Ingeniería en Electricidad, Escuela Superior Politécnica del Litoral, Guayaquil, Ecuador

ARTICLE INFO ABSTRACT


Keywords: The purpose of this paper is to show how to build a mobile robot that can avoid the
Arduino obstacles across its path. By manufacturing the system, programming the Arduino
Mobile robot microcontroller and using an ultrasonic sensor, the robot will detect the distance of
Ultrasonic sensor every object in the environment, when it approaches a certain distance to an object,
the microcontroller will send a signal to the motors so that it rotates the robot and
thus avoid the obstacle and continue moving across the environment. The robot´s
construction process was divided into 3 parts:
The first was to design the body of the robot (we used domestic materials, of easy
access) and to determine the most optimal type of locomotion (wheels, legs, etc.).
The second consisted in creating the program that will control the robot and finally
the construction and testing process to evaluate the operation of the robot. The
results obtained by the tests indicate that the robot is able to move on a flat surface
without hitting any obstacle.

1. Introduction - Conducting tests in order to determine failures to


In every mobile robotic system, the skill to avoid correct.
obstacles is crucial. The robot must be trusted to - Conclusions
complete its tasks without being a hazard to itself or
other [1]. This project is focused in the application of this
concept to our robot. 2. State of art
There are tasks, such as exploration or gathering in To build the small mobile robot, the first thing we have to
rough terrain, or fields such as the automation of take into account is the design of a chassis in which we
vehicles, in which the evasion of obstacles can be can install all the necessary components for its
decisive. operation. For this reason, we cannot choose too small
dimensions, since we could not add the different parts
Through the manufacture of the frame and the required by the robot, or too large, as it would mean a
programming of the Arduino microcontroller, the robot waste of resources.
will have the ability to avoid all kinds of obstacles and
thus be able to continue moving without hitting any object The components necessary for the construction of the
that is in its way. robot are two servomotors, two bidirectional wheels
(connected to the servomotors, therefore do not
The steps for the construction of the robot are detailed influence the design of the chassis), an omnidirectional
below and are based on the following principles: wheel, a base for batteries, a plate with the
- Analysis of hardware and software necessary for the microcontroller and two sensors of infrared front.
operation of the robot. The distribution of the parts in the chassis is as follows:
- Design of the physical structure of the robot as well as  The servomotors will be installed on the side of
the programming of the actions to be executed. the chassis.

*
Anthony Madezco.
Address: C/ Perimetral km 30.5, Escuela Superior Politécnica del Litoral, Guayaquil 090903, Ecuador.
E-mail address: usuario@espol.edu.ec (N. Surname).
1
 The infrared sensors will be located in the the chassis and the hardware components used, and the
external front part. logical design, in which we will talk about the structuring
 The omnidirectional wheel will be added on the of the program carried out for the operation of the robot.
inner front. In relation to the physical design, the robot must have a
 The base for batteries and the microcontroller correct support or chassis to contain all the pieces that
will be installed in the main base of the chassis. will take.
 The chassis will be composed of the base, a
The two bidirectional wheels are connected to the
front piece, a rear piece and two side pieces.
Servomotors, this will allow a mayor control in the
displacement of the robot, and the omni-directional
wheel will provide the ease of rotation.
3. Development
The objective of this project is to build a mobile robot th
at avoid obstacles. By the correct selection of the parts The robot will always be detecting the presence of
the robot will have the ability to move without colliding, obstacles, so it must constantly receive the signals
dodging all the obstacles in his path. obtained by the sensors to see if there is any obstacle. If
you do not find a must continue moving forward and if
Hardware requirements
you detect it rotates to one side or another, depending
The device will have two bidirectional wheels and one on the sensor that has located the obstacle.
omnidirectional wheel. This will allow that our robot can
When an obstacle is found, the robot must turn to the
rotate and spin, means significant energy savings, since
side where it is opposite to the one that has located the
instead of having to feed four servomotors (4-wheel
obstacle.
chassis) or have heavier wheels (caterpillar chassis) we
only must feed two servomotors (The omnidirectional When the robot has the free path, it should move forward
wheel is purely mechanical, it does not need power). In until it redetects something that blocks the passage.
addition to the design requirements, for the construction Design
of the chassis we will use foam, which is very light.
For the design process we will focus on 2: the physical
Once the chassis is defined, we have to choose the design and the logical design.
necessary hardware components. As it was said before,
we will use three wheels, two bidirectional and one
omnidirectional. For the operation of the two-way wheels
we will need two servomotors (one for each).
For the obstacle detection, we will install one ultrasonic
sensor, that will send a signal showing the distance of
each obstacle that is facing.
Also, we will need batteries to feed the robot and the rest
of the components, and finally a microcontroller
responsible for distributing the input signal to the
analogue outputs.
Table 1 materials
 Physical Design
Materials Quantity Price $ Total $ The robot design consists of two clearly differentiated
parts. The physical design of the robot, which includes
Arduino genuino Uno 1 12 12 the chassis and the hardware components used, and the
Protoboard 1 3 3 logical design, in which we will talk about the structuring
l293d 1 1 1 of the program carried out for the operation of the robot.
Ultrasonic sensor 1 3.5 3.5 In relation to the physical design, the robot must have a
Biderectional wheel 2 1.5 3 correct support or chassis to contain all the pieces that
will take.
Omnidirectional
wheel 1 1.5 1.5 The two bidirectional wheels are connected to the
Servomotors, this will allow a mayor control in the
Dc motors with displacement of the robot, and the omni-directional
gearbox 2 2 4 wheel will provide the ease of rotation.
Jumpers 16 0.1 1.6 In the support will also be the base of the batteries that
Battery 9V 2 3 6 will feed all the components of the robot
Total 35.6 The output of the sensors will be connected to the inputs
of the Arduino, and this will send a signal to the engines
Software requirements to act according to the logic imposed

The main functions that the robot must perform are: to The distribution of the parts in the chassis is as follows:
detect obstacles, to move forward and to turn to avoid •The servomotors will be installed on the side of the
obstacles. chassis.
The robot design consists of two clearly differentiated •The infrared sensors will be located on the external front
parts. The physical design of the robot, which includes side.
2
•The Omni-directional wheel will be added to the inner
front.
•The battery base and microcontroller will be installed in
the main chassis base.
•The chassis will consist of the base, a front piece, a rear
piece and two side pieces. The two main functions are "detecting" and "forward".
The "detecting" function will tell us if it finds an obstacle
or not, and if it does, what is the sensor that detects the
obstacle.
The "forward" function will manage the data received
3.2
from the detect function. If it detects no obstacle,
"forward" will call the function "dosmotor" with the
necessary parameters for the robot to continue its way
forward. If you find an object to the right or to the left, you
will call the function "right" or "left", depending on where
4.1 the obstacle is, which will rotate the robot until there is
no obstacle and you can continue the march.
The "right" and "left" functions make the wheels turn to
the corresponding side and call "detect" to see if there
are still obstacles or not. So that the robot does not enter
a movement loop, it will continue to turn in the same
direction until neither sensor detects obstacles in the
3.1 path. If this is not the case, the robot could enter a neutral
position, where it detects an obstacle on one side, begins
to turn to the opposite side, stops detecting the obstacle
and detects another on the opposite side, so it would turn
in the opposite direction and would detect the first
obstacle again, which would mean that it turned towards
3.3 both sides without stopping.
Taking as reference the Arduino website in general (
ref.1 and ref.3 ) and specifically the M Environment M
section (ref.4), we know that Arduino is an open source
electronic prototyping platform based on flexibility and
ease of use of your hardware and software.
The Arduino open source environment makes it easy to
wri analogWrite(pwm1,200);
analogWrite(pwm2,200);te code and upload it to the
2.1
Arduino board or use it on Windows, Mac OS and Linux.
The environment is written in Java and based on
5.1 Processing, avr - gcc, and another open source
software.
2.2
Programs written using Arduino are called "sketches."
These "sketches" are written in the text editor and saved
with the file extension "ino". It has features for cutting /
pasting and for searching / replacing text. The
"feedback" area provides information while saving the
"sketch" or is exported to the hardware and shows the
errors that have occurred. The console displays text
output through the Arduino environment including
complete error messages and other information. The
lower right corner of the window shows connected
Arduino board and the serial port. The buttons on the
toolbar allow you to compile and load programs, create,
 Logical design
open and save sketches, and open the "serial monitor"
Once analyzed the requirements of the program that we that checks the status of the current serial port.
have to create to achieve the desired behavior of the
The Arduino development environment contains a text
robot, we must proceed to its design. editor for writing code, a message area, a text console,
Every program made using the Arduino language has a a toolbar with buttons for common functions, and a series
"setup" function, where we indicate the input and output of menus where there are additional functions. In
signals, and a main loop that contains the primary addition, it connects with the Arduino hardware to load
functions of the program. From this loop is where we will the programs and communicate with them.
design the program of robot.

3
select the "Upload" option in the "File" menu. The current
Arduino boards will automatically reset and begin
charging.
The Arduino platform is programmed by using its own
language based on the high-level programming
language "Processing". However, it is possible to use
other programming languages and popular applications
in Arduino, because Arduino uses serial data
transmission supported by a large number of
programming languages. For those who do not support
the serial format natively, it is possible to use
intermediary software that translates the messages sent
by both parties to allow fluid communication.

The programming language "Processing", which is


based on the programming language "Arduino", is a
programming language and

Open source integrated development environment


based on Java, easy to use, and that serves as a means
for teaching and producing multimedia and interactive
digital design projects. For detailed information on the
composition of the language, consult the Arduino
website

4. Conclusions
We can notice that the realization of a robot does not
require large monetary investments, nor does it need the
latest generation technology, and with the analysis of this
proposal we can see that with limited resources it will be
possible to develop an automated robot with a
microcontroller.

For the realization of the present project a


microcontroller is required to control the platform. In this
way a notary can be given that the use of
microcontrollers is of great importance and these have
great versatility, since, as in the present project, the
automatic control of almost any process can be
performed.

References
[1] Gullstrand G. Obstacle Avoidance for a Mobile Robot.
n.d.
[2] Javier Vicente Busquets Mataix, A. (2014).
Development of a small robot mobile based
microcontroller (undergraduate thesis).
Once you have selected the correct board and serial Polytechnic University of Valencia, Spain.
port, you have to press the load button on the toolbar or

Das könnte Ihnen auch gefallen