Giter Site home page Giter Site logo

alperenkbd / aircraftfightersimulationusingmachinelearning Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 4.0 195.36 MB

Nowadays Using machine learning methods at simulations systems has been gaining importance with spreading and growing machine learning methods. The main purpose of using simulations get a big gain because of can cause of lots of material and spiritual damages. Simulations can use in the military sector as can use in too diverse areas. developing projects in the defense industry mostly develop as closed source code. So can see open source development in the defense industry is necessary. we build a project that responds to these problems. the project uses web API for getting weather in real-time and uses system time for get three times of the day. uses twelve different simulation environments from three times four. uses Reinforcement learning for training enemy planes. The main motivation for using RL in the project is a success. Used Unity3D game engine, C#(generally) language and Unity Toolkits(MLagents, postprocessing). The aim of authorized persons using aircraft is to destroy the enemy aircraft. The Simulation is supported in English and Turkish. Also developed as supporting other languages structure. The using main aircraft person can control with Arduino-based joystick and keyboard horizontal, vertical buttons.

C# 78.84% ShaderLab 21.16%
reinforcement-learning simulation machine-learning game-development serious-game webapi unity3d mlagents postprocessing shader

aircraftfightersimulationusingmachinelearning's Introduction

Aircraft Fighter Simulation Using Machine Learning


CONTENTS

  • Summary of project
  • Introduction
    • Aim And Emphasis Of Project
    • Creative and unique side of project
    • Technology Stack Of Project
  • Material and methods
  • Results
  • Conclusion and discuss
  • Suggestions
  • Resources

Summary of Project

Project name: Aircraft Fighter Simulation Using Machine Learning

Nowadays Using machine learning methods at simulations systems gets importance with spreading and growing machine learning methods. Main purpose of using simulations is getting big gain from can cause of a lots of material and spiritual damages. Simulations can use at military sector as can use at too diverse areas. developing project at defense industry mostly develop as closed source code. So can see open source development at defense industry is necessary. we build a project that responding the to these problems. the project uses web api for getting weather at real time and uses system time for get three times of day. uses twelve different simulation environment form three times four. uses Reinforcement learning for training enemy planes. Main motivation of using RL at the project is successful. Used Unity3D game engine, C#(generally) language and Unity Toolkits(MLagents, postprocessing). Aim of authorized person of using aircraft is destroy the enemy aircrafts. The Simulation supported in English and Turkish. Also developed as supporting other languages structure. The using main aircraft person can control with arduino based joystick and keyboard horizontal, vertical buttons.

Keywords: Machine learning, Reinforcement Learning, Simulation, Serious Games, Dogfight

Introduction The Project

AI has using in games since ancient times. We could observe AI in the first digital games based on automata theory. We can show the PACMAN developed by the Namco as an example to use enemy simple AI algorithms. We can observe the Berkeley University to research about Artificial Intelligence in digital games. The AI in PACMAN has still using in Berkeley University to teach AI for students. We can make inferences about importance of using AI in simulation technologies. If we had a chance to give example for AI in simulation technologies we can represent the project of Havelsan. The project called with 'FIVE-ML' has started in 2021 and has foreseen to complete at end of the year the project. An article published in Popular Science called with 'A.I. Downs Expert Human Fighter Pilot In Dogfight Simulation' has mentioned about to won an AI in virtual war between AI and experienced air-fight pilots. But the developers in defense industry beware to not share for public or another developers because the AI algorithms has using in defense industry so the developers think as sensitive data. Develop a simulation using AI is specific because of other developers.

Aim And Emphasis Of Project

We have mentioned about importance using AI in simulation technologies in the introduction the project part. We can develop applications to reduce material waste on work with machine learning algorithms is developed. We know the models developed with machine learning algorithms. The models behave like a human in virtual environments. So we can implement the models for defense industry projects, education and a bunch of areas in life. Literally We can say to is develop of AI depend to collect more of model and datas. But we are faced to hide the code of project in defense industry. We have used open source mentality in our project and shared the source code of project in Github. We come across with huge waste in material and spiritual to actualize a real life scenario. For example an aircraft has to fly by a student at sky for during a few time at the start of the education. Even If the student was able to make the a hour flight the flight would be cost 44 thousand dollars. If a f-35 has crashed down we can lose spiritual things next to material things. We offer to save of material and spiritual wastes with our project called with 'Aircraft Fighter Simulation Using Machine Learning'. The aim of the project is to reduce of waste and to contribute to share machine learning algorithms on public repositories. We have developed to aim to realize real life hard scenarios without second or third person with just cost of hardware and software.

Creative And Unique Side Of Project

Simulation technologies are used commonly on this days. In international agreements, simulations for training purposes are also sold with the aircraft. Computer graphics and screening technologies had not developed because hardware was not enough. Then graphic cards have developed and computer graphics developing has accelerated. Defense industry have so high costs for simulation applications despite of developments in graphics side on nowadays. Especially In military application, the algorithms are seen important. So reach to AI algorithms is so tough for another developers. We can mention about the to improve a shareable and can be improved project is important for the machine learning ecosystem. The advantage of our project are using AI, open source and needs less hardware necessary.

Technology Stack Of Project

Computer graphics is a sub-field of computer science which studies methods for digitally synthesizing and manipulating visual content. Although the term often refers to the study of 3D computer graphics, it also encompasses 2D copmuter graphics and image processing" (wikipedia). We take advantages of Unity3D in render pipelines. We have used reinforcement learning in project from the are known supervised, unsupervised and reinforcement. Machine learning is subfield of AI and the three techniques are mentioned at previous sentence. Version control provide with github. Arduino is used for communication with computer on usb serial port.

Materials And Methods

  • Specialties of computer: intel core i5 7. Gen. processor, Nvdia GEFORCE 940mx graphic card, 8 gb ram, Windows10 OS

  • Is used game engine: Unity 2019.4.11f1 (64-bit)

  • Arduino IDE(1.8.7)

  • Arduino Uno, Breadboard, 5 pieces jumper cable, 2 pieces potentiometer(10k), serial com. cable

  • Adobe Illustrator 2020, Adobe XD 2020

  • VSCode 1.51.1

  • Trello (Kanban)

  • Unity-Technologies/Ml-Agents

  • Unity-Technologies/PostProcessing

    In management of project are used agile development methodology. We set meeting a day of every week with my consultant Mr. Dr. fellow Ersin KAYA. Is used Kanban methodology for to watch every steps of project.

Results

We have used agile development methodology for process of development project. Kanban tables are used to trace the clean code principles. There is table in the photo 1 below with three column like waiting, in process and done in Turkish.

kanbanboard

Photo 1

We can see the game preview screens developed with Adobe XD in photo 2 below.

bitirmeraporsc1

Photo 2

There is a state machine to show plane movements in draw 1 below.

MovementStateMachine

draw 1

We have faced with trouble about performance on profiling graphs. Even the ram has reached for %100 usage and the application has been crashed. So we have read the profiling graphs and we have reach to quite performance gain. Can see profiling graph after performance optimization in photo 3 below.

22489-imagen+unity+profiler

So we have multi language support. We can see two setting screen have two language support in photo 4 below.

ekranalintisitur ekranalintisieng

photo 4

We can see a some of AI methodologies used in project at below.

mlapi

rl_cycle

We can reach to some screen-views and videos for simulation at the below.

Ekran1

Hnet-image

Conclusion and discuss

We have completed the project successfully to applied clean code principles and project management methodologies. We have used Kanban table so we were able observe the project obviously. We have not faced with negative results on similarity of after and before screen preparing processes because we have designed all screens on the design program that is Adobe XD. If you have a chance about to get computer to has more performance you can get more effective performance from Artificial Intelligence algorithms naturally. You can profile with unity profiling the project continually to get more performance. We have got weather informations using web api provider so we were able to get real time weather environment in project. The application is developed suitable to use from every range of people creating two mode with control stick and keyboard control. We have used one of the most popular game engine Unity3D. The project is developed with multi language support but has two languages(Turkish and English) now.

Suggestions

You should attention to be upper or same package versions. You can develop your intelligent agent in the same fight environment and make war with another aircrafts to show which algorithm is greater than others. You have to use profiling, optimizing and logging the application to get more effective performance and attention to vertex pieces because the application will be able to crash because of load on ram and processor.

Resources

Coby M., POPULAR SCIENCE, “A.I. Downs Expert Human Fighter Pilot In Dogfight Simulation”, (2016 Haziran), erişim tarihi: (12.08.2020)

https://www.popsci.com/ai-pilot-beats-air-combat-expert-in-dogfight/

Havelsan, “ HAVELSAN YAPAY ZEKÂLI SİMÜLATÖR GELİŞTİRECEK”, (2020 Ağustos),erişim tarihi: (04.09.2020)

https://www.havelsan.com.tr/haberler/guncel/havelsan-yapay-zekali-simulator-gelistirecek

Rob V., POPULAR SCIENCE, “ ABD’nin En İyi Savaş Uçağı Simülatörü, Artık Çok Oyunculu”,(2020 Temmuz) erişim tarihi: (17.09.2020)

https://popsci.com.tr/abdnin-en-iyi-savas-ucagi-simulatoru-artik-cok-oyunculu/

John D., Dan K., Pieter A., Berkeley University, “Intro to AI”, erişim tarihi: (20.10.2020)

http://ai.berkeley.edu/project_overview.html

Unity Documentation, teknik dokümantasyon, sürekli erişim

https://docs.unity3d.com/Manual/index.html

Mircea Oprea. | Red Gate | “Calling RESTful APIs Unity3D”, (2018 Mart), erişim tarihi: (14.12.2020)

[https://www.red-gate.com/simple-talk/dotnet/c-programming/calling-restful-apis- unity3d/](https://www.red-gate.com/simple-talk/dotnet/c-programming/calling-restful-apis- unity3d/)

Chris Elion. | Github/Unity/ML-Agents | “Unity ML-Agents Toolkit”, (2020 Eylül), erişim tarihi: (09.01.2020)

https://github.com/Unity-Technologies/ml-agents

Okita, A. (2014). Learning C# programming with Unity 3D. CRC Press.

Taşdemir, C. (2014). Arduino. Dikeyeksen Y.

Developers

Alperen Kabadayı

Alperen Kabadayı

aircraftfightersimulationusingmachinelearning's People

Contributors

alperenkbd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.