in mbrl/env/pets_halfcheetah.py [0:0]
def _preprocess_state_np(state):
assert isinstance(state, np.ndarray)
assert state.ndim in (1, 2, 3)
d1 = state.ndim == 1
if d1:
# if input is 1d, expand it to 2d
state = np.expand_dims(state, 0)
# [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17.] ->
# [1., sin(2), cos(2)., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17.]
ret = np.concatenate(
[
state[..., 1:2],
np.sin(state[..., 2:3]),
np.cos(state[..., 2:3]),
state[..., 3:],
],
axis=state.ndim - 1,
)
if d1:
# and squeeze it back afterwards
ret = ret.squeeze()
return ret