KinematicsSolverApp is a desktop application that allows to perform forward and inverse kinematics calculations using D-H and geometrical methods.
Explore the docs »
Table of Contents
To run this project, create virtual environment and install it locally.
- Clone the repo
$ git clone https://github.com/Szezi/KinematicsSolverApp
- Install packages
$ pip install -r requirements.txt
- Run main.py
In case of using MacOS add in main.py
import os
os.environ['QT_MAC_WANTS_LAYER'] = '1'Also if there is issue with fonts, change used fonts families in ui_KinematicsSolverApp.py for example to Helvetica.
KinematicsSolverApp is a desktop application that allows to perform forward and inverse kinematics calculations using D-H and geometrical methods.
The desktop application consists of 4 main screens with different functionality. Switching between the selected screens is done with the use of the pull-down side menu. In the upper bar there is information about the currently selected screen, while in the lower part of the screen there is a bar with application operation messages. These logs are also saved in the appropriate file.
The FK screen is used to calculate the forward kinematics of the manipulator. The application page has 3 tabs. First tab - Input/Solve allows user to input basic data about robotic arm, its links length and joints range. Filling these informations app allows user to solve forward kinematics with given joints values. On this tab Denavit-Hartenberg table is being shown.
Second tab - Homogeneous matrices - allows user to see results of performed calculations with created homogeneous matrices.
Last tab - User - allows user to calculate forward kinematics with only given by user dh table. In additions this method allows to calculate kinematics with more then 5 transformation simply by adding more rows to the table. Results of calculations are shown on the right side of the page.
The IK screen is used to calculate the inverse kinematics of the manipulator. The application page has 2 tabs. First tab - Input/Solve allows user to input basic data about robotic arm, its links length and joints range. Filling these informations app allows user to solve inverse kinematics with given xyz values. Results in 2 configurations are shown below. The second tab contains a diagram of the robot arm.
Unit tests to module of forward kinematics (fk_solver) and inverse kinematics (ik_solver) were developed using pytest. Unit tests coverage of fk_solver is 94%. Unit tests coverage of ik_solver is 81%.
## Todo- Unit tests
Distributed under the GPL-3.0 license. See LICENSE.txt for more information.
Project Link: https://github.com/Szezi/KinematicsSolverApp