{"id":21151912,"url":"https://github.com/abhifuturetech/ann-robotics-simu","last_synced_at":"2025-07-09T09:32:15.571Z","repository":{"id":247076745,"uuid":"824016138","full_name":"AbhiFutureTech/ANN-Robotics-simu","owner":"AbhiFutureTech","description":"This project focuses on developing and implementing neural network algorithms to enable autonomous navigation in self-driving robots.","archived":false,"fork":false,"pushed_at":"2024-07-31T15:08:28.000Z","size":1379,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T21:39:36.541Z","etag":null,"topics":["keras","neural-network","opencv","python","raspberry-pi","robotics","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbhiFutureTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-04T07:44:03.000Z","updated_at":"2024-09-29T15:55:13.000Z","dependencies_parsed_at":"2024-07-31T18:57:02.999Z","dependency_job_id":null,"html_url":"https://github.com/AbhiFutureTech/ANN-Robotics-simu","commit_stats":null,"previous_names":["patilabhi20/neural-network-based-autonomous-navigation-for-self-driving-robots","abhifuturetech/neural-network-based-autonomous-navigation-for-self-driving-robots","abhifuturetech/ann-robotics-simu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AbhiFutureTech/ANN-Robotics-simu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiFutureTech%2FANN-Robotics-simu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiFutureTech%2FANN-Robotics-simu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiFutureTech%2FANN-Robotics-simu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiFutureTech%2FANN-Robotics-simu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbhiFutureTech","download_url":"https://codeload.github.com/AbhiFutureTech/ANN-Robotics-simu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiFutureTech%2FANN-Robotics-simu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264431138,"owners_count":23607191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keras","neural-network","opencv","python","raspberry-pi","robotics","tensorflow"],"created_at":"2024-11-20T10:19:53.340Z","updated_at":"2025-07-09T09:32:15.565Z","avatar_url":"https://github.com/AbhiFutureTech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neural Network Based Autonomous Navigation for Self Driving Robots\n\n1.The Robot uses neural network to learn and predict decisions just like a human brain.\n\n2.The model is built using Neural Network and it's trained by feeding in labelled images of tracks.\n\n3.After the model is trained it will be capable of making its own decisions. The prediction will be made on the laptop due to larger memory and flexibility. Raspberry pi will be used to stream the video to \n  laptop using Pi-camera.\n\n4.First we will train the model using the dataset that contains the labelled images of the track.\n\n5.Raspberry Pi will stream the live feed to the laptop and the predictions will be sent back to the raspberry pi.\n\n6.The raspberry pi is connected to motor driver which will control the wheels of the bot. Ultrasonic sensor makes sure that the robot does not collide with obstacles. Once trained it can run autonomously and \n  make its decisions.It will try to maintain its path along the track and prevent from collision\n\n\n## A) Hardware Design\n\nThe Hardware components used for this project are as follows:\n\n1.Raspberry Pi (any model with sufficient performance, such as Raspberry Pi 4)\n2.Camera module\n3.Motor driver (e.g., L298N)\n4.Motors and wheels\n5.Power supply\n\n## Required Libraries\n\nInstall the required libraries on your Raspberry Pi:\n\n ``` \nsudo apt-get update\nsudo apt-get install python3-opencv\npip3 install tensorflow numpy picamera\n ```\n\n![Demo (1)](https://github.com/patilabhi20/Robotic-Tasks-via-Large-Language-Models/assets/157373320/c83189c3-d478-4657-8c9e-ae332751a466)\n\n## Installation\n\nTo set up the project, clone the repository and install the required dependencies:\n\n\n ``` \ngit clone https://github.com/yourusername/Neural-Network-Based-Autonomous-Navigation-for-Self-Driving-Robots.git\ncd Neural-Network-Based-Autonomous-Navigation-for-Self-Driving-Robots\npip install -r requirements.txt\n\n ```\n\nEnsure you have the necessary hardware and software configurations as detailed in the documentation.\n\n## B) Software Design\n\n1.Python(2.7)\n2.TensorFlow\n3.OpenCV\n\n## Model Architecture\n\nThe model architecture is based on a convolutional neural network (CNN) designed for real-time processing. The architecture includes convolutional layers for feature extraction and dense layers for decision making.\n\n\n ``` \nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout\n\ndef create_model():\n    model = Sequential([\n        Conv2D(24, (5, 5), strides=(2, 2), activation='relu', input_shape=(66, 200, 3)),\n        Conv2D(36, (5, 5), strides=(2, 2), activation='relu'),\n        Conv2D(48, (5, 5), strides=(2, 2), activation='relu'),\n        Conv2D(64, (3, 3), activation='relu'),\n        Conv2D(64, (3, 3), activation='relu'),\n        Flatten(),\n        Dense(100, activation='relu'),\n        Dropout(0.5),\n        Dense(50, activation='relu'),\n        Dense(10, activation='relu'),\n        Dense(1)  # Regression output for steering angle\n    ])\n    model.compile(optimizer='adam', loss='mse')\n    return model\n\n ``` \n\n\n## Training\n\nThe training pipeline includes data augmentation and preprocessing steps to enhance model performance. The model is trained using the mean squared error loss function and the Adam optimizer.\n\n ``` \n\n# Training the model\nbatch_size = 32\nepochs = 10\n\nhistory = model.fit(\n    datagen.flow(X_train, y_train, batch_size=batch_size),\n    validation_data=(X_val, y_val),\n    steps_per_epoch=len(X_train) // batch_size,\n    epochs=epochs,\n    validation_steps=len(X_val) // batch_size\n)\n\n ```\n\n## Evaluation\n\nEvaluate the model's performance using the validation set and visualize the results:\n\n\n ``` \nimport matplotlib.pyplot as plt\n\n# Evaluate the model\nval_loss = model.evaluate(X_val, y_val)\nprint(f'Validation Loss: {val_loss}')\n\n# Plot training history\nplt.plot(history.history['loss'], label='Train Loss')\nplt.plot(history.history['val_loss'], label='Validation Loss')\nplt.xlabel('Epoch')\nplt.ylabel('Mean Squared Error')\nplt.legend()\nplt.show()\n\n ```\n\n## Examples\n\n1.Object Recognition\n\n ```\nfrom recognition.cnn_model import CNNModel\n\ncnn_model = CNNModel()\ncnn_model.load_model('models/object_recognition_model.h5')\nresult = cnn_model.predict('images/test_image.jpg')\nprint(f\"Recognized Object: {result}\")\nImage Preprocessing\n\n ```\n\n ```\nfrom processing.image_preprocessor import ImagePreprocessor\n\nimage_preprocessor = ImagePreprocessor()\npreprocessed_image = image_preprocessor.process('images/raw_image.jpg')\npreprocessed_image.show()\n\n ```\n\n## \nThank you for your interest in the Neural Network-Based Autonomous Navigation for Self-Driving Robots project! We hope you find it useful and engaging. Happy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhifuturetech%2Fann-robotics-simu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhifuturetech%2Fann-robotics-simu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhifuturetech%2Fann-robotics-simu/lists"}