import gym import numpy as np from gym_solo.envs import solo8v2vanilla from gym_solo.core import obs from gym_solo.core import rewards from gym_solo.core import termination as terms if __name__ == '__main__': config = solo8v2vanilla.Solo8VanillaConfig() env: solo8v2vanilla.Solo8VanillaEnv = gym.make('solo8vanilla-v0', use_gui=True, realtime=True, config=config) env.obs_factory.register_observation(obs.TorsoIMU(env.robot)) env.termination_factory.register_termination(terms.PerpetualTermination()) flat = rewards.FlatTorsoReward(env.robot, hard_margin=.1, soft_margin=np.pi) height = rewards.TorsoHeightReward(env.robot, 0.33698, 0.025, 0.15) small_control = rewards.SmallControlReward(env.robot, margin=10) no_move = rewards.HorizontalMoveSpeedReward(env.robot, 0, hard_margin=.5, soft_margin=3) stand = rewards.AdditiveReward() stand.client = env.client stand.add_term(0.5, flat) stand.add_term(0.5, height) home_pos = rewards.MultiplicitiveReward(1, stand, small_control, no_move) env.reward_factory.register_reward(1, home_pos)
def test_is_terminated(self): term = termination.PerpetualTermination() # Arbitrary count, just need to ensure that always returns False for i in range(1000): self.assertFalse(term.is_terminated())