Obstacle Avoidance Robot

Tequed Labs

The project's primary goal is to develop an autonomous robot capable of navigating and avoiding obstacles without human intervention, leveraging advancements in robotics to enhance transportation safety. This involves the creation of an intelligent system that integrates software and hardware components to detect and maneuver around obstacles within an unstructured and unknown environment. The foundation of this system is based on Arduino technology—an open-source prototyping platform that combines a programmable microcontroller board with an integrated development environment (IDE) for writing and uploading code.

Hardware and Software Configuration

Components

  • Arduino UNO R3:The core controller used to execute programmed instructions and process input signals.
  • HC-SR04 Ultrasonic Sensor:This sensor plays a crucial role in distance measurement and obstacle detection, facilitating the robot's ability to make informed movement decisions.
  • SG90 Servo Motor and L293D Motor Driver Shield:These components are used to drive the robot's movements, allowing for precise control over its mechanical parts.
  • Chassis and Power Supply:Includes a 4WD chassis, multiple 9V batteries with connectors, and necessary wiring components like jumper wires and power switches.
Objectives Image

Software

    The robot utilizes the Arduino IDE for programming, which supports the C++ based Arduino language, making it accessible for configuring the microcontroller’s responses to sensor inputs.

Implementation

Working Principle

The robot uses the Ultrasonic sensor to measure the distance in front of it then it moves. As the distance reduces, the robot interprets it as the presence of an obstacle. As soon as the robot detects the obstacle, it stops and moves back a few cm then looks left and right before moving to a free path.

Model Development

The block diagram depicts the hardware setup for an Arduino-controlled obstacle-avoiding robot, showing the connections between the Arduino UNO R3, HC-SR04 Ultrasonic Sensor, SG90 Servo Motor, L293D Motor Driver, and four DC motors powered by two 9V batteries. The Arduino serves as the brain, processing inputs from the ultrasonic sensor, which scans for obstacles using the servo motor to pivot. Based on these inputs, the Arduino directs the L293D motor driver to control the DC motors, facilitating movement and enabling the robot to navigate around obstacles. This setup outlines the flow of control signals and power among the components, illustrating the robot’s operational and electrical architecture effectively.

Constructing the Robot car

Step 1: Connect the motor and wheels to the chassis by soldering the thick red and black wires to the positive and negative terminals of the motors then attach them to the chassis.

Training and Evaluation
Model Development

Step 2: Attach the switch, battery clip, SG90 Servo Motor and Arduino UNO to the chassis. After this, mount the L293D Motor Driver shield on the Arduino UNO R3 and the HC-SR04 to the Servo motor.

Step 3: Wire up components as shown in figure.

Training and Evaluation

Programming the Robot

Model Development

The Arduino microcontroller communicates with the PC via the USB connection. Data is transferred between the board and the PC bit by bit. An adaptor is used for power supply to the board and a USB programmer is used to burn the hardware program (written in Arduino IDE) into the board.

The flowchart gives step by step directions of how the code is performed and executed. It explains that the robot checks for the distance between the obstacle and the robot. If it is less than 8.5 cm, it executes different commands based on the distance available.

Results and Conclusion

Model Development

The outcome of this thesis is a simple, Arduino-controlled robot car which moves around detecting obstacles in its way and avoiding them. During operation of the robot, the ultrasonic sensor sends out an ultrasound wave to the front position (90 degrees), right position (36 degrees), and left position (144 degrees). When the wave strikes an obstacle, it bounces back and the distance is stored for the front, right, and left position. After this, the microcontroller compares the values based on its algorithm and determines whether to move forward or change path.

Tests carried out on the final hardware revealed the limitations of the detection algorithm. The limitations were related to cases of some obstacles not being detected and this was as a result of the sensor not being able to measure obstacles outside the measuring range of the sensor. When an object is in the way of the car and this object is not within the line of sight of the sensor, it will not be detected thereby leading to collision. To avoid this, the testing was further carried out in an enclosed area where the wall is the only obstacle and the car was able to move freely without collision. To implement a car which will detect multiple obstacles and avoid them, more sensors have to be used in order to cover a wider range for obstacle detection.

Challenges and Recommendations for Enhancing Robotic Systems

In this project, sensor performance, battery stress, and the effect of heat on the motor driver shield significantly impact the robot's functionality. The HC-SR04 ultrasonic sensor is pivotal, determining the robot's efficiency by emitting and detecting high-frequency sound waves to avoid obstacles. However, its limited 30-degree and 300cm range sometimes fails to detect objects outside this field, leading to potential collisions. Battery life is also a constraint, with the motor driver shield and other components demanding high power from the 9V batteries, which quickly deplete during operation. Heat accumulation in the motor driver shield, without adequate cooling measures such as heatsinks, limits the duration the robot can operate before overheating affects functionality. Despite these challenges, the robot demonstrates the capacity of using Arduino microcontroller-based systems for navigation and obstacle avoidance in varying environments. For enhanced performance, incorporating advanced sensors, additional cooling systems, and perhaps camera and wireless technology for remote operation could significantly extend the robot's capabilities and applications, suggesting a future where robots adapt seamlessly to complex environments and tasks.