Top language Status Repository size

About   |   GUI   |   Tests   |   Starting   |   License   |   Author   |  


An application that run the autonomous forklift paletization aglorithms. Projekt was created for Engineering Thesis. It was fully completed. The last release of this application is available in this repository. Alication uses image processing (OpenCV library) to detect the position of Acuco markers. Based on the calculated positions of the forklift, pallets and the storage place, the trajectories for the truck are generated (mainly using Voronoi graph and Dijsktra algorithm). Then the module responsible for communication with the robot controls it, so the robot collects choosed pallets and puts them one on top of the other in the designated warehouse.


The interface was created using the PyQt5 and pyqtgraph libraries.The following elements are shown in the figure:

  1. Menu bar – user can change the FPTV coefficient, communication port and baudrate.
  2. Image transmission – user can choose between three views. The first view displays the real image from the camera. View 2 displays marked tags with their identifiers. The third view displays the trajectories for a robot and updates it with each move robot (fig. 3.22).
  3. Entering identifiers – to start system, the user has to enter the robot ID and the pallet that the robot has deliver to the storage area.
  4. Parameters – In the Module statuses table you can observe camera, communication and navigation module status. The Warehouse table shows the status graphically storage place. The Parameters table shows in sequence: camera number (by default 1), COM port (COM14 by default), baud rate (9600 by default), ratio FPTV (25 by default), fault information, phase one status, phase two status, and the number of steps remaining to complete the phase.
  5. Start and progress button that starts the palletization process (Start). It is available only after the correct robot and pallette identifiers are entered


  1. Correctness of generated paths – The correct route is considered to be a safe route to the destination. In the first phase the palette is the goal. The robot has to reach the pallet and then pick it up. In the second phase the goal is the storage area (warehouse). Result: Correct

  1. Correctness of completing the route – A correctly covered route is characterized by a minimal error between generated route and the route taken by the robot. This is equivalent to maintenance safety assumptions for every traffic. Result: Correct

  1. Correctness of multi-level storage – This test checks whether the palletiser is correctly stacking the pallets. It is necessary to consider the created system as a multi-level palletizing system. Result: Correct


# Clone this project
$ git clone

# Access
$ cd Autonomous_Forklift_System

# Run the project
$ sudo python3


This project is under license from MIT. For more details, see the LICENSE file.


Made with


Back to top


View Github