Skip to content

Instantly share code, notes, and snippets.

View lorenzoriano's full-sized avatar

Lorenzo Riano lorenzoriano

  • Industrial Next
  • San Francisco
View GitHub Profile
@lorenzoriano
lorenzoriano / ros_get_paths.py
Created May 21, 2012 23:33
Get Paths Script
#!/usr/bin/env python
import sys
rospkgs = sys.argv[1:]
import roslib
for rospkg in rospkgs:
roslib.load_manifest(rospkg)
paths = [path for path in sys.path if not path.startswith('/usr')]
#create a set to remove repetitions
import inspect
import sys
import os
class DebugPrint(object):
def __init__(self, f):
self.f = f
def write(self, text):
import numpy as np,numpy.linalg
def _getAplus(A):
eigval, eigvec = np.linalg.eig(A)
Q = np.matrix(eigvec)
xdiag = np.matrix(np.diag(np.maximum(eigval, 0)))
return Q*xdiag*Q.T
def _getPs(A, W=None):
W05 = np.matrix(W**.5)
@lorenzoriano
lorenzoriano / timer.h
Last active December 16, 2015 08:29
C++ class for accurate time measurement
#ifndef TIMER_H
#define TIMER_H
#include <ctime>
//link with rt (-lrt)
class timer {
public:
timer() {
static const double _PI= 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348;
static const double _TWO_PI= 6.2831853071795864769252867665590057683943387987502116419498891846156328125724179972560696;
// Floating-point modulo
// The result (the remainder) has same sign as the divisor.
// Similar to matlab's mod(); Not similar to fmod() - Mod(-3,4)= 1 fmod(-3,4)= -3
template<typename T>
T Mod(T x, T y)
{
static_assert(!std::numeric_limits<T>::is_exact , "Mod: floating-point type expected");
@lorenzoriano
lorenzoriano / change_transforms.py
Last active December 19, 2015 21:48
Creates ROS frame transformations on the fly, adapted from John Schulman code
#!/usr/bin/python
from numpy import *
from traitsui.key_bindings import KeyBinding,KeyBindings
from traitsui.api import *
from traits.api import *
import numpy as np
import roslib
roslib.load_manifest("sensor_msgs")
roslib.load_manifest("rospy")
roslib.load_manifest("tf")
import numpy as np
from math import pi, log
import pylab
from scipy import fft, ifft
from scipy.optimize import curve_fit
i = 10000
x = np.linspace(0, 3.5 * pi, i)
y = (0.3*np.sin(x) + np.sin(1.3 * x) + 0.9 * np.sin(4.2 * x) + 0.06 *
np.random.randn(i))
@lorenzoriano
lorenzoriano / config
Last active January 4, 2016 09:39
Terminator Config ~/.config/terminator/config
[global_config]
focus = mouse
[keybindings]
toggle_zoom = F12
next_tab = <Shift>Right
split_vert = <Ctrl><Shift>l
split_horiz = <Ctrl><Shift>b
prev_tab = <Shift>Left
[profiles]
[[default]]
@lorenzoriano
lorenzoriano / find_system_python_dylibs.sh
Created January 7, 2016 16:57
This script prints the filenames of any dylibs that depend on the System Python, and changes them
#!/bin/bash
#echo "This script prints the filenames of any dylibs in your /opt/ros/indigo/lib that depend on the System Python"
echo "This script prints the filenames of any dylibs in your /usr/local/ that depend on the System Python"
#for f in `find /usr/local/lib`; do
for f in `find /opt/ros/indigo/lib`; do
otool -L "$f" 2> /dev/null| grep Python | grep System &> /dev/null
status=$?
if [ $status -eq 0 ]; then
echo "$status: $f"
import numpy as n
import scipy.interpolate
import scipy.ndimage
def congrid(a, newdims, method='linear', centre=False, minusone=False):
'''Arbitrary resampling of source array to new dimension sizes.
Currently only supports maintaining the same number of dimensions.
To use 1-D arrays, first promote them to shape (x,1).
Uses the same parameters and creates the same co-ordinate lookup points