def init(self): MDPAction.set_description({ 'out': {'value': [-0.004]}, 'in': {'value': [0.004]}, 'kick': {'value': [-1.0]} }) ts = TaskSpec(discount_factor=0.99, reward_range=(-20, 20)) ts.set_episodic() ts.set_charcount_obs(0) ts.add_double_act((-1.0, 0.004)) self._ts_extra += "ACTIONDESCR %s " % str(MDPAction.description) self._ts_extra += "COPYRIGHT Penaltykick (Python) implemented by Astrid Jackson" ts.set_extra(self._ts_extra) return ts.to_taskspec()
def enter(self, t, *args, **kwargs): super(MoveEffectors, self).enter(t, *args, **kwargs) action = kwargs["action"] config = action.description[action.name] effectors = [] times = [] delta_tf = [] frames = [] for effector, mapping in config["descr"].iteritems(): delta = np.zeros(len(mapping.keys())) for key, axis in mapping.iteritems(): delta[MDPAction.key_to_index(key)] = action[axis] if np.any(delta): effectors.append(effector) delta_tf.append(delta) times.append([0.5]) frames.append(NaoMotionController.FRAME_TORSO) self._motion.transform(effectors, delta_tf, times, frames)