Obstacle 11 20
Obstacle 11 20
GND: Ground
COM: Communication
DIY: Do It Yourself
x
RPM: Revolutions Per Minute
xi
Chapter 1: Introduction
1.1 Background
In our world today, ROBOTICS is a very interesting research area, which is fast growing as it is the
simplest way for modifying modern day technology. Robotics plays a major role in technology
advancement, which is why I decided to work on the robotics field and design something intelligent
to make human life simpler.
An autonomous robot is one which can move without any external interference in an environment
which is unstructured and unknown to the robot. The robot is able to do this because of the software
intelligence embedded inside it in order for it to be able to sense the environment, detect any obstacle
which is in its path and move round the environment by avoiding these obstacles [1]. In the designing
of an autonomous robot, there are many robotic designs that can be used. To make a selection of the
design to be used, the main factor to be put into consideration is the physical environment in which
the robot will be operated. Examples of autonomous robots: walking robots, drones, robotic cars, and
snake robots.
The obstacle avoiding robot has enough intelligence in order for it to cover the maximum area of the
space provided and it has an ultrasound sensor which is used to detect any obstacles in the path of the
robot, after which it will move in a direction to avoid the obstacle [2].
The main aim of such technology is that it can play a huge role in today’s transportation as it can be
used to avoid accidents, which generally happen on congested roads by applying emergency brake. If
this technology is used in a car, it will automatically sense any objects (living things or objects) in the
path of the car and automatically apply breaks or take a side to the available free space where
necessary.
1
environmental changes could occur and cause the robot to run into an object in its way so it is
necessary for the robot to be able to adapt to the change by avoiding any objects in its path. This
problem of effective trajectory planning is what has led to the need for a robot that can detect and
avoid objects in a pre-computed path, or objects that appear suddenly. The solution to this trajectory
problem involves the use of sensors by the robot to detect objects and avoid them thereby making
the robot to be more independent since it would not require external influence.
1.3 Motivation
The idea of an autonomous robot is not a new one. Every company that uses mobile robots to
perform tasks would like the robot to be able to carry out its functions effectively without any
external control. With the advancement in the GPS technology, achieving the independent robot
movement is closer to reality. However, the concern of how the robot sees and interacts with its
environment must be addressed before the robot is used. To address this concern, sensors are used to
collect enough environmental data that the robot interprets for smooth navigation of the robot. This
method of addressing the concern leaves three questions: is it possible for a sensor to collect enough
data for collision-free movement? Also, is there a fast and effective method of interpreting this data
to the robot? Lastly, after interpretation, can the robot react and make correct decisions as quick and
precise as a human would in the same environment? These are questions that must be answered to
allow for human-free robot movement
The Aim of this project is to design and implement a robot car that is able to move round an unknown
environment without running into obstacles in its path.
The robot car should have the capacity to detect obstacles in its path based on a predetermined
threshold distance.
After detection of an obstacle, the robot should be able to change its direction to a relatively open
path by making an autonomous decision.
The robot car should not require any external control during its operation.
The robot car should be able to measure distance between itself and an obstacle in real time.
The robot car should be able to operate effectively in an environment which is unknown to it.
2
Chapter 2: Literature review
2.1 Artificial Intelligence
Artificial Intelligence (AI) is the ability of a computer or a computer controlled-robot to think and
perform tasks like humans. An artificially intelligent machine is one which is capable of learning,
reasoning, planning, perception, problem solving [3].
This field was discovered on the claim that human intelligence can be sufficiently described to the
point that a machine can simulate it.
Robotics is an interdisciplinary research area at the interface of computer science and engineering.
Robotics involves the design, construction, operation, and use of robots [4]. The goal of robotics is to
design intelligent machines in order to help human beings in their daily activities. This technology
has resulted in automated machines that can replace humans in manufacturing processes or dangerous
environments. These robots have numerous structures depending on their functions.
Robots may be designed to act on their decision-making ability or to be controlled by humans [5].
Robots work by trying to mimic/replicate the human behaviour as they are made to possess the same
components of human beings. These components include:
3
2.3 Robot Learning
Robot learning involves the combination of robotics and machine learning by the learning of different
algorithms by the robot in order to apply techniques which will enable it to obtain skills and adjust to
its surrounding. The robot learning can take place by imitation of humans or by self-learning guided
by a human [6].
An Autonomous robot is one that is capable of performing activities with a high level of self-control
and without any form of externa control. This kind of robot is achieved by integrating artificial
intelligence, robotics, and information engineering [7].
Autonomous robots, just like human beings, additionally can settle on their own choices and afterward
respond accordingly. A genuinely autonomous robot is one that can sense and recognize its
environment, settle on choices dependent on what it sees and afterwards, actuate a movement in
response. Regarding mobility, for instance, the decision-based activities incorporate but however are
not restricted to the following: starting, stopping, and manoeuvring around obstructions that are in
their path.
Some mobile robots utilize ultrasound sensors to detect obstacles or infrared. These sensors work in
similar fashion to animal echolation. The robot sends a beam of light or a sound signal out and
observes the reflection distance by identifying how long it takes the signal to bounce back [8], [9].
In some advanced robots, stereo vision is used. This method uses two cameras for depth perception
and image recognition in order to detect and categorize different objects.
In more advanced robots, they can be able to study new environments and adjust to them. They even
work on areas with uneven land as they can link land patterns with certain actions. For example, a
rover robot constructs a land map by utilizing its visual sensors and if the map depicts uneven land
patterns, the robot can adapt to the environment and choose to take a different path. Such kind of
systems can be highly beneficial for exploration and can be used for operation on other planets [10],
[11].
Figure 2.1 shows the bot developed by NASA called Urbie which was designed for military uses. It
is able to move through stairs and other such paths [12].
4
Figure 2.1 Autonomous Urbie by NASA. (Adapted from NASA, 2001)
When the robot gets stuck, it moves its appendages in every way until something works out. Force
sensors work very closely with the actuators, instead or computer directing everything based on a
program.
2.5 Arduino
2.5.1 Overview
Arduino is a widely used open-source prototyping platform which is based on software and hardware
that are easy to use. It is made up of a programmable microcontroller unit and the Arduino Integrated
Development Environment (IDE) which is used to write and upload codes to the Arduino board. The
Arduino board is the physical microcontroller boards used for making electronic projects. Arduino
boards are capable of reading inputs and converting them into outputs. You can send instructions to
the microcontroller on the Arduino board and tell it what to do using the Arduino programming
language (based on Wiring). Due to the open-source nature of the Arduino environment, codes are
easily written and uploaded to the Arduino board. Arduino is written in Java so it can be run on Linux,
Mac OSX and windows [13], [14].
5
2.5.2 Features
The key features of Arduino include:
The Microcontroller boards are capable of detecting signals (analog or digital) from different
sensors and convert the input into an output by triggering a response such as activating a motor,
turning a LED on or off, and many other actions.
The microcontroller board functions can be controlled by sending instructions to the
microcontroller using the Arduino Integrated Development Environment.
An external piece of hardware for loading code into the board is not requires unlike in some other
circuit boards. Just a USB cable is required.
It is simple to learn the Arduino programming language as it is a simplified version of C++.
Arduino allows for a standard form factor, which breaks the functions of the board to a more
accessible package.
6
2.5.3 Advantages
Arduino boards are widely used in making different engineering projects and different applications.
The Arduino software is simple and adequate for projects and it runs on Windows, Mac, and Linux.
Arduino is utilized in schools to make low cost scientific instruments in order to verify the principles
of chemistry and physics [15], [16], [17]. Arduino is preferred over other microcontrollers because:
Simpler working process due to its friendly programming environment and USB availability.
It is inexpensive.
It uses a Cross-platform application.
It has a clear and simple programming environment.
It has an open source and extensible software.
It has an open source and extensible hardware.
What differentiates the boards is the number of inputs, outputs, speed, operating voltage, form factor
etc.
Some boards have been designed to be embedded and have no programming interface (hardware) that
needs to be bought separately. Some are made to run directly from a 3.7V battery while others need
at least 5V [18][19].
7
Table 2.1: Arduino Board Types based on ATMEGA328 microcontroller