diff --git a/studywolf_control/arms/two_link/arm_python_todorov.py b/studywolf_control/arms/two_link/arm_python_todorov.py
index 40b9ab0..732b6c2 100644
--- a/studywolf_control/arms/two_link/arm_python_todorov.py
+++ b/studywolf_control/arms/two_link/arm_python_todorov.py
@@ -15,7 +15,7 @@
along with this program. If not, see .
'''
-from arm2base import Arm2Base
+from .arm2base import Arm2Base
import numpy as np
class Arm(Arm2Base):
diff --git a/studywolf_control/arms/two_link/arm_todorov.py b/studywolf_control/arms/two_link/arm_todorov.py
index f983cbc..a3f4371 100644
--- a/studywolf_control/arms/two_link/arm_todorov.py
+++ b/studywolf_control/arms/two_link/arm_todorov.py
@@ -15,7 +15,7 @@
along with this program. If not, see .
'''
-from arm2base import Arm2Base
+from .arm2base import Arm2Base
import numpy as np
class Arm(Arm2Base):
@@ -48,20 +48,20 @@ def apply_torque(self, u, dt=None):
a1 = i[0] + i[1] + m[1]*l[0]**2
a2 = m[1]*l[0]*s[1]
a3 = i[1]
- I = np.array([[a1 + 2*a2*np.cos(q[1]), a3 + a2*np.cos(q[1])],
- [a3 + a2*np.cos(q[1]), a3]])
+ I = np.array([[a1 + 2*a2*np.cos(self.q[1]), a3 + a2*np.cos(self.q[1])],
+ [a3 + a2*np.cos(self.q[1]), a3]])
# centripital and Coriolis effects
- C = np.array([[-dq[1] * (2 * dq[0] + dq[1])],
- [dq[0]]]) * a2 * np.sin(q[1])
+ C = np.array([-self.dq[1] * (2 * self.dq[0] + self.dq[1]),
+ self.dq[0]]) * a2 * np.sin(self.q[1])
# joint friction
B = np.array([[.05, .025],
[.025, .05]])
# calculate forward dynamics
- ddq = np.linalg.pinv(I) * (u - C - np.dot(B, dq))
-
+ ddq = np.dot(np.linalg.pinv(I) , (u - C - np.dot(B, self.dq)))
+
# transfer to next time step
self.q += dt * self.dq
self.dq += dt * ddq
diff --git a/studywolf_control/controllers/ahf.py b/studywolf_control/controllers/ahf.py
index b2dc7ae..eb0fb08 100644
--- a/studywolf_control/controllers/ahf.py
+++ b/studywolf_control/controllers/ahf.py
@@ -40,7 +40,7 @@ def __init__(self, **kwargs):
# this code goes into the weights folder, finds the most
# recent trial, and loads up the weights
files = sorted(glob.glob('controllers/weights/rnn*'))
- print 'loading weights from %s'%files[-1]
+ print('loading weights from %s'%files[-1])
W = np.load(files[-1])['arr_0']
num_states = 4
self.rnn = RNNet(shape=[num_states * 2, 32, 32, num_states, num_states],
diff --git a/studywolf_control/controllers/recorder.py b/studywolf_control/controllers/recorder.py
index c43488c..3b17dc6 100644
--- a/studywolf_control/controllers/recorder.py
+++ b/studywolf_control/controllers/recorder.py
@@ -32,7 +32,7 @@ def record(self, t, x):
self.signal.append(x.copy())
if self.write_out == True:
- print 'saving'
+ print('saving')
np.savez_compressed(
'data/%s/%s/%s%.3i'%(self.task, \
self.controller, self.name, self.count),
diff --git a/studywolf_control/tasks/follow_mouse.py b/studywolf_control/tasks/follow_mouse.py
index 4e5dfc1..ff1185a 100644
--- a/studywolf_control/tasks/follow_mouse.py
+++ b/studywolf_control/tasks/follow_mouse.py
@@ -43,7 +43,7 @@ def Task(arm, controller_class,
# generate control shell -----------------
additions = []
if force is not None:
- print 'applying joint velocity based forcefield...'
+ print('applying joint velocity based forcefield...')
additions.append(forcefield.Addition(scale=force))
task = 'arm%i/forcefield'%arm.DOF
diff --git a/studywolf_control/tasks/postural.py b/studywolf_control/tasks/postural.py
index 7d8ec33..f549b79 100644
--- a/studywolf_control/tasks/postural.py
+++ b/studywolf_control/tasks/postural.py
@@ -72,7 +72,7 @@ def Task(arm, controller_type, x_bias=0., y_bias=2., dist=.4,
# generate control shell -----------------
additions = []
force_index = np.random.randint(8) if force_index is None else force_index
- print 'applying force %i...'%force_index
+ print('applying force %i...'%force_index)
additions.append(Addition(index=force_index))
task = 'arm%i/postural%i'%(arm.DOF, force_index)
diff --git a/studywolf_control/tasks/random_movements.py b/studywolf_control/tasks/random_movements.py
index e1496e2..8bc33b4 100644
--- a/studywolf_control/tasks/random_movements.py
+++ b/studywolf_control/tasks/random_movements.py
@@ -43,7 +43,7 @@ def Task(arm, controller_class,
# generate control shell -----------------
additions = []
if force is not None:
- print 'applying joint velocity based forcefield...'
+ print('applying joint velocity based forcefield...')
additions.append(forcefield.Addition(scale=force))
task = 'arm%i/forcefield'%arm.DOF