Unmanned Ground Vehicle Navigation Using Artificial Neural Networks
摘要
Intelligent mobile robots must be able to maneuver their environment in order to reach their targets without collisions. In this work, a small Unmanned Ground Vehicle (UGV) prototype is designed and implemented to reach its target autonomously in an unknown maze environment. The UGV uses two microcontrollers: Raspberry Pi and Arduino Mega. The Raspberry Pi is the high-level microcontroller that uses Artificial Neural Network (ANN) for decision-making and the Arduino is the low-level microcontroller that collects the working environment data and controls the UGV motors. The research methodology was divided into three stages. First, the UGV was controlled remotely by an operator to maneuver through six static mazes and reach the target point. The Arduino Mega collected the input-output data from the surrounding environment using three ultrasonic sensors, a compass, and a speed encoder sensor while simultaneously recording the motor signals. The collected data was sent to the Raspberry Pi through a serial communication port and saved in a file. Second, the collected input-output data was used in MATLAB to train a feed-forward ANN to classify the action of the motors based on the input data. Finally, the ANN model was developed in Python language using Tensorflow (TF) and tested in the Colab platform. Then, the developed Python code was downloaded on the Raspberry Pi and implemented on the UGV. The UGV was tested in real-time environment, with static and dynamic obstacles, to validate the developed ANN model. The UGV successfully avoided all the obstacles and reached the target point.