From 3e529055475db8e17367a20eee6086966e3ce2d1 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Tue, 24 Feb 2026 15:28:57 -0600 Subject: [PATCH] Bump neutral hold gains to 10x for free-hanging calibration 5x wasn't enough to overcome ankle parallel linkage friction. Robot is harness-supported so higher gains are safe. Co-Authored-By: Claude Opus 4.6 --- .../src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gear_sonic_deploy/src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp b/gear_sonic_deploy/src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp index e809c25..bd6a5c1 100644 --- a/gear_sonic_deploy/src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp +++ b/gear_sonic_deploy/src/g1/g1_deploy_onnx_ref/src/g1_deploy_onnx_ref.cpp @@ -2829,9 +2829,10 @@ class G1Deploy { MotorCommand motor_command_tmp; // Neutral hold mode: bypass NN, command default angles directly (key 'n') - // Uses 5x gains for stiff hold — useful for visual joint calibration. + // Uses 10x gains for stiff hold — useful for visual joint calibration. + // Robot must be in test harness (free-hanging) for this mode. if (g_neutral_hold_mode.load()) { - constexpr float neutral_gain_mult = 5.0f; + constexpr float neutral_gain_mult = 10.0f; for (int i = 0; i < G1_NUM_MOTOR; i++) { motor_command_tmp.q_target.at(i) = static_cast(default_angles[i]); motor_command_tmp.tau_ff.at(i) = 0.0;