Skip to content

Question About the Limited Motion-Style Variation When Adjusting latent_eps in BBC #5

@Wan020607

Description

@Wan020607

Hello,

While using the BBC training and evaluation policies in this project, I encountered an issue related to the continuous style latent variable latent_eps. I would like to ask how it is expected to work and whether I may have misunderstood or used it incorrectly.

Background

I mainly referred to the bbc module in the repository. Based on my understanding of the code, the policy input includes:

  • latent_c: a discrete gait category, such as walk / pace / trot / canter / jump
  • latent_eps: a continuous style latent variable in the range [-1, 1]

During training, latent_eps is randomly sampled:

self.latent_eps[env_ids, :] = torch.tensor(
    np.random.rand(len(env_ids), 1) * 2. - 1.,
    dtype=torch.float32,
    device=self.device
)

At the same time, the discriminator contains an encoder_eps, which predicts latent_eps from motion clips:

eps = self.encoder_eps(x)
reward_us = -self.L1Loss(eps, label_eps)

The training loss also includes:

us_loss = self.L1Loss(eps, policy_latent_eps)
loss = ... + self.us_coef * us_loss + ...

Therefore, my understanding is that latent_eps should control continuous style variations within the same gait category, such as stride length, step frequency, body posture amplitude, or the degree of bouncing.

Issue

After training a policy with bbc, I manually adjusted latent_eps in play.py, for example from -1 to +1. However, the resulting changes in the robot's motion were not visually obvious.

I also tested the provided policy:

tsc/weights/bbc/model.pt

but the style variation was still not very noticeable.

More specifically:

  • Switching latent_c produces clear changes in gait category.
  • Adjusting only latent_eps results in relatively weak style changes within the same gait.
  • It is difficult to observe stable and interpretable differences between latent_eps = -1, latent_eps = 0, and latent_eps = 1.

I will appreciate for your help !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions