Posted on :: Tags: , , , , , , , , ,

Introduction

In this blog, we will conduct some experiments on Unitree G1. Specifically, using RL + IL and Motion Retargeting from the CMU MoCap dataset, we will attempt to teach Unitree G1 to run, jump, ...

Unitree G1 Spec

The Unitree G1 has 2 versions(i.e., G1-basic and G1-edu), and its corresponding specifications are as follows:

G1G1-EDU
Key Dimensions1320x450x200 mm1320x450x200 mm
Calf + Thigh Length0.6m0.6m
Arm SpanAbout 0.45MAbout 0.45M
Total Degrees of Freedom
(Joint Freedom)
2323~43
Single Leg Degrees of Freedom66
Waist Degrees of Freedom11 + (Optional 2 additional waist degrees of freedom)
Single Arm Degrees of Freedom55
Single Hand Degrees of Freedom/7(Optional Force outrolled three-fingered dexterous hand Dex3-1) + 2(Optional 2 additional wrist degrees of freedom)
Joint motorLow inertia high-speed internal rotor PMSM
(permanent magnet synchronous motor, better response speed and heat dissipation)
Low inertia high-speed internal rotor PMSM
(permanent magnet synchronous motor, better response speed and heat dissipation)
Maximum Torque of Knee Joint90N.m120N.m
Joint Angle LimitsWaist joint:Z±155°
Knee joint:0~165°
Hip joint:P±154°、R-30~+170°、Y±158°
Waist joint:Z±155°、X±45°、Y±30°
Knee joint:0~165°
Hip joint:P±154°、R-30~+170°、Y±158°
Wrist joint:P±92.5°、Y±92.5°
Sensor ConfigurationDepth Camera(Intel RealSense D435i) + 3D LiDAR(LIVOX-MID360)Depth Camera(Intel RealSense D435i) + 3D LiDAR(LIVOX-MID360)
Total WeightAbout 35kgAbout 35kg+

Joints

Unitree G1 has 23(basic)/29(edu) total degrees of freedom(DOFs), where each arm possesses 5(basic)/7(edu) degrees of freedom, each leg has 6, and the waist features 1(basic)/3(edu) degree of freedom.

G1(basic) Joints
G1(edu) Joints

Joint Numbering and Joint Limits

G1(basic) G1(edu)
Joint NameLimitsJoint Number
{left,right}_hip_pitch_joint
{L,R}_LEG_HIP_PITCH
-2.5307~2.8798 radleft: 0
right: 6
left_hip_roll_joint
L_LEG_HIP_ROLL
-0.5236~2.9671 rad1
right_hip_roll_joint
R_LEG_HIP_ROLL
-2.9671~0.5236 rad7
{left,right}_hip_yaw_joint
{L,R}_LEG_HIP_YAW
-2.7576~2.7576 radleft: 2
right: 8
{left,right}_knee_joint
{L,R}_LEG_KNEE
-0.087267~2.8798 radleft: 3
right: 9
{left,right}_ankle_pitch_joint
{L,R}_LEG_ANKLE_PITCH
-0.87267~0.5236 radleft: 4
right: 10
{left,right}_ankle_roll_joint
{L,R}_LEG_ANKLE_ROLL
-0.2618~0.2618 radleft: 5
right: 11
waist_yaw_joint
WAIST_YAW
-2.618~2.618 rad12
{left,right}_shoulder_pitch_joint
{L,R}_SHOULDER_PITCH
-3.0892~2.6704 radleft:13
right: 18
left_shoulder_roll_joint
L_SHOULDER_ROLL
-1.5882~2.2515 rad14
right_shoulder_roll_joint
R_SHOULDER_ROLL
-2.2515~1.5882 rad19
{left,right}_shoulder_yaw_joint
{L,R}_SHOULDER_YAW
-2.618~2.618 radleft:15
right: 20
{left,right}_elbow_joint
{L,R}_ELBOW
-1.0472~2.0944 radleft: 16
right: 21
{left,right}_wrist_roll_joint
{L,R}_WRIST_ROLL
-1.972222054~1.972222054 radleft: 17
right: 22
Joint NameLimitsJoint Number
{left,right}_hip_pitch_joint
{L,R}_LEG_HIP_PITCH
-2.5307~2.8798 radleft: 0
right: 6
left_hip_roll_joint
L_LEG_HIP_ROLL
-0.5236~2.9671 rad1
right_hip_roll_joint
R_LEG_HIP_ROLL
-2.9671~0.5236 rad7
{left,right}_hip_yaw_joint
{L,R}_LEG_HIP_YAW
-2.7576~2.7576 radleft: 2
right: 8
{left,right}_knee_joint
{L,R}_LEG_KNEE
-0.087267~2.8798 radleft: 3
right: 9
{left,right}_ankle_pitch_joint
{L,R}_LEG_ANKLE_PITCH
-0.87267~0.5236 radleft: 4
right: 10
{left,right}_ankle_roll_joint
{L,R}_LEG_ANKLE_ROLL
-0.2618~0.2618 radleft: 5
right: 11
waist_yaw_joint
WAIST_YAW
-2.618~2.618 rad12
waist_roll_joint
WAIST_ROLL
-0.52~0.52 rad13
waist_pitch_joint
WAIST_PITCH
-0.52~0.52 rad14
{left,right}_shoulder_pitch_joint
{L,R}_SHOULDER_PITCH
-3.0892~2.6704 radleft:15
right: 22
left_shoulder_roll_joint
L_SHOULDER_ROLL
-1.5882~2.2515 rad16
right_shoulder_roll_joint
R_SHOULDER_ROLL
-2.2515~1.5882 rad23
{left,right}_shoulder_yaw_joint
{L,R}_SHOULDER_YAW
-2.618~2.618 radleft:17
right: 24
{left,right}_elbow_joint
{L,R}_ELBOW
-1.0472~2.0944 radleft: 18
right: 25
{left,right}_wrist_roll_joint
{L,R}_WRIST_ROLL
-1.972222054~1.972222054 radleft: 19
right: 26
{left,right}_wrist_pitch_joint
{L,R}_WRIST_PITCH
-1.614429558~1.614429558 radleft: 20
right: 27
{left,right}_wrist_yaw_joint
{L,R}_WRIST_YAW
-1.614429558~1.614429558 radleft: 21
right: 28

Reference Motion Retargeting

The skeleton model (henceforth referred to as 'CMU-MoCap') used in the CMU MoCap dataset and the robot model of Unitree G1 have different proportions and skeletal structures. Therefore, to reuse the MoCap animation dataset for Unitree G1, the technique called retargeting is needed. Retargeting is the process of adapting the animation from the source to the target character. Furthermore, humanoid retargeting is the process of transferring animation data from one humanoid character (the source) to another (the target).

Motion retargeting requires a consistent starting point for transferring animation accurately, and the T-pose serves this purpose. T-pose is a neutral, standardized pose (arms outstretched, resembling the letter 'T') used as a reference point(pose) for retargeting animations between different character skeletons. The following shows the T-pose for CMU-MoCap and Unitree-G1 respectively,

T-pose for CMU MoCap dataset
 

T-pose for Unitree G1
(with upper body fixed)

The final retargeted motions for Unitree G1 from CMU MoCap reference motions are as follows,

CMU MoCapUnitree G1
RUN
JUMP

Experiments

  • RUN

  • JUMP


Comments