morphology pose

8 morphology poses

Poses Meaning
circular_000 Hip rotation at approximately 0°
circular_030 Mirrored hip rotations at ±30°
circular_060 Mirrored hip rotations at ±60°
circular_090 Mirrored hip rotations at ±90°
knees_axial_outward Knees pointing outward along the body axis
knees_axial_inward Knees pointing inward along the body axis
knees_radial_outward Knees pointing radially away from body center
knees_radial_inward Knees pointing radially toward body center

Stiffness&Damping

Static Stiffness

Kp,istatic=|τhold,i|Δqallow,i

Static Damping

Each joint is independently approximated as a second-order system:

Jeffq¨+Kdq˙+Kpq=0

Undamped natural angular frequency:

ωn=KpJeff

Undamped natural frequency in hertz:

fn=ωn2π

Critical damping coefficient:

Kd,critical=2KpJeff

Damping ratio:

ζ=Kd2KpJeff

Given Kp and the desired damping ratio, Kd is calculated as:

Kd,i=2ζiKp,iJeff,i

where Jeff denotes the effective joint inertia:

Calculation:

q_allow = 5° = 0.0872664626 rad
zeta = 1.0
J_eff = locked
Joint Family Kp Range Kd Range
hip_flexion 0.428391–53.2874 0.276606–3.70349
hip_abduction 0.0329987–50.4153 0.0803375–3.38429
hip_rotation 0.278956–37.1817 0.104658–1.20771
knee_flexion 24.7168–102.117 0.959010–1.94929

Selected upper-bound gains:

IsaacSim DCMotor

DC Motor in Isaac Lab

# Parameter Description Unit Kp=50 Configuration Kp=100 Configuration
1 stiffness Position-control gain Kp N·m/rad 50.0 100.0
2 damping Velocity-feedback damping gain Kd N·m/(rad/s) 3.38 1.95
3 armature Rotor inertia reflected to the output shaft kg·m² 0.0012484886 0.0012484886
4 friction Static/breakaway friction torque N·m 0.2384994984 0.1074789484
5 dynamic_friction Coulomb friction torque during motion N·m 0.00126407998 0.000537669324
6 viscous_friction Viscous friction coefficient N·m/(rad/s) 2.3799067e-5 1.0411770e-5
7 effort_limit Continuous output torque limit N·m 36.0 36.0
8 saturation_effort Stall/saturation torque N·m 72.0 72.0
9 velocity_limit No-load speed limit rad/s 53.0 53.0

Torque control:

τcomputed=Kp(qdesq)+Kd(q˙desq˙)+τff

Effort/velocity

0

For positive torque, the torque–speed envelope is defined by:

τmax(q˙)=min[τeffort,τsat(1|q˙|q˙max)]

Based on the RS 06 torque–speed curve, the desired characteristics are:

Accordingly, the following parameter values can be used:

effort_limit=36.0, 
saturation_effort=72.0, 
velocity_limit=53.0,    # rad/s = RPM * 2 * pi / 60

Motor rotor armature

mr=ρπh(ro2ri2)Jr=12mr(ro2+ri2)Jout=N2Jr

Calculate:

m=ρπh(ro2ri2)0.12331 kgJrotor=12m(ro2+ri2)1.54134×105 kgm2Jout=N2Jrotor=92×1.54134×1051.2484886×103 kgm2
  "assumptions": {
    "axial_length_m": 0.025,
    "outer_radius_m": 0.015,
    "inner_radius_m": 0.005,
    "equivalent_density_kg_m3": 7850.0,
    "gear_ratio_motor_speed_per_output_speed": 9.0
  },
  "calculation": {
    "mass_expression": "rho*pi*h*(r_outer^2-r_inner^2)",
    "rotor_inertia_expression": "0.5*mass*(r_outer^2+r_inner^2)",
    "output_side_expression": "rotor_inertia*gear_ratio^2",
    "equivalent_mass_kg": 0.12330751165392173,
    "rotor_inertia_kg_m2": 1.541343895674022e-05,
    "output_side_armature_kg_m2": 0.001248488555495958
  },

Motor parameter identification

Payload model

两个模型的底座相同:

2.1 负载平衡模型

2.2 单边负载模型

Optimization

Optimized parameters: friction, dynamic_friction, and viscous_friction.

Parameter bounds:

Log-space normalization:

u(x)=lnxlnxminlnxmaxlnxmin,x(u)=exp[lnxmin+u(lnxmaxlnxmin)],Fd=Fsρ,ρ=FdFs.

Objective Function

The position root-mean-square error (RMSE) for each trajectory is defined as:

Ri=1Tit=1Ti(qi,tsimqi,treal)2

The Huber loss function is defined as:

hδ(z)={12z2,|z|δ,δ(|z|12δ),|z|>δ,δ=1.5

The velocity-error term is defined as:

Hv,i=1Tit=1Tih1.5(vi,tsimvi,trealσv)

The final objective function is:

L(θ)=0.70meani=112(Ri0.02)+0.30mean(Top3i=112Ri0.02)+0.01meani=112(Hv,i)

Data

ID Trajectory Name Trajectory Profile Primary Purpose Use in the Current Standard Workflow
R01 balance_holds Holds at 0.2, 0, and +0.2 rad Evaluate load balancing, static bias, holding error, and breakaway/static friction Fit
R02 micro_sines Low-amplitude sinusoids of 0.01/0.03/0.06 rad at 0.1/0.2/0.4 Hz Excite breakaway friction, dead zones, small-signal tracking, and stick–slip behavior Fit
R03 multiscale_smooth_steps Multiscale smooth steps of 0.25/0.5/1.0 rad Evaluate control latency, effective Kp/Kd, rise time, overshoot, and transient response Fit
R04 rounded_triangle Rounded triangular wave, ±0.2 rad at 0.05 Hz Excite low-speed friction, direction reversals, hysteresis, and backlash Fit
R05 wide_constant_velocity_round_trips Bidirectional constant-velocity sweeps at 0.1–4.0 rad/s Distinguish static friction, dynamic Coulomb friction, and velocity-dependent resistance Fit
R06 wide_minimum_jerk_acceleration_sweeps Large-amplitude minimum-jerk motions of ±0.8 rad with varying durations Excite armature inertia, load inertia, and acceleration dynamics Fit
R07 variable_amplitude_log_chirp_up Upward logarithmic chirp from 0.1 to 3.0 Hz with frequency-dependent amplitude Characterize broadband closed-loop dynamics and magnitude/phase responses Fit
R08 variable_amplitude_log_chirp_down Downward logarithmic chirp from 3.0 to 0.1 Hz Evaluate sweep-direction dependence, thermal drift, hysteresis, and time-varying effects Fit
R09 multisine_small Low-amplitude multisine excitation from 0.1 to 2.5 Hz, with a peak amplitude of approximately 0.15 rad Provide small-to-moderate-amplitude broadband periodic excitation and evaluate the linear closed-loop response Fit
R10 multisine_large Same frequencies and phases as R09, with a peak amplitude of approximately 0.45 rad Compare with R09 to identify amplitude-dependent nonlinearities Fit
R11 wide_filtered_binary_sequence Smoothed random binary switching with an amplitude of ±0.3 rad Excite broadband dynamics, control latency, random direction reversals, and aperiodic residuals Fit
R12 held_out_sine_bank Multiple independent sinusoidal segments from 0.15 to 2.9 Hz, with amplitudes decreasing from 0.8 to 0.12 rad Evaluate frequency points and large-amplitude responses not directly covered by the other trajectories Promoted to Fit in the current standard workflow
R13 smooth_clipped_sine Smoothly clipped 1 Hz sinusoid Evaluate clipping nonlinearities, transition dynamics, and overall system generalization Sole held-out validation trajectory
Trajectory Name Sample Count Duration
R01 balance_holds 1,400 28.00 s
R02 micro_sines 3,075 61.50 s
R03 multiscale_smooth_steps 1,800 36.00 s
R04 rounded_triangle 2,000 40.00 s
R05 wide_constant_velocity_round_trips 6,103 122.06 s
R06 wide_minimum_jerk_acceleration_sweeps 1,372 27.44 s
R07 variable_amplitude_log_chirp_up 2,250 45.00 s
R08 variable_amplitude_log_chirp_down 2,250 45.00 s
R09 multisine_small 2,500 50.00 s
R10 multisine_large 2,500 50.00 s
R11 wide_filtered_binary_sequence 2,000 40.00 s
R12 held_out_sine_bank 4,556 91.12 s
R13 smooth_clipped_sine 1,250 25.00 s
数据范围 单个 Kp 条件样本数 单个 Kp 条件时长
R01–R11 27,250 545.00 s(9分05秒)
R12–R13 5,806 116.12 s(1分56.12秒)
R01–R12,当前 CMA fit 31,806 636.12 s(10分36.12秒)
R13,held-out validation 1,250 25.00 s
R01–R13 总计 33,056 661.12 s(11分01.12秒)

Result

Parameter Kp=50, Kd=3.38 Kp=100, Kd=1.95
armature (fixed) 0.0012484886 0.0012484886
friction [N·m] 0.2384994984 0.1074789484
dynamic_friction [N·m] 0.00126407998 0.000537669324
Dynamic-to-static friction ratio 0.00530014 0.00500255
viscous_friction [N·m/(rad/s)] 2.3799067e-5 1.0411770e-5
Optimal objective value 0.848628998 1.002159834
Median fit RMSE [rad] 0.00894282 0.01402229
90th-percentile fit RMSE [rad] 0.02249461 0.03209888
Fits with RMSE 0.02 rad 9/12 9/12
R13 RMSE [rad] 0.02581465 0.03185880

Final parameters

# Parameter Description Unit Kp=50 Configuration Kp=100 Configuration
1 stiffness Position-control gain Kp N·m/rad 50.0 100.0
2 damping Velocity-feedback damping gain Kd N·m/(rad/s) 3.38 1.95
3 armature Rotor inertia reflected to the output shaft kg·m² 0.0012484886 0.0012484886
4 friction Static/breakaway friction torque N·m 0.2384994984 0.1074789484
5 dynamic_friction Coulomb friction torque during motion N·m 0.00126407998 0.000537669324
6 viscous_friction Viscous friction coefficient N·m/(rad/s) 2.3799067e-5 1.0411770e-5
7 effort_limit Continuous output torque limit N·m 36.0 36.0
8 saturation_effort Stall/saturation torque N·m 72.0 72.0
9 velocity_limit No-load speed limit rad/s 53.0 53.0
DCMotorCfg(
    joint_names_expr=["hip"],
    stiffness=50.0,
    damping=3.38,
    armature=0.0012484886,
    friction=0.238499498429,
    dynamic_friction=0.00126407997987,
    viscous_friction=2.37990671357e-05,
    effort_limit=36.0,
    saturation_effort=72.0,
    velocity_limit=53.0,
)

DCMotorCfg(
    joint_names_expr=["knee"],
    stiffness=100.0,
    damping=1.95,
    armature=0.0012484886,
    friction=0.107478948424,
    dynamic_friction=0.000537669323874,
    viscous_friction=1.04117699332e-05,
    effort_limit=36.0,
    saturation_effort=72.0,
    velocity_limit=53.0,
)

Something interesting

  1. 低速的周期阻滞能识别出来
  2. 可能不只是滑动摩擦在影响电机表现:Translational Friction | AnyMath 文档 还可能有低速下的Shtribek摩擦