Skip to content

Unitree eng: is a whole-body rt/lowcmd motion policy supported on the 23-DOF G1 EDU? #6

Description

@armwaheed

Question for Unitree engineering: is a whole-body motion policy achievable on the 23-DOF G1 EDU?

While deploying a sim-trained reach policy on our 23-DOF G1 EDU (Type F, 1-DOF waist), we hit a wall
on running a custom whole-body (CoM-shifting / squatting) motion policy via rt/lowcmd, and want to
confirm with Unitree whether it is supported on this variant at all.

What we found (verified live + against the SDK source and the developer forums)

  • MotionSwitcher.CheckMode() reports the configured mode, not the active controller. It returns
    {'name':'ai','form':'0'} in both normal AI-Sport mode and a freshly-entered low-level Develop
    mode (confirmed across a full power-cycle). rt/sportmodestate is not published on this variant.
    So neither indicates whether the balancer thread is actually running.
  • The only reliable software signal we found is high-level service liveness: a read-only loco
    GET_FSM_ID RPC (id 7001) answers (code 0) in AI-Sport and errors/times out in Develop
    (Develop → code 3102).
  • rt/lowcmd driving all joints against the live AI controller jitters/oscillates rather than
    cleanly taking over (consistent with unitree_sdk2_python#43/#108). Our working path for arm tasks
    is the rt/arm_sdk overlay (it blends with the balancer) + LocoClient.Move for locomotion.

The questions

  1. On the 23-DOF G1 EDU, is there a supported way to run a custom whole-body rt/lowcmd policy
    that drives the legs (squat / CoM shift), with the factory AI controller fully released so it does
    not fight the commands? If so, what is the exact, supported sequence?
  2. Does handheld Develop mode (L2+R2) fully release the legs for rt/lowcmd, or does the AI/balance
    policy keep running? (We observe the robot is damped in Develop mode, suggesting the AI policy is
    off — but CheckMode still says 'ai'.)
  3. Is there an SDK call that authoritatively reports whether the high-level balance service is running
    vs released
    (beyond the loco-RPC liveness probe we are using)?
  4. Is whole-body rt/lowcmd intended/recommended on the 23-DOF EDU at all, or is this variant meant
    for rt/arm_sdk-over-balancer + LocoClient only (with whole-body reserved for the 29-DOF G1)?

Any guidance on (1) and (4) directly determines whether our bed-making demo on the 23-DOF EDU can use a
whole-body reach or must stay upper-body-only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions