Final Report Obstacle Avoiding Robot
Final Report Obstacle Avoiding Robot
Submitted By
Utkarsh Bingewar (T150543003)
Shubham Thakur (T150543028 )
Rupesh Rote (T150543022)
Guide
Prof. Varsha Nanaware
This project is basic stage of any automatic robot.This ROBOT has sufficient
intelligence to cover the maximum area of provided space. It has a ultrasonic sensor which
are used to sense the obstacles coming in between the path of ROBOT. It will move in a
particular direction and avoid the obstacle which is coming in its path. We have used two D.C
motors to give motion to the ROBOT. The construction of the ROBOT circuit is easy and
small .The electronics parts used in the ROBOT circuits are easily available and cheap too.
CHAPTER NO :2
LITERATURE SURVEY
LITERATURE SURVEY:
We reviewed different obstacle detecting robot mechanisms that have been built
by a lot of students and other practitioners that are in exisitance. For an
autonomous mobile robot performing a navigation-based task in a vague
environment, to detect and to avoid encountered obstacles is an important issue and
a key function for the robot body safety as well as for the task continuity. Obstacle
detection and avoidance in a real world environment that appears so easy to
humans is a rather difficult task for autonomous mobile robots and is still a well-
researched topic in robotics.In many previous works, a wide range of sensors and
various methods for detecting and avoiding obstacles for mobile robot purpose
have been proposed. Good references related to the developed sensor systems and
proposed detection and avoidance algorithms can be found. Based on these
developed sensor systems, various approaches related to this work can be grouped
CHAPTER NO: 3
DESIGN & HARDWARE
REQUIREMENTS
Design:
Hardware:
Arduino uno
Ultrasonic sensor
Motor (100 RPM)
Motor driver IC (L293D)
Battery (9V)
Breadboard
CHAPTER NO:4
BLOCK DIAGRAM
BLOCK DIAGRAM
The basic block diagram of the obstacle avoiding car is shown in above figure. Mainly this
block diagram consists of the following essential blocks.
1. Arduino uno
2. Ultrasonic sensor
3. Motor driver(L293D)
1) Arduino uno -
2) Ultrasonic sensor -
3) Motor driver -
It is a motor driver which can provide bi-directional drive current for two motors.
CHAPTER NO:5
WORKING
Working Principle:
The obstacle avoidance robotic vehicle uses ultrasonic sensors for its movements. Arduino is
used to achieve the desired operation. The motors are connected through motor driver IC to
Arduino. The ultrasonic sensor is attached in front of the robot.
Whenever the robot is going on the desired path the ultrasonic sensor transmits the ultrasonic
waves continuously from its sensor head. Whenever an obstacle comes ahead of it the
ultrasonic waves are reflected back from an object and that information is passed to the
arduino. The arduino controls the motors left, right, back, front, based on ultrasonic signals.
In order to control the speed of each motor pulse width modulation is used (PWM).
When ultrasonic sensor detect the object which is kept inside the path it will send the signal
toward the arduino uno and according to that it will it will rotate the motor M3 & M4 in
forward direction and rotate the motor M1 & M2 in reverse direction such way that the car
get moving in left direction .
Similarly in every time when ever an obstacle in found to be in path of car it will detect it and
rotate the car in left direction to avoid the obstacle.
ARDUINO UNO:
Motor drivers take a low current control signal but provide a higher current signal,
thus acting as a current amplifier. The higher current signal drives the motors. L293D
is a motor driver that allows direct current (DC) motor to drive on either direction. It
contains two inbuilt H-bridge driver circuits . To rotate the motor in clockwise or
anticlockwise direction, voltage need to change its direction. H-bridge is a circuit that
allows voltage to be flown in either direction. Hence H-bridge IC are ideal for driving
a DC motor .
Here are 4 input pins for L293d, pin 2,7 on the left and pin 15 ,10 on the right as
shown on the pin diagram. Left input pins will regulate the rotation of motor
connected across left side and right input for motor on the right hand side. The motors
are rotated on the basis of the inputs provided across the input pins as LOGIC 0 or
LOGIC 1. For rotating the motor in clockwise direction the input pins has to be
provided with Logic 1 and Logic 0.Enable pins 1 and 9 (corresponding to the two
motors) must be high for motors to start operating. When an enable input is high, the
associated driver gets enabled. As a result, the outputs become active and work in
phase with their inputs. Similarly, when the enable input is low, that driver is disabled,
and their outputs are off and in the high-impedance state.
Motor (100rpm/ 12V DC Motor)
The obstacle detection and avoiding robot uses two 200rpm and 12V DC geared
motors. The motor used has a 6mm shaft diameter with internal holes. The internal
holes are for easy mounting of the wheels by using screws. It is an easy to use low-
cost motor for robotics application
The direction of mechanical force is given by Fleming’s Left-hand Rule and its
magnitude is given by F = BIL Newton.
DC motors are seldom used in ordinary applications because all electric supply
companies furnish alternating current.
ULTRASONIC SENSOR
An Ultrasonic sensor is a device that can measure the distance to an object by using
sound waves. It measures distance by sending out a sound wave at a specific
frequency and listening for that sound wave to bounce back. By recording the elapsed
time between the sound wave being generated and the sound wave bouncing back, it
is possible to calculate the distance between the sonar sensor and the object.
It emits an ultrasound at 40 000 Hz which travels through the air and if there is an
object or obstacle on its path It will bounce back to the module. Considering the travel
time and the speed of the sound you can calculate the distance.
The HC-SR04 Ultrasonic Module has 4 pins, Ground, VCC, Trig and Echo. The
Ground and the VCC pins of the module needs to be connected to the Ground and the
5 volts pins on the Arduino Board respectively and the trig and echo pins to any
Digital I/O pin on the Arduino Board.
In order to generate the ultrasound you need to set the Trig on a High State for 10 µs.
That will send out an 8 cycle sonic burst which will travel at the speed sound and it
will be received in the Echo pin. The Echo pin will output the time in microseconds
the sound wave traveled.
CHAPTER NO:6
CIRCUIT DIAGRAM
CIRCUIT DIAGRAM
CHAPTER NO:7
APPLICATIONS
APPLICATIONS
This device has application in surveying different landscapes and mapping them.It can also
be used in commercial devices like
Automated lawn mover
Smart room cleaner etc
Obstacle avoiding robots can be used in almost all mobile robot navigation systems.
They can also be used in dangerous environments, where human penetration could be
fatal.
Unmanned vehicle driving
Mining Vehicle that uses Obstacle Detection
CHAPTER NO:8
EXPERIMENTAL RESULTS
EXPERIMENTAL RESULT
CHAPTER NO: 9
CONCLUSION
CONCLUSION
The goal of our project is to create a autonomous robot which intelligently detects the
obstacle in his path and navigate according to the actions we set for it.
CHAPTER NO: 10
REFERENCES
REFERENCES
BOOKS:
D. Floreano and J. Urzelai. “Evolutionary Robots with Online Self-Organization and
Behavioral Fitness”
Oussama Khatib. “Real-Time Obstacle Avoidance for Manipulators and Mobile
Robots”,
Marija Seder. “Hierarchical Path Planning of Mobile robots in Complex Indoor
Environments”
WEBSITES:
http://www.datasheetcatalog.com
http://www.instructabal.com
http://en.wikipedia.org/wiki/Artificial_intelligence
http://science.howstuffworks.com/robot2.htm
http://arduino.cc/en/Main/arduinoBoardUno
Magazines:
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
pinMode (in3, OUTPUT);
pinMode (in4, OUTPUT);
}
long duration;
int distance;
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration*0.034/2;
if(distance<30)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(600);
}
else
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
delay(0);
}