This article is a complete specification for a Final Year Project (FYP) on software dovetailing. The project is about dovetailing of ECJ (or a similar tool) with UAV Playground (or a similar tool). As described in one of the previous posts, ECJ (Evolutionary Computing in Java), is an open source framework of many of the well-known machine learning algorithms that belong to the family of evolutionary algorithms. UAV Playground is a flight simulator for unmanned aerial vehicles. Both are written in Java, a general-purpose, high-level, object-oriented programming language. The FYP has following milestones.
Installation of ECJ:
- Grab ECJ.
- Install it on a machine for which you have rights to operate.
- Also install the contributed packages.
- Also install JFreechart and iText.
- Run it and play with it very well.
- Understand how it really works.
- Understand the algorithms that are implemented in it and their power for problem-solving.
- If you are not familiar with evolutionary algorithms, read these tutorials on genetic algorithms and genetic programming. You may as well want to read essentials of meta-heuristics.
- Execute ECJ on various toy problems.
- Browse its documentation as well.
- Read the user’s manual of ECJ to fully understand how it works and what it is capable of.
Installation of UAV Playground:
- Download and install Google Earth on your system.
- Download and install Flight Gear on your system.
- Download and install Eclipse as well (although it might not be required).
- Download and install UAV Playground.
- Run UAV Playground.
- Familiarize yourself with its functionality.
Installation of Dovetailing Software:
Plenty of dovetailing software for integration of various applications is present online. I wrote an article about Apache Camel some time back. A list of various other tools can also be found in software application integration. However, it will be nice to use either Talend’s open studio for enterprise service bus or MuleSoft’s Anypoint Studio. Both come with very advanced IDEs. Talend is even built upon Apache Camel. The added advantage is that it gives you even drag and drop facilities to write your integration software. This means that you don’t virtually have to hand-code your integration, that is possibly expected to be quite complex. You may as well like Talend Courses if you wish to learn more about Talend and its various open source products.
Objectives of the Project:
On its completion, the project is expected to include a complete integration of ECJ (or any other machine learning software) with UAV Playground (or any other similar software, such as a simulator of a real-world phenomenon). The user of the integrated software should be able to do the following things.
- Successfully invoke experiments and run them.
- Manipulate both the software (ECJ and UAV Playground) through a graphical user interface.
- Gather relevant statistics and display them appropriately, and if required, in real-time.
- Gather relevant statistics and store them appropriately.
- Where it is necessary to run one of the software from the other, the user should be able to do that. Such a scenario may frequently occur when objects from ECJ are expected to govern the behavior of objects from UAV Playground. In such a case, it might as well be necessary to update the state of the object iteratively.
- Additionally it would be nice that the integration software is general-purpose and application independent in the sense that it can take any set of applications (or their APIs) as input and come up with a smart integration that requires minimal tweaking by the user to run them properly.
Following is a list of deliverables for this project.
- You shall upload the benchmarked source code with binaries as open-source software on the web, possibly on GIT or SourceForge.
- You shall provide a complete documentation of the project.
- You shall develop a comprehensive user’s manual for this project.
- You shall publish the performance results of the software in a relevant conference.
If you found an error, highlight it and press Shift + Enter or click here to inform us.