SO101-Nexus
Environments

MuJoCoMove-v1

Move the TCP in a specified direction using the MuJoCo backend.

MuJoCoMove-v1

Move the robot's end-effector in a cardinal direction by a fixed distance.

Overview

PropertyValue
Environment IDMuJoCoMove-v1
BackendMuJoCo
Max episode steps256
Config classMoveConfig (extends EnvironmentConfig)
Task description"Move the end-effector {direction} by {distance:.2f} m."

Configuration

MoveConfig extends EnvironmentConfig with the following fields:

FieldTypeDefaultDescription
directionLiteral["up", "down", "left", "right", "forward", "backward"]--Direction of movement
target_distancefloat0.10Distance to move in meters
success_thresholdfloat0.01Distance (m) within which the task is considered solved

Observation Space

Default observation includes only joint positions (configurable via observations parameter on MoveConfig):

ComponentClassDimensionsDescription
Joint positionsJointPositions6Current angle of each robot joint

Objects

No objects are present. The goal position is computed at episode start from the initial TCP position offset by direction * target_distance.

Success Condition

The episode succeeds when the distance from the TCP to the target is less than success_threshold (default 0.01 m).

Example

import gymnasium as gym
import so101_nexus_mujoco

from so101_nexus_core.config import MoveConfig

env = gym.make(
    "MuJoCoMove-v1",
    render_mode="human",
    config=MoveConfig(direction="up", target_distance=0.10),
)

obs, info = env.reset()
for _ in range(256):
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        obs, info = env.reset()

env.close()

On this page