|
Locus No Pilotus
Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++
|
Project of four first grade MIPT AES DAFE students (for engineering practical work in the second semester) in Qt C++
Project's documentation generated with Doxygen with convenient CSS theme.
In this project, we are developing an application that calculates the trajectory of a flying delivery robot that collects valuable cargo from control points: Targets. On its way, it may encounter high mountains that it cannot fly over: Hills; or elliptical territories that are impossible to visit due to climate conditions: TrappyCircles. Also, through some control points, the robot is simply unable to move, as the cargo may not be ready for transportation at that time, these are TrappyLines.
The robot's trajectory is calculated using several mathematical algorithms: Little's Algorithm (solving the Traveling Salesman Problem (TSP) for multiple robots), Dijkstra's Algorithm (finding the shortest path between two points in a graph), Geometric Algorithms for Obstacle Handling (tangents to circles and polygons and intersection checking), Visibility Graph Construction, Composite Trajectory Planning Algorithm.
This is a comprehensive system that combines geometric computations with optimization algorithms to solve complex trajectory planning problems in the presence of obstacles. The algorithms work together to find collision-free paths that minimize total travel distance while visiting all required points.
The graphical interface for constructing the trajectory was created using Qt and QCustomPlot.
In the application, you can add objects using window forms, interact with the trajectory calculation plot using the mouse cursor, create and open files in .json format with a specific style for this application. Editing objects can also be done with cursors or using a special dynamic input field with tables, opened in a separate window mode or embedded in the main one.
We strongly recommend that you install our application using the instructions below and try it out!
P.S. of course you can try install all the libs and packages used in repo manually, but our team got pain and tears trying to install Boost on MINGW in this way, so we recommend to install MSYS (besides, it is an excellent tool for compiling any other C++ and etc. projects)
MSYS2 MSYS console, copy the command below and paste it with Shift+Ins or ‘RBM and 'Paste’` to download all the packages used in our projectGit Bash and use command like cd C:/CodeFolder to go to the folder where you usually save the codeC:\YourPathToMsys\msys64\mingw64\bin than find and start qtcreator.exeConfigure ProjectP.S. because of using QCustomPlot, we need to copy additional .lib file to build directory, and our script does this when activating the Run CMake command
Coming soon...
Much respect and help for this installation method to George Sukhanov!