All Projects → mikeroberts3000 → Flashlight

mikeroberts3000 / Flashlight

Flashlight is a lightweight Python library for analyzing and solving quadrotor control problems.

Projects that are alternatives of or similar to Flashlight

Motion planning
Robot path planning, mapping and exploration algorithms
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Tensorflow Crash Course
For those who already have some basic idea about deep learning, and preferably are familiar with PyTorch.
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Variantnet
A simple neural network for calling het-/hom-variants from alignments of single molecule reads to a reference
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Deeplearner
AI精研社 超级原创 Learn Python and Deep Learning from scratch. 会用搜狗输入法 + chrome浏览器,就能学的会的 Python + 人工智能·机器学习·深度学习算法 的完整学习解决方案。
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Generativegraph
Implementation For the paper from DeepMind
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Tacotron2
pytorch tacotron2 https://arxiv.org/pdf/1712.05884.pdf
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Learn statistical Learning Method
学习《统计学习方法》并实现其中的大部分算法
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Eegclassificationmcnn
Solution for EEG Classification via Multiscale Convolutional Net coded for NeuroHack at Yandex.
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Machine learning bookshelf
机器学习深度学习相关书籍、课件、代码的仓库。 Machine learning is the warehouse of books, courseware and codes.
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Sdc System Integration
Self Driving Car Engineer Nanodegree System Integration Capstone Project
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Openaigym
Code from "Intro to OpenAI Gym" tutorial video: https://youtu.be/8MC3y7ASoPs
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Vbyo2018
Veri Bilimi Yaz Okulu
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Ce9010 2018
Python notebooks and slides for CE9010: Introduction to Data Science, Semester 2 2017/18
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Computing Density Maps
Fast computing density maps for ShanghaiTech and other datasets
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Deepdream pytorch
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Melodyextraction jdc
"Joint Detection and Classification of Singing Voice Melody Using Convolutional Recurrent Neural Networks"
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Aidc 2018 Timeseries
Deep learning for time-series data
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Ipds Kr
<따라 하며 배우는 데이터 과학> (2017) 소스코드
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Juypter Notebooks
neural network explorations ⚡️ i know it's misspelled
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook
Marvin Public Engines
Marvin AI has been accepted into the Apache Foundation and is now available at https://github.com/apache/incubator-marvin
Stars: ✭ 46 (+0%)
Mutual labels:  jupyter-notebook

Flashlight

Flashlight is a lightweight Python library for analyzing and solving quadrotor control problems. Flashlight enables you to easily solve for minimum snap trajectories that go through a sequence of waypoints, compute the required control forces along trajectories, execute the trajectories in a physics simulator, and visualize the simulation results. Flashlight also makes it easy to simulate external disturbances, and to recover from those disturbances using time-varying LQR feedback control. Flashlight includes physical models for 2D quadrotors, 3D quadrotors, and 3D quadrotor cameras.

The following code snippet shows how easy it is to start analyzing quadrotor trajectories using Flashlight. In this code snippet, we generate the control forces required for a 2D quadrotor to follow a simple trajectory, and simulate the results:

from pylab import *; import scipy.integrate

import flashlight.interpolate_utils as interpolate_utils
import flashlight.quadrotor_2d      as quadrotor_2d

# Define a simple position trajectory in 2D.
num_samples = 200
t_begin     = 0
t_end       = pi
dt          = (t_end - t_begin) / (num_samples - 1)

t = linspace(t_begin, t_end, num_samples)
p = c_[ sin(2*t) + t, t**2 ]

# Compute the corresponding state space trajectory and control trajectories for a 2D quadrotor.
q_qdot_qdotdot = quadrotor_2d.compute_state_space_trajectory_and_derivatives(p, dt)
u              = quadrotor_2d.compute_control_trajectory(q_qdot_qdotdot)

# Define a function that interpolates the control trajectory in between time samples.
u_interp_func = interpolate_utils.interp1d_vector_wrt_scalar(t, u, kind="cubic")

# Define a simulation loop.
def compute_x_dot(x_t, t):

    # Get the current control vector.
    u_t = u_interp_func(clip(t, t_begin, t_end))
    
    # Compute the state derivative from the current state and current control vectors.
    x_dot_t = quadrotor_2d.compute_x_dot(x_t, u_t).A1

    return x_dot_t

# Simulate.
x_nominal, _, _, _ = quadrotor_2d.pack_state_space_trajectory_and_derivatives(q_qdot_qdotdot)
x_0                = x_nominal[0]
x_sim              = scipy.integrate.odeint(compute_x_dot, x_0, t)

# Plot the results.
quadrotor_2d.draw(t, x_sim, t_nominal=t, x_nominal=x_nominal, inline=True)

Installation instructions, detailed code examples, and other documentation can be found at mikeroberts3000.github.io/flashlight.

Flashlight is designed and implemented by Mike Roberts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].