forked from stepjam/RLBench
-
Notifications
You must be signed in to change notification settings - Fork 0
/
swap_arm.py
46 lines (35 loc) · 1.2 KB
/
swap_arm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from rlbench.environment import Environment
from rlbench.action_modes import ArmActionMode, ActionMode
from rlbench.observation_config import ObservationConfig
from rlbench.tasks import ReachTarget
import numpy as np
class Agent(object):
def __init__(self, action_size):
self.action_size = action_size
def act(self, obs):
return (np.random.normal(0.0, 0.1, size=(self.action_size,))).tolist()
obs_config = ObservationConfig()
obs_config.set_all(False)
obs_config.left_shoulder_camera.rgb = True
obs_config.right_shoulder_camera.rgb = True
obs_config.wrist_camera.rgb = True
action_mode = ActionMode(ArmActionMode.ABS_JOINT_VELOCITY)
env = Environment(
action_mode, obs_config=obs_config, headless=False,
robot_configuration='jaco')
env.launch()
task = env.get_task(ReachTarget)
agent = Agent(action_size=7) # Jaco is 6DoF + 1 for gripper action
training_steps = 120
episode_length = 40
obs = None
for i in range(training_steps):
if i % episode_length == 0:
print('Reset Episode')
descriptions, obs = task.reset()
print(descriptions)
action = agent.act(obs)
print(action)
obs, reward, terminate = task.step(action)
print('Done')
env.shutdown()