This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@article{kunapuli2025leveling, | |
title={Leveling the Playing Field: Carefully Comparing Classical and Learned Controllers for Quadrotor Trajectory Tracking}, | |
author={Pratik Kunapuli and Jake Welde and Dinesh Jayaraman and Vijay Kumar}, | |
abstract={Learning-based control approaches like reinforcement learning (RL) have recently produced a slew of impressive results for tasks like quadrotor trajectory tracking and drone racing. Naturally, it is common to demonstrate the advantages of these new controllers against established methods like analytical controllers. We observe, however, that reliably comparing the performance of these very different classes of controllers is more complicated than might appear at first sight. As a case study, we take up the problem of agile tracking of an end-effector for a quadrotor with a fixed-arm. We develop a set of best practices for synthesizing the best RL and Geometric controllers for benchmarking. In the process, we fix widely prevalent RL-favoring biases in prior studies that |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# First make sure you pip install google-api-python-client | |
from apiclient.discovery import build | |
from httplib2 import Http | |
from oauth2client import file, client, tools | |
def store_opts(opt): # opt is the object returned by argparse | |
params = dict(opt.__dict__) | |
# here I remove parameters I don't want recorded in google sheets | |
params.pop('retain_in_test', None) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Written with help from http://warmspringwinds.github.io/tensorflow/tf-slim | |
# /2016/12/21/tfrecords-guide/ | |
import os | |
import ipdb | |
import numpy as np | |
import tensorflow as tf | |
from tqdm import tqdm | |
tf_dir = './' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dinesh Jayaraman | |
# Based on code by | |
# Authors: Fabian Pedregosa <[email protected]> | |
# Olivier Grisel <[email protected]> | |
# Mathieu Blondel <[email protected]> | |
# Gael Varoquaux | |
# License: BSD 3 clause (C) INRIA 2011 | |
print(__doc__) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%demo_textprogressbar | |
%This a demo for textprogressbar script | |
textprogressbar('calculating outputs: '); | |
for i=1:100, | |
textprogressbar(i); | |
pause(0.1); | |
end | |
textprogressbar('done'); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import argparse | |
import time | |
start_time=time.time(); | |
################## Argument Parsing ##################################### | |
parser=argparse.ArgumentParser(); | |
parser.add_argument('-s','--solver', default='', type=str); # if empty, solver is created, else read | |
parser.add_argument('-res', '--resume_from', default='', type=str); #if not empty, resumes training from given file | |
parser.add_argument('-ft', '--finetune_from', default='', type=str); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function submitjobs(nosubmit, numjobs, main) | |
try | |
xlwrite_path='../data_utils/xlwrite/'; | |
addpath(xlwrite_path); | |
javaaddpath([xlwrite_path 'poi_library/poi-3.8-20120326.jar']); | |
javaaddpath([xlwrite_path 'poi_library/poi-ooxml-3.8-20120326.jar']); | |
javaaddpath([xlwrite_path 'poi_library/poi-ooxml-schemas-3.8-20120326.jar']); | |
javaaddpath([xlwrite_path 'poi_library/xmlbeans-2.3.0.jar']); | |
javaaddpath([xlwrite_path 'poi_library/dom4j-1.6.1.jar']); | |
javaaddpath([xlwrite_path 'poi_library/stax-api-1.0.1.jar']); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from tsne import bh_sne | |
import numpy as np | |
from skimage.transform import resize | |
from matplotlib import pyplot as plt | |
def gray_to_color(img): | |
if len(img.shape) == 2: | |
img = np.dstack((img, img, img)) | |
return img |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// generate [0..n-1] | |
auto seq = [](size_t n) -> std::vector<size_t> { | |
std::vector<size_t> v(n); | |
for (size_t i=0; i<n; ++i) v[i] = i; | |
return v; | |
}; | |
auto index = seq(n); | |
// n * n distance matrix | |
std::vector<D> dists(n * n); |