#!/usr/bin/env python # coding: utf-8 # # Introduction # This checks to see if the angular rates computed from Ton's inverse dynamics are the same as those computed with a simple numerical differentiation of the angles. # # Imports # In[1]: import sys sys.path.append('../src') # In[2]: import numpy as np from gaitanalysis.controlid import SimpleControlSolver # In[3]: import utils from gait_landmark_settings import settings # In[4]: get_ipython().run_line_magic('matplotlib', 'inline') # In[5]: from IPython.core.pylabtools import figsize figsize(10, 8) # # Load and Process Data for 1 Trial # In[6]: trials_dir = utils.config_paths()['raw_data_dir'] # In[7]: trial_number = '068' # In[8]: trial = utils.Trial(trial_number) # In[9]: trial.prep_data('Longitudinal Perturbation') # In[10]: sensors, controls = trial.sensors, trial.controls angles = [s for s in sensors if '.Angle' in s] rates = [s for s in sensors if '.Rate' in s] numerical_rates = [s + '.Numerical' for s in rates] # In[11]: walking_data = trial.gait_data_objs['Longitudinal Perturbation'] # In[12]: walking_data.time_derivative(angles, numerical_rates) # In[13]: for one, two in zip(rates, numerical_rates): axes = walking_data.data[[one, two]].iloc[:500].plot() # # Footer # In[14]: get_ipython().system('git rev-parse HEAD') # In[15]: get_ipython().system('git --git-dir=/home/moorepants/src/GaitAnalysisToolKit/.git --work-tree=/home/moorepants/src/GaitAnalysisToolKit rev-parse HEAD') # In[16]: get_ipython().run_line_magic('install_ext', 'http://raw.github.com/jrjohansson/version_information/master/version_information.py') # In[17]: get_ipython().run_line_magic('load_ext', 'version_information') # In[18]: get_ipython().run_line_magic('version_information', 'numpy, scipy, pandas, matplotlib, tables, oct2py, dtk, gaitanalysis') # In[19]: get_ipython().system('conda list') # In[20]: get_ipython().system('pip freeze')