Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Project.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"folders": [
{
"path": "../../Kinematics/Project"
},
{
"name": "TestHX711",
"path": "C:/Users/putte/Documents/PlatformIO/Projects/TestHX711"
}
],
"settings": {}
}
68 changes: 68 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Quadcopter Simulation
> This project aims to visualize a Quadcopter's motion (roll, pitch, yaw, and hover) in 3D space by adjusting the speed of four motors using Python. The project consists of three main parts: motor speed adjustment window, dynamic calculation, and 3D visualization. Special thanks to [this MATLAB script](https://youtu.be/4hlQ2pf842U?si=a1AfHnj8r89j6BRX) for finding the Quadcopter's equation of motion.
# Table of Contents
> - [**Installation**](#installation)
> - [**Component**](#component)
> - [**User Guide**](#userguide)
> - [**Demos & Result**](#demosnresult)
> - [**Conclusion**](#conclusion)
> - [**Reference**](#reference)
## Installation <a name="installation"></a>

### Pygame

> 1. Open Visual Studio Code.
> 2. Go to the terminal or open a new terminal.
> 3. Copy and paste the following command:
> ```bash
> pip install pygame
> ```
> 4. Press Enter and wait for the download to complete.

### OpenGL

> 1. Open Visual Studio Code.
> 2. Go to the terminal or open a new terminal.
> 3. Copy and paste the following command:
> ```bash
> pip install PyOpenGL
> pip install PyOpenGL_accelerate
> ```
> 4. Press Enter and wait for the download to complete.

### Numpy

> 1. Open Visual Studio Code.
> 2. Go to the terminal or open a new terminal.
> 3. Copy and paste the following command:
> ```bash
> pip install numpy
> ```
> 4. Press Enter and wait for the download to complete.

# Component <a name="component"></a>
> - **Motor Slider**
> Description
>
> - **Dynamic Calculation**
> >
> - **3D Visualization**
> >The visualization part involves drawing the Quadcopter on the screen and updating its position based on differential values of X, Y, Z, roll, pitch, yaw.
> //Add picture
> > ![a](https://ibb.co/GdqvMGP)
> > <img src="https://ibb.co/GdqvMGP"/>
> >The libraries used for this visualization are Pygame for display creation and OpenGL for graphics rendering.
# User Guide <a name="userguide"></a>
> Description
# Demos & Result <a name="demosnresult"></a>
> Description
# Conclusion <a name="conclusion"></a>
> Description
# Reference <a name="reference"></a>
> - [1] Lebedev, A. (2013). Design and Implementation of a 6DOF Control System for an Autonomous Quadrocopter (Master's thesis). Julius Maximilian University of Würzburg, Faculty of Mathematics and Computer Science, Aerospace Information Technology, Chair of Computer Science VIII, Prof. Dr. Sergio Montenegro.
> - [2] DRONE OMEGA, 2020, What is a Quadcopter Explained Thoroughly [Online], Available: [droneomega.com](https://droneomega.com/what-is-a-quadcopter/) [02/11/23]
> - [3] Pranav Bhounsule, 2020, Robotics Lec25,26: 3D quadcopter, derivation, simulation, animation (Fall 2020) [Online], Available: [YouTube](https://www.youtube.com/watch?v=4hlq2pf842u) [02/11/23]
> - [4] MATLAB, 2020, Drone Simulation and Control, Part 1: Setting Up the Control Problem [Online], Available: [YouTube](https://www.youtube.com/watch?v=hgcgpuqb67q) [02/11/23]
> - [5] Kanishke Gamagedara (2021). Plotting 3D Objects with Matplotlib. Github. https://github.com/kanishkegb/pyplot-3d
> - [6] P. Wang, Z. Man, Z. Cao, J. Zheng and Y. Zhao, "Dynamics modelling and linear control of quadcopter," 2016 International Conference on Advanced Mechatronic Systems (ICAMechS), Melbourne, VIC, Australia, 2016, pp. 498-503, doi: 10.1109/ICAMechS.2016.7813499.
> - [7] Ahmad, F., Kumar, P., & Patil, P. P. (2018). Modeling and simulation of a quadcopter with altitude and attitude control. Nonlinear Studies, 25(2), 287–299.
Binary file added animation.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
148 changes: 148 additions & 0 deletions pyplot3d/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# LaTeX
*.tex text eol=lf
*.cls text eol=lf
*.sty text eol=lf
*.bst text eol=lf
*.bib text eol=lf

#sources
*.c text eol=lf
*.cc text eol=lf
*.cxx text eol=lf
*.cpp text eol=lf
*.c++ text eol=lf
*.hpp text eol=lf
*.h text eol=lf
*.h++ text eol=lf
*.hh text eol=lf

# Compiled Object files
*.slo binary
*.lo binary
*.o binary
*.obj binary

# Precompiled Headers
*.gch binary
*.pch binary

# Compiled Dynamic libraries
*.so binary
*.dylib binary
*.dll binary

# Compiled Static libraries
*.lai binary
*.la binary
*.a binary
*.lib binary

# Executables
*.exe binary
*.out binary
*.app binary


#common settings that generally should always be used with your language specific settings

# Auto detect text files and perform LF normalization
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
* text=auto

#
# The above will handle all files NOT found below
#

# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md text eol=lf
*.adoc text
*.textile text
*.mustache text
*.csv text eol=lf
*.tab text eol=lf
*.tsv text eol=lf
*.sql text eol=lf

# Graphics
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
*.svg binary
*.eps binary
# Basic .gitattributes for a MATLAB repo.
# This template includes Simulink and MuPAD extensions, in addition
# to the MATLAB extensions.

# Source files
# ============
*.m text eol=lf
*.mu text eol=lf

# Caution: *.m also matches Mathematica packages.

# Binary files
# ============
*.p binary
*.mex* binary
*.fig binary
*.mat binary
*.mdl binary
*.slx binary
*.mdlp binary
*.slxp binary
*.sldd binary
*.mltbx binary
*.mlappinstall binary
*.mlpkginstall binary
*.mn binary
# Basic .gitattributes for a python repo.

# Source files
# ============
*.pxd text eol=lf
*.py text eol=lf
*.py3 text eol=lf
*.pyw text eol=lf
*.pyx text eol=lf

# Binary files
# ============
*.db binary
*.p binary
*.pkl binary
*.pyc binary
*.pyd binary
*.pyo binary

# Note: .db, .p, and .pkl files are associated
# with the python modules ``pickle``, ``dbm.*``,
# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb``
# (among others).# Auto detect text files and perform LF normalization
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
* text=auto

# Custom for Visual Studio
*.sln text eol=crlf
*.csproj text eol=crlf
*.vbproj text eol=crlf
*.fsproj text eol=crlf
*.dbproj text eol=crlf

*.vcxproj text eol=crlf
*.vcxitems text eol=crlf
*.props text eol=crlf
*.filters text eol=crlf
Loading