Project Report Chapter Guidelines
Project Report Chapter Guidelines
PRESIDENCY UNIVERSITY
School of Information Science
Master of Computer Applications
MCA
ABSTRACT
The field of autonomous vehicles is rapidly advancing, with significant implications for safety and efficiency in
transportation. Research indicates that human error is a contributing factor in approximately 90% of traffic
accidents, highlighting the urgent need for improved safety measures. Autonomous obstacle detecting robots
present a promising solution, not only for vehicular applications but also in environments that are hazardous or
inaccessible to humans, such as disaster zones or rugged terrains. This project focuses on the development of a
self-navigating obstacle avoiding robot that utilizes ultrasonic sensors for real-time obstacle detection and
avoidance.
The robot is designed with a robust navigation algorithm implemented on an Arduino microcontroller, enabling it
to process sensor data and make informed decisions about its movement. It is powered by two DC motors that
drive a four-wheeled chassis, featuring a differential drive system that allows for agile maneuverability and tight
turns. The strategic placement of ultrasonic sensors has proven effective in detecting obstacles, although the
project acknowledges that the addition of more sensors could enhance detection capabilities further. Testing has
validated the effectiveness of ultrasonic sensors in this application, demonstrating their reliability in navigating
complex environments. This project not only contributes to the growing body of knowledge in autonomous
robotics but also emphasizes the potential for these technologies to improve safety and operational efficiency in
various fields.
Keywords:
• Autonomous Vehicles
• Obstacle Detection
• Ultrasonic Sensors
• Differential Drive
• Navigation Algorithm
Abstract i
Table of Contents ii
List of Figures iii
List of Tables Iii
Acknowledgement Iv
LIST OF TABLES
The completion of project work brings with great sense of satisfaction, but it is never completed without thanking
the persons who are all responsible for its successful completion. First and foremost we indebted to the GOD
ALMIGHTY for giving us the opportunity to excel our efforts to complete this project on time. We wish to
express our deep sincere feelings of gratitude to our Institution, Presidency University, for providing us
opportunity to do our education.
We express our sincere thanks to our respected dean Dr. Md. Sameeruddin Khan, Pro-Vice Chancellor, School
of Engineering, and Dean, Presidency School of CSE and IS, Presidency University for getting us permission to
undergo the project.
We record our heartfelt gratitude to our beloved professor Dr. R Mahalakshmi, Associate Dean, Presidency
School of Information Science, Dr W. Jaisingh, Professor and Head, Presidency School of Information Science,
Presidency University for rendering timely help for the successful completion of this project.
We sincerely thank our project guide, D r. Pradeep Bhaskar, Designation, Department, for his guidance, help
and motivation. Apart from the area of work, we learnt a lot from him, which we are sure will be useful in
different stages of our life. We would like to express our gratitude to Faculty Coordinators and Faculty, for their
review and many helpful comments.
We would like to acknowledge the support and encouragement of our friends.
The development of obstacle avoiding robots has become a significant area of research and application in the
field of robotics. These robots are designed to navigate their environment autonomously while avoiding
obstacles, making them invaluable in various sectors, including industrial automation, search and rescue
operations, and personal assistance. The ability to detect and respond to obstacles in real-time is crucial for
ensuring the safety and efficiency of these robotic systems.
The technology behind obstacle avoidance has evolved significantly over the years. Early robots relied on
simple bump sensors and basic algorithms to navigate their surroundings. However, advancements in sensor
technology, such as ultrasonic and infrared sensors, have enabled more sophisticated detection and navigation
capabilities. Modern obstacle avoiding robots utilize a combination of sensors and algorithms to create a
comprehensive understanding of their environment, allowing them to make informed decisions about their
movement.
The importance of obstacle avoiding robots extends beyond mere navigation. In many applications, these
robots can operate in environments that are hazardous or inaccessible to humans. For instance, in disaster
response scenarios, robots can be deployed to navigate through debris and locate survivors, significantly
enhancing the efficiency of rescue operations. Additionally, in industrial settings, these robots can transport
materials safely without the risk of collisions, improving overall productivity.
The effectiveness of obstacle avoiding robots is largely dependent on the technologies employed in their
design. Several key components contribute to the successful navigation of these robots:
• Sensors: Ultrasonic sensors are commonly used for obstacle detection due to their ability to measure
distances accurately. These sensors emit sound waves and calculate the time it takes for the waves to
return after bouncing off an object. This information is then used to determine the distance to
obstacles. Other sensors, such as infrared and Lidar, can also be utilized to enhance detection
capabilities.
• Microcontrollers: The brain of the robot, typically a microcontroller like Arduino or Raspberry Pi,
processes sensor data and executes navigation algorithms. The choice of microcontroller can impact
the robot's performance, as it must be capable of handling real-time data processing and decision-
making.
• Navigation Algorithms: Various algorithms are employed to enable effective navigation.
Common approaches include reactive methods, which respond to sensor inputs in real-time, and more
complex pathfinding algorithms, such as A* or Dijkstra's, which calculate optimal routes while
avoiding obstacles.
• Actuators: The movement of the robot is facilitated by actuators, such as DC motors, which drive
the wheels. The configuration of these motors can influence the robot's maneuverability. For example,
differential drive systems allow for tight turns and agile movement, making them suitable for
navigating complex environments.
The applications of obstacle avoiding robots are vast and varied, reflecting their versatility and
adaptability. Some notable applications include:
• Industrial Automation: In manufacturing and warehousing, obstacle avoiding robots can
transport materials and products efficiently, reducing the need for human labor in potentially
hazardous environments. These robots can navigate through crowded spaces, avoiding obstacles such
as machinery and personnel.
• Healthcare: In hospitals, autonomous robots can assist with the delivery of medications and
supplies, navigating through busy corridors while avoiding patients and staff. This not only improves
efficiency but also enhances patient care by ensuring timely delivery of essential items.
• Agriculture: Obstacle avoiding robots are increasingly being used in agricultural settings for tasks
such as crop monitoring and harvesting. These robots can navigate through fields, avoiding obstacles
like plants and equipment, while collecting valuable data for farmers.
• Search and Rescue: In emergency situations, such as natural disasters, obstacle avoiding robots
can be deployed to search for survivors in areas that are unsafe for human responders. Their ability to
navigate through debris and challenging terrain can significantly enhance rescue efforts.
• Home Automation: Robotic vacuum cleaners are a popular example of obstacle avoiding robots in
domestic settings. These devices can autonomously clean floors while avoiding furniture and other
obstacles, providing convenience for homeowners.
Conclusion
The development of obstacle avoiding robots represents a significant advancement in robotics technology.
With the integration of sophisticated sensors, microcontrollers, and navigation algorithms, these robots are
capable of navigating complex environments autonomously. Their applications span various industries,
highlighting their potential to improve safety, efficiency, and productivity. As technology continues to evolve,
the capabilities of obstacle avoiding robots are expected to expand, paving the way for even more innovative
solutions in the future.
CHAPTER-2
LITERATURE SURVEY
Chapter-3
METHODOLOGY
3.1 Introduction to the Proposed Method
The proposed method aims to design and implement an IoT-based obstacle-avoiding system capable of
operating autonomously in dynamic environments. By integrating advanced sensor technologies, an efficient
control algorithm, and IoT connectivity, this system seeks to overcome the limitations of traditional
approaches while ensuring reliability, cost-effectiveness, and adaptability.
3.2 System Architecture
The architecture of the proposed system comprises the following key components:
• Sensors: Ultrasonic sensors are employed for real-time obstacle detection due to their affordability
and reliability.
• Microcontroller: An Arduino-based platform serves as the central processing unit, executing control
algorithms and managing data flow.
• Actuators: DC motors facilitate movement, with motor drivers enabling precise control over speed
and direction.
• IoT Module: A Wi-Fi module ensures connectivity for remote monitoring and data exchange.
• Power Supply: A rechargeable battery powers all components, ensuring operational longevity.
The system’s modular design supports scalability and future upgrades, enabling integration with advanced
sensors or alternative controllers.
3.3 Methodology
The methodology outlines the components and processes used to develop the obstacle-avoiding system:
3.3.1 Ultrasonic Sensors
Ultrasonic sensors are the primary detection mechanism in this system. They emit ultrasonic waves and
measure the time it takes for the waves to bounce back after hitting an obstacle. This time difference is
converted into distance, enabling precise detection of nearby objects. The sensors are strategically placed to
ensure a wide detection range, covering both the front and sides of the vehicle. This placement minimizes
blind spots and enhances navigation accuracy.
Ultrasonic sensors are chosen for their robustness and ability to operate in diverse conditions. Despite their
simplicity, they offer a high signal-to-noise ratio and can detect objects with reasonable precision even in
noisy environments. Their limitations, such as reduced efficacy with soft or irregularly shaped surfaces, are
mitigated by strategic placement and algorithmic compensations.
3.3.2 DC Motors
DC motors are responsible for driving the wheels of the vehicle. Their speed and direction are controlled via
the motor driver, allowing for differential drive navigation. This system enables the robot to make sharp turns,
School of Information Science Page 10 of 24
Project Title
stop, or move forward/backward based on sensor input. The motors are chosen for their efficiency and ability
to provide consistent torque, which is crucial for maintaining stability on various terrains.
The motors used in this system are optimized for low power consumption and high durability. Differential
drive, enabled by independent control of each motor, allows precise maneuvering, making the system suitable
for dynamic environments. Proper calibration ensures synchronization and prevents issues like slippage or
uneven motion.
3.3.3 Breadboard and Jumper Wires
The breadboard serves as a flexible and reusable platform for creating electrical connections without
soldering. Jumper wires are used to connect components, such as sensors, the Arduino, and the motor driver.
This setup allows for easy modifications and troubleshooting during the development and testing phases. The
breadboard also facilitates prototyping, making it an ideal choice for experimenting with circuit designs.
Using a breadboard simplifies the iterative design process by enabling rapid assembly and disassembly of
circuits. Jumper wires provide the flexibility to reconfigure connections as needed, supporting the system’s
modular design. This approach ensures that changes can be made quickly without requiring permanent
alterations.
3.3.4 Arduino
The Arduino microcontroller acts as the brain of the system. It processes data from the ultrasonic sensors and
executes the obstacle avoidance algorithm. The Arduino is programmed using C/C++ in the Arduino IDE,
enabling precise control over the system’s behavior. Its compatibility with various sensors and modules makes
it a versatile choice for this project. Additionally, its low power consumption and affordability contribute to
the system’s overall cost-effectiveness.
Arduino’s open-source nature allows easy integration with numerous libraries and community-developed
tools, expediting development. Its small form factor and ability to interface with other IoT modules, such as
Wi-Fi and Bluetooth, make it an integral component of this project.
3.3.5 Motor Driver (L293D) and Battery
The L293D motor driver is used to control the DC motors. It acts as an interface between the microcontroller
and the motors, enabling bidirectional movement and speed control. The motor driver can handle the high
current requirements of the motors, which the Arduino alone cannot provide. A rechargeable battery powers
the entire system, ensuring uninterrupted operation. The battery’s capacity is selected to balance weight and
runtime, optimizing performance for extended use.
The L293D’s versatility and ability to control two motors simultaneously make it ideal for this application.
The rechargeable battery is equipped with a monitoring circuit to prevent overcharging or deep discharge,
extending its lifecycle.
3.3.6 Algorithm
The algorithm is the core of the obstacle-avoidance system, translating sensor data into actionable commands
Chapter-4
IMPLEMENTATION
4.1 Introduction
The implementation phase involves translating the design and methodology into a functional obstacle-
avoiding robot system. This chapter outlines the practical steps taken to assemble, program, and test the IoT-
based robot, ensuring it meets the performance and reliability criteria established during the design phase.
4.2 Hardware Assembly
The hardware components of the robot were integrated systematically to achieve a robust and functional
system. Each element was assembled as follows:
4.2.1 Sensor Placement
Ultrasonic sensors were mounted on the front and sides of the chassis to ensure optimal obstacle detection.
Careful calibration ensured accurate readings, minimizing blind spots. The sensors were secured at a height
that provided a clear detection range, avoiding interference from uneven ground.
4.2.2 Chassis and Motor Integration
The DC motors were attached to the chassis using motor mounts, ensuring stability during movement. The
wheels were firmly secured to the motor shafts. The motor driver (L293D) was connected to the motors,
enabling bidirectional movement and precise speed control.
4.2.3 Wiring and Power Supply
The breadboard and jumper wires were used to establish connections between components, including the
Arduino microcontroller, motor driver, ultrasonic sensors, and power supply. A rechargeable battery was
installed and connected to provide a consistent power source, ensuring the system could operate for extended
periods.
4.3 Software Implementation
The software component of the system involved programming the Arduino microcontroller to process sensor
data and execute the obstacle avoidance algorithm.
4.3.1 Arduino Programming
The Arduino was programmed using the Arduino IDE. The code included libraries for ultrasonic sensor
operation, motor control, and IoT communication. Key functions implemented in the program were:
• Sensor Data Acquisition: Capturing real-time distance measurements from the ultrasonic sensors.
• Obstacle Detection: Comparing sensor data against predefined thresholds to identify obstacles.
• Decision-Making: Determining the optimal navigation path to avoid obstacles.
• Motor Commands: Generating signals for the motor driver to control wheel movement.
Chapter-5
CODING
5.1 Introduction
This chapter presents the complete implementation code for the IoT-based obstacle-avoiding robot. The code
integrates various hardware components, including ultrasonic sensors, servo motors, and DC motors, and
implements the logic for obstacle detection, decision-making, and navigation.
5.2 Coding
#include <Servo.h> // Servo motor library. This is a standard library included in the Arduino IDE.
#include <NewPing.h> // Ultrasonic sensor function library. This library must be installed for the
ultrasonic sensor to work.
#define maximum_distance 200 // Maximum distance (in cm) for the ultrasonic sensor to detect obstacles
boolean goesForward = false; // Boolean to track if the robot is moving forward
int distance = 100; // Variable to store the measured distance
void setup() {
Serial.begin(9600); // Initialize serial communication for debugging
// Attach the servo motor to pin 9 and set its initial position
servo_motor.attach(9);
servo_motor.write(115); // Center position
delay(2000); // Allow the servo to stabilize
void loop() {
int distanceRight = 0; // Variable to store distance on the right side
int distanceLeft = 0; // Variable to store distance on the left side
int lookRight() {
servo_motor.write(50); // Move servo to the right position
delay(500);
int distance = readPing(); // Measure distance on the right
delay(100);
servo_motor.write(115); // Reset servo to center position
return distance;
}
int readPing() {
delay(70); // Small delay to stabilize readings
int cm = sonar.ping_cm(); // Get distance in cm
Serial.println(cm); // Print the distance for debugging
if (cm == 0) {
cm = 250; // Return a default value if no object is detected
}
return cm;
}
void moveStop() {
// Stop all motor movements
digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}
void moveForward() {
// Move forward only if not already moving forward
if (!goesForward) {
goesForward = true;
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
void moveBackward() {
// Move backward
goesForward = false;
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW);
}
void turnRight() {
// Turn the robot to the right
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, LOW);
delay(500); // Short delay for the turn
// Resume forward movement
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
void turnLeft() {
// Turn the robot to the left
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorForward, HIGH);
Chapter-7
RESULTS AND DISCUSSIONS
Chapter-8
CONCLUSION
REFERENCES
ENCLOSURES:
1. Conference Paper Presented Certificates of all students.
2. Include certificate(s) of any Achievement/Award won in any project related
event.