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