Artificial Intelligence (AI) simulates human intelligence processes through computer systems, encompassing learning, reasoning, and self-correction. AI is employed in various applications, notably in autonomous vehicles, which aim to reduce road accidents caused by human error—accounting for 90% of crashes. This project focuses on implementing autonomous features in a 4x4 RC car, enabling it to navigate a path with obstacles, signboards, and lanes independently.
🟩 Objective:
The primary objective of this project is to apply image processing, neural networks, and machine learning techniques to an RC car, enabling it to make autonomous decisions while navigating a predefined path. The project employs the NVIDIA Jetson Nano as the processing unit and a camera module as the car's vision system.
🟩 Individual Contribution:
My role in this project involved hardware assembly and designing the lane detection system using neural networks. I detailed the entire process, from project initiation to completion, including the methods used, results obtained, and conclusions drawn.
🟩 Methodology:
This section outlines the methods, concepts, and theories applied within the project's scope. The appendix contains the complete Python code for gathering steering angles with images and detailed 3D-printed model designs.
🟩 Hardware Design:
The project's ultimate goal is to enable the RC car to detect paths, recognize signboards, and make appropriate decisions while traveling. To achieve this, the 4x4 RC car was modified with necessary hardware components:
🟠 3D-Printed Brackets: Designed to hold various components, including a camera stand, a central board for the NVIDIA Jetson Nano, the microcontroller, a 16-channel servo motor controller, and a servo motor bracket.
🟠 Power Supply Unit: Designed to power the microcontroller and motor drivers, with LiPo batteries used as the primary power source.
🟩Training System:
Captured images are fed into the system to generate desired commands, with the Convolutional Neural Network (CNN) weights adjusted using backpropagation via the Torch machine learning package. Over 15,000 images were captured at 10 fps, creating a substantial data collection. Each image is paired with the relevant steering angle, stored in an Excel file for neural network training.
🟩 Data Collection:
The training data includes various road situations (e.g., flat roads with straight paths, right turns, left turns). The path was designed with two lanes, signboards, and traffic lights. The neural network architecture aims to minimize the mean squared error between the steering commands for off-centered and rotated images.
🟩 Network Architecture:
The network architecture consists of several layers:
🟠 Image Normalization: Performed by the first layer, which is hard-coded and not adjusted during the learning process.
🟠 Convolutional Layers: Feature extraction using strided convolutions with a 2x2 stride and 5x5 kernel, and a non-strided convolution with a 3x3 kernel.
The training data is labeled with steering angles, and only data where the operator stayed in a lane is used for CNN training. Video samples are taken at 20 fps, balancing the need for effective training data with minimizing redundant frames.
🟩Conclusion:
This project demonstrates the integration of AI, image processing, and neural networks in developing an autonomous RC car. The detailed hardware design, comprehensive data collection, and robust neural network training contribute to the car's ability to navigate paths, avoid obstacles, and recognize signboards autonomously. The project highlights the potential of AI in enhancing vehicle safety and efficiency, paving the way for future advancements in autonomous driving technology.