in bisk/tasks/stairs.py [0:0]
def init_sim(self, root: mjcf.RootElement, frameskip: int = 5):
W = 8
add_fwd_corridor(root, W)
self.n_steps = 10 * 2
self.start_pos = 3.0
self.top_width = 3.0
color1 = [0.8, 0.9, 0.8, 1.0]
color2 = [0.6, 0.6, 0.6, 1.0]
length = 0.5
xpos = self.start_pos + length / 2
h2 = self.step_height / 2
for i in range(self.n_steps // 2):
add_box(
root,
f'step-{i}',
size=[length / 2, W, h2],
pos=[xpos, 0, h2],
rgba=color1 if i % 2 == 0 else color2,
)
h2 += self.step_height / 2
xpos += length
h2 = self.n_steps // 2 * self.step_height / 2
add_box(
root,
'top',
size=[self.top_width, W, h2],
pos=[xpos + self.top_width - length / 2, 0, h2],
rgba=color1,
)
xpos += self.top_width * 2
for i in range(self.n_steps // 2, self.n_steps):
add_box(
root,
f'step-{i}',
size=[length / 2, W, h2],
pos=[xpos, 0, h2],
rgba=color1 if i % 2 == 1 else color2,
)
h2 -= self.step_height / 2
xpos += length
root.worldbody.add(
'camera',
name='stairs_side',
mode='trackcom',
pos=[0, -6, 1],
euler=[80, 0, 0],
)
super().init_sim(root, frameskip)