Analysis and plotting for motor/prop/ESC characterization, thrust vs RPM and torque vs thrust

Overview

esc_test

This is a Python package used to plot and analyze data collected for the purpose of characterizing a particular propeller, motor, and ESC configuration (e.g. for quadrotors).

main.py computes two models:

  • a quadratic model describing thrust as a function of motor RPM
  • a linear model describing torque as a function of thrust

The data sources currently supported are:

Additional sources can be used by adding an appropriate class to formats.py.

Sample data from 6 tests is included, all with the three-bladed 7-inch DALPROP T7056.

  • ESC32v3 with T-Motor F40 Pro III 1600 kv (esc32v3-f40)
  • Kotleta 20 with F60 Pro II 1750 kv (duty cycle commands, kotleta-f60-duty)
  • Kotleta 20 with F60 Pro II 1750 kv (closed-loop RPM commands, kotleta-f60-rpm)
  • ESC32v3 with F60 Pro II 1750 kv (esc32v3-f60)
  • ESC32v2 with F60 Pro II 1750 kv (esc32v2-f60)
  • Aikon BLHeli32 4-in-1 with F80 Pro 1900 kv (aikon-f80)

You can add your own data by editing tests_sample.py or creating Test objects and adding them to tests.py.

The relationship between RPM and thrust should really only be a function of the propeller and it should be independent of the ESC and motor. So for all six tests above, the RPM to thrust curves should be fairly similar. However, the command and voltage to RPM (and thus to thrust) relationship will depend on the ESC and motor as well.

Written with the help of Xuning Yang.

Usage

Dependencies are numpy, scipy, and matplotlib.

Run python main.py where TEST is a test name found in tests_sample.py.

Run python main.py --help to see additional options. In particular, --plot-debug can be used to plot additional intermediate quantities used in the model computation and --plot-extra will plot additional measurements that may be interesting.

plot_rpm_thrust.py is a helper script to compare motor thrust models from different tests.

Sample Output

Plots can be optionally saved to the media folder by passing --save to main.py.

Current from kotleta-f60-rpm Voltage from kotleta-f60-rpm Thrust model from kotleta-f60-rpm Torque model from kotleta-f60-rpm

Owner
Alex Spitzer
Alex Spitzer
Simple Python interface for Graphviz

Simple Python interface for Graphviz

Sebastian Bank 1.3k Dec 26, 2022
A little logger for machine learning research

Blinker Blinker provides a fast dispatching system that allows any number of interested parties to subscribe to events, or "signals". Signal receivers

Reinforcement Learning Working Group 27 Dec 03, 2022
LabGraph is a a Python-first framework used to build sophisticated research systems with real-time streaming, graph API, and parallelism.

LabGraph is a a Python-first framework used to build sophisticated research systems with real-time streaming, graph API, and parallelism.

MLH Fellowship 7 Oct 05, 2022
🎨 Python Echarts Plotting Library

pyecharts Python ❤️ ECharts = pyecharts English README 📣 简介 Apache ECharts (incubating) 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达

pyecharts 13.1k Jan 03, 2023
Python Data Validation for Humans™.

validators Python data validation for Humans. Python has all kinds of data validation tools, but every one of them seems to require defining a schema

Konsta Vesterinen 670 Jan 09, 2023
A visualization tool made in Pygame for various pathfinding algorithms.

Pathfinding-Visualizer 🚀 A visualization tool made in Pygame for various pathfinding algorithms. Pathfinding is closely related to the shortest path

Aysha sana 7 Jul 09, 2022
Flow-based visual scripting for Python

A simple visual node editor for Python Ryven combines flow-based visual scripting with Python. It gives you absolute freedom for your nodes and a simp

Leon Thomm 3.1k Jan 06, 2023
Data Visualizer for Super Mario Kart (SNES)

Data Visualizer for Super Mario Kart (SNES)

MrL314 21 Nov 20, 2022
GitHub English Top Charts

Help you discover excellent English projects and get rid of the interference of other spoken language.

kon9chunkit 529 Jan 02, 2023
JSNAPY example: Validate NAT policies

JSNAPY example: Validate NAT policies Overview This example will show how to use JSNAPy to make sure the expected NAT policy matches are taking place.

Calvin Remsburg 1 Jan 07, 2022
Peloton Stats to Google Sheets with Data Visualization through Seaborn and Plotly

Peloton Stats to Google Sheets with Data Visualization through Seaborn and Plotly Problem: 2 peloton users were looking for a way to track their metri

9 Jul 22, 2022
Python script to generate a visualization of various sorting algorithms, image or video.

sorting_algo_visualizer Python script to generate a visualization of various sorting algorithms, image or video.

146 Nov 12, 2022
Insert SVGs into matplotlib

Insert SVGs into matplotlib

Andrew White 35 Dec 29, 2022
A program that analyzes data from inertia measurement units installed in aircraft and generates g-exceedance curves.

A program that analyzes data from inertia measurement units installed in aircraft and generates g-exceedance curves.

Pooya 1 Dec 02, 2021
web application for flight log analysis & review

Flight Review This is a web application for flight log analysis. It allows users to upload ULog flight logs, and analyze them through the browser. It

PX4 Drone Autopilot 145 Dec 20, 2022
Visualization Website by using Dash and Heroku

Visualization Website by using Dash and Heroku You can visit the website https://payroll-expense-analysis.herokuapp.com/ In this project, I am interes

YF Liu 1 Jan 14, 2022
Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track)

Kcse-Data-Analysis Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track) Findings The performance of

MUGO BRIAN 1 Feb 23, 2022
📊 Extensions for Matplotlib

📊 Extensions for Matplotlib

Nico Schlömer 519 Dec 30, 2022
IPython/Jupyter notebook module for Vega and Vega-Lite

IPython Vega IPython/Jupyter notebook module for Vega 5, and Vega-Lite 4. Notebooks with embedded visualizations can be viewed on GitHub and nbviewer.

Vega 335 Nov 29, 2022
A blender import/export system for Defold

defold-blender-export A Blender export system for the Defold game engine. Setup Notes There are no exhaustive documents for this tool yet. Its just no

David Lannan 27 Dec 30, 2022